?? urightssetting.pas
字號:
unit uRightsSetting;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, ExtCtrls, dbtables, Buttons,ADODB;
type
TfrmRightSetting = class(TForm)
Panel3: TPanel;
Label1: TLabel;
btnCancel: TSpeedButton;
GroupBox1: TGroupBox;
ListView1: TListView;
btnDelete: TButton;
GroupBox2: TGroupBox;
GroupBox4: TGroupBox;
edtUsername: TEdit;
edtPassword: TEdit;
StaticText1: TStaticText;
StaticText2: TStaticText;
StaticText3: TStaticText;
btnOK: TButton;
chkNewUser: TCheckBox;
cmbLevel: TComboBox;
procedure ListView1Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
procedure ListView1Click(Sender: TObject);
procedure btnOKClick(Sender: TObject);
procedure btnDeleteClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure chkNewUserClick(Sender: TObject);
// procedure FrameClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure RefreshUser;
function GetUserPwd(UserName : string):string;
function CheckExistUserName(UserName : string):boolean;
procedure InsUser(UserName,UserPwd:string;Power : integer);
procedure UpdateUser(UserName,UserPwd:string;Power : integer);
procedure DelUser(UserName : string);
//constructor Create(AOwner : TComponent);override;
end;
var
frmRightSetting: TfrmRightSetting;
implementation
uses Main,uPublic, uDB;
{$R *.DFM}
//查詢操作者表中用戶的列表并顯示
procedure TfrmRightSetting.RefreshUser;
var
Query : TADOQuery;
begin
Query := TADOQuery.Create(nil);
Query.Connection := dmWarehouse.ACWarehouse ;
Query.SQL.Add('select * from Operator order by Class ');
Query.Open;
ListView1.Items.Clear;
while not Query.Eof do
begin
with ListView1.Items.Add do
begin
Caption := Query.FieldByName('UserName').AsString;
SubItems.Add(Query.FieldByName('Class').AsString);
end;
Query.Next;
end;
Query.Close;
Query.Free;
end;
//在操作者表中根據用戶名得到用戶密碼
function TfrmRightSetting.GetUserPwd(UserName: string): string;
var
Query : TADOQuery;
begin
try
Query := TADOQuery.Create(nil);
Query.Connection := dmWarehouse.ACWarehouse ;
Query.SQL.Add('select UserPwd from Operator where UserName =:UserName');
Query.Parameters.ParamByName('UserName').value:= UserName;
Query.Open;
Result := Query.FieldByName('UserPwd').AsString;
Query.Close;
Query.Free;
except
Result := '';
end;
end;
procedure TfrmRightSetting.ListView1Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
begin
if ListView1.Selected <> nil then
begin
edtUsername.Text := ListView1.Selected.Caption;
edtPassword.Text := GetUserPwd(edtUsername.Text);
cmbLevel.ItemIndex := StrToInt(ListView1.Selected.SubItems.Strings[0]);
end;
end;
//在列表中選擇相應的用戶信息進行編輯
procedure TfrmRightSetting.ListView1Click(Sender: TObject);
begin
chkNewuser.Checked := false;
chkNewuserClick(Sender);
if ListView1.Selected <> nil then
begin
edtUsername.Text := ListView1.Selected.Caption;
edtPassword.Text := GetUserPwd(edtUsername.Text);
cmbLevel.ItemIndex := StrToInt(ListView1.Selected.SubItems.Strings[0]);
end;
end;
function TfrmRightSetting.CheckExistUserName(UserName: string): boolean;
var
Query : TADOQuery;
begin
try
Query := TADOQuery.Create(nil);
Query.Connection := dmWarehouse.ACWarehouse;
Query.SQL.Add('select UserName from Operator where UserName =:UserName');
Query.Parameters.ParamByName('UserName').Value := UserName;
Query.Open;
Result := Query.RecordCount >0;
Query.Close;
Query.Free;
except
Result := False;
end;
end;
//在操作者表中delete特定的用戶
procedure TfrmRightSetting.DelUser(UserName: string);
var
Query : TADOQuery;
begin
Query := TADOQuery.Create(nil);
Query.Connection := dmWarehouse.ACWarehouse ;
Query.SQL.Add('delete from Operator where UserName =:UserName');
Query.Parameters.ParamByName('UserName').value:= UserName;
Query.ExecSQL;
Query.Free;
end;
//在操作者表中insert新的用戶
procedure TfrmRightSetting.InsUser(UserName, UserPwd: string; Power: integer);
var
Query : TADOQuery;
begin
Query := TADOQuery.Create(nil);
Query.Connection := dmWarehouse.ACWarehouse ;
Query.SQL.Add('insert into Operator(UserName,UserPwd,Class) '+
'values(:UserName,:UserPwd,:Class)');
Query.Parameters.ParamByName('UserName').value := UserName;
Query.Parameters.ParamByName('UserPwd').value := UserPwd;
Query.Parameters.ParamByName('Class').value:= Power;
Query.ExecSQL;
Query.Free;
end;
procedure TfrmRightSetting.UpdateUser(UserName, UserPwd: string; Power: integer);
var
Query : TADOQuery;
begin
Query := TADOQuery.Create(nil);
Query.Connection := dmWarehouse.ACWarehouse;
Query.SQL.Add('update Operator set UserPwd=:UserPwd,Class=:Class'+
' where UserName=:UserName');
Query.Parameters.ParamByName('UserName').value := UserName;
Query.Parameters.ParamByName('UserPwd').value := UserPwd;
Query.Parameters.ParamByName('Class').value:= Power;
Query.ExecSQL;
Query.Free;
end;
//添加或者修改用戶信息
procedure TfrmRightSetting.btnOKClick(Sender: TObject);
begin
//添加新的用戶
if chkNewuser.Checked then
begin
if CheckExistUserName(edtUsername.Text) then
begin
MessageDlg('此用戶已經存在',mtError,[mbok],0);
Exit;
end;
try
InsUser(edtUsername.Text,edtPassword.Text,cmbLevel.ItemIndex);
except
MessageDlg('新建用戶出錯',mtError,[mbok],0);
Exit;
end;
end;
//修改用戶信息
if chkNewuser.Checked=false then
begin
try
UpdateUser(edtUsername.Text,edtPassword.Text,cmbLevel.ItemIndex);
except
MessageDlg('修改用戶出錯',mtError,[mbok],0);
Exit;
end;
end;
edtUsername.Text := '';
edtPassword.Text := '';
cmbLevel.ItemIndex := 2;
RefreshUser;
end;
//刪除指定用戶
procedure TfrmRightSetting.btnDeleteClick(Sender: TObject);
var
i : integer;
begin
for i := ListView1.Items.Count -1 downto 0 do
if ListView1.Items[i].Selected then
try
DelUser(ListView1.Items[i].Caption);
ListView1.Items.Delete(i);
except
MessageDlg('刪除用戶<'+ListView1.Items[i].Caption+'>出錯',mtError,[mbok],0);
end;
end;
procedure TfrmRightSetting.FormCreate(Sender: TObject);
begin
try
RefreshUser;
except
ListView1.Items.Clear;
MessageDlg('得到用戶信息出錯',mtError,[mbok],0);
end;
cmbLevel.ItemIndex := 2;
end;
procedure TfrmRightSetting.btnCancelClick(Sender: TObject);
begin
close;
end;
//新建用戶時,可以對用戶編輯框進行編輯,反之,不可以編輯。
procedure TfrmRightSetting.chkNewUserClick(Sender: TObject);
begin
if chkNewuser.Checked = true then
begin
edtUsername.Enabled :=true;
edtUsername.Text := '';
edtPassword.Text := '';
end;
if chkNewuser.Checked = false then
begin
edtUsername.Enabled := false;
edtUsername.Text := '';
edtPassword.Text := '';
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -