📄 unituserconfg.pas
字号:
unit UnitUserConfg;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, ExtCtrls, XPMenu, Grids, DBGrids, Buttons,
ToolWin, CheckLst;
type
Tfrm_UserConfg = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
XPMenu1: TXPMenu;
Panel1: TPanel;
Edit_Login_Type: TComboBox;
Label1: TLabel;
Edit_Login_Name: TLabeledEdit;
Edit_Login_Pwd: TLabeledEdit;
ToolBar2: TToolBar;
Cmd_Add: TSpeedButton;
Cmd_Delete: TSpeedButton;
Cmd_Update: TSpeedButton;
Cmd_Save: TSpeedButton;
Cmd_Rush: TSpeedButton;
DBGrid1: TDBGrid;
Edit_ID: TEdit;
Panel2: TPanel;
Label2: TLabel;
Edit_RLogin_Type: TComboBox;
Edit1: TEdit;
Edit_RLogin_Name: TComboBox;
Label3: TLabel;
Panel3: TPanel;
BtOk: TSpeedButton;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
GroupBox1: TGroupBox;
CheckListBox1: TCheckListBox;
procedure Cmd_AddClick(Sender: TObject);
procedure Cmd_SaveClick(Sender: TObject);
procedure Cmd_RushClick(Sender: TObject);
procedure Cmd_DeleteClick(Sender: TObject);
procedure Cmd_UpdateClick(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure BtOkClick(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure Edit_RLogin_NameChange(Sender: TObject);
private
{ Private declarations }
procedure UserBrush;
public
{ Public declarations }
end;
var
frm_UserConfg: Tfrm_UserConfg;
tempPwd:String;
Right :string;//局部权限定义
implementation
uses UnitkeyCryptClass, UnitDataModule, UnitPublic;
{$R *.dfm}
procedure Tfrm_UserConfg.UserBrush;
begin
with frm_DataModule.ADO_QuerySearch do
begin
Close;
Sql.Clear;
Sql.Add('Select * from [Chang]');
try
Open;
if RecordCount>0 then
begin
frm_DataModule.DataSourceSearch.DataSet:=frm_DataModule.ADO_QuerySearch;
frm_DataModule.DataSourceSearch.Enabled:=True;
DBGrid1.DataSource:=frm_DataModule.DataSourceSearch;
DBGrid1.Columns[0].Title.Caption:='自动编号';
DBGrid1.Columns[1].Title.Caption:='用户类型';
DBGrid1.Columns[2].Title.Caption:='用户姓名';
DBGrid1.Columns[3].Title.Caption:='用户口令';
Edit_Login_Type.Text:=FieldByname('Login_Type').AsVariant;
Edit_Login_Name.Text:=FieldByname('Login_Name').AsVariant;
Edit_Login_Pwd.Text :=FieldByname('Login_Pwd').AsVariant;
Edit_ID.Text :=FieldByname('ID').AsVariant;
Cmd_Add.Enabled:=True;
Cmd_Save.Enabled:=False;
Cmd_Delete.Enabled:=True;
Cmd_Update.Enabled:=True;
end
else
begin
frm_DataModule.DataSourceSearch.Enabled:=False;
Cmd_Add.Enabled:=True;
Cmd_Save.Enabled:=False;
Cmd_Delete.Enabled:=False;
Cmd_Update.Enabled:=False;
end;
except
Application.MessageBox('系统错误,不能连接数据库服务器!',Pchar(Application.Title),MB_ICONWARNING);
Exit;
end;
end;
end;
procedure Tfrm_UserConfg.Cmd_AddClick(Sender: TObject);
begin
Cmd_Add.Enabled:=False;
Cmd_Delete.Enabled:=False;
Cmd_Update.Enabled:=False;
Cmd_Save.Enabled:=True;
Cmd_Rush.Caption:='取消(&E)';
Edit_ID.Text :='';
Edit_Login_Type.Text:='';
Edit_Login_Name.Text:='';
Edit_Login_Pwd.Text :='';
end;
procedure Tfrm_UserConfg.Cmd_SaveClick(Sender: TObject);
begin
with frm_DataModule.ADO_QuerySearch do
begin
Close;
Sql.Clear;
Sql.Add('Select * from [Chang] where Login_Type=:u0 and Login_Name=:u1');
Parameters[0].Value:=Trim(Edit_Login_Type.Text);
Parameters[1].Value:=Trim(Edit_Login_Name.Text);
try
Open;
if RecordCount=0 then
begin
with frm_DataModule.ADO_QueryInsert do
begin
tempPwd:=Decrypt(trim(Edit_Login_Pwd.Text),'luersoft'); //加密码
Close;
Sql.Clear;
Sql.Add('Insert into [Chang] (Login_Type,Login_Name,Login_Pwd) values (:u0,:u1,:u2)');
Parameters[0].Value:=Trim(Edit_Login_Type.Text);
Parameters[1].Value:=Trim(Edit_Login_Name.Text);
Parameters[2].Value:=Trim(tempPwd);
try
ExecSql;
UserBrush;
except
Application.MessageBox('保存记录失败,不能连接数据库服务器!',Pchar(Application.Title),MB_ICONWARNING);
Exit;
end;
end;
end
else
begin
UserBrush;
Application.MessageBox('操作错误,不能保存重复的记录!',Pchar(Application.Title),MB_ICONWARNING);
Exit;
end;
except
Application.MessageBox('系统错误,不能连接数据库服务器!',Pchar(Application.Title),MB_ICONWARNING);
Exit;
end;
end;
end;
procedure Tfrm_UserConfg.Cmd_RushClick(Sender: TObject);
begin
UserBrush;
end;
procedure Tfrm_UserConfg.Cmd_DeleteClick(Sender: TObject);
begin
if Application.MessageBox('确定需要删除该记录吗?',Pchar(Application.Title),mb_OKCancel)=IDOK then
begin
with frm_DataModule.ADO_QueryDelete do
begin
Close;
Sql.Clear;
Sql.Add('Delete from [Chang] where ID=:u1');
Parameters[0].Value:=Trim(Edit_ID.Text);
try
ExecSql;
UserBrush;
except
Application.MessageBox('删除记录失败,不能连接数据库服务器!',Pchar(Application.Title),MB_ICONWARNING);
Exit;
end;
end;
end;
end;
procedure Tfrm_UserConfg.Cmd_UpdateClick(Sender: TObject);
begin
if Application.MessageBox('确定需要修改该记录吗?',Pchar(Application.Title),mb_OKCancel)=IDOK then
begin
with frm_DataModule.ADO_QueryDelete do
begin
tempPwd:=Decrypt(trim(Edit_Login_Pwd.Text),'luersoft'); //加密码
Close;
Sql.Clear;
Sql.Add('Update [Chang] set Login_Type=:u0,Login_Name=:u1,Login_Pwd=:u2 where ID=:u3');
Parameters[0].Value:=Trim(Edit_Login_Type.Text);
Parameters[1].Value:=Trim(Edit_Login_Name.Text);
Parameters[2].Value:=Trim(tempPwd);
Parameters[3].Value:=Trim(Edit_ID.Text);
try
ExecSql;
UserBrush;
except
Application.MessageBox('修改记录失败,不能连接数据库服务器!',Pchar(Application.Title),MB_ICONWARNING);
Exit;
end;
end;
end;
end;
procedure Tfrm_UserConfg.DBGrid1CellClick(Column: TColumn);
begin
Edit_Login_Type.Text:=frm_DataModule.ADO_QuerySearch.FieldByname('Login_Type').AsVariant;
Edit_Login_Name.Text:=frm_DataModule.ADO_QuerySearch.FieldByname('Login_Name').AsVariant;
Edit_Login_Pwd.Text :=frm_DataModule.ADO_QuerySearch.FieldByname('Login_Pwd').AsVariant;
Edit_ID.Text :=frm_DataModule.ADO_QuerySearch.FieldByname('ID').AsVariant;
end;
procedure Tfrm_UserConfg.BtOkClick(Sender: TObject);
var
i:Integer;
begin
if trim(Edit_RLogin_Type.Text)='' then
begin
Application.MessageBox('操作失败,【用户类型】不能为空,请确认!',Pchar(application.Title),MB_ICONWarning);
RadioButton1.Checked:=false;
Exit;
end;
if trim(Edit_RLogin_Name.Text)='' then
begin
Application.MessageBox('操作失败,【用户姓名】不能为空,请确认!',Pchar(application.Title),MB_ICONWarning);
RadioButton1.Checked:=false;
Exit;
end;
with frm_DataModule.ADO_QueryLogin do
begin
Close;
Sql.Clear;
Sql.Add('delete [UserRight] where Login_Type=:u0 and Login_Name=:u1');
Parameters[0].Value:=Trim(Edit_Login_Type.Text);
Parameters[1].Value:=Trim(Edit_Login_Name.Text);
Try
Prepared;
ExecSql;
for i:=0 to checklistbox1.Items.Count-1 do
begin
if checklistbox1.Checked[i] then
begin
with frm_DataModule.ADO_QueryRight do
begin
Close;
Sql.Clear;
Sql.Add('insert into [UserRight] (Login_Type,Login_Name,Right_Name) values (:u0,:u1,:u2)');
Parameters[0].Value:=Trim(Edit_RLogin_Type.Text);
Parameters[1].Value:=Trim(Edit_RLogin_Name.Text);
Parameters[1].Value:=checklistbox1.Items[i];
Try
Prepared;
ExecSql;
Except
Application.MessageBox('系统错误,系统在保存数据表【User_Right】时出错!,请确认!',Pchar(application.Title),MB_ICONWarning);
Exit;
End;
end;
end;
end;
Application.MessageBox('权限设置完成!请确认!',Pchar(application.Title),MB_ICONWarning);
Except
Application.MessageBox('系统错误,系统在删除数据表【User_Right】时出错!,请确认!',Pchar(application.Title),MB_ICONWarning);
Exit;
End;
end;
end;
procedure Tfrm_UserConfg.RadioButton1Click(Sender: TObject);
var
i:Integer;
begin
if trim(Edit_RLogin_Name.Text)='' then
begin
Application.MessageBox('操作失败,【用户姓名】不能为空,请确认!',Pchar(application.Title),MB_ICONWarning);
RadioButton1.Checked:=false;
exit;
end
else
begin
for i:=0 to checklistbox1.Count-1 do
begin
Checklistbox1.Checked[i]:=true;
end;
end;
end;
procedure Tfrm_UserConfg.RadioButton2Click(Sender: TObject);
var
i:Integer;
begin
for i:=0 to checklistbox1.Count-1 do
begin
Checklistbox1.Checked[i]:=False;
end;
end;
procedure Tfrm_UserConfg.Edit_RLogin_NameChange(Sender: TObject);
var
i:Integer;
begin
//
//**************************************************************************
//把符合条件的用户ID过滤出来并加载到文本筐里
with frm_DataModule.ADO_QueryRight do
begin
Close;
Sql.Clear;
Sql.Add('SELECT * FROM [Chang] WHERE Login_Type='''+Trim(Edit_RLogin_Type.Text)+'''');
Try
Prepared;
Open;
Edit_RLogin_Name.Text:=FieldByName('Login_Name').AsString;
Except
Application.MessageBox('系统错误!在打开数据表【Chang】时与远程服务器连接错误!请确认!',Pchar(Application.Title),MB_ICONWARNing);
Exit;
End
end;
//**************************************************************************
//
//--------------------------------------------------------------------------
//提取现有权限
with frm_DataModule.ADO_QueryRight do
begin
Close;
Sql.Clear;
Sql.Add('Select * from [UserRight] where Login_Type=:u0 and Login_Name=:u1');
Parameters[0].Value:=Trim(Edit_Login_Type.Text);
Parameters[1].Value:=Trim(Edit_Login_Name.Text);
Try
Prepared;
Open;
RightStr:='';
if RecordCount>0 then
begin
First;
while not Eof do
begin
Right:=Right+FieldByName('Right_Name').AsString+',';
Next ;
end;
for i:=0 to checklistbox1.Count-1 do
begin
if pos(checklistbox1.Items.Strings[i],right)>0 then
begin
checklistbox1.Checked[i]:=true
end
else
begin
checklistbox1.Checked[i]:=false;
end;
end;
end
else
begin
for i:=0 to checklistbox1.Count-1 do
begin
checklistbox1.Checked[i]:=false;
end;
end;
Except
Application.MessageBox('系统错误!在打开数据表【User_Right】时与远程服务器连接错误!请确认!',Pchar(Application.Title),MB_ICONWARNing);
Exit;
End;
end;
//--------------------------------------------------------------------------
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -