unit U_CLManageJBC_GZMX; 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; type TfrmCLManageJBC_GZMX = 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_GZMX: TfrmCLManageJBC_GZMX; implementation uses U_DataLink,U_RTFun,U_SXCKInPut, U_JGSXCKInPut,U_CLXX_Sub, U_CLJBC_Sub; {$R *.dfm} procedure TfrmCLManageJBC_GZMX.setstatus(); begin end; procedure TfrmCLManageJBC_GZMX.FormDestroy(Sender: TObject); begin frmCLManageJBC_GZMX:=nil; end; procedure TfrmCLManageJBC_GZMX.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmCLManageJBC_GZMX.FormCreate(Sender: TObject); begin //cxGrid1.Align:=alClient; canshu1:=Trim(DParameters1); canshu2:=Trim(DParameters2); canshu3:=Trim(DParameters3); end; procedure TfrmCLManageJBC_GZMX.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_GZMX.TBRafreshClick(Sender: TObject); begin ToolBar1.SetFocus; InitGrid(); end; procedure TfrmCLManageJBC_GZMX.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); end; end; procedure TfrmCLManageJBC_GZMX.TBCloseClick(Sender: TObject); begin WriteCxGrid('驾驶员工资制度1',Tv1,'驾驶考核管理'); Close; end; procedure TfrmCLManageJBC_GZMX.FormShow(Sender: TObject); begin ReadCxGrid('驾驶员工资制度1',Tv1,'驾驶考核管理'); EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); BegDate.DateTime:=EndDate.DateTime; //InitGrid(); end; procedure TfrmCLManageJBC_GZMX.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('驾驶员工资',cxGrid2); end; procedure TfrmCLManageJBC_GZMX.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_GZMX.N1Click(Sender: TObject); begin SelOKNo(CDS_Main,True); end; procedure TfrmCLManageJBC_GZMX.N2Click(Sender: TObject); begin SelOKNo(CDS_Main,False); end; procedure TfrmCLManageJBC_GZMX.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_GZMX.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_GZMX.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_GZMX.FactoryNameKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin end; end; procedure TfrmCLManageJBC_GZMX.FactoryNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmCLManageJBC_GZMX.SPSpecChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmCLManageJBC_GZMX.CLXNoChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmCLManageJBC_GZMX.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_GZMX.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_GZMX.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_GZMX.RadioGroup1Click(Sender: TObject); begin TBRafresh.Click; end; end.