📄 jguser.pas
字号:
unit JGUser;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Buttons, ExtCtrls, Grids, DBGrids, ImgList,
ToolWin, InvokeRegistry, DB, Rio, SOAPHTTPClient, DBClient, AppEvnts, SOAPHTTPTrans;
type
TJGUserGL = class(TForm)
ControlBar1: TControlBar;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ImageList1: TImageList;
ImageList2: TImageList;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
DBGrid1: TDBGrid;
TabSheet2: TTabSheet;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Panel2: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn0: TBitBtn;
TabSheet3: TTabSheet;
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;
CheckBoxB9: TCheckBox;
CheckBoxB10: TCheckBox;
CheckBoxB11: TCheckBox;
CheckBoxB12: TCheckBox;
CheckBoxB13: TCheckBox;
CheckBoxB14: TCheckBox;
CheckBoxB15: TCheckBox;
CheckBoxB16: TCheckBox;
CheckBoxB17: TCheckBox;
CheckBoxB18: TCheckBox;
CheckBoxB19: TCheckBox;
CheckBoxB20: TCheckBox;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
StatusBar1: TStatusBar;
CheckBox17: TCheckBox;
CheckBox18: TCheckBox;
CheckBox19: TCheckBox;
CheckBox20: TCheckBox;
CheckBox21: TCheckBox;
CheckBox22: TCheckBox;
CheckBox23: TCheckBox;
CheckBox24: TCheckBox;
CheckBox25: TCheckBox;
CheckBox26: TCheckBox;
CheckBox27: TCheckBox;
CheckBox28: TCheckBox;
CheckBox29: TCheckBox;
CheckBox30: TCheckBox;
CheckBox31: TCheckBox;
CheckBox32: TCheckBox;
CheckBox33: TCheckBox;
CheckBox34: TCheckBox;
CheckBox35: TCheckBox;
CheckBox36: TCheckBox;
ApplicationEvents1: TApplicationEvents;
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure ToolButton9Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure RefreshItem(Index, Item: integer);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn0Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure ApplicationEvents1Exception(Sender: TObject; E: Exception);
private
{ Private declarations }
public
{ Public declarations }
end;
var
JGUserGL: TJGUserGL;
implementation
uses DataModule, UserFace, JGLRIntf;
{$R *.dfm}
procedure TJGUserGL.ToolButton1Click(Sender: TObject);
//用户列表
begin
DM.P_UserInfo;
PageControl1.ActivePageIndex := 0;
refreshitem(0, 0);
end;
procedure TJGUserGL.ToolButton3Click(Sender: TObject);
//增加用户
begin
PageControl1.ActivePageIndex := 1;
Toolbutton5.Enabled := false;
Toolbutton4.Enabled := false;
Toolbutton3.Enabled := false;
refreshitem(1, 0);
end;
procedure TJGUserGL.ToolButton4Click(Sender: TObject);
//修改用户
var
username, userid, userqx, userpwd, Ssds: string;
ni: smallint;
purviewenabled: boolean;
begin
DM.P_User(UserId, UserPwd, UserName, Userqx, Ssds);
if uppercase(userid) = uppercase(LoginUserID) then
Application.MessageBox('用户不能修改自己!', MsgCaption, 64)
else
begin
//设置是否更改用户项目
if (Copy(LoginUserQx, 1, 1) = '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.Text := username;
edit6.Text := userid;
edit7.Text := UserPwd;
edit8.Text := edit7.Text;
for ni := 0 to panel4.ControlCount - 1 do
if copy(userqx, ni + 1, 1) = '1' then
(panel4.Controls[ni] as tcheckbox).checked := true
else
(panel4.Controls[ni] as tcheckbox).checked := false;
if uppercase(Userid) = 'SYSTEM' then
purviewenabled := false
else
begin
//设置是否可以授权
if (Copy(LoginUserQx, 1, 1) = '1') then
purviewenabled := true
else
purviewenabled := false;
end;
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 TJGUserGL.ToolButton5Click(Sender: TObject);
//删除用户
var
username, userid: string;
nRet: smallint;
userqx, userpwd, ssds: string;
begin
DM.P_User(UserId, UserPwd, UserName, Userqx, ssds);
if UpperCase(userid) = 'SYSTEM' then
Application.MessageBox('不能删除用户管理员!', MsgCaption, 48)
else
if UpperCase(userid) = upperCase(LoginUserID) then
Application.MessageBox('用户不能删除自己!', MsgCaption, 48)
else
begin
if Application.MessageBox(pchar('是否要删除用户“' + username + '”吗?'), MsgCaption, 36) = 6 then
begin
nRet := DM.F_UserDel(Userid);
case nRet of
0: begin
Application.MessageBox(Pchar('用户“' + username + '”删除成功'), MsgCaption, 64);
DM.P_UserInfo;
end;
1: Application.MessageBox(Pchar('用户“' + username + '”已登录,不允许删除!'), MsgCaption, 48);
2: Application.MessageBox(Pchar('删除用户“' + username + '”失败!'), MsgCaption, 16);
end;
end;
end;
end;
procedure TJGUserGL.ToolButton9Click(Sender: TObject);
//退出
begin
close;
end;
procedure TJGUserGL.FormCreate(Sender: TObject);
//初始化
begin
{ DM.Qry_User.First;
while not DM.Qry_User.Eof do
begin
i:=strtoint(DM.Qry_User.FieldByName('dsbh').AsString)-1;
(Panel6.Controls[i] as tCheckBox).Caption :=trim(DM.Qry_User.FieldByName('dsmc').AsString);
(Panel5.Controls[i] as tCheckBox).Caption :=trim(DM.Qry_User.FieldByName('dsmc').AsString);
DM.Qry_User.Next;
end; }
DM.P_UserInfo;
PageControl1.ActivePageIndex := 0;
//dbgrid1.DataSource:=DM.DS_User;
end;
procedure TJGUserGL.RefreshItem(Index, Item: integer);
//刷新项目
var
ni: smallint;
begin
case index of
0: begin
if Copy(LoginUserQx, 1, 1) = '0' then
begin
ToolButton3.Enabled := false;
ToolButton5.Enabled := false;
ToolButton4.Enabled := false;
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 TJGUserGL.BitBtn1Click(Sender: TObject);
//增加用户存盘
var
userid, username, userpwd, userqx, ssds: string;
nRet, ni, nl: smallint;
begin
userqx := '';
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
userqx := userqx + '1'
else
userqx := userqx + '0';
end
else
break;
end;
for nl := ni to 20 do
userqx := userqx + '0';
Ssds := '';
for nl := ni to 30 do
ssds := ssds + '0';
if (edit1.Text <> '') and (edit2.Text <> '') then
begin
if edit3.Text = edit4.Text then
begin
userid := trim(Edit2.Text);
username := trim(Edit1.Text);
userpwd := trim(Edit3.Text);
nRet := DM.F_UserSave(userid, username, userpwd, userqx, ssds);
if nRet = 0 then
begin
refreshitem(1, 1);
Application.MessageBox('存盘成功。', MsgCaption, 64);
end
else
if nRet = 1 then
Application.MessageBox('用户代码已被其他人使用,请重新填写!', MsgCaption, 48)
else
Application.MessageBox('存盘失败,请稍候再重试!', MsgCaption, 16);
end
else
Application.MessageBox('密码输入错误,请重新输入!', MsgCaption, 48);
end
else
Application.MessageBox('用户名及用户代码不能为空,请输入!', MsgCaption, 48);
end;
procedure TJGUserGL.BitBtn0Click(Sender: TObject);
//继续增加
begin
refreshitem(1, 0);
end;
procedure TJGUserGL.BitBtn4Click(Sender: TObject);
var
userid, username, userpwd, userqx, ssds: string;
nRet, ni, nl: smallint;
begin
userqx := '';
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
userqx := userqx + '1'
else
userqx := userqx + '0';
end
else
break;
end;
for nl := ni to 20 do
userqx := userqx + '0';
ssds := '';
for nl := ni to 20 do
ssds := ssds + '0';
if (edit5.Text <> '') then
begin
if edit7.Text = edit8.Text then
begin
userid := trim(Edit6.Text);
username := trim(Edit5.Text);
userpwd := trim(Edit7.Text);
nRet := DM.F_UserSave(userid, username, userpwd, userqx, ssds); //iif(RadBtn1.Checked,0,1));
if nRet = 0 then
begin
refreshitem(1, 1);
Application.MessageBox('修改成功。', MsgCaption, 64);
end
else
if nRet = 1 then
Application.MessageBox('用户代码已被其他人删除!', MsgCaption, 48)
else
Application.MessageBox('存盘失败,请稍候再重试!', MsgCaption, 16);
end
else
Application.MessageBox('密码输入错误,请重新输入!', MsgCaption, 48);
end
else
Application.MessageBox('用户名不能为空,请输入!', MsgCaption, 48);
end;
procedure TJGUserGL.ApplicationEvents1Exception(Sender: TObject;
E: Exception);
begin
if E is ESOAPHTTPException then
//showmessage('Something is wrong!')
DM.P_UserInfo
else
Application.ShowException(E);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -