unit U_YGYPZZChkList_JiaXinSH; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, cxButtonEdit, cxDropDownEdit, cxPC; type TfrmYGYPZZChkList_JiaXinSH = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBClose: TToolButton; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; Order_Main: TClientDataSet; TBView: TToolButton; Panel1: TPanel; PopupMenu1: TPopupMenu; N2: TMenuItem; N1: TMenuItem; TCXTJ: TToolButton; BegDate: TDateTimePicker; Label3: TLabel; EndDate: TDateTimePicker; cxTabControl1: TcxTabControl; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; V2Chker: TcxGridDBColumn; V2Chktime: TcxGridDBColumn; V2Chkstatus: TcxGridDBColumn; V2chkNote: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; DataSource2: TDataSource; order_Sub: TClientDataSet; Label2: TLabel; TTiJiao: TToolButton; TNOTG: TToolButton; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1TBDate: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1GangWei: TcxGridDBColumn; v1Dept: TcxGridDBColumn; v1JXMoney: TcxGridDBColumn; v1JHJXDate: TcxGridDBColumn; v1SXJXdate: TcxGridDBColumn; v1JXNote: TcxGridDBColumn; v1JXStatus: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; TPrint: TToolButton; RM1: TRMGridReport; RMXLSExport1: TRMXLSExport; RMDBMain: TRMDBDataSet; Order_Print: TClientDataSet; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBViewClick(Sender: TObject); procedure CustomerNoNameChange(Sender: TObject); procedure TCXTJClick(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure TTiJiaoClick(Sender: TObject); procedure TNOTGClick(Sender: TObject); procedure TPrintClick(Sender: TObject); private canshu1:string; DQdate:TDateTime; procedure InitGrid(); procedure InitForm(); procedure setstatus(); { Private declarations } public FFInt,FCloth:Integer; { Public declarations } end; var frmYGYPZZChkList_JiaXinSH: TfrmYGYPZZChkList_JiaXinSH; implementation uses U_DataLink,U_RTFun,U_ZDYHelp, U_YGYPInPut,U_YGYPInPut_JiaXin; {$R *.dfm} procedure TfrmYGYPZZChkList_JiaXinSH.setstatus(); begin TTiJiao.Visible:=False; TCXTJ.Visible:=False; TNOTG.Visible:=False; case cxTabControl1.TabIndex of 0:begin TTiJiao.Visible:=True; TNOTG.Visible:=True; end; 1:begin //TCXTJ.Visible:=True; end; 2:begin end; end; end; procedure TfrmYGYPZZChkList_JiaXinSH.FormDestroy(Sender: TObject); begin frmYGYPZZChkList_JiaXinSH:=nil; end; procedure TfrmYGYPZZChkList_JiaXinSH.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmYGYPZZChkList_JiaXinSH.FormCreate(Sender: TObject); begin canshu1:=Trim(DParameters1); end; procedure TfrmYGYPZZChkList_JiaXinSH.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('员工离职审核列表',Tv1,'OA管理'); end; procedure TfrmYGYPZZChkList_JiaXinSH.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select A.*,B.*,C.* '); sql.Add(' from OA_YG_DangAn_JX A '); sql.add(' inner join OA_Chk B on B.Mainid=A.JXID and B.OAType=''加薪申请'' '); sql.add(' inner join OA_YG_DangAn C on C.YGID=A.YGID '); if cxTabControl1.TabIndex<>0 then begin sql.Add(' where A.TBDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); sql.Add(' and A.TBDate<='''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); end; if cxTabControl1.TabIndex=0 then begin sql.Add(' where isnull(B.Chkstatus,'''')='''' '); end else if cxTabControl1.TabIndex=1 then begin sql.Add(' and isnull(B.Chkstatus,'''')=''加薪通过'' '); end; sql.add(' and B.Chker='''+trim(DName)+''' '); Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); with ADOQueryCmd do begin close; sql.clear; sql.add('select A.* from OA_Chk A '); sql.add('where A.Mainid='''+trim(Order_Main.fieldbyname('JXID').AsString)+''' '); sql.Add('and isnull(OAType,'''')=''加薪申请'''); open; end; SCreateCDS20(ADOQueryCmd,Order_Sub); SInitCDSData20(ADOQueryCmd,Order_Sub); finally ADOQueryMain.EnableControls; end; end; procedure TfrmYGYPZZChkList_JiaXinSH.InitForm(); begin EndDate.Date:=SGetServerDate(ADOQueryTemp); BegDate.Date:=EndDate.Date-7; ReadCxGrid('员工加薪审核列表',Tv1,'OA管理'); setstatus(); InitGrid(); end; procedure TfrmYGYPZZChkList_JiaXinSH.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active=False then Exit; SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); end; procedure TfrmYGYPZZChkList_JiaXinSH.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmYGYPZZChkList_JiaXinSH.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmYGYPZZChkList_JiaXinSH.TBViewClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; frmYGYPInPut_JiaXin:=TfrmYGYPInPut_JiaXin.create(self); with frmYGYPInPut_JiaXin do begin TBSave.Visible:=False; FJXID:=trim(Order_Main.fieldbyname('JXID').AsString); if showModal=1 then begin end; free; end; initGrid(); end; procedure TfrmYGYPZZChkList_JiaXinSH.CustomerNoNameChange(Sender: TObject); begin if ADOQueryMain.Active=False then Exit; SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); end; procedure TfrmYGYPZZChkList_JiaXinSH.TCXTJClick(Sender: TObject); var FNXMoney: double; begin if Order_Main.IsEmpty then Exit; if Application.MessageBox('确定要执行撤销操作吗?','提示',32+4)<>IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; if Order_Main.fieldbyname('JXStatus').AsString='已加薪' then begin with ADOQueryMain do begin close; sql.Clear; sql.Add('select * from OA_YG_DangAn '); sql.add('where YGID='''+trim(Order_Main.fieldbyname('YGID').AsString)+''''); open; end; FNXMoney:=ADOQueryMain.fieldbyname('GRNXMoney').AsFloat; with ADOQueryCmd do begin close; sql.Clear; sql.Add('update OA_YG_DangAn set GRNXMoney='''+floattostr(FNXMoney-Order_Main.fieldbyname('JXMoney').AsFloat)+''' '); sql.add('where YGID='''+trim(Order_Main.fieldbyname('YGID').AsString)+''''); execsql; end; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('Update OA_YG_DangAn_JX Set JXStatus=''已提交'' '); sql.Add(' where JXID='''+Order_Main.fieldbyname('JXID').AsString+''''); ExecSQL; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('Update OA_Chk set ChkStatus='''' '); sql.Add(' where CKID='''+Order_Main.fieldbyname('CKID').AsString+''''); ExecSQL; end; initGrid(); ADOQueryCmd.Connection.CommitTrans; Exit; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('操作异常!','提示',0); end; end; procedure TfrmYGYPZZChkList_JiaXinSH.cxTabControl1Change(Sender: TObject); begin setstatus(); InitGrid(); end; procedure TfrmYGYPZZChkList_JiaXinSH.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin TBView.Click; end; procedure TfrmYGYPZZChkList_JiaXinSH.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin with ADOQueryCmd do begin close; sql.clear; sql.add('select A.* from OA_Chk A '); sql.add('where A.Mainid='''+trim(Order_Main.fieldbyname('JXID').AsString)+''' '); sql.Add('and isnull(OAType,'''')=''加薪申请'''); open; end; SCreateCDS20(ADOQueryCmd,Order_Sub); SInitCDSData20(ADOQueryCmd,Order_Sub); end; procedure TfrmYGYPZZChkList_JiaXinSH.TTiJiaoClick(Sender: TObject); var FNXMoney: double; begin if Order_Main.IsEmpty then exit; try if trim(DParameters1)='高权限' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('Update OA_Chk Set '); sql.Add('ChkTime=getdate(),Chkstatus=''加薪通过'' '); sql.Add('where Mainid='''+trim(Order_Main.fieldbyname('Mainid').AsString)+''' '); sql.add('and OAType=''加薪申请'''); ExecSQL; end; {with ADOQueryMain do begin Close; SQL.Clear; sql.Add('Update OA_Chk Set '); sql.Add(' chkNote='''+trim(order_Sub.fieldbyname('chkNote').AsString)+''' '); sql.Add(' where CKID='''+trim(Order_Main.fieldbyname('CKID').AsString)+''' '); ExecSQL; end; } end else begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('Update OA_Chk Set '); sql.Add(' ChkTime=getdate(),Chkstatus=''加薪通过'' '); sql.Add(' where CKID='''+trim(Order_Main.fieldbyname('CKID').AsString)+''' '); ExecSQL; end; end; with ADOQueryCmd do begin close; sql.clear; sql.add('select A.* from OA_Chk A '); sql.add('where A.Mainid='''+trim(Order_Main.fieldbyname('Mainid').AsString)+''' '); sql.add('and isnull(A.Chkstatus,'''')<>''加薪通过'' '); sql.add('and isnull(A.OAType,'''')=''加薪申请'''); open; end; if ADOQueryCmd.IsEmpty then begin with ADOQueryMain do begin close; sql.Clear; sql.add('update OA_YG_DangAn_JX set '); sql.add('JXStatus=''加薪通过'' '); sql.Add(' where JXID='''+trim(Order_Main.fieldbyname('JXID').AsString)+''''); execsql; end; if SGetServerDate(ADOQueryTemp)>Order_Main.fieldbyname('SXJXdate').AsDateTime then begin with ADOQueryMain do begin close; sql.Clear; sql.Add('select * from OA_YG_DangAn '); sql.add('where YGID='''+trim(Order_Main.fieldbyname('YGID').AsString)+''''); open; end; FNXMoney:=ADOQueryMain.fieldbyname('GRNXMoney').AsFloat; with ADOQueryTemp do begin close; sql.Clear; sql.Add('update OA_YG_DangAn set GRNXMoney='''+floattostr(FNXMoney+Order_Main.fieldbyname('JXMoney').AsFloat)+''' '); sql.add('where YGID='''+trim(Order_Main.fieldbyname('YGID').AsString)+''''); execsql; end; with ADOQueryMain do begin close; sql.Clear; sql.add('update OA_YG_DangAn_JX set '); sql.add('JXStatus=''已加薪'' '); sql.Add(' where JXID='''+trim(Order_Main.fieldbyname('JXID').AsString)+''''); execsql; end; end; end; application.MessageBox('审核成功','提示'); initGrid(); except; application.MessageBox('审核失败','提示'); exit; end; end; procedure TfrmYGYPZZChkList_JiaXinSH.TNOTGClick(Sender: TObject); begin if Order_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 OA_YG_DangAn_JX Set JXStatus=''不通过'''); sql.Add(' where JXID='''+Order_Main.fieldbyname('JXID').AsString+''''); ExecSQL; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete from OA_Chk '); sql.Add(' where Mainid='''+Order_Main.fieldbyname('JXID').AsString+''''); sql.Add(' and isnull(OAType,'''')=''加薪申请'' '); ExecSQL; end; initGrid(); ADOQueryCmd.Connection.CommitTrans; Exit; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('操作异常!','提示',0); end; end; procedure TfrmYGYPZZChkList_JiaXinSH.TPrintClick(Sender: TObject); var fPrintFile:String; begin if Order_Main.IsEmpty then Exit; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\加薪申请单.rmf' ; with ADOQueryCmd do begin Filtered:=False; Close; sql.Clear; sql.Add('select A.*,B.* '); sql.Add(' from OA_YG_DangAn_JX A '); sql.add(' inner join OA_YG_DangAn B on B.YGID=A.YGID '); sql.Add(' where JXID='''+trim(Order_Main.fieldbyname('JXID').AsString)+''''); Open; end; SCreateCDS20(ADOQueryCmd,Order_Print); SInitCDSData20(ADOQueryCmd,Order_Print); if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); RM1.ShowReport; //RM1.PrintReport; end else begin Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\加薪申请单.rmf'),'提示',0); Exit; end; end; end.