unit U_YGList; 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, cxTL, cxMaskEdit, cxInplaceContainer, cxDBTL, cxTLData; type TfrmYGList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: TToolButton; TBClose: TToolButton; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; TBExport: TToolButton; Order_Main: TClientDataSet; TBView: TToolButton; Panel1: TPanel; PopupMenu1: TPopupMenu; N2: TMenuItem; N1: TMenuItem; Label1: TLabel; YGName: TEdit; Label2: TLabel; YGSex: TComboBox; Label5: TLabel; GangWei: TEdit; cxDBTreeList1: TcxDBTreeList; cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn; DataSource2: TDataSource; CDS_Tree: TClientDataSet; ADOQueryTree: TADOQuery; cxSplitter1: TcxSplitter; cxTabControl1: TcxTabControl; TLZ: TToolButton; ADOQuery1: TADOQuery; TCXLZ: TToolButton; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1RuZhiDate: TcxGridDBColumn; v1YGName: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column29: TcxGridDBColumn; v1YGYearGL: TcxGridDBColumn; v1SJLiZhiDate: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; Label4: TLabel; Dept: TEdit; v1SYRName: TcxGridDBColumn; v1SFZNo: TcxGridDBColumn; Label3: TLabel; SYRName: TEdit; Panel2: TPanel; Label6: TLabel; SJLiZhiDate: TDateTimePicker; ToolButton1: TToolButton; v1YGNo: TcxGridDBColumn; Label7: TLabel; YGNo: TEdit; v1Column3: TcxGridDBColumn; ToolButton2: TToolButton; v1Column4: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure TBViewClick(Sender: TObject); procedure CustomerNoNameChange(Sender: TObject); procedure N2Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure YGNameChange(Sender: TObject); procedure cxDBTreeList1DblClick(Sender: TObject); procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure TLZClick(Sender: TObject); procedure TCXLZClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); private canshu1: string; DQdate: TDateTime; procedure InitGrid(); procedure InitForm(); function DelData(): Boolean; procedure InitTree(); procedure GLAge(); { Private declarations } public FFInt, FCloth: Integer; { Public declarations } end; var frmYGList: TfrmYGList; implementation uses U_DataLink, U_RTFun, U_ZDYHelp, U_YGInPut, U_YGYPZZChkList_NXZZJL, U_FjList_RZ, U_DeptTypeHelp; {$R *.dfm} procedure TfrmYGList.FormDestroy(Sender: TObject); begin frmYGList := nil; end; procedure TfrmYGList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmYGList.FormCreate(Sender: TObject); begin canshu1 := Trim(DParameters1); SJLiZhiDate.Date := SGetServerDate(ADOQueryTemp); cxgrid1.Align := alClient; end; procedure TfrmYGList.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('员工档案列表2', Tv1, 'OA管理'); end; procedure TfrmYGList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' exec P_View_YGList :DPID,:LiZhiFlag'); Parameters.ParamByName('DPID').Value := Trim(CDS_Tree.fieldbyname('DPID').AsString); Parameters.ParamByName('LiZhiFlag').Value := cxTabControl1.TabIndex; Open; end; SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmYGList.GLAge(); var FXTGLNF, FYGGLNF, FGLYF: Double; begin FXTGLNF := strtofloat(uppercase(formatdateTime('yyyy', SGetServerDate(ADOQueryTemp)))); with ADOQueryCmd do begin close; sql.Clear; sql.Add('select RuZhiDate,YGYearGL from OA_YG_DangAn where YGType=''正式'' '); open; end; with ADOQueryCmd do begin first; while not eof do begin edit; if ADOQueryCmd.fieldbyname('RuZhiDate').asstring = '' then begin fieldbyname('YGYearGL').AsFloat := 0; end else begin FYGGLNF := strtofloat(uppercase(formatdateTime('yyyy', ADOQueryCmd.fieldbyname('RuZhiDate').AsDateTime))); FGLYF := strtofloat(uppercase(formatdateTime('MM', ADOQueryCmd.fieldbyname('RuZhiDate').AsDateTime))); if (FGLYF >= 1) and (FGLYF <= 3) then fieldbyname('YGYearGL').AsFloat := FXTGLNF - FYGGLNF + 1; if (FGLYF > 3) and (FGLYF <= 9) then fieldbyname('YGYearGL').AsFloat := FXTGLNF - FYGGLNF + 0.5; if (FGLYF > 9) and (FGLYF <= 12) then fieldbyname('YGYearGL').AsFloat := FXTGLNF - FYGGLNF; end; next; end; end; end; procedure TfrmYGList.InitTree(); var i: Integer; begin try ADOQueryTree.DisableControls; with ADOQueryTree do begin Close; SQL.Clear; SQL.Add('select * from SY_Dept order by DPlevel,DPOrder,DPName'); Open; end; SCreateCDS20(ADOQueryTree, CDS_Tree); SInitCDSData20(ADOQueryTree, CDS_Tree); cxDBTreeList1.Items[0].Expand(True); finally ADOQueryTree.EnableControls; end; end; procedure TfrmYGList.InitForm(); begin ReadCxGrid('员工档案列表2', Tv1, 'OA管理'); InitTree(); GLAge(); //InitGrid(); end; procedure TfrmYGList.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 TfrmYGList.TBEditClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmYGInPut := TfrmYGInPut.Create(Application); with frmYGInPut do begin PState := 1; FMainId := Trim(Self.Order_Main.fieldbyname('YGId').AsString); FDPID := Trim(CDS_Tree.fieldbyname('DPID').AsString); FName := trim(CDS_Tree.fieldbyname('DPName').AsString); frmYGInPut.canshu1 := Trim(Self.canshu1); if ShowModal = 1 then begin initgrid(); end; end; finally frmYGInPut.Free; end; end; procedure TfrmYGList.TBDelClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; //if cxTabControl1.TabIndex<>0 then Exit; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; if DelData() then begin Order_Main.Delete; end; end; function TfrmYGList.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 TfrmYGList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; TcxGridToExcel('员工档案列表', cxGrid1); end; procedure TfrmYGList.TBRafreshClick(Sender: TObject); begin InitTree(); InitGrid(); end; procedure TfrmYGList.TBAddClick(Sender: TObject); var maxno: string; begin try frmYGInPut := TfrmYGInPut.Create(Application); with frmYGInPut do begin PState := 0; FMainId := ''; FDPID := Trim(CDS_Tree.fieldbyname('DPID').AsString); FName := trim(CDS_Tree.fieldbyname('DPName').AsString); if ShowModal = 1 then begin initgrid(); end; end; finally frmYGInPut.Free; end; end; procedure TfrmYGList.FormShow(Sender: TObject); begin v1SJLiZhiDate.Visible := false; if cxTabControl1.TabIndex <> 0 then v1SJLiZhiDate.Visible := true; InitForm(); end; procedure TfrmYGList.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmYGList.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmYGList.TBViewClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmYGInPut := TfrmYGInPut.Create(Application); with frmYGInPut do begin PState := 1; FMainId := Trim(Self.Order_Main.fieldbyname('YGId').AsString); FDPID := Trim(CDS_Tree.fieldbyname('DPID').AsString); TBSave.Visible := False; ToolButton1.Visible := False; ToolButton2.Visible := False; if ShowModal = 1 then begin end; end; finally frmYGInPut.Free; end; end; procedure TfrmYGList.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 TfrmYGList.N2Click(Sender: TObject); begin SelOKNo(Order_Main, True); end; procedure TfrmYGList.N1Click(Sender: TObject); begin SelOKNo(Order_Main, False); end; procedure TfrmYGList.cxTabControl1Change(Sender: TObject); begin v1SJLiZhiDate.Visible := false; if cxTabControl1.TabIndex <> 0 then v1SJLiZhiDate.Visible := true; InitGrid(); end; procedure TfrmYGList.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin TBView.Click; end; procedure TfrmYGList.YGNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmYGList.cxDBTreeList1DblClick(Sender: TObject); begin InitGrid(); end; procedure TfrmYGList.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin if Order_Main.IsEmpty then Exit; CDS_Tree.Locate('DPID', Trim(Order_Main.fieldbyname('DPID').AsString), []); end; procedure TfrmYGList.TLZClick(Sender: TObject); begin if order_Main.IsEmpty then exit; if CxTabConTrol1.TabIndex <> 0 then exit; if application.MessageBox('确定要执行此操作', '提示', 1) = 2 then exit; with ADOQueryCmd do begin close; sql.Clear; sql.Add('update OA_YG_DangAn set LiZhiFlag=1,YGType=''离职'',SJLiZhiDate=''' + trim(FormatDateTime('yyyy-MM-dd', SJLiZhiDate.Date)) + ''','); sql.Add(' LiZhiStatus=''离职通过'''); sql.Add(' where YGID=''' + trim(Order_Main.fieldbyname('YGID').AsString) + ''''); execsql; end; initGrid(); end; procedure TfrmYGList.TCXLZClick(Sender: TObject); begin if order_Main.IsEmpty then exit; if cxTabControl1.TabIndex <> 1 then exit; if application.MessageBox('确定要撤销离职吗', '提示', 1) = 2 then exit; with ADOQueryCmd do begin close; sql.Clear; sql.Add('update OA_YG_DangAn set LiZhiFlag=0,YGType=''正式'',SJLiZhiDate=NULL,LiZhiStatus='''''); sql.Add(' where YGID=''' + trim(Order_Main.fieldbyname('YGID').AsString) + ''''); execsql; end; initGrid(); end; procedure TfrmYGList.ToolButton1Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmFjList_RZ := TfrmFjList_RZ.Create(Application); with frmFjList_RZ do begin if Trim(DParameters1) <> '高权限' then cxButton1.Visible := false; fkeyNO := Trim(Self.Order_Main.fieldbyname('YGID').AsString); fType := '员工档案'; if ShowModal = 1 then begin end; end; finally frmFjList_RZ.Free; end; end; procedure TfrmYGList.ToolButton2Click(Sender: TObject); var FDPID, FName: string; begin if Order_Main.IsEmpty then exit; if Order_Main.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; FDPID := ''; FName := ''; frmDeptTypeHelp := TfrmDeptTypeHelp.create(self); with frmDeptTypeHelp do begin if showmodal = 1 then begin FDPID := Trim(ADOQueryHelp.fieldbyname('DPID').AsString); FName := Trim(ADOQueryHelp.fieldbyname('DPName').AsString); end; free; end; if trim(FDPID) = '' then exit; try with Order_Main do begin DisableControls; First; while not eof do begin if fieldbyname('ssel').AsBoolean then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update OA_YG_DangAn SET Dept=''' + trim(FName) + ''' '); sql.Add(',DPID=''' + trim(FDPID) + ''' '); sql.Add('where YGID=' + quotedstr(trim(Order_Main.fieldbyname('YGID').AsString))); execsql; end; end; next; end; First; EnableControls; end; application.MessageBox('操作成功!', '提示信息'); initgrid(); except Order_Main.EnableControls; application.MessageBox('操作失败!', '提示信息', 0); end; end; end.