unit U_YGYPZZChkList; 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, BtnEdit; type TfrmYGYPZZChkList = 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; TBSChk: TToolButton; PopupMenu1: TPopupMenu; N2: TMenuItem; N1: TMenuItem; TBSCancel: TToolButton; BegDate: TDateTimePicker; Label3: TLabel; EndDate: TDateTimePicker; cxTabControl1: TcxTabControl; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column2: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column3: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1Column15: TcxGridDBColumn; v1Column16: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column18: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v1Column20: TcxGridDBColumn; v1Column21: TcxGridDBColumn; v1Column22: TcxGridDBColumn; v1Column23: TcxGridDBColumn; v1Column24: TcxGridDBColumn; v1Column25: TcxGridDBColumn; v1Column26: TcxGridDBColumn; v1Column27: TcxGridDBColumn; v1Column28: TcxGridDBColumn; v1Column29: TcxGridDBColumn; v1Column30: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column12: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column14: TcxGridDBColumn; Panel2: TPanel; Label1: TLabel; ZhuanZhengDate: TDateTimePicker; v1ZhuanZhengDate: TcxGridDBColumn; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; V2Chker: TcxGridDBColumn; V2Chktime: TcxGridDBColumn; V2ChkStatus: TcxGridDBColumn; V2chkNote: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; DataSource2: TDataSource; order_Sub: TClientDataSet; Label2: TLabel; Label28: TLabel; FHType: TBtnEditA; Label32: TLabel; XZNo: TEdit; Label30: TLabel; GRNXMoney: TEdit; Label34: TLabel; FKType: TBtnEditA; Label4: TLabel; YGName: TEdit; Label5: TLabel; YPNote: TMemo; 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 CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure TBViewClick(Sender: TObject); procedure CustomerNoNameChange(Sender: TObject); procedure TBSChkClick(Sender: TObject); procedure N2Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure TBSCancelClick(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 FHTypeBtnClick(Sender: TObject); procedure FKTypeBtnClick(Sender: TObject); procedure YGNameChange(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); private canshu1:string; DQdate:TDateTime; procedure InitGrid(); procedure InitForm(); function DelData():Boolean; procedure setstatus(); { Private declarations } public FFInt,FCloth:Integer; { Public declarations } end; var frmYGYPZZChkList: TfrmYGYPZZChkList; implementation uses U_DataLink,U_RTFun,U_ZDYHelp, U_YGYPInPut; {$R *.dfm} procedure TfrmYGYPZZChkList.setstatus(); begin TBSChk.Visible:=False; TBSCancel.Visible:=False; Panel2.Visible:=False; if trim(DParameters1)='高权限' then begin case cxTabControl1.TabIndex of 0:begin TBSChk.Visible:=True; Panel2.Visible:=True; end; 1:begin TBSCancel.Visible:=true; end; 2:begin end; end; end; end; procedure TfrmYGYPZZChkList.FormDestroy(Sender: TObject); begin frmYGYPZZChkList:=nil; end; procedure TfrmYGYPZZChkList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmYGYPZZChkList.FormCreate(Sender: TObject); begin canshu1:=Trim(DParameters1); end; procedure TfrmYGYPZZChkList.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('员工转正列表',Tv1,'OA管理'); end; procedure TfrmYGYPZZChkList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select A.* '); sql.Add(' from OA_YG_DangAn A '); sql.Add(' where QCType=''面试'' '); sql.Add(' and isnull(ZZSChker,'''')<>'''' '); if cxTabControl1.TabIndex<>0 then begin sql.Add(' and YPDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); sql.Add(' and YPDate<='''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); end; if cxTabControl1.TabIndex=0 then begin sql.Add(' and ZhuanZhengFlag=0 and HZStatus=''转正通过'' '); end else if cxTabControl1.TabIndex=1 then begin sql.Add(' and ZhuanZhengFlag=1 '); end; sql.add(' and LiZhiFlag=0'); if trim(DParameters1)<>'高权限' then begin sql.add(' and isnull(YGEName,YGName)='''+trim(DName)+''' '); end; 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 A.OAType=''员工转正送审'''); open; end; SCreateCDS20(ADOQueryCmd,Order_Sub); SInitCDSData20(ADOQueryCmd,Order_Sub); finally ADOQueryMain.EnableControls; end; end; procedure TfrmYGYPZZChkList.InitForm(); begin EndDate.Date:=SGetServerDate(ADOQueryTemp); BegDate.Date:=EndDate.Date-7; ReadCxGrid('员工转正列表',Tv1,'OA管理'); ZhuanZhengDate.Checked:=False; setstatus(); InitGrid(); end; procedure TfrmYGYPZZChkList.TBFindClick(Sender: TObject); begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); end; function TfrmYGYPZZChkList.DelData():Boolean; begin try Result:=false; ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Delete OA_YG_DangAn where YGId='''+Trim(Order_Main.fieldbyname('YGId').AsString)+''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Delete OA_YG_DangAn_Other where YGId='''+Trim(Order_Main.fieldbyname('YGId').AsString)+''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Delete TP_File where WBId='''+Trim(Order_Main.fieldbyname('YGId').AsString)+''''); sql.Add(' and TFType=''YG'' '); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; Result:=True; except ADOQueryCmd.Connection.RollbackTrans; Result:=False; Application.MessageBox('数据删除异常!','提示',0); end; end; procedure TfrmYGYPZZChkList.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmYGYPZZChkList.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmYGYPZZChkList.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmYGYPZZChkList.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmYGYPZZChkList.TBViewClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmYGYPInPut:=TfrmYGYPInPut.Create(Application); with frmYGYPInPut do begin PState:=1; FMainId:=Trim(Self.Order_Main.fieldbyname('YGId').AsString); TBSave.Visible:=False; ToolButton1.Visible:=False; ToolButton2.Visible:=False; if ShowModal=1 then begin end; end; finally frmYGYPInPut.Free; end; end; procedure TfrmYGYPZZChkList.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.TBSChkClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if cxTabControl1.TabIndex<>0 then Exit; {if Order_Main.Locate('SSel',True,[])=False then begin Application.MessageBox('没有选择数据!','提示',0); Exit; end;} if order_Main.FieldByName('HZStatus').AsString<>'转正通过' then begin application.MessageBox('员工转正审核中,不能转正','提示'); exit; end; if zhuanzhengDate.Checked=False then begin Application.MessageBox('转正日期不能为空','提示',0); Exit; end; if FHType.Text='' then begin application.MessageBox('薪酬类型不能为空','提示',0); exit; end; if GRNXMoney.Text='' then begin application.MessageBox('个人年薪不能为空','提示',0); exit; end; if Application.MessageBox('确定要执行此操作吗?','提示',32+4)<>IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; {with Order_Main do begin First; while Order_Main.Locate('SSel',True,[]) do begin} with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('Update OA_YG_DangAn Set'); sql.Add(' ZhuanZhengPerson='''+Trim(DName)+''',ZhuanZhengFlag=1'); sql.add(',ZhuanZhengDate='''+formatdatetime('yyyy-MM-dd',ZhuanZhengDate.datetime)+''''); sql.Add(',YGType=''正式'',RuZhiDate='''+formatdatetime('yyyy-MM-dd',ZhuanZhengDate.datetime)+''' '); Sql.Add(',HZStatus=''已转正'',HZStatusTime=getdate(),GRNXMoney='''+trim(GRNXMoney.Text)+''''); sql.add(',FHType='''+trim(FHType.Text)+''',XZNO='''+trim(XZNO.Text)+''' '); sql.Add(' where YGID='''+trim(Order_Main.fieldbyname('YGID').AsString)+''''); ExecSQL; end; {end; end; Order_Main.EnableControls;} initGrid(); ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('操作异常!','提示',0); end; end; procedure TfrmYGYPZZChkList.N2Click(Sender: TObject); begin SelOKNo(Order_Main,True); end; procedure TfrmYGYPZZChkList.N1Click(Sender: TObject); begin SelOKNo(Order_Main,False); end; procedure TfrmYGYPZZChkList.TBSCancelClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if cxTabControl1.TabIndex<>1 then Exit; {if Order_Main.Locate('SSel',True,[])=False then begin Application.MessageBox('没有选择数据!','提示',0); Exit; end;} if Application.MessageBox('确定要执行撤销操作吗?','提示',32+4)<>IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; {Order_Main.DisableControls; with Order_Main do begin First; while Order_Main.Locate('SSel',True,[]) do begin} with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('Update OA_YG_DangAn Set '); sql.Add(' ZhuanZhengPerson=NUll,ZhuanZhengDate=NUll,ZhuanZhengFlag=0,YGType=''试用'' '); sql.Add(' ,HZStatus=''转正通过'',ZZSChkTime=ShiYongDate'); sql.Add(' where YGID='''+Order_Main.fieldbyname('YGID').AsString+''''); ExecSQL; end; {end; end; Order_Main.EnableControls;} initGrid(); ADOQueryCmd.Connection.CommitTrans; Exit; except Order_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('操作异常!','提示',0); end; end; procedure TfrmYGYPZZChkList.cxTabControl1Change(Sender: TObject); begin setstatus(); InitGrid(); end; procedure TfrmYGYPZZChkList.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin TBView.Click; end; procedure TfrmYGYPZZChkList.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)+''' '); open; end; SCreateCDS20(ADOQueryCmd,Order_Sub); SInitCDSData20(ADOQueryCmd,Order_Sub); end; procedure TfrmYGYPZZChkList.FHTypeBtnClick(Sender: TObject); begin frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='FHType'; flagname:='薪酬类型'; if ShowModal=1 then begin FHType.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; free; end; end; procedure TfrmYGYPZZChkList.FKTypeBtnClick(Sender: TObject); begin frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='FKType'; flagname:='工资方式'; if ShowModal=1 then begin FKType.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; free; end; end; procedure TfrmYGYPZZChkList.YGNameChange(Sender: TObject); begin tbfind.Click; end; procedure TfrmYGYPZZChkList.Tv1FocusedRecordChanged( Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin YPNote.Text:=Trim(Order_Main.fieldbyname('YPNote').AsString); end; end.