unit U_YFZDList_MX; 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; type TfrmYFZDList_MX = 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; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridLevel1: TcxGridLevel; Label2: TLabel; begdate: TDateTimePicker; Enddate: TDateTimePicker; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; Label1: TLabel; v2Column1: TcxGridDBColumn; v2Column2: TcxGridDBColumn; v2Qty: TcxGridDBColumn; v2Price: TcxGridDBColumn; v2yfk: TcxGridDBColumn; v2fk: TcxGridDBColumn; v2Column10: TcxGridDBColumn; v2yfkye: TcxGridDBColumn; v2YFName: TcxGridDBColumn; Label5: TLabel; YFName: TEdit; Label7: TLabel; FKTaitou: TEdit; FactoryName: TComboBox; Label6: TLabel; P_Codename: TEdit; v2P_CodeName: TcxGridDBColumn; v2KPType: TcxGridDBColumn; v2PayMent: TcxGridDBColumn; Label4: TLabel; KPType: TEdit; Label8: TLabel; PayMent: TEdit; v2FKNo: 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 FormCreate(Sender: TObject); private { Private declarations } procedure InitGrid(); public { Public declarations } RKFlag,FCYID:String; end; var frmYFZDList_MX: TfrmYFZDList_MX; implementation uses U_DataLink,U_Fun,U_ZDYHelp; {$R *.dfm} procedure TfrmYFZDList_MX.InitGrid(); var FMoney:double; i:Integer; begin try ADOQueryMain.DisableControls; with ADOQueryTemp do begin close; sql.Clear; sql.Add('select Sum((Money-isnull(FXMoney,0)-isnull(SXMoney,0))*QtyFlag) yfkye '); sql.add('from YF_Money_CR '); sql.add('where CRTime<'''+FormatDateTime('yyyy-MM-dd',begdate.DateTime)+''''); sql.add(' and CRtype in (''应付款登记'',''付款登记'') and isnull(status,''0'')<>''0'''); sql.add(' and isnull(FeeType,'''')<>''虚拟费用'''); if FactoryName.Text<>'' then sql.add(' and FactoryName like '''+'%'+trim(FactoryName.Text)+'%'+''''); if PayMent.Text<>'' then sql.add(' and PayMent like '''+'%'+trim(PayMent.Text)+'%'+''''); if KPType.Text<>'' then sql.add(' and KPType like '''+'%'+trim(KPType.Text)+'%'+''''); if YFName.Text<>'' then sql.add(' and YFName like '''+'%'+trim(YFName.Text)+'%'+''''); if P_Codename.Text<>'' then sql.add(' and P_Codename like '''+'%'+trim(P_Codename.Text)+'%'+''''); open; end; FMoney:=ADOQueryTemp.fieldbyname('yfkye').asfloat; with ADOQueryMain do begin Close; SQL.Clear; sql.Add(' select AA.* '); sql.add(' ,KHType=(select Top 1 C.DEFstr5 from KH_Zdy_Attachment C where C.Type=''GYS'' and C.ZdyName=AA.FactoryName)'); sql.add(' from (select A.*,cast(Money as decimal(18,2)) yfk,cast(0 as decimal(18,2)) fk,cast(0 as decimal(18,2)) yfkye'); sql.Add(' from YF_Money_CR A'); sql.Add(' where A.CRTime>='''+FormatDateTime('yyyy-MM-dd',begdate.DateTime)+''' '); sql.Add(' and A.CRTime<'''+FormatDateTime('yyyy-MM-dd',Enddate.DateTime+1)+''' '); sql.Add(' and A.CRType=''应付款登记'' '); sql.add(' and isnull(A.FeeType,'''')<>''虚拟费用'''); sql.Add(' and isnull(A.status,''0'')<>''0'''); sql.add(' union all'); sql.Add(' select A.*,cast(0 as decimal(18,2)) yfk,cast(Money as decimal(18,2)) fk,cast(0 as decimal(18,2)) yfkye'); sql.Add(' from YF_Money_CR A'); sql.Add(' where A.CRTime>='''+FormatDateTime('yyyy-MM-dd',begdate.DateTime)+''' '); sql.Add(' and A.CRTime<'''+FormatDateTime('yyyy-MM-dd',Enddate.DateTime+1)+''' '); sql.Add(' and A.CRType=''付款登记'' '); sql.Add(' and isnull(A.status,''0'')<>''0'' ) AA'); sql.add(' where 1=1'); if FactoryName.Text<>'' then sql.add(' and AA.FactoryName like '''+'%'+trim(FactoryName.Text)+'%'+''''); if YFName.Text<>'' then sql.add(' and AA.YFName like '''+'%'+trim(YFName.Text)+'%'+''''); if P_Codename.Text<>'' then sql.add(' and AA.P_Codename like '''+'%'+trim(P_Codename.Text)+'%'+''''); if PayMent.Text<>'' then sql.add(' and PayMent like '''+'%'+trim(PayMent.Text)+'%'+''''); if KPType.Text<>'' then sql.add(' and KPType like '''+'%'+trim(KPType.Text)+'%'+''''); sql.Add('order by AA.CRTime'); Open; end; SCreateCDS20(ADOQueryMain,CDS_HZ); with CDS_HZ do begin append; fieldbyname('CRTime').Value:=begdate.DateTime; fieldbyname('yfkye').Value:=FMoney; post; end; CDS_HZ.DisableControls; with ADOQueryMain do begin first; while not eof do begin with CDS_HZ do begin append; fieldbyname('CRTime').Value:=ADOQueryMain.fieldbyname('CRTime').AsDateTime; fieldbyname('factoryName').Value:=ADOQueryMain.fieldbyname('factoryName').AsString; fieldbyname('P_Codename').Value:=ADOQueryMain.fieldbyname('P_Codename').AsString; fieldbyname('YFName').Value:=ADOQueryMain.fieldbyname('YFName').AsString; fieldbyname('FKNo').Value:=ADOQueryMain.fieldbyname('FKNo').AsString; fieldbyname('KPType').Value:=ADOQueryMain.fieldbyname('KPType').AsString; fieldbyname('PayMent').Value:=ADOQueryMain.fieldbyname('PayMent').AsString; fieldbyname('KHType').Value:=ADOQueryMain.fieldbyname('KHType').AsString; fieldbyname('Qty').Value:=ADOQueryMain.fieldbyname('Qty').AsFloat; fieldbyname('Price').Value:=ADOQueryMain.fieldbyname('Price').AsFloat; fieldbyname('yfk').Value:=ADOQueryMain.fieldbyname('yfk').AsFloat; fieldbyname('fk').Value:=ADOQueryMain.fieldbyname('fk').AsFloat; FMoney:=FMoney+(ADOQueryMain.fieldbyname('Money').AsFloat)*ADOQueryMain.fieldbyname('QtyFlag').AsFloat; fieldbyname('yfkye').Value:=FMoney; fieldbyname('note').Value:=ADOQueryMain.fieldbyname('note').AsString; fieldbyname('ComTaiTou').Value:=ADOQueryMain.fieldbyname('ComTaiTou').AsString; post; end; next; end; end; CDS_HZ.EnableControls; for i:=1 to 34-CDS_HZ.RecordCount do begin with CDS_HZ do begin Append; post; end; end; finally ADOQueryMain.EnableControls; end; end; procedure TfrmYFZDList_MX.FormDestroy(Sender: TObject); begin frmYFZDList_MX:=nil; end; procedure TfrmYFZDList_MX.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmYFZDList_MX.TBCloseClick(Sender: TObject); begin WriteCxGrid(self.Caption,Tv2,'财务管理1'); Close; end; procedure TfrmYFZDList_MX.FormShow(Sender: TObject); var fsj:string; begin ReadCxGrid(self.Caption,Tv2,'财务管理1'); Enddate.DateTime:=SGetServerDate(ADOQueryTemp); begdate.DateTime:=Enddate.DateTime-7; fsj:='select distinct (A.FactoryName) name from YF_Money_CR A where A.CRType=''应付款登记'' '; SInitComBoxBySql(ADOQueryCmd,FactoryName,False,fsj); //InitGrid(); end; procedure TfrmYFZDList_MX.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmYFZDList_MX.ToolButton2Click(Sender: TObject); begin initgrid(); end; procedure TfrmYFZDList_MX.FactoryNameChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYFZDList_MX.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; TcxGridToExcel(self.Caption,cxgrid2); // SelExportData(Tv2,ADOQueryMain,'应付款付款统计列表'); end; procedure TfrmYFZDList_MX.FormCreate(Sender: TObject); begin cxGrid2.Align:=AlClient; end; end.