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=''已审核'' '); end; 1: begin sql.Add(',@flag=''全部'' '); end; end; if YWY.Text <> '' then begin SQL.Add(',@YWY=' + QuotedStr(Trim(YWY.Text))); end; if canshu1 = '组长' 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=''已审核'' '); end; 1: begin sql.Add(',@flag=''全部'' '); end; end; if YWY.Text <> '' then begin SQL.Add(',@YWY=' + QuotedStr(Trim(YWY.Text))); end; if canshu1 = '组长' 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, '财务管理'); Close; end; procedure TfrmYSKtjlist.FormShow(Sender: TObject); var fsj: string; begin ReadCxGrid(trim(self.Caption), Tv2, '财务管理'); 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=''应收款登记'' '; SInitComBoxBySql(ADOQueryCmd, YFGSType, False, fsj); ToolButton5.Visible := False; if canshu1 = '业务员' then begin ywy.Text := Trim(dname); YWY.Enabled := false; ToolButton5.Visible := true; end; Tv2Column11.Options.Editing := false; Tv2Column12.Options.Editing := false; if canshu1 = '管理' 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, '应收收款统计列表'); 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=''已审核'''); Open; end; Open; end; try filepath := ExtractFilePath(Application.ExeName) + 'report\应收账款.rmf'; if not FileExists(Pchar(filepath)) then begin application.MessageBox(pchar('文件[' + filepath + ']不存在!'), '提示信息', 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=''应收对账单'''); 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(',''应收对账单'')'); 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=''应收对账单'''); 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('所填内容不能为空!', '提示', 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=''应收对账单'''); 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(',''应收对账单'')'); 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=''应收对账单'''); 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=''应收对账单'''); 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=''应收对账单'''); 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(',''应收对账单'')'); 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=''应收对账单'''); ExecSQL; end; end; tv2.Controller.EditingController.ShowEdit(); end; procedure TfrmYSKtjlist.CheckBox1Click(Sender: TObject); begin InitGrid(); end; end.