unit U_KhHKList; 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, cxDropDownEdit, cxPC, cxTimeEdit, RM_e_Xls, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, U_BaseList; type TfrmKhHKList = class(TfrmBaseList) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ADOQueryMain: TADOQuery; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; Label3: TLabel; KHName: TEdit; enddate: TDateTimePicker; begdate: TDateTimePicker; rmxlsxprt1: TRMXLSExport; CDS_PRT: TClientDataSet; DS_1: TDataSource; CDS_1: TClientDataSet; GPM_1: TcxGridPopupMenu; Label1: TLabel; conno: TEdit; ToolButton2: TToolButton; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; Tv1Column15: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; v2Column2: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; fph: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; VC_ETD: TcxGridDBColumn; etd: TcxGridDBColumn; jdrq: TcxGridDBColumn; kddh: TcxGridDBColumn; yjcdrq: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; Tv1Column8: TcxGridDBColumn; Tv1Column10: TcxGridDBColumn; GPM_2: TcxGridPopupMenu; CDS_2: TClientDataSet; DS_2: TDataSource; Tv1Column11: TcxGridDBColumn; GPM_3: TcxGridPopupMenu; CDS_3: TClientDataSet; DS_3: TDataSource; ToolButton1: TToolButton; ADOQueryPrint: TADOQuery; Panel2: TPanel; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; TV2Column3: TcxGridDBColumn; TV2Column2: TcxGridDBColumn; cxGridDBColumn7: TcxGridDBColumn; cxGridDBColumn9: TcxGridDBColumn; cxGridDBColumn13: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; cxGrid3: TcxGrid; TV3: TcxGridDBTableView; v2P_Color: TcxGridDBColumn; v2P_HX: TcxGridDBColumn; v2ps: TcxGridDBColumn; v2Qty: TcxGridDBColumn; v2Column1: TcxGridDBColumn; TV3Column1: TcxGridDBColumn; v2BZType: TcxGridDBColumn; v2QtyUnit: TcxGridDBColumn; v2Column14: TcxGridDBColumn; VYB: TcxGridDBColumn; v2Note: TcxGridDBColumn; v2Column3: TcxGridDBColumn; cxGridLevel3: TcxGridLevel; Tv1Column9: TcxGridDBColumn; Tv1Column12: TcxGridDBColumn; cbbDate: TComboBox; Label2: TLabel; cbbFKZT: TComboBox; Label4: TLabel; cbbDF: TComboBox; Label5: TLabel; Label6: TLabel; Label7: TLabel; MiddleName: TEdit; KHConNo: TEdit; TV3Column2: TcxGridDBColumn; TV2Column1: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure FConNoChange(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure cxPageControl1Change(Sender: TObject); procedure KHNameKeyPress(Sender: TObject; var Key: Char); procedure ToolButton2Click(Sender: TObject); procedure ztPropertiesEditValueChanged(Sender: TObject); procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure DateEdit(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure TV2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure cbbFKZTChange(Sender: TObject); private FNowDate: TDateTime; { Private declarations } procedure InitGrid(); procedure InitGrid2(); procedure InitGrid3(); function SaveData(): Boolean; public { Public declarations } RKFlag, FCYID, canshu1: string; end; //var // frmKhHKList: TfrmKhHKList; implementation uses U_DataLink, U_RTFun, U_ZDYHelp; {$R *.dfm} procedure TfrmKhHKList.InitGrid2(); begin with ADOQueryTemp do begin Close; SQL.Clear; sql.Add(' select A.IVNO,A.ConNo,A.KHConNo,A.P_CodeName '); sql.Add(' ,sum(PS) PS,sum(Qty) Qty,sum(Money) Money '); sql.Add(' from CW_Money_CR A'); sql.Add(' where A.CRType=''应收款登记'' '); sql.Add(' and A.IVNO=' + QuotedStr(Trim(CDS_1.FieldByName('IVNO').AsString))); sql.Add(' group by A.IVNO,A.ConNo,A.KHConNo,A.P_CodeName '); OPEN; end; SCreateCDS(ADOQueryTemp, CDS_2); SInitCDSData(ADOQueryTemp, CDS_2); end; procedure TfrmKhHKList.InitGrid3(); begin with ADOQueryTemp do begin Close; SQL.Clear; sql.Add(' select A.* from CW_Money_CR A'); sql.Add(' where A.CRType=''应收款登记'' '); sql.Add(' and A.IVNO=' + QuotedStr(Trim(CDS_2.FieldByName('IVNO').AsString))); sql.Add(' and A.ConNo=' + QuotedStr(Trim(CDS_2.FieldByName('ConNo').AsString))); sql.Add(' and A.P_CodeName=' + QuotedStr(Trim(CDS_2.FieldByName('P_CodeName').AsString))); OPEN; end; SCreateCDS(ADOQueryTemp, CDS_3); SInitCDSData(ADOQueryTemp, CDS_3); end; procedure TfrmKhHKList.TBRafreshClick(Sender: TObject); begin InitGrid(); InitGrid2(); InitGrid3(); end; function TfrmKhHKList.SaveData(): Boolean; var maxId, factoryno: string; begin if CDS_1.IsEmpty then exit; ToolBar1.SetFocus; if CDS_1.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; try ADOQueryCmd.Connection.BeginTrans; with CDS_1 do begin DisableControls; First; while not eof do begin if Fieldbyname('ssel').AsBoolean then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from DZ_DianFang where DFID=' + QuotedStr(Trim(CDS_1.fieldbyname('DFID').AsString))); Open; end; with ADOQueryCmd do begin Edit; RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_1, 'DZ_DianFang', 0); Post; end; end; next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; Application.MessageBox('保存成功!', '提示', 0); except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end; end; procedure TfrmKhHKList.InitGrid(); var WSql: string; begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('EXEC P_DZ_UP_DFJD '); ExecSQL; end; WSql := SGetFilters(Panel1, 1, 2); if WSql <> '' then WSql := ' and ' + WSql; if cbbFKZT.Text = '未付款' then WSql := WSql + ' and HXMoney=0 '; if cbbFKZT.Text = '已付款' then WSql := WSql + ' and HXMoney<>0 and QKMoney<>0 '; if cbbFKZT.Text = '已结清' then WSql := WSql + ' and QKMoney=0'; if cbbDF.Text = '未电放' then WSql := WSql + ' and ISNULL(DFDate,'''')='''' '; if cbbDF.Text = '已电放' then WSql := WSql + ' and ISNULL(DFDate,'''')<>'''' '; if cbbDate.Text = '出库时间' then begin WSql := WSql + ' and CKDate>=' + QuotedStr(FormatDateTime('yyyy-MM-dd', begdate.Date)); WSql := WSql + ' and CKDate<=' + QuotedStr(FormatDateTime('yyyy-MM-dd', enddate.Date)); end; if cbbDate.Text = '免堆期' then begin WSql := WSql + ' and MDQ>=' + QuotedStr(FormatDateTime('yyyy-MM-dd', begdate.Date)); WSql := WSql + ' and MDQ<=' + QuotedStr(FormatDateTime('yyyy-MM-dd', enddate.Date)); end; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; SQL.Clear; sql.Add('select * from DZ_DianFang A where 1=1 '); SQL.Add(' and Filltime>=''' + FormatDateTime('yyyy-MM-dd', begdate.Date) + ''' '); sql.Add(' and Filltime<=''' + FormatDateTime('yyyy-MM-dd', enddate.Date) + ''' '); sql.Add(WSql); Open; end; SCreateCDS(ADOQueryMain, CDS_1); SInitCDSData(ADOQueryMain, CDS_1); finally ADOQueryMain.EnableControls; end; end; procedure TfrmKhHKList.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmKhHKList.TBCloseClick(Sender: TObject); begin WriteCxGrid(Trim(Self.Caption) + 'TV1', TV1, '财务管理'); WriteCxGrid(Trim(Self.Caption) + 'TV2', TV2, '财务管理'); WriteCxGrid(Trim(Self.Caption) + 'TV3', TV3, '财务管理'); Close; end; procedure TfrmKhHKList.FormShow(Sender: TObject); begin inherited; ReadCxGrid(Trim(Self.Caption) + 'TV1', TV1, '财务管理'); ReadCxGrid(Trim(Self.Caption) + 'TV2', TV2, '财务管理'); ReadCxGrid(Trim(Self.Caption) + 'TV3', TV3, '财务管理'); FNowDate := SGetServerDate(ADOQueryTemp); begdate.Date := FNowDate - 7; enddate.Date := FNowDate + 7; InitGrid(); InitGrid2(); InitGrid3(); end; procedure TfrmKhHKList.FConNoChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmKhHKList.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmKhHKList.cbbFKZTChange(Sender: TObject); begin InitGrid(); end; procedure TfrmKhHKList.cxPageControl1Change(Sender: TObject); begin InitGrid; end; procedure TfrmKhHKList.KHNameKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then InitGrid(); end; procedure TfrmKhHKList.ToolButton1Click(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_1.IsEmpty then exit; with ADOQueryPrint do begin Close; SQL.Clear; sql.Add(' exec P_DZ_Print_DFD ' + quotedstr(Trim(CDS_1.FieldByName('DFID').AsString))); 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 TfrmKhHKList.ToolButton2Click(Sender: TObject); begin if SaveData() then InitGrid(); end; procedure TfrmKhHKList.DateEdit(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_1 do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; Edit; FieldByName('MDQ').Value := StrToDate(FormatDateTime('yyyy-MM-dd', FieldByName(FFieldName).asdatetime + 21)); Post; end; end; procedure TfrmKhHKList.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin InitGrid2(); InitGrid3(); end; procedure TfrmKhHKList.TV2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin InitGrid3(); end; procedure TfrmKhHKList.ztPropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_1 do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; Edit; FieldByName('ETA').Value := StrToDate(FormatDateTime('yyyy-MM-dd', FieldByName(FFieldName).asdatetime + 18)); FieldByName('MDQ').Value := StrToDate(FormatDateTime('yyyy-MM-dd', FieldByName(FFieldName).asdatetime + 39)); Post; end; end; end.