D7gmYushang/应收应付/U_YSKtjlist.pas

566 lines
16 KiB
ObjectPascal
Raw Normal View History

2025-09-24 13:13:14 +08:00
unit U_YSKtjlist;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls,
cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit,
cxTextEdit, Clipbrd, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator,
dxBarBuiltInMenu, MovePanel, cxCurrencyEdit;
type
TfrmYSKtjlist = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ToolButton2: TToolButton;
ADOQueryMain: TADOQuery;
ToolButton1: TToolButton;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
Label3: TLabel;
FactoryName: TEdit;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxGridLevel1: TcxGridLevel;
Label6: TLabel;
begdate: TDateTimePicker;
Enddate: TDateTimePicker;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_HZ: TDataSource;
CDS_HZ: TClientDataSet;
v2Column5: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v2Column2: TcxGridDBColumn;
v2Column3: TcxGridDBColumn;
Label1: TLabel;
ComTaiTou: TEdit;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ADOQueryPrint: TADOQuery;
v2Column11: TcxGridDBColumn;
v2Column12: TcxGridDBColumn;
Label4: TLabel;
YWY: TEdit;
cxTabControl1: TcxTabControl;
Label7: TLabel;
YFGSType: TComboBox;
v2Column10: TcxGridDBColumn;
Label5: TLabel;
ishs: TComboBox;
Tv2Column1: TcxGridDBColumn;
Tv2Column2: TcxGridDBColumn;
Tv2Column3: TcxGridDBColumn;
Tv2Column4: TcxGridDBColumn;
Tv2Column5: TcxGridDBColumn;
Tv2Column6: TcxGridDBColumn;
Tv2Column7: TcxGridDBColumn;
Tv2Column8: TcxGridDBColumn;
ToolButton5: TToolButton;
MovePanel1: TMovePanel;
Label8: TLabel;
E1: TEdit;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
Label9: TLabel;
E2: TEdit;
Label10: TLabel;
E3: TEdit;
Label11: TLabel;
E4: TEdit;
Tv2Column9: TcxGridDBColumn;
Tv2Column10: TcxGridDBColumn;
Tv2Column11: TcxGridDBColumn;
Tv2Column12: TcxGridDBColumn;
Tv2Column13: TcxGridDBColumn;
Tv2Column14: TcxGridDBColumn;
Label2: TLabel;
Label12: TLabel;
CZbegdate: TDateTimePicker;
CZEnddate: TDateTimePicker;
CheckBox1: TCheckBox;
Tv2Column15: TcxGridDBColumn;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure FactoryNameChange(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure Tv2DblClick(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure YFGSTypeChange(Sender: TObject);
procedure Tv2Column5PropertiesEditValueChanged(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Tv2Column11PropertiesEditValueChanged(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
private
{ Private declarations }
procedure InitGrid();
public
fmanage: string;
{ Public declarations }
RKFlag, FCYID: string;
canshu1: string;
end;
var
frmYSKtjlist: TfrmYSKtjlist;
implementation
uses
U_DataLink, U_Fun, U_ZDYHelp, U_YSMXlist2;
{$R *.dfm}
procedure TfrmYSKtjlist.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
if CheckBox1.Checked = FALSE then
begin
sql.Add(' exec P_YSSK_List_ZQ_cs ');
sql.Add(' @begdate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', begdate.DateTime))));
sql.Add(',@Enddate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1))));
case cxTabControl1.TabIndex of
0:
begin
sql.Add(',@flag=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ');
end;
1:
begin
sql.Add(',@flag='<><C8AB>'' ');
end;
end;
if YWY.Text <> '' then
begin
SQL.Add(',@YWY=' + QuotedStr(Trim(YWY.Text)));
end;
if canshu1 = '<27>鳤' then
begin
SQL.Add(',@zz=' + QuotedStr(Trim(DName)));
end;
end
else
begin
sql.Add(' exec P_YSSK_List_ZQ_cs2 ');
sql.Add(' @begdate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', begdate.DateTime))));
sql.Add(',@Enddate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1))));
case cxTabControl1.TabIndex of
0:
begin
sql.Add(',@flag=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ');
end;
1:
begin
sql.Add(',@flag='<><C8AB>'' ');
end;
end;
if YWY.Text <> '' then
begin
SQL.Add(',@YWY=' + QuotedStr(Trim(YWY.Text)));
end;
if canshu1 = '<27>鳤' then
begin
SQL.Add(',@zz=' + QuotedStr(Trim(DName)));
end;
sql.Add(',@CZbegdate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', CZbegdate.DateTime))));
sql.Add(',@CZEnddate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', CZEnddate.DateTime + 1))));
end;
// ShowMessage(SQL.Text);
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_HZ);
SInitCDSData20(ADOQueryMain, CDS_HZ);
finally
ADOQueryMain.EnableControls;
end;
ToolButton2.Click;
end;
procedure TfrmYSKtjlist.FormDestroy(Sender: TObject);
begin
frmYSKtjlist := nil;
end;
procedure TfrmYSKtjlist.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmYSKtjlist.TBCloseClick(Sender: TObject);
begin
WriteCxGrid(trim(self.Caption), Tv2, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmYSKtjlist.FormShow(Sender: TObject);
var
fsj: string;
begin
ReadCxGrid(trim(self.Caption), Tv2, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Enddate.DateTime := SGetServerDate(ADOQueryTemp);
begdate.DateTime := Enddate.DateTime;
CZEnddate.DateTime := Enddate.DateTime;
CZbegdate.DateTime := Enddate.DateTime - 180;
fsj := 'select distinct(YFGSType) name from YF_Money_CR where CRType='<>տ<EFBFBD><D5BF>Ǽ<EFBFBD>'' ';
SInitComBoxBySql(ADOQueryCmd, YFGSType, False, fsj);
ToolButton5.Visible := False;
if canshu1 = <><D2B5>Ա' then
begin
ywy.Text := Trim(dname);
YWY.Enabled := false;
ToolButton5.Visible := true;
end;
Tv2Column11.Options.Editing := false;
Tv2Column12.Options.Editing := false;
if canshu1 = '<27><><EFBFBD><EFBFBD>' then
begin
Tv2Column11.Options.Editing := True;
Tv2Column12.Options.Editing := True;
end;
InitGrid();
end;
procedure TfrmYSKtjlist.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmYSKtjlist.ToolButton2Click(Sender: TObject);
var
fsj: string;
begin
if ADOQueryMain.Active = False then
Exit;
SDofilter(ADOQueryMain, Trim(SGetFilters(Panel1, 1, 2)));
SCreateCDS20(ADOQueryMain, CDS_HZ);
SInitCDSData20(ADOQueryMain, CDS_HZ);
end;
procedure TfrmYSKtjlist.FactoryNameChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmYSKtjlist.ToolButton1Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
Exit;
SelExportData(Tv2, ADOQueryMain, <><D3A6><EFBFBD>տ<EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>б<EFBFBD>');
end;
procedure TfrmYSKtjlist.ToolButton3Click(Sender: TObject);
begin
if CDS_HZ.IsEmpty then
exit;
frmYSMXlist2 := TfrmYSMXlist2.Create(self);
with frmYSMXlist2 do
begin
begdate.DateTime := self.begdate.DateTime;
enddate.DateTime := self.Enddate.DateTime;
YWY.Text := self.CDS_HZ.fieldbyname('YWY').AsString;
factoryName.Text := self.CDS_HZ.fieldbyname('factoryName').AsString;
YFGSType.ItemIndex := YFGSType.Items.IndexOf(trim(self.CDS_HZ.fieldbyname('YFGSType').AsString));
ishs.ItemIndex := ishs.Items.IndexOf(trim(self.CDS_HZ.fieldbyname('ishs').AsString));
cxTabControl1.TabIndex := self.cxTabControl1.TabIndex;
show;
end;
end;
procedure TfrmYSKtjlist.ToolButton4Click(Sender: TObject);
var
filepath: string;
mBegdate, mEnddate: string;
begin
mBegdate := FormatDateTime('yyyy-MM-dd', begdate.Date);
mEnddate := FormatDateTime('yyyy-MM-dd', enddate.Date);
if CDS_HZ.IsEmpty then
exit;
with ADOQueryPrint do
begin
Close;
SQL.Clear;
with ADOQueryPrint do
begin
Close;
SQL.Clear;
Filtered := False;
sql.Add(' exec P_YFFK_List @begdate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', begdate.DateTime))) + ',@Enddate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1))) + ',@flag=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>''');
Open;
end;
Open;
end;
try
filepath := ExtractFilePath(Application.ExeName) + 'report\Ӧ<><D3A6><EFBFBD>˿<EFBFBD>.rmf';
if not FileExists(Pchar(filepath)) then
begin
application.MessageBox(pchar('<27>ļ<EFBFBD>[' + filepath + ']<5D><><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>'), '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_IConError);
exit;
end;
RmVariables['begDate'] := FormatDateTime('yyyy-mm-dd', begDate.Date);
RmVariables['enddate'] := FormatDateTime('yyyy-mm-dd', enddate.Date);
RMVariables['ZDR'] := trim(DName);
RM1.LoadFromFile(filepath);
RM1.ShowReport;
finally
end;
end;
procedure TfrmYSKtjlist.Tv2DblClick(Sender: TObject);
begin
Clipboard.SetTextBuf(PChar(Trim(CDS_HZ.fieldbyname(TV2.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;
procedure TfrmYSKtjlist.cxTabControl1Change(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmYSKtjlist.YFGSTypeChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmYSKtjlist.Tv2Column5PropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
begin
mvalue := TcxTextEdit(Sender).EditingText;
FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_HZ do
begin
Edit;
FieldByName(FFieldName).Value := mvalue;
Post;
end;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add('SELECT * FROM HZNOTE WHERE FLA=' + quotedstr(Trim(CDS_HZ.fieldbyname('FactoryName').AsString)));
SQL.Add(' AND FLB=' + quotedstr(Trim(CDS_HZ.fieldbyname('YWY').AsString)));
SQL.Add('AND FlTYPE='<>ն<EFBFBD><D5B6>˵<EFBFBD>''');
Open;
end;
if ADOQueryTemp.IsEmpty = True then
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('insert into HZNOTE(fla,flb,hzznote,hzznote2,hzznote3,fltype) values (' + quotedstr(Trim(CDS_HZ.fieldbyname('FactoryName').AsString)));
sql.Add(',' + quotedstr(Trim(CDS_HZ.fieldbyname('ywy').AsString)));
sql.Add(',' + quotedstr(Trim(CDS_HZ.fieldbyname('HZZNOTE').AsString)));
sql.Add(',' + quotedstr(Trim(CDS_HZ.fieldbyname('hzznote2').AsString)));
sql.Add(',' + quotedstr(Trim(CDS_HZ.fieldbyname('hzznote3').AsString)));
sql.Add(','<>ն<EFBFBD><D5B6>˵<EFBFBD>'')');
ExecSQL;
end;
end
else
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add(' update hznote Set ' + FFieldName + '=' + QuotedStr(mvalue));
sql.Add(' WHERE FLA=' + quotedstr(Trim(CDS_HZ.fieldbyname('FactoryName').AsString)));
SQL.Add(' AND FLB=' + quotedstr(Trim(CDS_HZ.fieldbyname('ywy').AsString)));
SQL.Add('AND FlTYPE='<>ն<EFBFBD><D5B6>˵<EFBFBD>''');
ExecSQL;
end;
end;
tv2.Controller.EditingController.ShowEdit();
end;
procedure TfrmYSKtjlist.ToolButton5Click(Sender: TObject);
begin
E1.Text := CDS_HZ.fieldbyname('HZZNOTE3').ASSTRING;
E2.Text := CDS_HZ.fieldbyname('HZZNOTE4').ASSTRING;
MovePanel1.VISIBLE := True;
end;
procedure TfrmYSKtjlist.Button1Click(Sender: TObject);
var
FMJID: string;
begin
if (Trim(E3.Text) = '') and (Trim(E4.Text) = '') then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add('SELECT * FROM HZNOTE WHERE FLA=' + quotedstr(Trim(CDS_HZ.fieldbyname('FactoryName').AsString)));
SQL.Add(' AND FLB=' + quotedstr(Trim(CDS_HZ.fieldbyname('YWY').AsString)));
SQL.Add('AND FlTYPE='<>ն<EFBFBD><D5B6>˵<EFBFBD>''');
Open;
end;
if ADOQueryTemp.IsEmpty = True then
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('insert into HZNOTE(fla,flb,hzznote3,hzznote4,fltype) values (' + quotedstr(Trim(CDS_HZ.fieldbyname('FactoryName').AsString)));
sql.Add(',' + quotedstr(Trim(CDS_HZ.fieldbyname('ywy').AsString)));
sql.Add(',' + quotedstr(Trim(E3.Text)));
sql.Add(',' + quotedstr(Trim(E4.Text)));
sql.Add(','<>ն<EFBFBD><D5B6>˵<EFBFBD>'')');
ExecSQL;
end;
end
else
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add(' update hznote Set hzznote=hzznote3,hzznote2=hzznote4');
sql.Add(' WHERE FLA=' + quotedstr(Trim(CDS_HZ.fieldbyname('FactoryName').AsString)));
SQL.Add(' AND FLB=' + quotedstr(Trim(CDS_HZ.fieldbyname('ywy').AsString)));
SQL.Add('AND FlTYPE='<>ն<EFBFBD><D5B6>˵<EFBFBD>''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add(' update hznote Set hzznote3=' + QuotedStr(Trim(E3.Text)));
SQL.Add(',FILLTIME2=GETDATE()');
SQL.Add(' , hzznote4=' + QuotedStr(Trim(E4.Text)));
sql.Add(' WHERE FLA=' + quotedstr(Trim(CDS_HZ.fieldbyname('FactoryName').AsString)));
SQL.Add(' AND FLB=' + quotedstr(Trim(CDS_HZ.fieldbyname('ywy').AsString)));
SQL.Add('AND FlTYPE='<>ն<EFBFBD><D5B6>˵<EFBFBD>''');
ExecSQL;
end;
end;
FMJID := CDS_HZ.fieldbyname('FactoryName').AsString;
InitGrid();
CDS_HZ.locate('FactoryName', FMJID, []);
MovePanel1.visible := False;
// tv2.Controller.EditingController.ShowEdit();
end;
procedure TfrmYSKtjlist.Button2Click(Sender: TObject);
begin
MovePanel1.visible := False;
end;
procedure TfrmYSKtjlist.Tv2Column11PropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
begin
mvalue := TcxTextEdit(Sender).EditingText;
FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_HZ do
begin
Edit;
FieldByName(FFieldName).Value := mvalue;
Post;
end;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add('SELECT * FROM HZNOTE WHERE FLA=' + quotedstr(Trim(CDS_HZ.fieldbyname('FactoryName').AsString)));
SQL.Add(' AND FLB=' + quotedstr(Trim(CDS_HZ.fieldbyname('YWY').AsString)));
SQL.Add('AND FlTYPE='<>ն<EFBFBD><D5B6>˵<EFBFBD>''');
Open;
end;
if ADOQueryTemp.IsEmpty = True then
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('insert into HZNOTE(fla,flb,hzznote5,hzznote6,fltype) values (' + quotedstr(Trim(CDS_HZ.fieldbyname('FactoryName').AsString)));
sql.Add(',' + quotedstr(Trim(CDS_HZ.fieldbyname('ywy').AsString)));
sql.Add(',' + quotedstr(Trim(CDS_HZ.fieldbyname('HZZNOTE5').AsString)));
sql.Add(',' + quotedstr(Trim(CDS_HZ.fieldbyname('hzznote6').AsString)));
sql.Add(','<>ն<EFBFBD><D5B6>˵<EFBFBD>'')');
ExecSQL;
end;
end
else
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add(' update hznote Set ' + FFieldName + '=' + QuotedStr(mvalue));
sql.Add(' WHERE FLA=' + quotedstr(Trim(CDS_HZ.fieldbyname('FactoryName').AsString)));
SQL.Add(' AND FLB=' + quotedstr(Trim(CDS_HZ.fieldbyname('ywy').AsString)));
SQL.Add('AND FlTYPE='<>ն<EFBFBD><D5B6>˵<EFBFBD>''');
ExecSQL;
end;
end;
tv2.Controller.EditingController.ShowEdit();
end;
procedure TfrmYSKtjlist.CheckBox1Click(Sender: TObject);
begin
InitGrid();
end;
end.