D7szChenfeng/基础资料(BaseInfo.dll)/U_UserDC.pas

235 lines
5.3 KiB
ObjectPascal
Raw Normal View History

2025-07-22 15:51:47 +08:00
unit U_UserDC;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, cxLookAndFeelPainters, StdCtrls, cxButtons, DB, ADODB;
type
TfrmUser = class(TForm)
userID: TEdit;
Label1: TLabel;
Label2: TLabel;
userName: TEdit;
newPassword: TEdit;
Label3: TLabel;
Label4: TLabel;
DnewPassword: TEdit;
cxOK: TcxButton;
cxClose: TcxButton;
ADOQueryTmp: TADOQuery;
ADO_Cmd: TADOQuery;
Label5: TLabel;
Udept: TEdit;
Label6: TLabel;
UType: TEdit;
procedure cxCloseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure cxOKClick(Sender: TObject);
procedure userIDKeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
private
fPassWord: string;
fIsYGCodezdsc: Boolean;
procedure DoQuery();
function SaveData(): Boolean;
{ Private declarations }
public
formId: integer;
fuserID: string;
{ Public declarations }
end;
var
frmUser: TfrmUser;
implementation
uses
ElAES, AES, U_PublicFunction, U_DataLink;
{$R *.dfm}
function TfrmUser.SaveData(): Boolean;
begin
result := false;
ADO_Cmd.Connection.BeginTrans;
try
if trim(newPassword.Text) <> '' then
fPassWord := trim(EncryptString(trim(newPassword.text), keys))
else
fPassWord := '';
with ADO_Cmd do
begin
close;
sql.Clear;
sql.Add(' select * from SY_User ');
sql.Add(' where userID=' + quotedstr(trim(fuserID)));
open;
if ADO_Cmd.IsEmpty then
ADO_Cmd.Append
else
ADO_Cmd.Edit;
ADO_Cmd.FieldByName('userID').Value := trim(fuserID);
ADO_Cmd.FieldByName('username').Value := trim(username.Text);
ADO_Cmd.FieldByName('passWord').Value := trim(fPassWord);
ADO_Cmd.FieldByName('pw').Value := trim(newPassword.text);
ADO_Cmd.FieldByName('Udept').Value := trim(Udept.Text);
ADO_Cmd.FieldByName('UType').Value := trim(UType.Text);
ADO_Cmd.FieldByName('valid').Value := 'Y';
ADO_Cmd.Post;
end;
ADO_Cmd.Connection.CommitTrans;
result := true;
except
ADO_Cmd.Connection.RollbackTrans;
end;
end;
procedure TfrmUser.DoQuery();
begin
with adoqueryTmp do
begin
close;
sql.Clear;
sql.Add(' select * from SY_User A ');
sql.Add(' where userID=' + quotedstr(trim(fuserID)));
open;
if not IsEmpty then
begin
userID.Text := trim(fieldbyname('userID').AsString);
userName.Text := trim(fieldbyname('userName').AsString);
Udept.Text := trim(fieldbyname('Udept').AsString);
UType.Text := trim(fieldbyname('UType').AsString);
if trim(fieldbyname('passWord').AsString) <> '' then
fPassWord := trim(DecryptString(trim(fieldbyname('passWord').AsString), keys))
else
fPassWord := '';
newPassword.Text := trim(fPassWord);
DnewPassword.Text := trim(fPassWord);
end;
end;
end;
procedure TfrmUser.cxCloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmUser.FormCreate(Sender: TObject);
begin
with ADO_Cmd do
begin
close;
sql.Clear;
sql.Add('select * from SY_SET');
open;
if not IsEmpty then
begin
fIsYGCodezdsc := fieldbyname('IsYGCodezdsc').AsBoolean;
end;
end;
end;
procedure TfrmUser.cxOKClick(Sender: TObject);
begin
if trim(userID.Text) = '' then
begin
application.MessageBox('<27><><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', MB_ICONERROR);
userName.Text;
exit;
end;
if trim(userName.Text) = '' then
begin
application.MessageBox('<27><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', MB_ICONERROR);
userName.Text;
exit;
end;
if trim(newPassword.Text) <> trim(dnewPassword.Text) then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EBB2BB>£<EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', MB_ICONERROR);
newPassword.Text := '';
dnewPassword.Text := '';
exit;
end;
if formId = 0 then
begin
if fIsYGCodezdsc then
begin
if not GetMaxBh(ADO_Cmd, fuserID, 'SY_USER', 'YG', '0', 3) then
exit;
end
else
begin
fuserID := trim(userID.Text);
end;
with ADO_Cmd do
begin
close;
sql.Clear;
sql.Add(' select * from SY_user');
sql.Add(' where userID=' + quotedstr(trim(fuserID)));
open;
if not isempty then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', MB_ICONERROR);
exit;
end;
end;
end;
if SaveData() then
begin
application.MessageBox('<27><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ');
ModalResult := 1;
end
else
application.MessageBox('<27><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
end;
procedure TfrmUser.userIDKeyPress(Sender: TObject; var Key: Char);
begin
Key := UpCase(Key);
if Key = #13 then
begin
perform(WM_NEXTDLGCTL, 0, 0);
Key := #0;
end;
end;
procedure TfrmUser.FormShow(Sender: TObject);
begin
if formId = 0 then
begin
if fIsYGCodezdsc then
begin
userID.Enabled := false;
userID.Text := '<27>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>';
end;
end
else
begin
userID.Enabled := false;
end;
DoQuery();
end;
procedure TfrmUser.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := cahide;
end;
procedure TfrmUser.FormDestroy(Sender: TObject);
begin
frmUser := nil;
end;
end.