📄 unitusermanage.pas
字号:
unit UnitUserManage;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Buttons, Grids, DBGrids, Mask, DBCtrls,
CheckLst, ExtCtrls,ADODB;
type
TFrmUserManage = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
DBEdit2: TDBEdit;
Label3: TLabel;
DBEdit3: TDBEdit;
DBGrid1: TDBGrid;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label4: TLabel;
DBEdit4: TDBEdit;
Label5: TLabel;
DBEdit5: TDBEdit;
Label6: TLabel;
DBEdit6: TDBEdit;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
Label7: TLabel;
Label8: TLabel;
CheckListBox1: TCheckListBox;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
ListBox1: TListBox;
procedure DIS;
procedure CLS;
procedure ENA;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure CheckListBox1Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure PageControl1Change(Sender: TObject);
private
p_rights: array of array of string;
count: integer;
{ Private declarations }
public
{ Public declarations }
end;
var
FrmUserManage: TFrmUserManage;
implementation
uses UnitDM;
{$R *.dfm}
procedure TFrmUserManage.DIS;
var
i: integer;
begin
for i := 0 to componentcount - 1 do
begin
if (components[i] is TDBEdit) then
TDBEdit(components[i]).Enabled := false;
end;
end;
procedure TFrmUserManage.CLS;
var
i: integer;
begin
for i := 0 to componentcount - 1 do
begin
if (components[i] is TDBEdit) then
TDBEdit(components[i]).Clear;
end;
end;
procedure TFrmUserManage.ENA;
var
i: integer;
begin
for i := 0 to componentcount - 1 do
begin
if (components[i] is TDBEdit) then
TDBEdit(components[i]).Enabled := true;
end;
end;
procedure TFrmUserManage.BitBtn1Click(Sender: TObject);
begin
CLS;
ENA;
BitBtn4.Enabled := true;
BitBtn5.Enabled := true;
BitBtn2.Enabled := false;
BitBtn3.Enabled := false;
BitBtn6.Enabled := false;
with DM.ADOTCZY do
begin
append;
end;
end;
procedure TFrmUserManage.BitBtn2Click(Sender: TObject);
begin
ENA;
DM.ADOTCZY.Edit;
BitBtn1.Enabled := false;
BitBtn3.Enabled := false;
BitBtn4.Enabled := true;
BitBtn5.Enabled := true;
BitBtn6.Enabled := false;
end;
procedure TFrmUserManage.BitBtn3Click(Sender: TObject);
begin
DM.ADOTCZY.Delete;
BitBtn1.Enabled := false;
BitBtn2.Enabled := false;
BitBtn4.Enabled := true;
BitBtn5.Enabled := true;
BitBtn6.Enabled := false;
ENA;
end;
procedure TFrmUserManage.BitBtn4Click(Sender: TObject);
begin
DM.ADOTCZY.Post;
BitBtn1.Enabled := true;
BitBtn2.Enabled := true;
BitBtn3.Enabled := true;
BitBtn4.Enabled := false;
BitBtn5.Enabled := false;
BitBtn6.Enabled := true;
DIS;
end;
procedure TFrmUserManage.BitBtn5Click(Sender: TObject);
begin
DM.ADOTCZY.Cancel;
BitBtn1.Enabled := true;
BitBtn2.Enabled := true;
BitBtn3.Enabled := true;
BitBtn4.Enabled := false;
BitBtn5.Enabled := false;
BitBtn6.Enabled := true;
CLS;
DIS;
end;
procedure TFrmUserManage.BitBtn6Click(Sender: TObject);
begin
self.Close;
DM.ADOTCZY.Close;
end;
procedure TFrmUserManage.FormShow(Sender: TObject);
begin
DM.ADOTCZY.Close;
DM.ADOTCZY.Open;
CLS;
ENA;
end;
procedure TFrmUserManage.ListBox1Click(Sender: TObject);
var
S_rights: string;
I_index: integer;
begin
inherited;
if (Listbox1.itemindex < 0) or (Listbox1.itemindex > count) then
begin
CheckListbox1.Enabled := false;
exit;
end
else
checklistbox1.Enabled := true;
S_rights := P_rights[1, listbox1.itemindex];
if length(S_rights) <> 13 then
S_rights := '0000000000000';
for I_index := 1 to checklistbox1.Items.Count do
begin
if S_rights[I_index] = '1' then
CheckListbox1.Checked[I_index - 1] := true
else
Checklistbox1.Checked[I_index - 1] := false;
end;
end;
procedure TFrmUserManage.CheckListBox1Click(Sender: TObject);
var
I_index, I_name: integer;
S_rights: string;
begin
I_name := Listbox1.ItemIndex;
if I_name = 0 then //系统管理员
exit;
S_rights := '';
for I_index := 0 to CheckListbox1.Items.Count - 1 do
begin
if CheckListbox1.Checked[I_index] then
S_rights := S_rights + '1'
else
S_rights := S_rights + '0';
end;
P_rights[1, I_name] := S_rights;
end;
procedure TFrmUserManage.BitBtn7Click(Sender: TObject);
var
query_data: TAdoquery;
str1: string;
i: integer;
begin
str1 := 'update user set user_right = :right where user_name = :name';
query_data := TAdoquery.create(self);
query_data.connectionstring := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=D:\代码与资料库\数据库备份\XHXS.mdb;Mode=Share Deny None;'
+ 'Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:'
+ 'Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";'
+ 'Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Do not Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
for i := 0 to count do
begin
with query_data do
begin
close;
SQL.clear;
SQL.add(str1);
parameters.parambyname('right').value := P_rights[1,i];
parameters.parambyname('name').value := p_rights[0,i];
if (not prepared) then
prepared := true;
try
ExecSQL;
except
showmessage('操作失败,请再试!');
exit;
end;
end;
end;
end;
procedure TFrmUserManage.PageControl1Change(Sender: TObject);
var
I_index, i: integer;
str1: string;
query, query_data: TADOQuery;
begin
case pagecontrol1.TabIndex of
1:
begin
str1 := 'select user_name from user';
query := TAdoquery.create(self);
query.connectionstring := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=D:\代码与资料库\数据库备份\XHXS.mdb;Mode=Share Deny None;'
+ 'Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:'
+ 'Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";'
+ 'Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Do not Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
with query do
begin
close;
SQL.clear;
SQL.add(str1);
try
open;
except
showmessage('操作失败,请再试!');
exit;
end;
count := recordcount;
setlength(P_rights, 2);
setlength(P_rights[0], count);
setlength(P_rights[1], 13);
first;
for i := 0 to count -1 do
begin
p_rights[0,i] := fieldbyname('user_name').asstring;
next;
end;
end;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -