📄 purnewuser.pas
字号:
unit PurNewUser;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, Mask, DBCtrls, DB, DBClient, ADODB;
type
TTypeOfNewUser = (tnuNew,tnuModify);//调用窗口是修改还是新建权限组
TFrmDPurNewUser = class(TForm)
GroupBox2: TGroupBox;
GroupBox1: TGroupBox;
DBGrid1: TDBGrid;
GroupBox3: TGroupBox;
Label1: TLabel;
Label2: TLabel;
GroupBox4: TGroupBox;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
DBEdtXb: TDBEdit;
DBEdtGw: TDBEdit;
DBEdtZw: TDBEdit;
DataSource1: TDataSource;
EdtDlmz: TEdit;
EdtDlmm: TEdit;
Label6: TLabel;
EdtQrmm: TEdit;
ADODataSet1: TADODataSet;
btnOk: TButton;
btnCancel: TButton;
ADODataSet2: TADODataSet;
procedure FormCreate(Sender: TObject);
procedure btnOKClick(Sender: TObject);
procedure ADODataSet1AfterScroll(DataSet: TDataSet);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
FTypeOfNewUser:TTypeOfNewUser ;
FPreDlmz :string;
//FUserMc:string;
// FUserMs:string;
FUserID:integer;
FClose : Boolean ;
procedure setTypeOfNewUser(value:TTypeOfNewUser);
procedure setUserID(value:integer);
// procedure setUserMc(value:string);
// procedure setUserMs(value:string);
public
{ Public declarations }
property TypeOfNewUser:TTypeOfNewUser read FTypeOfNewUser
write setTypeOfNewUser default tnuNew ;
property UserID:integer read FUserID write setUserID default 0 ;
end;
//对密码进行加密
function EncryptStr(const SBefor: PChar; Key: Word;var SAfter:PChar):
Integer;stdCall;external 'ERPPublic.dll';
var
FrmDPurNewUser: TFrmDPurNewUser;
implementation
uses PublicModel, DataModule;
{uses U_SuDataClient, U_Exception,U_Instances;}
{$R *.dfm}
procedure TFrmDPurNewUser.FormCreate(Sender: TObject);
begin
inherited;
DBGrid1.Columns[0].FieldName := 'Per_Code';
DBGrid1.Columns[1].FieldName := 'Per_Name';
DBEdtXb.DataField := 'Per_sex';
DBEdtGw.DataField := 'Per_gw';
DBEdtZw.DataField := 'Per_zw';
FClose := True ;
end;
procedure TFrmDPurNewUser.setTypeOfNewUser(value:TTypeOfNewUser);
var
msgError,sSQL:string;
begin
FTypeOfNewUser := value ;
if FTypeOfNewUser = tnuNew then
begin
caption := '新加用户';
sSQL := 'select * from PMPerson where Per_dlmz = '''' or '
+ ' Per_dlmz is null';
msgError := '没有公司新员工档案,请在公司人员维护中添加新员工!';
end
else
begin
caption := '修改用户';
sSQL := 'select * from PMPerson where not (Per_dlmz = '''' or '
+ 'Per_dlmz is null)';
msgError := '没有系统用户档案,请添加新用户!'
end;
ExecQuery(ADODataSet1, sSQL);
if ADODataSet1.RecordCount <= 0 then
begin
showErrMsg(msgError);
ADODataSet1.Active := false;
end;
end;
procedure TFrmDPurNewUser.setUserID(value:integer);
begin
FUserID := value;
if (FTypeOfNewUser = tnuModify) and ADODataSet1.Active then
begin
ADODataSet1.Locate('Per_i',FUserID,[loPartialKey] );
end;
end;
procedure TFrmDPurNewUser.btnOKClick(Sender: TObject);
var
strSQL:string;
key,len:integer;
sjkmm:PChar;
begin
if trim(EdtDlmz.Text) = '' then
begin
showInfMsg('登录名字不能为空!');
EdtDlmz.SetFocus;
FClose := False ;
exit;
end;
if (FTypeOfNewUser = tnuNew) or
((FTypeOfNewUser = tnuModify) and (FPreDlmz <> Trim(EdtDlmz.Text)))
then
begin
strSQL := 'select Per_dlmz from PMPerson where Per_dlmz = '''
+ Trim(EdtDlmz.Text) + '''';
ExecQuery(ADODataSet2, strSQL);
if not ADODataSet2.IsEmpty then
begin
showInfMsg('登录名字' + Trim(EdtDlmz.Text) + '已经存在,请重新选择!');
EdtDlmz.SetFocus;
FClose := False ;
exit;
end;
end;
if not (trim(EdtQrmm.Text) = trim(EdtDlmm.Text)) then
begin
showInfMsg('两次输入密码不一致!');
EdtQrmm.SetFocus;
FClose := False ;
exit;
end;
if trim(EdtQrmm.Text) = '' then
begin
showInfMsg('密码不能为空!');
EdtQrmm.SetFocus;
FClose := False ;
exit;
end;
try
key := ord((Trim(EdtDlmz.Text))[1]);
len := length(trim(EdtDlmm.Text))*2 ;
GetMem(sjkmm,len + 1);
(sjkmm + len)^ := #0;
EncryptStr(PChar(trim(EdtDlmm.Text)),key,sjkmm );
strSQL := 'update PMPerson set Per_dlmz =''' + trim(EdtDlmz.Text) +
''' ,Per_dlmm = ''' + sjkmm + ''' where Per_i = ' +
IntToStr(FUserID) ;
FreeMem(sjkmm);
ExecQuery2(strSQL);
except
showErrMsg('数据库读写错误!');
end;
inherited;
end;
procedure TFrmDPurNewUser.ADODataSet1AfterScroll(DataSet: TDataSet);
begin
inherited;
FPreDlmz := trim(ADODataSet1.fieldByName('Per_dlmz').AsString);
EdtDlmz.text := FPreDlmz ;
EdtDlmm.text := '';
EdtQrmm.text := '';
FUserID := ADODataSet1.fieldByName('Per_i').AsInteger;
end;
procedure TFrmDPurNewUser.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
CanClose := FClose ;
FClose := True ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -