unit U_YSSKListRMBMJ; 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 TfrmYSSKListRMBMJ = 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; cxTabControl2: TcxTabControl; Panel2: TPanel; Label2: TLabel; begdate: TDateTimePicker; Panel3: TPanel; Label4: TLabel; FBegDate: TDateTimePicker; Label5: TLabel; FEndDate: TDateTimePicker; Panel4: TPanel; FactoryNameGYS: TEdit; Label3: TLabel; Label1: TLabel; HuiLv: TEdit; 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 frmYSSKListRMBMJ: TfrmYSSKListRMBMJ; implementation uses U_DataLink,U_RTFun,U_Fun,U_ZDYHelp,U_YSMXlistMonDay; {$R *.dfm} procedure TfrmYSSKListRMBMJ.InitGrid(); var FYue,FDate:string; FInt:Integer; FHuiLv:Double; begin if cxTabControl2.TabIndex=2 then begin if Trim(HuiLv.Text)='' then begin Application.MessageBox('汇率不能为空!','提示',0); Exit; end; if TryStrToFloat(HuiLv.Text,FHuiLv)=False then begin Application.MessageBox('汇率非法数字!','提示',0); Exit; end; end; 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 if cxTabControl2.TabIndex<>2 then begin sql.Add(' exec P_YSSK_Month_BZ :Fdate,:BZType,:HuiLv ') ; end else begin sql.Add(' exec P_YSSK_Month_RMB :Fdate,:HuiLv ') ; end; if cxTabControl2.TabIndex=0 then begin Parameters.ParamByName('BZType').Value:='¥'; Parameters.ParamByName('HuiLv').Value:=1; end else if cxTabControl2.TabIndex=1 then begin Parameters.ParamByName('BZType').Value:='$'; Parameters.ParamByName('HuiLv').Value:=1; end else if cxTabControl2.TabIndex=2 then begin Parameters.ParamByName('HuiLv').Value:=HuiLv.Text; end; Parameters.ParamByName('Fdate').Value:=FDate; end else if RadioGroup1.ItemIndex=1 then begin if cxTabControl2.TabIndex<>2 then begin sql.Add(' exec P_YSSK_Day_BZ :FBegdate,:FEndDate,:BZType,:HuiLv ') ; end else begin sql.Add(' exec P_YSSK_Day_RMB :FBegdate,:FEndDate,:HuiLv ') ; end; if cxTabControl2.TabIndex=0 then begin Parameters.ParamByName('BZType').Value:='¥'; Parameters.ParamByName('HuiLv').Value:=1; end else if cxTabControl2.TabIndex=1 then begin Parameters.ParamByName('BZType').Value:='$'; Parameters.ParamByName('HuiLv').Value:=1; end else if cxTabControl2.TabIndex=2 then begin Parameters.ParamByName('HuiLv').Value:=HuiLv.Text; end; 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 TfrmYSSKListRMBMJ.FormDestroy(Sender: TObject); begin frmYSSKListRMBMJ:=nil; end; procedure TfrmYSSKListRMBMJ.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmYSSKListRMBMJ.TBCloseClick(Sender: TObject); begin WriteCxGrid('应收款统计报表YX',Tv2,'财务管理'); Close; end; procedure TfrmYSSKListRMBMJ.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 TfrmYSSKListRMBMJ.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 TfrmYSSKListRMBMJ.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 TfrmYSSKListRMBMJ.FactoryNameGYSChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYSSKListRMBMJ.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; //SelExportData(Tv2,ADOQueryMain,'应收款收款统计列表'); TcxGridToExcel('应收款收款统计列表',cxGrid2); end; procedure TfrmYSSKListRMBMJ.Tv2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin if cxTabControl2.TabIndex>1 then Exit; try frmYSMXlistMonDay:=TfrmYSMXlistMonDay.Create(Application); with frmYSMXlistMonDay do begin FMX:='99'; PState:=Self.RadioGroup1.ItemIndex; if Self.cxTabControl2.TabIndex=0 then begin frmYSMXlistMonDay.FBZ:='¥' end else if Self.cxTabControl2.TabIndex=1 then begin frmYSMXlistMonDay.FBZ:='$' end; if Self.RadioGroup1.ItemIndex=0 then begin frmYSMXlistMonDay.begdate.DateTime:=Self.begdate.DateTime; frmYSMXlistMonDay.cxTabControl1.TabIndex:=Self.cxTabControl1.TabIndex; frmYSMXlistMonDay.factoryName.Text:=Self.CDS_HZ.fieldbyname('factoryName').AsString; frmYSMXlistMonDay.Fbegdate.DateTime:=Self.Fbegdate.DateTime; frmYSMXlistMonDay.FEnddate.DateTime:=Self.FEnddate.DateTime; end else if Self.RadioGroup1.ItemIndex=1 then begin frmYSMXlistMonDay.begdate.DateTime:=Self.begdate.DateTime; frmYSMXlistMonDay.Fbegdate.DateTime:=Self.Fbegdate.DateTime; frmYSMXlistMonDay.FEnddate.DateTime:=Self.FEnddate.DateTime; frmYSMXlistMonDay.factoryName.Text:=Self.CDS_HZ.fieldbyname('factoryName').AsString; end; frmYSMXlistMonDay.factoryName.TxtCode:=Self.CDS_HZ.fieldbyname('factoryNo').AsString; frmYSMXlistMonDay.Align:=alClient; if ShowModal=1 then begin end; end; finally frmYSMXlistMonDay.Free; end; end; procedure TfrmYSSKListRMBMJ.ToolButton3Click(Sender: TObject); var filepath,fsj:string; mBegdate,mEnddate:string; FName,FNameSX,FNameJX:String; i:Integer; begin {for i:=0 to Tv2.ColumnCount-1 do begin FName:=Tv2.Columns[i].DataBinding.FilterFieldName; FNameSX:=Trim(FName)+'-1'; FNameJX:=Trim(FName)+'-2'; CDS_HZ.AddIndex(FNameSX, FName, []); // 正序 CDS_HZ.AddIndex(FNameJX, FName, [ixDescending]); // 倒序 if Tv2.Columns[i].SortOrder=soDescending then begin CDS_HZ.IndexName:=FNameJX; end else if Tv2.Columns[i].SortOrder=soAscending then begin CDS_HZ.IndexName:=FNameSX; end; end; } 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 TfrmYSSKListRMBMJ.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 TfrmYSSKListRMBMJ.cxTabControl1Change(Sender: TObject); begin if cxTabControl2.TabIndex=2 then begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; Filtered:=False; sql.Add(' exec P_YSSK_Month_BZ :Fdate,:BZType,:HuiLv ') ; Parameters.ParamByName('BZType').Value:='无'; Parameters.ParamByName('HuiLv').Value:=1; Parameters.ParamByName('Fdate').Value:='2000-01'; Open; end; SCreateCDS20(ADOQueryMain,CDS_HZ); SInitCDSData20(ADOQueryMain,CDS_HZ); finally ADOQueryMain.EnableControls; end; end; InitGrid(); end; procedure TfrmYSSKListRMBMJ.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,8); 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,10,8); v2FKMoney.Caption:=Copy(v2FKMoney.Summary.GroupFormat,10,8); v2BQMoney.Caption:=Copy(v2BQMoney.Summary.GroupFormat,10,8); end; InitGrid(); end; end.