unit U_YGListSel; 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, cxLookAndFeels, cxLookAndFeelPainters, cxTLdxBarBuiltInMenu, dxBarBuiltInMenu, cxNavigator, U_BaseHelp, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, RM_e_Graphic, RM_e_Jpeg, RM_E_llPDF, cxGridBandedTableView, cxGridDBBandedTableView, U_BaseList, System.ImageList, Vcl.ImgList; type TfrmYGListSel = class(TfrmBaseHelp) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBClose: TToolButton; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; Order_Main: TClientDataSet; 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; ADOQuery1: TADOQuery; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; Label4: TLabel; Dept: TEdit; Label7: TLabel; YGNo: TEdit; RMDB_1: TRMDBDataSet; RMXLSExport1: TRMXLSExport; RM1: TRMGridReport; ADOQueryPrint: TADOQuery; RMJPEGExport1: TRMJPEGExport; RMllPDFExport1: TRMllPDFExport; cxGrid1: TcxGrid; TV1: TcxGridDBBandedTableView; cxGridDBBandedColumn35: TcxGridDBBandedColumn; cxGridDBBandedColumn42: TcxGridDBBandedColumn; cxGridDBBandedColumn51: TcxGridDBBandedColumn; cxGridDBBandedColumn52: TcxGridDBBandedColumn; cxGridDBBandedColumn56: TcxGridDBBandedColumn; cxGridDBBandedColumn57: TcxGridDBBandedColumn; cxGridDBBandedColumn59: TcxGridDBBandedColumn; cxGridDBBandedColumn61: TcxGridDBBandedColumn; cxGridDBBandedColumn62: TcxGridDBBandedColumn; cxGridDBBandedColumn63: TcxGridDBBandedColumn; cxGridDBBandedColumn64: TcxGridDBBandedColumn; cxGridDBBandedColumn77: TcxGridDBBandedColumn; cxGridDBBandedColumn79: TcxGridDBBandedColumn; cxGridDBBandedColumn81: TcxGridDBBandedColumn; cxGridDBBandedColumn87: TcxGridDBBandedColumn; cxGridDBBandedColumn91: TcxGridDBBandedColumn; cxGridDBBandedColumn1: TcxGridDBBandedColumn; cxGridDBBandedColumn2: TcxGridDBBandedColumn; V1Column6: TcxGridDBBandedColumn; V1Column25: TcxGridDBBandedColumn; V1Column26: TcxGridDBBandedColumn; V1Column27: TcxGridDBBandedColumn; V1Column28: TcxGridDBBandedColumn; V1Column4: TcxGridDBBandedColumn; V1Column5: TcxGridDBBandedColumn; V1Column7: TcxGridDBBandedColumn; V1Column3: TcxGridDBBandedColumn; V1Column8: TcxGridDBBandedColumn; V1Column9: TcxGridDBBandedColumn; V1Column10: TcxGridDBBandedColumn; V1Column11: TcxGridDBBandedColumn; cxGridDBBandedColumn3: TcxGridDBBandedColumn; cxGridDBBandedColumn4: TcxGridDBBandedColumn; cxGridDBBandedColumn5: TcxGridDBBandedColumn; TV1Column4: TcxGridDBBandedColumn; TV1Column5: TcxGridDBBandedColumn; TV1Column6: TcxGridDBBandedColumn; TV1Column1: TcxGridDBBandedColumn; TV1Column2: TcxGridDBBandedColumn; TV1Column3: TcxGridDBBandedColumn; cxgrdbndtblvw1Column4: TcxGridDBBandedColumn; cxgrdbndtblvw1Column5: TcxGridDBBandedColumn; cxgrdbndtblvw1Column6: TcxGridDBBandedColumn; TV1Column7: TcxGridDBBandedColumn; TV1Column8: TcxGridDBBandedColumn; TV1Column9: TcxGridDBBandedColumn; TV1Column10: TcxGridDBBandedColumn; TV1Column11: TcxGridDBBandedColumn; TV1Column12: TcxGridDBBandedColumn; TV1Column13: TcxGridDBBandedColumn; TV1Column14: TcxGridDBBandedColumn; TV1Column15: TcxGridDBBandedColumn; TV1Column16: TcxGridDBBandedColumn; TV1Column17: TcxGridDBBandedColumn; TV1Column18: TcxGridDBBandedColumn; TV1Column19: TcxGridDBBandedColumn; cxGridLevel2: TcxGridLevel; TV1Column20: TcxGridDBBandedColumn; 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 CustomerNoNameChange(Sender: TObject); procedure N2Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure YGNameChange(Sender: TObject); procedure cxDBTreeList1DblClick(Sender: TObject); procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure TV1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); private canshu1: string; DQdate: TDateTime; procedure InitGrid(); procedure InitForm(); function DelData(): Boolean; procedure InitTree(); procedure GLAge(); procedure SetStatus(); procedure PrintIC(MICK: string); { Private declarations } public FFInt, FCloth: Integer; { Public declarations } end; var frmYGListSel: TfrmYGListSel; implementation uses U_DataLink, U_RTFun, U_ZDYHelp; {$R *.dfm} procedure TfrmYGListSel.PrintIC(MICK: string); var fPrintFile, LBName: string; begin if Order_Main.IsEmpty then Exit; LBName := Trim(Order_Main.fieldbyname('YGType').AsString) + MICK; fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + LBName + '.rmf'; ExportFtErpFile(LBName + '.rmf', ADOQueryTemp); with ADOQueryPrint do begin Close; sql.Clear; sql.Add('select A.*'); sql.Add(',FilesOther=(select top 1 FilesOther from TP_File where TFType=''员工档案'' and WBID=A.YGID) '); sql.Add(' from OA_YG_DangAn A '); sql.Add('where A.YGId=''' + Trim(Order_Main.fieldbyname('YGId').AsString) + ''''); Open; end; if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); end; end; procedure TfrmYGListSel.SetStatus(); begin end; procedure TfrmYGListSel.FormDestroy(Sender: TObject); begin inherited; frmYGListSel := nil; end; procedure TfrmYGListSel.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmYGListSel.FormCreate(Sender: TObject); begin inherited; canshu1 := Trim(DParameters1); cxgrid1.Align := alClient; end; procedure TfrmYGListSel.TBCloseClick(Sender: TObject); begin Close; WriteCxBandedGrid('员工档案列表2', Tv1, 'OA管理'); end; procedure TfrmYGListSel.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' exec P_View_YGList @DPID=' + quotedstr(Trim(CDS_Tree.fieldbyname('DPID').AsString))); sql.Add(',@LiZhiFlag=' + quotedstr(inttostr(cxTabControl1.TabIndex))); // showmessage(sql.text); Open; end; SCreateCDS(ADOQueryMain, Order_Main); SInitCDSData(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmYGListSel.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 TfrmYGListSel.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; SCreateCDS(ADOQueryTree, CDS_Tree); SInitCDSData(ADOQueryTree, CDS_Tree); cxDBTreeList1.Items[0].Expand(True); CDS_Tree.Locate('DPName', '销售部', []); finally ADOQueryTree.EnableControls; end; end; procedure TfrmYGListSel.InitForm(); begin ReadCxBandedGrid('员工档案列表2', Tv1, 'OA管理'); InitTree(); GLAge(); InitGrid(); end; procedure TfrmYGListSel.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, Order_Main); SInitCDSData(ADOQueryMain, Order_Main); end; function TfrmYGListSel.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; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('EXEC P_OAYG_in_ZhangHu @DataID=''' + Trim(Order_Main.fieldbyname('YGID').AsString) + ''''); Open; end; if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox(PChar(ADOQueryCmd.fieldbyname('ShowMsg').AsString), '提示', 0); exit; end; ADOQueryCmd.Connection.CommitTrans; Result := True; except ADOQueryCmd.Connection.RollbackTrans; Result := False; Application.MessageBox('数据删除异常!', '提示', 0); end; end; procedure TfrmYGListSel.TBRafreshClick(Sender: TObject); begin InitTree(); InitGrid(); end; procedure TfrmYGListSel.FormShow(Sender: TObject); begin inherited; // v1SJLiZhiDate.Visible := false; // if cxTabControl1.TabIndex <> 0 then // v1SJLiZhiDate.Visible := true; // canshu1 := self.fParameters1; SetStatus(); InitForm(); end; procedure TfrmYGListSel.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmYGListSel.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmYGListSel.CustomerNoNameChange(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, Order_Main); SInitCDSData(ADOQueryMain, Order_Main); end; procedure TfrmYGListSel.N2Click(Sender: TObject); begin SelOKNo(Order_Main, True); end; procedure TfrmYGListSel.N1Click(Sender: TObject); begin SelOKNo(Order_Main, False); end; procedure TfrmYGListSel.cxTabControl1Change(Sender: TObject); begin // v1SJLiZhiDate.Visible := false; // if cxTabControl1.TabIndex <> 0 then // v1SJLiZhiDate.Visible := true; InitGrid(); end; procedure TfrmYGListSel.YGNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmYGListSel.cxDBTreeList1DblClick(Sender: TObject); begin InitGrid(); end; procedure TfrmYGListSel.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 TfrmYGListSel.TV1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin if Order_Main.IsEmpty then Exit; ModalResult := 1; end; end.