usermanager.pas
来自「一个图书批发商的通用软件」· PAS 代码 · 共 197 行
PAS
197 行
unit UserManager;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dxExEdtr, dxEdLib, dxCntner, dxEditor, dxDBELib, StdCtrls,
ExtCtrls, dxTL, dxDBCtrl, dxDBGrid, ImgList, ComCtrls, ToolWin, DB, ADODB,
Mask, DBCtrls, dxDBTL, dxBar, dxBarExtItems;
type
TFrmUserManager = class(TForm)
Panel2: TPanel;
Panel1: TPanel;
Panel3: TPanel;
Bevel1: TBevel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label2: TLabel;
Bevel2: TBevel;
Label1: TLabel;
Panel4: TPanel;
DataSource1: TDataSource;
rbManager: TRadioButton;
rbMoney: TRadioButton;
rbHouse: TRadioButton;
qryUser: TADOQuery;
edtUserId: TDBEdit;
edtUserName: TDBEdit;
qryUserUserId: TWideStringField;
qryUserUserName: TWideStringField;
dxDBGrid1: TdxDBGrid;
dxDBGrid1UserId: TdxDBGridColumn;
dxDBGrid1UserName: TdxDBGridColumn;
qryUserUserPassword: TWideStringField;
qryUserUserPower: TWideStringField;
edtPasswordbak: TEdit;
edtPassword: TEdit;
dxBarManager1: TdxBarManager;
dxBarLargeButton1: TdxBarLargeButton;
dxBarLargeButton2: TdxBarLargeButton;
dxBarLargeButton3: TdxBarLargeButton;
dxBarLargeButton4: TdxBarLargeButton;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure qryUserAfterScroll(DataSet: TDataSet);
procedure qryUserBeforePost(DataSet: TDataSet);
procedure qryUserAfterPost(DataSet: TDataSet);
procedure dxBarLargeButton1Click(Sender: TObject);
procedure dxBarLargeButton3Click(Sender: TObject);
procedure dxBarLargeButton2Click(Sender: TObject);
procedure dxBarLargeButton4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmUserManager: TFrmUserManager;
procedure FrmUserManagerShow;
implementation
uses Data, unSystPublic;
{$R *.dfm}
procedure FrmUserManagerShow;
begin
FrmUserManager :=TFrmUserManager.Create(Application);
with FrmUserManager do
begin
try
ShowModal;
finally
Free;
end;
end;
end;
procedure TFrmUserManager.FormShow(Sender: TObject);
begin
with qryUser do
begin
Close;
SQL.Text :='Select * from tbUsers';
Open;
if not Locate('UserId',CurrentUserId,[loCaseInsensitive]) then
begin
Application.MessageBox('数据库错误',Title,MB_ICONWARNING);
Abort;
end;
if FieldByName('UserPower').AsString='1' then
rbManager.Checked :=true
else if FieldByName('UserPower').AsString='2' then
rbMoney.Checked :=true
else if FieldByName('UserPower').AsString='3' then
rbHouse.Checked :=true;
end;
end;
procedure TFrmUserManager.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
qryUser.Close;
end;
procedure TFrmUserManager.qryUserAfterScroll(DataSet: TDataSet);
begin
with qryUser do
begin
if FieldByName('UserPower').AsString='1' then
rbManager.Checked :=true
else if FieldByName('UserPower').AsString='2' then
rbMoney.Checked :=true
else if FieldByName('UserPower').AsString='3' then
rbHouse.Checked :=true;
end;
end;
procedure TFrmUserManager.qryUserBeforePost(DataSet: TDataSet);
begin
if edtUserId.Text ='' then
begin
Application.MessageBox('登陆名不能为空',Title,MB_ICONWARNING);
Abort;
end else
begin
with dmData.qryTemp do
begin
Close;
SQL.Text :='select * from tbUsers where UserId='''+edtUserId.Text+'''';
Open;
if (not IsEmpty)and(state in[dsEdit]) then
begin
Application.MessageBox('登陆名不能重复',Title,MB_ICONWARNING);
Abort;
end;
end;
end;
if edtPassword.Text<>edtPasswordbak.Text then
begin
Application.MessageBox('口令和确认口令不一致',Title,MB_ICONWARNING);
Abort;
end;
with qryUser do
begin
FieldByName('UserPassWord').AsString :=edtPassword.Text;
if rbManager.Checked then
FieldByName('UserPower').AsString :='1'
else if rbMoney.Checked then
FieldByName('UserPower').AsString :='2'
else if rbHouse.Checked then
FieldByName('UserPower').AsString :='3';
end;
edtUserId.Color :=clBtnFace;
edtUserId.ReadOnly :=True;
end;
procedure TFrmUserManager.qryUserAfterPost(DataSet: TDataSet);
begin
edtPassword.Text :='';
edtPasswordbak.Text :='';
end;
procedure TFrmUserManager.dxBarLargeButton1Click(Sender: TObject);
begin
edtUserId.Color :=clWhite;
edtUserId.ReadOnly :=False;
edtPassword.Text :='';
edtPasswordbak.Text :='';
edtUserId.SetFocus;
qryUser.Append;
edtUserId.SetFocus;
end;
procedure TFrmUserManager.dxBarLargeButton3Click(Sender: TObject);
begin
if Application.MessageBox('真的要删除此用户吗?',title,MB_ICONQUESTION+MB_YESNO)=idyes then
qryUser.Delete;
end;
procedure TFrmUserManager.dxBarLargeButton2Click(Sender: TObject);
begin
qryUser.Edit;
qryUser.Post;
end;
procedure TFrmUserManager.dxBarLargeButton4Click(Sender: TObject);
begin
qryUser.Close;
close;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?