📄 u_usermanage.pas
字号:
unit U_UserManage;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
HGrids, HDBGrids, TB97Tlbr, TB97Ctls, TB97, DBTables, Db, Menus;
type
TFm_UserManage = class(TForm)
DDS: TDataSource;
Dock: TDock97;
Tb97_Func: TToolbar97;
TbBtn_Edit: TToolbarButton97;
TbBtn_Add: TToolbarButton97;
TbBtn_Delete: TToolbarButton97;
TbSep01: TToolbarSep97;
TbBtn_Help: TToolbarButton97;
TbBtn_Exit: TToolbarButton97;
TbBtn_Power: TToolbarButton97;
TbSep02: TToolbarSep97;
MGrid: THDBGrid;
DQuery: TQuery;
DUpSQL: TUpdateSQL;
DQuerys_rydm: TStringField;
DQuerys_ryxm: TStringField;
DQuerys_rykl: TStringField;
PPM: TPopupMenu;
PM_Add: TMenuItem;
PM_Edit: TMenuItem;
PM_Delete: TMenuItem;
PM_Z01: TMenuItem;
PM_Power: TMenuItem;
PM_Help: TMenuItem;
PM_Exit: TMenuItem;
PM_Z02: TMenuItem;
procedure TbBtn_ExitClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TbBtn_EditClick(Sender: TObject);
procedure TbBtn_AddClick(Sender: TObject);
procedure TbBtn_DeleteClick(Sender: TObject);
procedure TbBtn_PowerClick(Sender: TObject);
procedure TbBtn_HelpClick(Sender: TObject);
private
procedure RefreshUser;
public
end;
var
Fm_UserManage: TFm_UserManage;
procedure Show_UserManage;
implementation
uses U_Main, U_GlobalProc, U_GlobalVar, U_UserMangeAction, U_DM, U_UserPower;
{$R *.DFM}
procedure Show_UserManage;
var
i: integer;
begin
for i := Fm_Main.MDIChildCount - 1 downto 0 do
begin
if (Fm_Main.MDIChildren[i].Name <> 'Fm_Wizard') and
(Fm_Main.MDIChildren[i].Name <> 'Fm_UserManage') then
Fm_Main.MDIChildren[i].Close;
end;
if not Assigned(Fm_UserManage) then
begin
Fm_UserManage := TFm_UserManage.Create(Application);
with Fm_UserManage do
begin
DQuery.Open;
if DQuery.IsEmpty then
begin
TbBtn_Edit.Enabled := False;
TbBtn_Delete.Enabled := False;
end;
RefreshGridStyle(MGrid);
end
end;
with Fm_UserManage do
begin
if WindowState <> wsMaximized then
WindowState := wsMaximized;
Show;
SetFocus;
end;
end;
procedure TFm_UserManage.RefreshUser;
begin
with DQuery do
try
DisableControls;
Close;
Open;
finally
EnableControls;
end;
end;
procedure TFm_UserManage.TbBtn_ExitClick(Sender: TObject);
begin
Close;
end;
procedure TFm_UserManage.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
DQuery.Close;
Action := caFree;
Fm_UserManage := nil;
end;
procedure TFm_UserManage.TbBtn_EditClick(Sender: TObject);
var
pCode, pName, pPassword: string;
begin //
with DQuery do
begin
pCode := FieldByName('s_rydm').AsString;
pName := FieldByName('s_ryxm').AsString;
pPassword := FieldByName('s_rykl').AsString;
end;
if Show_UserMangeAction(pCode, pName, pPassword, 2) then
with DQuery do
begin
Edit;
FieldByName('s_rydm').AsString := pCode;
FieldByName('s_ryxm').AsString := pName;
FieldByName('s_rykl').AsString := pPassword;
Post;
ApplyUpdates;
if pCode = U_GlobalVar.S_UserCode then
begin
U_GlobalVar.S_UserName := pName;
U_GlobalVar.S_UserPassword := pPassword;
// 刷新权限
end;
end;
end;
procedure TFm_UserManage.TbBtn_AddClick(Sender: TObject);
var
pCode, pName, pPassword: string;
tmQuery: TQuery;
begin //
pCode := '001';
try
with DQuery do
begin
DisableControls;
First;
while not Eof do
begin
if pCode <> FieldByName('s_rydm').AsString then
Break;
pCode := IntFormatStr(StrToInt(pCode) + 1, 3);
Next;
end;
end;
finally
DQuery.EnableControls;
end;
if Show_UserMangeAction(pCode, pName, pPassword, 1) then
begin
with DQuery do
begin
Append;
FieldByName('s_rydm').AsString := pCode;
FieldByName('s_ryxm').AsString := pName;
FieldByName('s_rykl').AsString := pPassword;
Post;
ApplyUpdates;
end;
tmQuery := TQuery.Create(Application);
with tmQuery do
try
DataBaseName := SysDBase;
// 人员权限
SQL.Text := 'INSERT INTO czryqx SELECT d1.s_rydm, d2.s_cddm, ''0'', ' +
'''0'' FROM "czry.db" d1, "' + S_ExePath + '\SYS\cdgn.db" d2 ' +
'WHERE d1.s_rydm=''' + pCode + '''';
ExecSQL;
finally
Free;
end;
end;
end;
procedure TFm_UserManage.TbBtn_DeleteClick(Sender: TObject);
var
tmQuery: TQuery;
tmCode, tmName: string;
begin //
tmCode := DQuery.FieldByName('s_rydm').AsString;
tmName := DQuery.FieldByName('s_ryxm').AsString;
if tmCode = U_GlobalVar.S_UserCode then
begin
MessageBeep(0);
U_GlobalProc.Show_ErrorMess('不能删除当前操作人员。');
Exit;
end;
if U_GlobalProc.Show_ConfirmMess('真的删除操作人员“' + tmName + '”吗?') then
begin
tmQuery := TQuery.Create(Application);
with tmQuery do
try
DataBaseName := SysDBase;
// 人员权限
SQL.Text := 'DELETE FROM "czry.db" d1 WHERE d1.s_rydm=''' + tmCode + '''';
ExecSQL;
SQL.Text := 'DELETE FROM "czryqx.db" d1 WHERE d1.s_rydm=''' + tmCode + '''';
ExecSQL;
finally
Free;
end;
end;
RefreshUser;
end;
procedure TFm_UserManage.TbBtn_PowerClick(Sender: TObject);
begin //
U_UserPower.Show_UserPower(DQuery.FieldByName('s_rydm').AsString);
end;
procedure TFm_UserManage.TbBtn_HelpClick(Sender: TObject);
begin //
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -