D7wmhengming/基础数据/U_UserList.pas
DESKTOP-E401PHE\Administrator a1881aa2b0 ~
2025-05-12 15:20:41 +08:00

274 lines
7.7 KiB
ObjectPascal
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 ''<27><>'' else ''<27><>'' 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,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
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,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
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('<27><>ȷ<EFBFBD><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ!',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(<><C9BE>ʧ<EFBFBD>ܣ<EFBFBD>','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ',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\Ա<><D4B1><EFBFBD><EFBFBD>Ϣ.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('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',MB_ICONERROR);
exit;
end;
if FileExists(fPrintFile) then
begin
RMVariables['QRBARCODE']:=fImagePath;
RM1.LoadFromFile(fPrintFile);
RM1.ShowReport;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD>ҵ<EFBFBD>'+trim(fPrintFile)),'<27><>ʾ',0);
exit;
end;
end;
end.