unit U_UserList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, ExtCtrls, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, ADODB, DBClient, StdCtrls, RM_Common, RM_Class, RM_GridReport, RM_System, RM_Dataset, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter; type TfrmUserList = class(TForm) ToolBar1: TToolBar; tbyhadd: TToolButton; tbyhup: TToolButton; tbyhdelete: TToolButton; tbqx: TToolButton; tbclose: TToolButton; ToolButton1: TToolButton; cxGrid1: TcxGrid; tv1: TcxGridDBTableView; tv1Code1: TcxGridDBColumn; tv1Name1: TcxGridDBColumn; tv1Sex1: TcxGridDBColumn; tv1Phone1: TcxGridDBColumn; tv1IdNo1: TcxGridDBColumn; tv1Dept1: TcxGridDBColumn; tv1InTime: TcxGridDBColumn; tv1Address: TcxGridDBColumn; tv1Valid1: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; Panel1: TPanel; tv1edu: TcxGridDBColumn; tv1position: TcxGridDBColumn; tv1fstr1: TcxGridDBColumn; ADO_user: TADOQuery; ADO_Cmd: TADOQuery; DataSource2: TDataSource; CDS_User: TClientDataSet; Label1: TLabel; userID: TEdit; Label2: TLabel; USERName: TEdit; Label7: TLabel; sex: TComboBox; edu: TComboBox; Label8: TLabel; tv1note: TcxGridDBColumn; Label3: TLabel; validName: TComboBox; Label4: TLabel; position: TEdit; Label5: TLabel; fstr1: TEdit; tv1Column1: TcxGridDBColumn; ToolButton2: TToolButton; RMDBMain: TRMDBDataSet; RM1: TRMGridReport; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure tbyhaddClick(Sender: TObject); procedure tbcloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure tbyhupClick(Sender: TObject); procedure tbyhdeleteClick(Sender: TObject); procedure tbqxClick(Sender: TObject); procedure userIDChange(Sender: TObject); procedure tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure ToolButton2Click(Sender: TObject); private Procedure InitUser(); { Private declarations } public { Public declarations } end; var frmUserList: TfrmUserList; implementation uses U_DataLink,U_Fun10,U_User10,U_PublicFunction; {$R *.dfm} Procedure TfrmUserList.InitUser(); begin with ADO_user do begin close; sql.Clear; sql.Add(' select A.*,case when valid=''Y'' then ''是'' else ''否'' end as validName '); sql.Add(' from BD_Staff A '); sql.Add(' where userId<>''ADMIN'' '); open; end; CreateAdoToCds(ADO_user,CDS_User); InitAdoToCds(ADO_user,CDS_User); end; procedure TfrmUserList.FormDestroy(Sender: TObject); begin frmUserList:=nil; end; procedure TfrmUserList.FormClose(Sender: TObject; var Action: TCloseAction); begin writeCxGrid(self.Caption,Tv1,'基础数据'); Action:=cafree; end; procedure TfrmUserList.tbyhaddClick(Sender: TObject); begin frmUser10:=TfrmUser10.Create(self); with frmUser10 do begin formId:=0; fuserID:=''; if showmodal=1 then begin InitUser(); CDS_User.Locate('UserID',trim(fuserID),[]); end; free; end; end; procedure TfrmUserList.tbcloseClick(Sender: TObject); begin close; end; procedure TfrmUserList.FormShow(Sender: TObject); begin ReadCxGrid(self.Caption,Tv1,'基础数据'); InitUser(); end; procedure TfrmUserList.FormCreate(Sender: TObject); begin cxGrid1.Align:=alclient; end; procedure TfrmUserList.ToolButton1Click(Sender: TObject); begin InitUser(); end; procedure TfrmUserList.tbyhupClick(Sender: TObject); begin if CDS_User.IsEmpty then exit; if trim(CDS_User.FieldByName('userID').AsString)='ADMIN' then exit; frmUser10:=TfrmUser10.create(self); with frmUser10 do begin formId:=1; fuserID:=trim(CDS_User.fieldByName('UserID').asstring); if showmodal=1 then begin InitUser(); CDS_User.Locate('UserID',trim(fuserID),[]); end; free; end; end; procedure TfrmUserList.tbyhdeleteClick(Sender: TObject); begin if CDS_User.IsEmpty then exit; if trim(CDS_User.FieldByName('userID').AsString)='ADMIN' then exit; if application.MessageBox('请确定要删除此用户吗?','警告信息!',1)=2 then exit; try with ADO_Cmd do begin close; sql.Clear; sql.Add(' delete BD_Staff '); sql.Add(' where userID='+quotedstr(trim(CDS_User.fieldbyname('USerID').AsString))); sql.Add(' delete TP_File '); sql.Add(' where WBID='+quotedstr(trim(CDS_User.fieldbyname('USerID').AsString))); execsql; end; InitUser(); except application.MessageBox('删除失败!','错误信息',MB_ICONERROR); end; end; procedure TfrmUserList.tbqxClick(Sender: TObject); begin if CDS_User.IsEmpty then exit; TcxGridToExcel(self.Caption,cxgrid1); end; procedure TfrmUserList.userIDChange(Sender: TObject); begin if not CDS_User.Active then exit; SDofilter(ADO_user,SGetFilters(Panel1,1,2)); CreateAdoToCds(ADO_user,CDS_User); InitAdoToCds(ADO_user,CDS_User); end; procedure TfrmUserList.tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin tbyhup.Click; end; procedure TfrmUserList.ToolButton2Click(Sender: TObject); var fPrintFile:string; Porderno,PRTCodeName,funit:string; i,j,k:Integer; Txt,fImagePath:string; Moudle: THandle; Makebar:TMakebar; Mixtext:TMixtext; begin IF CDS_User.IsEmpty then exit; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\员工信息.rmf' ; try Moudle:=LoadLibrary('MakeQRBarcode.dll'); @Makebar:=GetProcAddress(Moudle,'Make'); @Mixtext:=GetProcAddress(Moudle,'MixText'); Txt:=Trim(CDS_User.fieldbyname('userID').AsString); fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp'; if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); if FileExists(fImagePath) then DeleteFile(fImagePath); Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); except application.MessageBox('条形码生成失败!','提示信息',MB_ICONERROR); exit; end; if FileExists(fPrintFile) then begin RMVariables['QRBARCODE']:=fImagePath; RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找到'+trim(fPrintFile)),'提示',0); exit; end; end; end.