unit U_CLManageJBC_JiuF; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, cxCalendar, cxButtonEdit, cxTextEdit, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator; type TfrmCLManageJBC_JiuF = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; CDS_Main: TClientDataSet; RM1: TRMGridReport; RMDBMain: TRMDBDataSet; RMXLSExport1: TRMXLSExport; RMDBHZ: TRMDBDataSet; CDS_HZ: TClientDataSet; CDS_PRT: TClientDataSet; TBChk: TToolButton; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; TBAdd: TToolButton; TBEdit: TToolButton; Label3: TLabel; JSYName: TEdit; Label1: TLabel; TCXChk: TToolButton; TDel: TToolButton; Label5: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; TGY: TToolButton; RadioGroup1: TRadioGroup; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1GZMonth: TcxGridDBColumn; v1JSYName: TcxGridDBColumn; v1CQDay: TcxGridDBColumn; v1QJDay: TcxGridDBColumn; v1GZMoney: TcxGridDBColumn; v1KGMoney: TcxGridDBColumn; v1AQMoney: TcxGridDBColumn; v1JBMoney: TcxGridDBColumn; v1CCQty: TcxGridDBColumn; v1YunFMoney: TcxGridDBColumn; v1FLQty: TcxGridDBColumn; v1CFMoney: TcxGridDBColumn; v1SPQty: TcxGridDBColumn; v1SPMoney: TcxGridDBColumn; v1YHMoney: TcxGridDBColumn; v1JJMoney: TcxGridDBColumn; v1BDBZMoney: TcxGridDBColumn; v1NZJMoney: TcxGridDBColumn; v1ZMoney: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ConNoMChange(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure TBChkClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure FactoryNameKeyPress(Sender: TObject; var Key: Char); procedure FactoryNameChange(Sender: TObject); procedure SPSpecChange(Sender: TObject); procedure CLXNoChange(Sender: TObject); procedure TCXChkClick(Sender: TObject); procedure TDelClick(Sender: TObject); procedure TGYClick(Sender: TObject); procedure RadioGroup1Click(Sender: TObject); private canshu1,canshu2,canshu3:string; procedure InitGrid(); procedure setstatus(); { Private declarations } public { Public declarations } end; var frmCLManageJBC_JiuF: TfrmCLManageJBC_JiuF; implementation uses U_DataLink,U_RTFun,U_SXCKInPut, U_JGSXCKInPut,U_CLXX_Sub, U_CLJBC_Sub; {$R *.dfm} procedure TfrmCLManageJBC_JiuF.setstatus(); begin end; procedure TfrmCLManageJBC_JiuF.FormDestroy(Sender: TObject); begin frmCLManageJBC_JiuF:=nil; end; procedure TfrmCLManageJBC_JiuF.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmCLManageJBC_JiuF.FormCreate(Sender: TObject); begin //cxGrid1.Align:=alClient; canshu1:=Trim(DParameters1); canshu2:=Trim(DParameters2); canshu3:=Trim(DParameters3); end; procedure TfrmCLManageJBC_JiuF.InitGrid(); begin if RadioGroup1.ItemIndex=1 then begin v1GZMonth.Caption:='月份'; label5.Caption:='月份'; begdate.Format:='yyyy-MM'; enddate.Format:='yyyy-MM'; EndDate.Visible:=true; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(' from CLJSY_Main A'); sql.Add(' where GZMonth>='''+trim(FormatDateTime('yyyy-MM',BegDate.Date))+''''); sql.Add(' and GZMonth<='''+trim(FormatDateTime('yyyy-MM',endDate.Date))+''''); SQL.Add(' order by A.DJDate desc'); Open; end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally; ADOQueryMain.EnableControls; end; end; if RadioGroup1.ItemIndex=0 then begin v1GZMonth.Caption:='年份'; label5.Caption:='年份'; EndDate.Visible:=false; begdate.Format:='yyyy'; enddate.Format:='yyyy'; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add(' select substring(GZMonth,1,4) GZMonth,JSYName,Sum(GZMoney) GZMoney,Sum(KGMoney) KGMoney,Sum(AQMoney) AQMoney'); sql.Add(',Sum(WSMoney) WSMoney,Sum(TelMoney) TelMoney,Sum(QJKKMoney) QJKKMoney,Sum(JBMoney) JBMoney,Sum(CCQty) CCQty,Sum(YunFMoney) YunFMoney'); sql.add(',Sum(FLQty) FLQty,Sum(CFMoney) CFMoney,Sum(SPQty) SPQty,Sum(SPMoney) SPMoney,Sum(YHMoney) YHMoney,Sum(JJMoney) JJMoney'); sql.Add(',Sum(BDBZMoney) BDBZMoney,Sum(WWCKKMoney) WWCKKMoney,Sum(NZJMoney) NZJMoney,Sum(ZMoney) ZMoney'); sql.Add(' from CLJSY_Main A'); sql.Add(' where substring(GZMonth,1,4)>='''+trim(FormatDateTime('yyyy',BegDate.Date))+''''); sql.Add(' and substring(GZMonth,1,4)<='''+trim(FormatDateTime('yyyy',endDate.Date))+''''); SQL.Add(' group by substring(GZMonth,1,4),JSYName'); Open; end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally; ADOQueryMain.EnableControls; end; end; end; procedure TfrmCLManageJBC_JiuF.TBRafreshClick(Sender: TObject); begin ToolBar1.SetFocus; InitGrid(); end; procedure TfrmCLManageJBC_JiuF.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); end; end; procedure TfrmCLManageJBC_JiuF.TBCloseClick(Sender: TObject); begin WriteCxGrid('驾驶员工资制度1',Tv1,'驾驶考核管理'); Close; end; procedure TfrmCLManageJBC_JiuF.FormShow(Sender: TObject); begin ReadCxGrid('驾驶员工资制度1',Tv1,'驾驶考核管理'); EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); BegDate.DateTime:=EndDate.DateTime; //InitGrid(); end; procedure TfrmCLManageJBC_JiuF.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('驾驶员工资',cxGrid2); end; procedure TfrmCLManageJBC_JiuF.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); end; end; procedure TfrmCLManageJBC_JiuF.N1Click(Sender: TObject); begin SelOKNo(CDS_Main,True); end; procedure TfrmCLManageJBC_JiuF.N2Click(Sender: TObject); begin SelOKNo(CDS_Main,False); end; procedure TfrmCLManageJBC_JiuF.TBChkClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' update CLXX_Main set CLStatus=''审核'' where CLID='''+Trim(CDS_Main.fieldbyname('CLID').AsString)+''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; Application.MessageBox('操作成功','提示'); CDS_Main.Delete; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('操作异常!','提示',0); end; end; procedure TfrmCLManageJBC_JiuF.TBAddClick(Sender: TObject); begin try frmCLJBC_Sub:=TfrmCLJBC_Sub.Create(Application); with frmCLJBC_Sub do begin FBCId:=''; if ShowModal=1 then begin Self.InitGrid(); end; end; finally frmCLJBC_Sub.Free; end; end; procedure TfrmCLManageJBC_JiuF.TBEditClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; try frmCLJBC_Sub:=TfrmCLJBC_Sub.Create(Application); with frmCLJBC_Sub do begin FBCId:=Trim(CDS_Main.fieldbyname('JSMainid').AsString); if ShowModal=1 then begin Self.InitGrid(); end; end; finally; frmCLJBC_Sub.Free; end; end; procedure TfrmCLManageJBC_JiuF.FactoryNameKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin end; end; procedure TfrmCLManageJBC_JiuF.FactoryNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmCLManageJBC_JiuF.SPSpecChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmCLManageJBC_JiuF.CLXNoChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmCLManageJBC_JiuF.TCXChkClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if Application.MessageBox('确定要撤销吗?','提示',32+4)<>IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' update CLXX_Main set CLStatus='''' where CLID='''+Trim(CDS_Main.fieldbyname('CLID').AsString)+''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.Delete; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('操作异常!','提示',0); end; end; procedure TfrmCLManageJBC_JiuF.TDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if Application.MessageBox('确定要删除吗?','提示',32+4)<>IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' delete from CLJSY_Main where JSYID='''+Trim(CDS_Main.fieldbyname('JSYID').AsString)+''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.Delete; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('操作异常!','提示',0); end; end; procedure TfrmCLManageJBC_JiuF.TGYClick(Sender: TObject); var fPrintFile:string; Porderno,LBName:string; i,j:Integer; begin if CDS_Main.IsEmpty then Exit; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\驾驶员各月工资汇总.rmf' ; with ADOQueryTemp do begin Filtered:=False; Close; sql.Clear; sql.Add(' select AA.*,ZMoney=isnull(Month1,0)+isnull(Month2,0)+isnull(Month3,0)+isnull(Month4,0)+isnull(Month5,0)+isnull(Month6,0)+isnull(Month7,0)+isnull(Month8,0)+isnull(Month9,0)'); sql.Add('+isnull(Month10,0)+isnull(Month11,0)+isnull(Month12,0)'); sql.add(',GZPJMoney=(case when isnull(GQty,0)=0 then 0 else (isnull(Month1,0)+isnull(Month2,0)+isnull(Month3,0)+isnull(Month4,0)+isnull(Month5,0)+isnull(Month6,0)+isnull(Month7,0)+isnull(Month8,0)+isnull(Month9,0)'); sql.Add('+isnull(Month10,0)+isnull(Month11,0)+isnull(Month12,0))/GQty end)'); sql.Add(',PJYHMoney=(case when isnull(YHQty,0)=0 then 0 else YHMoney/YHQty end),PJCFMoney=(case when isnull(CFQty,0)=0 then 0 else CFMoney/CFQty end)'); sql.Add(' from (select substring(A.GZMonth,1,4) Date,A.JSYName,Sum((case when isnull(A.ZMoney,0)=0 then 0 else 1 end)) GQty,Sum((case when isnull(A.YHMoney,0)=0 then 0 else 1 end)) YHQty'); sql.Add(',Sum((case when isnull(A.CFMoney,0)=0 then 0 else 1 end)) CFQty'); sql.Add(',Month1=(select Sum(B.ZMoney) from CLJSY_Main B where substring(B.GZMonth,1,4)=substring(A.GZMonth,1,4) and B.JSYName=A.JSYName and substring(B.GZMonth,6,7)=''01'')'); sql.Add(',Month2=(select Sum(B.ZMoney) from CLJSY_Main B where substring(B.GZMonth,1,4)=substring(A.GZMonth,1,4) and B.JSYName=A.JSYName and substring(B.GZMonth,6,7)=''02'')'); sql.Add(',Month3=(select Sum(B.ZMoney) from CLJSY_Main B where substring(B.GZMonth,1,4)=substring(A.GZMonth,1,4) and B.JSYName=A.JSYName and substring(B.GZMonth,6,7)=''03'')'); sql.Add(',Month4=(select Sum(B.ZMoney) from CLJSY_Main B where substring(B.GZMonth,1,4)=substring(A.GZMonth,1,4) and B.JSYName=A.JSYName and substring(B.GZMonth,6,7)=''04'')'); sql.Add(',Month5=(select Sum(B.ZMoney) from CLJSY_Main B where substring(B.GZMonth,1,4)=substring(A.GZMonth,1,4) and B.JSYName=A.JSYName and substring(B.GZMonth,6,7)=''05'')'); sql.Add(',Month6=(select Sum(B.ZMoney) from CLJSY_Main B where substring(B.GZMonth,1,4)=substring(A.GZMonth,1,4) and B.JSYName=A.JSYName and substring(B.GZMonth,6,7)=''06'')'); sql.Add(',Month7=(select Sum(B.ZMoney) from CLJSY_Main B where substring(B.GZMonth,1,4)=substring(A.GZMonth,1,4) and B.JSYName=A.JSYName and substring(B.GZMonth,6,7)=''07'')'); sql.Add(',Month8=(select Sum(B.ZMoney) from CLJSY_Main B where substring(B.GZMonth,1,4)=substring(A.GZMonth,1,4) and B.JSYName=A.JSYName and substring(B.GZMonth,6,7)=''08'')'); sql.Add(',Month9=(select Sum(B.ZMoney) from CLJSY_Main B where substring(B.GZMonth,1,4)=substring(A.GZMonth,1,4) and B.JSYName=A.JSYName and substring(B.GZMonth,6,7)=''09'')'); sql.Add(',Month10=(select Sum(B.ZMoney) from CLJSY_Main B where substring(B.GZMonth,1,4)=substring(A.GZMonth,1,4) and B.JSYName=A.JSYName and substring(B.GZMonth,6,7)=''10'')'); sql.Add(',Month11=(select Sum(B.ZMoney) from CLJSY_Main B where substring(B.GZMonth,1,4)=substring(A.GZMonth,1,4) and B.JSYName=A.JSYName and substring(B.GZMonth,6,7)=''11'')'); sql.Add(',Month12=(select Sum(B.ZMoney) from CLJSY_Main B where substring(B.GZMonth,1,4)=substring(A.GZMonth,1,4) and B.JSYName=A.JSYName and substring(B.GZMonth,6,7)=''12'')'); sql.Add(',YHMoney=(select Sum(B.YHMoney) from CLJSY_Main B where substring(B.GZMonth,1,4)=substring(A.GZMonth,1,4) and B.JSYName=A.JSYName)'); sql.Add(',CFMoney=(select Sum(B.CFMoney) from CLJSY_Main B where substring(B.GZMonth,1,4)=substring(A.GZMonth,1,4) and B.JSYName=A.JSYName)'); sql.Add(' from CLJSY_Main A '); sql.Add('where substring(A.GZMonth,1,4)='''+trim(FormatDateTime('yyyy',begDate.Date))+''''); sql.Add(' group by substring(A.GZMonth,1,4),A.JSYName) AA'); Open; end; SCreateCDS20(ADOQueryTemp,CDS_PRT); SInitCDSData20(ADOQueryTemp,CDS_PRT); if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\驾驶员各月工资汇总.rmf'),'提示',0); end; end; procedure TfrmCLManageJBC_JiuF.RadioGroup1Click(Sender: TObject); begin TBRafresh.Click; end; end.