?? usermanageru.pas
字號(hào):
unit UserManagerU;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Buttons,ADODB,DB,Menus,StrUtils;
type
TUserManagerF = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
GroupBox1: TGroupBox;
ListView1: TListView;
GroupBox2: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
BitBtn1: TBitBtn;
GroupBox3: TGroupBox;
Edit1: TEdit;
Edit2: TEdit;
StaticText1: TStaticText;
StaticText2: TStaticText;
BitBtn2: TBitBtn;
BitBtn5: TBitBtn;
GroupBox4: TGroupBox;
ListView2: TListView;
StaticText3: TStaticText;
GroupBox5: TGroupBox;
Edit3: TEdit;
StaticText4: TStaticText;
Edit4: TEdit;
BitBtn6: TBitBtn;
StaticText5: TStaticText;
RadioButton3: TRadioButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure ListView1Click(Sender: TObject);
procedure TabSheet2Show(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
procedure RadioButton2Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
{ Private declarations }
procedure WMNCPaint(var Msg : TWMNCPaint); message WM_NCPAINT;
public
{ Public declarations }
procedure GetMenuName; //獲得菜單名
procedure GetUserName; //獲得用戶名
function SaveUserPurview(username,userpass:string):boolean; //保存用戶權(quán)限
function Check:boolean;
function DeleteUser(username:string):boolean; //刪除用戶
end;
var
UserManagerF: TUserManagerF;
a:integer;
implementation
uses DataModule,MainU, ExportExcelU, BookQueryU,ShareU;
{$R *.dfm}
procedure TUserManagerF.WMNCPaint(var Msg: TWMNCPaint);
begin
inherited;
draw(UserManagerF);
end;
function TUserManagerF.DeleteUser(username:string):boolean;
var
Query:TADOQuery;
begin
Query:=TADOQuery.Create(self);
Query.Connection:=dm.ADOConnection1;
try
dm.ADOConnection1.BeginTrans;
Query.SQL.Text:='delete from user_info where username=:name ';
Query.Parameters.ParamByName('name').Value:=username;
Query.ExecSQL;
Query.SQL.Clear;
Query.SQL.Text:='delete from user_purview where username=:name ';
Query.Parameters.ParamByName('name').Value:=username;
Query.ExecSQL;
dm.ADOConnection1.CommitTrans;
result:=true;
except
dm.ADOConnection1.RollbackTrans;
result:=false;
end;
Query.Close;
Query.Free;
end;
procedure TUserManagerF.GetUserName;
var
Query:TADOQuery;
begin
listview1.Items.Clear;
Query:=TADOQuery.Create(self);
Query.Connection:=dm.ADOConnection1;
Query.SQL.Text:='select username from user_info ';
Query.Open;
Query.First;
while not query.Eof do
begin
with listview1.Items.Add do
begin
Caption:=Query.FieldValues['username'];
end;
query.Next;
end;
query.Close;
query.Free;
end;
procedure TUserManagerF.GetMenuName;
function GetMenuLen(menuid:string):string; //獲得菜單ID長(zhǎng)度判斷極次
begin
if length(menuid) =4 then
result:='1'
else if length(menuid) =6 then
result:='2'
else if length(menuid) =8 then
result:='3';
end;
procedure GetUserMenu; //獲得用戶可用菜單
var
i:integer;
begin
for i:=0 to listview2.Items.Count -1 do
begin
if dm.CCheckID('select username from user_purview where username='''+
trim(edit1.Text)+''' and menuid='''+
trim(listview2.Items.Item[i].Caption)+'''') then
listview2.Items.Item[i].Checked:=true;
end;
end;
var
Query,Query1:TADOQuery;
i:integer;//判斷
begin
listview2.Items.Clear;
Query:=TADOQuery.Create(self);
Query.Connection:=dm.ADOConnection1;
Query1:=TADOQuery.Create(self);
Query1.Connection:=dm.ADOConnection1;
Query.SQL.Text:='select MenuID,MenuName from Menu_info';
Query.Open;
query.First;
while not Query.Eof do
begin
if (mainf.FindComponent(Query.FieldValues['MenuName'])<> nil) and
(GetMenuLen(trim(query.FieldValues['MenuID']))= '1') then
begin
Query1.SQL.Text:='select MenuName,MenuID from Menu_info where '+
'left(MenuID,4)=:id and len(menuid)>4';
query1.Parameters.ParamByName('id').Value:=Query.FieldValues['MenuID'];
query1.Open;
i:=0;
while not query1.Eof do
with ListVIew2.Items.Add do
begin
if i=0 then
begin
Caption:=leftstr(Query1.FieldValues['MenuID'],4);
SubItems.Add((mainf.FindComponent(Query.FieldValues['MenuName'])
as tmenuitem).Caption);
end
else
begin
Caption:=Query1.FieldValues['MenuID'];
SubItems.Add(' '+(mainf.FindComponent(Query1.FieldValues['MenuName'])
as tmenuitem).Caption);
query1.Next;
end;
end;
inc(i);
end;
end;
Query.Next;
end;
GetUserMenu;
query1.Close;
query1.Free;
Query.Close;
Query.Free;
end;
procedure TUserManagerF.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
UserManagerF:=nil;
action:=cafree;
end;
procedure TUserManagerF.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure TUserManagerF.FormCreate(Sender: TObject);
begin
caption:='用戶管理';
Icon:=mainf.Icon;
GetMenuName;
GetUserName;
end;
function TUserManagerF.SaveUserPurview(username,userpass:string):boolean;
var
Query:TADOQuery;
begin
Query:=TADOQuery.Create(self);
Query.Connection:=dm.ADOConnection1;
try
dm.ADOConnection1.BeginTrans;
if radiobutton1.Checked then
begin
Query.SQL.Text:='insert into User_Info (username,userpassword) '+
'values (:name,:pass)';
Query.Parameters.ParamByName('name').Value:=username;
Query.Parameters.ParamByName('pass').Value:=userpass;
Query.ExecSQL;
end;
Query.SQL.Clear;
Query.SQL.Text:='delete from User_Purview where UserName=:name';
Query.Parameters.ParamByName('name').Value:=username;
Query.ExecSQL;
for i:=0 to listview2.Items.Count-1 do
if listview2.Items.Item[i].Checked then
begin
Query.SQL.Clear;
Query.SQL.Text:='insert into User_Purview (username,menuid) values (:name,:id)';
Query.Parameters.ParamByName('name').Value:=username;
Query.Parameters.ParamByName('id').Value:=trim(listview2.Items.Item[i].Caption);
Query.ExecSQL;
end;
dm.ADOConnection1.CommitTrans;
result:=true;
except
dm.ADOConnection1.RollbackTrans;
result:=false;
end;
Query.Close;
Query.Free;
end;
procedure TUserManagerF.BitBtn5Click(Sender: TObject);
begin
if SaveUserPurview(trim(edit3.Text),trim(edit2.Text)) then
begin
application.messagebox('保存成功!','提示!');
tabsheet1.Show;
edit1.Text:='';
edit2.Text:='';
edit4.Text:='';
edit3.Text:='';
radiobutton3.Checked:=true;
end
else
application.messagebox('保存失敗!','提示!');
end;
procedure TUserManagerF.ListView1Click(Sender: TObject);
begin
if not radiobutton1.Checked then
if listview1.Selected<>nil then
begin
edit1.Text:=listview1.Selected.Caption;
end;
end;
procedure TUserManagerF.TabSheet2Show(Sender: TObject);
begin
edit3.Text:=trim(edit1.Text);
if edit3.Text='' then
bitbtn5.Enabled:=false
else
bitbtn5.Enabled:=true;
GetMenuName;
end;
procedure TUserManagerF.RadioButton1Click(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
edit4.Text:='';
bitbtn6.Enabled:=false;
bitbtn1.Enabled:=true;
bitbtn5.Enabled:=true;
end;
function TUserManagerF.Check:boolean;
begin
if radiobutton1.Checked then
begin
if edit1.Text='' then
begin
application.MessageBox('請(qǐng)輸入添加的用戶名!','提示!');
edit1.SetFocus;
result:=false;
exit;
end
else
begin
if dm.CCheckID('select username from user_info where username='''+
trim(edit1.Text)+'''') then
begin
application.MessageBox('已有此用戶名,請(qǐng)重新輸入 !','提示!');
edit1.SetFocus;
result:=false;
exit;
end;
end;
if edit2.Text='' then
begin
application.MessageBox('請(qǐng)輸入添加新用戶的密碼!','提示!');
edit2.SetFocus;
result:=false;
exit;
end;
if edit4.Text='' then
begin
application.MessageBox('請(qǐng)輸入新用戶密碼確認(rèn) !','提示!');
edit4.SetFocus;
result:=false;
exit;
end;
if edit2.Text <>edit4.Text then
begin
application.MessageBox('密碼核對(duì)不正確,重新輸入確認(rèn)密碼 !','提示!');
edit4.SetFocus;
result:=false;
exit;
end;
end;
result:=true;
end;
procedure TUserManagerF.BitBtn1Click(Sender: TObject);
begin
if check then
tabsheet2.Show;
end;
procedure TUserManagerF.RadioButton3Click(Sender: TObject);
begin
edit1.SetFocus;
statictext1.Caption:='舊密碼:';
statictext5.Caption:='新密碼:';
end;
procedure TUserManagerF.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
if (pagecontrol1.ActivePage = tabsheet1) and (not check) then
allowchange:=false;
end;
procedure TUserManagerF.RadioButton2Click(Sender: TObject);
begin
bitbtn1.Enabled:=false;
bitbtn6.Enabled:=true;
bitbtn5.Enabled:=false;
end;
procedure TUserManagerF.BitBtn6Click(Sender: TObject);
begin
if messagedlg('確認(rèn)刪除嗎!',mtconfirmation,[mbyes,mbno],0)=mryes then
begin
if DeleteUser(trim(edit1.Text)) then
begin
edit1.Text:='';
edit2.Text:='';
bitbtn6.Enabled:=false;
radiobutton3.Checked:=true;
bitbtn1.Enabled:=true;
GetUserName;
end;
end;
end;
procedure TUserManagerF.BitBtn3Click(Sender: TObject);
begin
if tabsheet1.Showing=true then
ExportExcelListView:=listview1.Name
else if tabsheet2.Showing=true then
ExportExcelListView:=listview2.name;
OpenForm(TExportExcelF,ExportExcelF,UserManagerF,true);
end;
end.
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -