unit U_YGYPZZChkList_LiZhiSH; 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_LiZhiSH = 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; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column7: TcxGridDBColumn; v1Column6: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1LiZhiStatus: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column14: TcxGridDBColumn; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; V2Chker: TcxGridDBColumn; V2Chktime: TcxGridDBColumn; V2Chkstatus: TcxGridDBColumn; V2chkNote: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; DataSource2: TDataSource; order_Sub: TClientDataSet; Label2: TLabel; v1JHLiZhiDate: TcxGridDBColumn; v1LiZhiTBDate: TcxGridDBColumn; v1SJLiZhiDate: TcxGridDBColumn; v1LiZhiNote: TcxGridDBColumn; TTiJiao: TToolButton; TNOTG: TToolButton; 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); private canshu1:string; DQdate:TDateTime; procedure InitGrid(); procedure InitForm(); procedure setstatus(); { Private declarations } public FFInt,FCloth:Integer; { Public declarations } end; var frmYGYPZZChkList_LiZhiSH: TfrmYGYPZZChkList_LiZhiSH; implementation uses U_DataLink,U_RTFun,U_ZDYHelp, U_YGYPInPut,U_YGYPInPut_LiZhi; {$R *.dfm} procedure TfrmYGYPZZChkList_LiZhiSH.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_LiZhiSH.FormDestroy(Sender: TObject); begin frmYGYPZZChkList_LiZhiSH:=nil; end; procedure TfrmYGYPZZChkList_LiZhiSH.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmYGYPZZChkList_LiZhiSH.FormCreate(Sender: TObject); begin canshu1:=Trim(DParameters1); end; procedure TfrmYGYPZZChkList_LiZhiSH.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('员工离职审核列表',Tv1,'OA管理'); end; procedure TfrmYGYPZZChkList_LiZhiSH.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select A.*,B.* '); sql.Add(' from OA_YG_DangAn A '); sql.add(' inner join OA_Chk B on B.Mainid=A.YGID and B.OAType=''离职申请'' '); if cxTabControl1.TabIndex<>0 then begin sql.Add(' where A.LiZhiTBDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); sql.Add(' and A.LiZhiTBDate<='''+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('YGID').AsString)+''' '); sql.Add('and isnull(OAType,'''')=''离职申请'''); open; end; SCreateCDS20(ADOQueryCmd,Order_Sub); SInitCDSData20(ADOQueryCmd,Order_Sub); finally ADOQueryMain.EnableControls; end; end; procedure TfrmYGYPZZChkList_LiZhiSH.InitForm(); begin EndDate.Date:=SGetServerDate(ADOQueryTemp); BegDate.Date:=EndDate.Date-7; ReadCxGrid('员工离职审核列表',Tv1,'OA管理'); setstatus(); InitGrid(); end; procedure TfrmYGYPZZChkList_LiZhiSH.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_LiZhiSH.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmYGYPZZChkList_LiZhiSH.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmYGYPZZChkList_LiZhiSH.TBViewClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmYGYPInPut_LiZhi:=TfrmYGYPInPut_LiZhi.create(self); with frmYGYPInPut_LiZhi do begin Panel3.Enabled:=False; ToolBar1.Enabled:=False; FDName:=trim(Order_Main.fieldbyname('YGName').AsString); if showModal=1 then begin end; free; end; finally frmYGYPInPut_LiZhi.Free; end; end; procedure TfrmYGYPZZChkList_LiZhiSH.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_LiZhiSH.TCXTJClick(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 Set LiZhiStatus=''已提交'',LiZhiFlag=0,YGType=''正式'' '); sql.Add(' where YGID='''+Order_Main.fieldbyname('YGID').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_LiZhiSH.cxTabControl1Change(Sender: TObject); begin setstatus(); InitGrid(); end; procedure TfrmYGYPZZChkList_LiZhiSH.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin TBView.Click; end; procedure TfrmYGYPZZChkList_LiZhiSH.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('YGID').AsString)+''' '); sql.Add(' and isnull(OAType,'''')=''离职申请'' '); open; end; SCreateCDS20(ADOQueryCmd,Order_Sub); SInitCDSData20(ADOQueryCmd,Order_Sub); end; procedure TfrmYGYPZZChkList_LiZhiSH.TTiJiaoClick(Sender: TObject); 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 set '); sql.add('LiZhiStatus=''离职通过'' '); sql.Add(' where YGID='''+trim(Order_Main.fieldbyname('YGID').AsString)+''''); execsql; end; end; application.MessageBox('审核成功','提示'); initGrid(); except; application.MessageBox('审核失败','提示'); exit; end; end; procedure TfrmYGYPZZChkList_LiZhiSH.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 Set LiZhiStatus=''不通过'',LiZhiFlag=0 '); sql.Add(' where YGID='''+Order_Main.fieldbyname('YGID').AsString+''''); ExecSQL; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete from OA_Chk '); sql.Add(' where Mainid='''+Order_Main.fieldbyname('YGID').AsString+''''); sql.Add(' and isnull(OAType,'''')=''离职申请'' '); ExecSQL; end; initGrid(); ADOQueryCmd.Connection.CommitTrans; Exit; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('操作异常!','提示',0); end; end; end.