📄 usermg.pas
字号:
unit UserMG;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ImgList, ToolWin, ExtCtrls, Db, ADODB, Grids, DBGrids, StdCtrls,
Buttons;
type
TUserMaint = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
ControlBar1: TControlBar;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
StatusBar1: TStatusBar;
DBGrid1: TDBGrid;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Panel2: TPanel;
CheckBoxA1: TCheckBox;
CheckBoxA2: TCheckBox;
CheckBoxA3: TCheckBox;
CheckBoxA4: TCheckBox;
CheckBoxA5: TCheckBox;
CheckBoxA6: TCheckBox;
CheckBoxA7: TCheckBox;
CheckBoxA8: TCheckBox;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn0: TBitBtn;
Panel3: TPanel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Panel4: TPanel;
CheckBoxB1: TCheckBox;
CheckBoxB2: TCheckBox;
CheckBoxB3: TCheckBox;
CheckBoxB4: TCheckBox;
CheckBoxB5: TCheckBox;
CheckBoxB6: TCheckBox;
CheckBoxB7: TCheckBox;
CheckBoxB8: TCheckBox;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
ImageList1: TImageList;
ImageList2: TImageList;
CheckBoxB9: TCheckBox;
CheckBoxB10: TCheckBox;
CheckBoxB11: TCheckBox;
CheckBoxB12: TCheckBox;
CheckBoxB13: TCheckBox;
CheckBoxB14: TCheckBox;
CheckBoxB15: TCheckBox;
CheckBoxB16: TCheckBox;
CheckBoxB17: TCheckBox;
CheckBoxB18: TCheckBox;
CheckBoxB19: TCheckBox;
CheckBoxB20: TCheckBox;
CheckBoxA9: TCheckBox;
CheckBoxA10: TCheckBox;
CheckBoxA11: TCheckBox;
CheckBoxA12: TCheckBox;
CheckBoxA13: TCheckBox;
CheckBoxA14: TCheckBox;
CheckBoxA15: TCheckBox;
CheckBoxA16: TCheckBox;
CheckBoxA17: TCheckBox;
CheckBoxA18: TCheckBox;
CheckBoxA19: TCheckBox;
CheckBoxA20: TCheckBox;
procedure ToolButton9Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn0Click(Sender: TObject);
procedure RefreshItem(Index,Item:integer);
procedure ToolButton5Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
UserMaint: TUserMaint;
implementation
uses PublicFun,datamodl;
{$R *.DFM}
procedure TUserMaint.ToolButton9Click(Sender: TObject);
//退出
begin
close;
end;
procedure TUserMaint.FormCreate(Sender: TObject);
//初始化
begin
fUserInfo;
PageControl1.ActivePageIndex :=0;
dbgrid1.DataSource:=datamodule1.DataS;
if (_usertype=0) and (Copy(_userpurview,2,1)='0') then
begin
ToolButton3.Enabled :=false;
ToolButton5.Enabled :=false;
if copy(_userpurview,3,1)='0' then
ToolButton4.Enabled :=false;
end;
end;
procedure TUserMaint.ToolButton1Click(Sender: TObject);
//用户列表
begin
fUserInfo;
PageControl1.ActivePageIndex :=0;
refreshitem(0,0);
end;
procedure TUserMaint.ToolButton3Click(Sender: TObject);
//增加用户
begin
PageControl1.ActivePageIndex :=1;
Toolbutton5.Enabled :=false;
Toolbutton4.Enabled :=false;
Toolbutton3.Enabled :=false;
refreshitem(1,0);
end;
procedure TUserMaint.ToolButton4Click(Sender: TObject);
//修改用户
var
username,userid,userpurview,userpwd : string;
ni,UserType:smallint;
purviewenabled:boolean;
begin
fUser(UserId,UserPwd,UserName,UserPurview,UserType);
if userid=_UserId then
showmessage('用户不能修改自己!')
else
if UserType = 1 then
showmessage('超级用户“'+username+'”不允许修改!')
else
begin
//设置是否更改用户项目
if (_UserType=1) or (Copy(_userpurview,2,1)='1') then
begin
if _UserType=1 then
begin
edit7.Enabled :=true;
edit8.Enabled :=true;
edit7.Color :=clWindow;
edit8.Color :=clWindow;
end
else
begin
edit7.Enabled :=false;
edit8.Enabled :=false;
edit7.Color :=clMenu;
edit8.Color :=clMenu;
end;
edit5.Enabled :=true;
edit5.Color :=clWindow;
edit6.Color :=clWindow;
end
else
begin
edit5.Enabled :=false;
edit5.Color :=clMenu;
edit6.Color :=clMenu;
edit7.Enabled :=false;
edit8.Enabled :=false;
edit7.Color :=clMenu;
edit8.Color :=clMenu;
end;
//赋值
edit5.Text :=username;
edit6.Text :=userid;
edit7.Text :=UserPwd;
edit8.Text :=edit7.Text ;
{ if UserState=0 then
RadBtn3.Checked:=true
else
RadBtn4.Checked:=true; }
//设置权限值
for ni:=0 to panel4.ControlCount-1 do
if copy(userpurview,ni+1,1)='1' then
(panel4.Controls[ni] as tcheckbox).checked:=true
else
(panel4.Controls[ni] as tcheckbox).checked:=false;
//设置是否可以授权
if (_UserType=1) or (Copy(_userpurview,3,1)='1') then
purviewenabled:=true
else
purviewenabled:=false;
for ni:=0 to panel4.ControlCount-1 do
(panel4.Controls[ni] as tcheckbox).enabled:=purviewenabled;
//更换面面
PageControl1.ActivePageIndex :=2;
Toolbutton5.Enabled :=false;
Toolbutton4.Enabled :=false;
Toolbutton3.Enabled :=false;
end;
end;
procedure TUserMaint.BitBtn1Click(Sender: TObject);
//增加用户存盘
var
Purview:string;
nRet,ni,nl:smallint;
begin
purview:='';
for ni:=1 to panel2.ControlCount do
begin
if panel2.Controls[ni-1].Visible then
begin
if (panel2.Controls[ni-1] as tcheckbox).checked then
purview:=purview+'1'
else
purview:=purview+'0';
end
else
break;
end;
for nl:=ni to 20 do
purview:=purview+'0';
if (edit1.Text <>'') and (edit2.Text <>'') then
begin
if edit3.Text =edit4.Text then
begin
nRet := UserSave(trim(Edit2.Text),trim(Edit1.Text),trim(Edit3.Text),Purview,0);//iif(RadBtn1.Checked,0,1));
if nRet=0 then
begin
refreshitem(1,1);
showmessage('存盘成功');
end
else
if nRet=1 then
showmessage('用户代码已被其他人使用,请重新填写!')
else
showmessage('存盘失败,请稍候再重试!')
end
else
showmessage('密码输入错误,请重新输入!');
end
else
showmessage('用户名及用户代码不能为空,请输入!');
end;
procedure TUserMaint.BitBtn0Click(Sender: TObject);
//继续增加
begin
refreshitem(1,0);
end;
procedure TUserMaint.RefreshItem(Index,Item:integer);
//刷新项目
var
ni :smallint;
begin
case index of
0: begin
if (_usertype=0) and (Copy(_userpurview,2,1)='0') then
begin
ToolButton3.Enabled := false;
ToolButton5.Enabled := false;
if copy(_userpurview,3,1)='0' then
ToolButton4.Enabled := false
else
Toolbutton4.Enabled := true;
end
else
begin
Toolbutton3.Enabled := true;
Toolbutton4.Enabled := true;
Toolbutton5.Enabled := true;
end;
end;
1: begin //增加
case item of
0: begin //增加新职工
bitbtn1.Enabled :=true;
bitbtn0.Enabled :=false;
edit1.Text :='';
edit2.Text :='';
edit3.Text :='';
edit4.Text :='';
edit1.Enabled :=true;
edit2.Enabled :=true;
edit3.Enabled :=true;
edit4.Enabled :=true;
for ni:=1 to panel2.ControlCount do
begin
(panel2.Controls[ni-1] as tcheckbox).Checked := False;
end;
end;
1: begin //增加存盘时更新控件属性
bitbtn0.Enabled :=true;
bitbtn1.Enabled :=false;
edit1.Enabled :=false;
edit2.Enabled :=false;
edit3.Enabled :=false;
edit4.Enabled :=false;
end;
end;
end;
2: begin //修改用户
end;
end;
end;
procedure TUserMaint.ToolButton5Click(Sender: TObject);
//删除用户
var
username,userid : string;
nRet:smallint;
userpurview,userpwd : string;
UserType:smallint;
HD:Thandle;
begin
fUser(UserId,UserPwd,UserName,UserPurview,UserType);
if userid=_UserId then
showmessage('用户不能删除自己!')
else
if UserType = 1 then
showmessage('超级用户“'+username+'”不允许删除!')
else
begin
HD:= UserMaint.Handle;
if messagebox(HD,pchar('是否要删除用户“'+username+'”吗?'),pchar('信息提示'),MB_YESNO)=IDYES then
begin
nRet:=UserDel(Userid);
case nRet of
0: begin
showmessage('用户“'+username+'”删除成功。');
fUserInfo;
end;
1: showmessage('用户“'+username+'”已登录,不允许删除!');
2: showmessage('删除用户“'+username+'”失败!');
end;
end;
end;
end;
procedure TUserMaint.BitBtn4Click(Sender: TObject);
var
Purview:string;
nRet,ni,nl:smallint;
begin
purview:='';
for ni:=1 to panel4.ControlCount do
begin
if panel4.Controls[ni-1].Visible then
begin
if (panel4.Controls[ni-1] as tcheckbox).checked then
purview:=purview+'1'
else
purview:=purview+'0';
end
else
break;
end;
for nl:=ni to 20 do
purview:=purview+'0';
if (edit5.Text <>'') then
begin
if edit7.Text =edit8.Text then
begin
nRet := UserSave(trim(Edit6.Text),trim(Edit5.Text),trim(Edit7.Text),Purview,0);
if nRet=0 then
begin
refreshitem(1,1);
showmessage('修改成功。');
end
else
if nRet=1 then
showmessage('用户代码已被其他人删除!')
else
showmessage('存盘失败,请稍候再重试!')
end
else
showmessage('密码输入错误,请重新输入!');
end
else
showmessage('用户名不能为空,请输入!');
end;
procedure TUserMaint.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
Key := #0;
Perform(WM_NEXTDLGCTL,0,0);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -