📄 qxwhm.pas
字号:
unit QxWhM;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, StdCtrls, DBCtrls, Buttons, ComCtrls, Mask;
type
TQxWh = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn4: TBitBtn;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
ListBox1: TDBLookupListBox;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
Button1: TButton;
Button2: TButton;
UserList1: TDBLookupListBox;
GrBox2: TDBLookupComboBox;
UserList2: TDBLookupListBox;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
procedure Edit1Change(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure GrBox2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit4KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn4Click(Sender: TObject);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
QxWh: TQxWh;
implementation
uses datamz,datamz2;
{$R *.DFM}
procedure TQxWh.Edit1Change(Sender: TObject);
begin
if (edit1.text<>'') and (trim(edit1.Text)<>'') then
bitbtn1.Enabled:=true
else
bitbtn1.Enabled:=false;
end;
procedure TQxWh.BitBtn1Click(Sender: TObject);
begin
if edit2.Text<>edit3.Text then
begin
showmessage('两次口令输入不相符!');
exit;
end;
Datamzf2.AdmiCommand1.CommandText:='exec sp_addlogin '+''''
+edit1.text+''''+','+''''+edit2.text+'''';
Datamzf2.AdmiCommand2.CommandText:='exec sp_adduser '+''''
+edit1.text+''''+','+'''' +edit1.text+''''+','+''''
+'西药局'+'''';
datamzf.XyMzValiConnection.BeginTrans;
try
datamzf2.AdmiCommand1.Execute;
datamzf2.AdmiCommand2.Execute;
datamzf.XyMzValiConnection.CommitTrans;
showmessage('添加用户成功!');
GrBox2.KeyValue:=0;
datamzf2.UserQuery2.Active:=false;
datamzf2.UserQuery.active:=false;
datamzf2.UserQuery.active:=true;
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
except
datamzf.XyMzValiConnection.RollbackTrans;
showmessage('操作失败,可能与其他用户名重复,权限不够!');
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
end;
end;
procedure TQxWh.BitBtn2Click(Sender: TObject);
var
ms:integer;
begin
if (trim(listbox1.SelectedItem)='') or (listbox1.SelectedItem='') then
begin
showmessage('请先选择用户名!');
exit;
end;
ms:=Application.messagebox('确定删除?','提示',MB_OKCANCEL);
if ms<>1 then
exit;
Datamzf2.AdmiCommand1.CommandText:='exec sp_dropuser '+''''
+listbox1.SelectedItem+'''';
datamzf2.AdmiCommand2.CommandText:='exec sp_droplogin '+''''
+listbox1.selectedItem+'''';
try
datamzf2.AdmiCommand1.Execute;
datamzf2.UserQuery.active:=false;
datamzf2.UserQuery.active:=true;
datamzf2.AdmiCommand2.Execute;
showmessage('删除用户成功!');
GrBox2.KeyValue:=0;
datamzf2.UserQuery2.Active:=false;
except
showmessage('操作失败!');
end;
end;
procedure TQxWh.GrBox2Click(Sender: TObject);
begin
with datamzf2.UserQuery2 do
begin
Active:=false;
Parameters.ParamByName('Useruid').value:=GrBox2.KeyValue;
Active:=true;
end;
end;
procedure TQxWh.Button1Click(Sender: TObject);
var
ms:integer;
begin
ms:=Application.messagebox('确定此操作?','提示',MB_OKCANCEL);
if ms<>1 then
exit;
if (UserList1.SelectedItem='') or
(trim(userList1.SelectedItem)='') or
(GrBox2.Text='') or
(trim(Grbox2.text)='') then
begin
showmessage('请正确选择工作组和用户!');
exit;
end;
datamzf2.AdmiCommand1.CommandText:='exec sp_addrolemember '+
GrBox2.text+','+UserList1.SelectedItem;
datamzf2.AdmiCommand1.CommandText:='exec sp_addrolemember '+
GrBox2.text+','+UserList1.SelectedItem;
try
datamzf2.AdmiCommand1.Execute;
with datamzf2.UserQuery2 do
begin
Active:=false;
Parameters.ParamByName('Useruid').value:=GrBox2.KeyValue;
Active:=true;
end;
except
showmessage('操作失败!');
end;
end;
procedure TQxWh.Button2Click(Sender: TObject);
var
ms:integer;
begin
ms:=Application.messagebox('确定此操作?','提示',MB_OKCANCEL);
if ms<>1 then
exit;
if (UserList2.SelectedItem='') or
(trim(userList2.SelectedItem)='') then
begin
showmessage('请正确选择工作组和用户!');
exit;
end;
datamzf2.AdmiCommand1.CommandText:='exec sp_droprolemember '+
GrBox2.text+','+UserList2.SelectedItem;
datamzf2.AdmiCommand1.CommandText:='exec sp_droprolemember '+
GrBox2.text+','+UserList2.SelectedItem;
try
datamzf2.AdmiCommand1.Execute;
with datamzf2.UserQuery2 do
begin
Active:=false;
Parameters.ParamByName('Useruid').value:=GrBox2.KeyValue;
Active:=true;
end;
except
showmessage('操作失败!');
end;
end;
procedure TQxWh.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
case key of
#48..#57:
begin
if ord(key)+5>57 then
key:=char(ord(key)-5)
else
key:=char(ord(key)+5);
end;
#65..#90:
begin
if ord(key)+5>90 then
key:=char(ord(key)-21)
else
key:=char(ord(key)+5);
end;
#97..#122:
begin
if ord(key)+5>122 then
key:=char(ord(key)-21)
else
key:=char(ord(key)+5);
end;
#8:;
else
key:=#0;
end
end;
procedure TQxWh.BitBtn4Click(Sender: TObject);
begin
if edit4.text<>edit5.text then
begin
showmessage('口令与复合口令不符!');
exit;
end;
if edit6.Text='' then
Datamzf2.AdmiCommand1.CommandText:='exec sp_password null,'
+''''+edit4.text+''''
else
Datamzf2.AdmiCommand1.CommandText:='exec sp_password '+
''''+edit6.text+''''+','+''''+edit4.text+'''';
try
datamzf2.AdmiCommand1.Execute;
showmessage('操作成功!');
edit6.Text:='';
edit4.Text:='';
edit5.Text:='';
except
showmessage('操作失败!');
end;
end;
procedure TQxWh.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
case key of
#48..#57:
begin
if ord(key)+5>57 then
key:=char(ord(key)-5)
else
key:=char(ord(key)+5);
end;
#65..#90:
begin
if ord(key)+5>90 then
key:=char(ord(key)-21)
else
key:=char(ord(key)+5);
end;
#97..#122:
begin
if ord(key)+5>122 then
key:=char(ord(key)-21)
else
key:=char(ord(key)+5);
end;
#8:;
else
key:=#0;
end
end;
procedure TQxWh.FormCreate(Sender: TObject);
begin
datamzf2.UserQuery.Active:=true;
datamzf2.GroupQuery.Active:=true;
datamzf2.GrQuery2.Active:=true;
end;
procedure TQxWh.FormClose(Sender: TObject; var Action: TCloseAction);
begin
datamzf2.UserQuery.Active:=false;
datamzf2.GroupQuery.Active:=false;
datamzf2.UserQuery2.Active:=false;
datamzf2.GrQuery2.Active:=false;
QxWh.Release;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -