📄 p_user.pas
字号:
unit p_user;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,p_mc, ExtCtrls, Grids, DBGrids, StdCtrls, Buttons, ComCtrls,
DBCtrls, XPMenu;
type
Tf_user = class(Tf_mc)
DBGrid1: TDBGrid;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
DBGrid2: TDBGrid;
Edit1: TEdit;
Bevel1: TBevel;
Label1: TLabel;
b_add: TBitBtn;
RichEdit1: TRichEdit;
B_del: TBitBtn;
XPMenu1: TXPMenu;
procedure FormCreate(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure b_addClick(Sender: TObject);
procedure DBGrid2DblClick(Sender: TObject);
procedure sele_user;
procedure DBGrid1CellClick(Column: TColumn);
procedure B_delClick(Sender: TObject); // //过滤权限信息里的记录
private
{ Private declarations }
public
{ Public declarations }
end;
var
f_user: Tf_user;
implementation
uses p_dm;
{$R *.dfm}
procedure tf_user.sele_user;
begin
//过滤权限信息里的记录
with dm do
begin
if T_USER.RecordCount<>0 then
begin
t_qx.Requery;
t_QX.Filter:='user_name='''+t_user['name']+'''';
t_qx.Filtered:=true;
if t_user['name']='SYSTEM' then
begin
dbgrid2.Enabled:=false;
b_del.Enabled:=false;
end
else
begin
dbgrid2.Enabled:=true;
b_del.Enabled:=true;
end;
end;
end;
//过滤完毕
end;
procedure Tf_user.FormCreate(Sender: TObject);
begin
dm.T_USER.Filtered:=false;
dm.T_MENU.Filtered:=false;
dm.T_QX.Filtered:=false;
f_user.sele_user;
f_user.ShowModal;
end;
procedure Tf_user.Edit1Change(Sender: TObject);
begin
if edit1.Text='' then b_add.Enabled:=false
else b_add.Enabled:=true;
end;
procedure Tf_user.b_addClick(Sender: TObject);
begin
with dm do
begin
//判断用户是否重名
t_user.Filter:='name='''+edit1.Text+'''';
t_user.Filtered:=true;
if t_user.RecordCount<>0 then
begin
t_user.Filtered:=false;
application.MessageBox('已有该用户,请重新输入用户名!','用户重名',mb_ok+mb_iconstop);
edit1.Text:='';
f_user.sele_user; //过滤权限信息里的记录
exit;
end;
t_user.Filtered:=false;
//添加用户到user表
t_user.Edit;
t_user.Append;
t_user['name']:=edit1.Text;
t_user['password']:='';
t_user['dt']:=now;
t_user.Post;
//添加用户权限信息到QX_INFO表
t_menu.First;
while not t_menu.Eof do
begin
t_qx.Edit;
t_qx.Append;
t_qx['user_name']:=edit1.Text;
t_qx['menu_id']:=t_menu['id'];
t_qx['menu_Caption']:=t_menu['caption'];
t_qx['menu_xz']:=false;
t_qx.Post;
t_menu.Next;
end;
end; //with dm do 语句完毕
f_user.sele_user; //过滤权限信息里的记录
edit1.Text:='';
end;
procedure Tf_user.DBGrid2DblClick(Sender: TObject);
var
recound:integer;//记下改动权限的记录号
begin
inherited;
with dm do
begin
if t_qx.RecordCount<>0 then
begin
//修改用户的权限
recound:=t_qx.RecNo;
t_qx.Edit;
if t_qx['menu_xz'] then t_qx['menu_xz']:=false
else t_qx['menu_xz']:=true;
t_qx.Post;
t_qx.Requery;
t_qx.RecNo:=recound;//还原到改动权限的记录
end;
end;
end;
procedure Tf_user.DBGrid1CellClick(Column: TColumn);
begin
inherited;
f_user.sele_user;//过滤权限信息里的记录
end;
procedure Tf_user.B_delClick(Sender: TObject);
var
y:integer;
begin
inherited;
with dm do
begin
y:=application.MessageBox('您确认删除该用户码?','删除',mb_okcancel+mb_iconquestion);
if y=idok then
begin
//删除qx_info表中该用户的信息
t_qx.Filter:='user_name='''+t_user['name']+'''';
t_qx.Filtered:=true;
while not t_qx.Eof do
begin
t_qx.First;
t_qx.Edit;
t_qx.Delete;
end;
t_qx.Filtered:=false;
t_qx.Requery;
//删除user表中该用户的信息
t_user.Edit;
t_user.Delete;
t_user.Requery;
f_user.sele_user; //调用子过程——过滤用户权限
end; //endif
end; //with dm do 语句完毕
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -