unit U_YFFKList; 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, cxPC, cxGridBandedTableView, cxGridDBBandedTableView,dxCore,ActiveX, cxLookAndFeels, cxLookAndFeelPainters, dxBarBuiltInMenu, cxNavigator; type TfrmYFFKList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ToolButton2: TToolButton; ToolButton1: TToolButton; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; ADOQueryMain: TADOQuery; CDS_HZ: TClientDataSet; ToolButton3: TToolButton; cxTabControl1: TcxTabControl; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; v2Column6: TcxGridDBColumn; v2SQMoney: TcxGridDBColumn; v2YFMoney: TcxGridDBColumn; v2FKMoney: TcxGridDBColumn; v2BQMoney: TcxGridDBColumn; v2Column4: TcxGridDBColumn; v2Column7: TcxGridDBColumn; v2Column8: TcxGridDBColumn; v2ZJFKDate: TcxGridDBColumn; v2ZJFKMoney: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; Panel2: TPanel; Label2: TLabel; begdate: TDateTimePicker; Panel3: TPanel; Label4: TLabel; FBegDate: TDateTimePicker; Label5: TLabel; FEndDate: TDateTimePicker; Panel4: TPanel; FactoryNameGYS: TEdit; Label3: TLabel; RadioGroup1: TRadioGroup; 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 FactoryNameGYSChange(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure ToolButton3Click(Sender: TObject); procedure v2Column6HeaderClick(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure RadioGroup1Click(Sender: TObject); private { Private declarations } procedure InitGrid(); public fDParameters1:string; { Public declarations } RKFlag,FCYID:String; end; var frmYFFKList: TfrmYFFKList; implementation uses U_DataLink,U_RTFun,U_Fun,U_ZDYHelp,U_YFMXlistMonDay; {$R *.dfm} procedure TfrmYFFKList.InitGrid(); var FYue,FDate:string; FInt:Integer; FHuiLv:Double; begin FInt:=cxTabControl1.TabIndex+1; FYue:=Trim(IntToStr(FInt)); if FInt<10 then begin FYue:='0'+Trim(IntToStr(FInt)); end; FDate:=Trim(FormatDateTime('yyyy',begdate.Date))+'-'+FYue; FBegDate.Date:=StrToDate(FDate+'-01'); if FInt=12 then FEndDate.Date:=StrToDate(Trim(FormatDateTime('yyyy',begdate.Date))+'-12-31') else FEndDate.Date:=StrToDate(Trim(FormatDateTime('yyyy',begdate.Date))+'-'+Trim(IntToStr(FInt+1))+'-01')-1; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; Filtered:=False; if RadioGroup1.ItemIndex=0 then begin sql.Add(' exec P_YFFK_Month :Fdate ') ; Parameters.ParamByName('Fdate').Value:=FDate; end else if RadioGroup1.ItemIndex=1 then begin sql.Add(' exec P_YFFK_Day :FBegdate,:FEndDate ') ; Parameters.ParamByName('FBegdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',FBegDate.Date)); Parameters.ParamByName('FEndDate').Value:=Trim(FormatDateTime('yyyy-MM-dd',FEndDate.Date+1)); end; Open; end; SCreateCDS20(ADOQueryMain,CDS_HZ); SInitCDSData20(ADOQueryMain,CDS_HZ); finally ADOQueryMain.EnableControls; end; //ToolButton2.Click; end; procedure TfrmYFFKList.FormDestroy(Sender: TObject); begin frmYFFKList:=nil; end; procedure TfrmYFFKList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmYFFKList.TBCloseClick(Sender: TObject); begin WriteCxGrid('应付款统计报表YX',Tv2,'财务管理'); Close; end; procedure TfrmYFFKList.FormShow(Sender: TObject); var fstr:string; begin ReadCxGrid('应付款统计报表YX',Tv2,'财务管理'); begdate.DateTime:=SGetServerDateMBeg(ADOQueryTemp); Fbegdate.DateTime:=SGetServerDate(ADOQueryTemp); FEndDate.Date:=Fbegdate.DateTime; fstr:=Trim(FormatDateTime('MM',begdate.Date)); cxTabControl1.TabIndex:=StrToInt(fstr)-1; Panel3.Visible:=False; // InitGrid(); end; procedure TfrmYFFKList.TBRafreshClick(Sender: TObject); begin InitGrid(); CDS_HZ.IndexFieldNames:='FactoryName'; with CDS_HZ do begin with IndexDefs do begin Clear; with AddIndexDef do begin Name := 'Fld1Indx'; Fields := 'FactoryName'; Options := [ixDescending]; //降序 end; end; end; end; procedure TfrmYFFKList.ToolButton2Click(Sender: TObject); begin if ADOQueryMain.Active=False then Exit; SDofilter(ADOQueryMain,SGetFilters(Panel4,1,2)); SCreateCDS20(ADOQueryMain,CDS_HZ); SInitCDSData20(ADOQueryMain,CDS_HZ); end; procedure TfrmYFFKList.FactoryNameGYSChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYFFKList.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; TcxGridToExcel('应付款统计列表',cxGrid2); end; procedure TfrmYFFKList.Tv2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin try frmYFMXlistMonDay:=TfrmYFMXlistMonDay.Create(Application); with frmYFMXlistMonDay do begin FMX:='99'; PState:=Self.RadioGroup1.ItemIndex; if Self.RadioGroup1.ItemIndex=0 then begin frmYFMXlistMonDay.begdate.DateTime:=Self.begdate.DateTime; frmYFMXlistMonDay.cxTabControl1.TabIndex:=Self.cxTabControl1.TabIndex; frmYFMXlistMonDay.factoryName.Text:=Self.CDS_HZ.fieldbyname('factoryName').AsString; frmYFMXlistMonDay.Fbegdate.DateTime:=Self.Fbegdate.DateTime; frmYFMXlistMonDay.FEnddate.DateTime:=Self.FEnddate.DateTime; end else if Self.RadioGroup1.ItemIndex=1 then begin frmYFMXlistMonDay.begdate.DateTime:=Self.begdate.DateTime; frmYFMXlistMonDay.Fbegdate.DateTime:=Self.Fbegdate.DateTime; frmYFMXlistMonDay.FEnddate.DateTime:=Self.FEnddate.DateTime; frmYFMXlistMonDay.factoryName.Text:=Self.CDS_HZ.fieldbyname('factoryName').AsString; end; frmYFMXlistMonDay.factoryName.TxtCode:=Self.CDS_HZ.fieldbyname('factoryNo').AsString; frmYFMXlistMonDay.Align:=alClient; frmYFMXlistMonDay.LabGYS.Caption:=Self.CDS_HZ.fieldbyname('factoryName').AsString; if ShowModal=1 then begin end; end; finally frmYFMXlistMonDay.Free; end; end; procedure TfrmYFFKList.ToolButton3Click(Sender: TObject); var filepath,fsj:string; mBegdate,mEnddate:string; FName,FNameSX,FNameJX:String; i:Integer; begin fsj:=cxTabControl1.Tabs[cxTabControl1.TabIndex].Caption; mbegdate:=FormatDateTime('yyyy',begdate.Date)+'年'+Trim(Copy(fsj,3,Length(fsj)-2))+'份'; if CDS_HZ.IsEmpty then exit; try filepath:=ExtractFilePath(Application.ExeName) + 'report\应付款统计报表YX.rmf'; if not FileExists(Pchar(filepath)) then begin application.MessageBox(pchar('文件['+filepath+']不存在!'),'提示信息',MB_IConError); exit; end; RmVariables['begDate'] :=mbegdate; RM1.LoadFromFile(filepath); RM1.ShowReport; finally end; end; procedure TfrmYFFKList.v2Column6HeaderClick(Sender: TObject); var FName,FNameSX,FNameJX:String; begin FName:=TcxGridDBColumn(Sender).DataBinding.FilterFieldName; FNameSX:=Trim(FName)+'-1'; FNameJX:=Trim(FName)+'-2'; CDS_HZ.AddIndex(FNameSX, FName, []); { 正序 } CDS_HZ.AddIndex(FNameJX, FName, [ixDescending]); { 倒序 } if TcxGridDBColumn(Sender).SortOrder=soDescending then begin CDS_HZ.IndexName:=FNameSX; end else if TcxGridDBColumn(Sender).SortOrder=soAscending then begin CDS_HZ.IndexName:=FNameJX; end; end; procedure TfrmYFFKList.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmYFFKList.RadioGroup1Click(Sender: TObject); begin if RadioGroup1.ItemIndex=0 then begin Panel2.Visible:=True; Panel3.Visible:=False; cxTabControl1.Visible:=True; v2SQMoney.Caption:=Copy(v2SQMoney.Summary.GroupFormat,1,8); v2YFMoney.Caption:=Copy(v2YFMoney.Summary.GroupFormat,1,10); v2FKMoney.Caption:=Copy(v2FKMoney.Summary.GroupFormat,1,8); v2BQMoney.Caption:=Copy(v2BQMoney.Summary.GroupFormat,1,8); end else if RadioGroup1.ItemIndex=1 then begin Panel2.Visible:=False; Panel3.Visible:=True; cxTabControl1.Visible:=False; v2SQMoney.Caption:=Copy(v2SQMoney.Summary.GroupFormat,10,8); v2YFMoney.Caption:=Copy(v2YFMoney.Summary.GroupFormat,12,10); v2FKMoney.Caption:=Copy(v2FKMoney.Summary.GroupFormat,10,8); v2BQMoney.Caption:=Copy(v2BQMoney.Summary.GroupFormat,10,8); end; InitGrid(); end; end.