📄 yhzgl_form.pas
字号:
unit YHZGL_Form;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TFlatEditUnit, TFlatRadioButtonUnit, TFlatButtonUnit,
Grids, DBGrids, TFlatGroupBoxUnit, ExtCtrls, TFlatPanelUnit,DB,ADODB,
TFlatSpeedButtonUnit, TFlatListBoxUnit, TFlatCheckListBoxUnit, Menus;
type
TYHZGL_F = class(TForm)
YHZ_DS: TDataSource;
FlatButton1: TFlatButton;
QX_DS: TDataSource;
Edit1: TEdit;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
PopupMenu2: TPopupMenu;
N2: TMenuItem;
N3: TMenuItem;
TJ_FB: TFlatButton;
FlatButton2: TFlatButton;
FlatGroupBox8: TFlatGroupBox;
Label18: TLabel;
Label19: TLabel;
ZBH_FE: TFlatEdit;
ZMC_FE: TFlatEdit;
LHZGL_FBtn: TFlatButton;
FlatGroupBox5: TFlatGroupBox;
YHZ_DG: TDBGrid;
FlatGroupBox1: TFlatGroupBox;
QX_DG1: TDBGrid;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure Close_BtnClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure YHZ_DGMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure TJ_FRBtnClick(Sender: TObject);
procedure XG_FRBtnClick(Sender: TObject);
procedure FlatButton1Click(Sender: TObject);
procedure TJ_FBClick(Sender: TObject);
procedure FlatButton2Click(Sender: TObject);
procedure LHZGL_FBtnClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure QX_DG1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
procedure ClickDBG;
end;
var
YHZGL_F: TYHZGL_F;
implementation
uses share, ZGNB_Form, CZRZ_Form;
{$R *.dfm}
var
YHZ_T:TADOTable;
YHGNB_T:TADOTable; // 用户功能表
YHB_Q:TADOQuery; // 用户表
//******************************************************************************
procedure TYHZGL_F.ClickDBG;
begin
ZH1:=YHZ_DG.Fields[0].AsString;
FlatGroupBox1.Caption:=YHZ_DG.Fields[1].AsString+ '已有权限';
ZGNB_Q.Close;
ZGNB_Q.SQL.Clear;
ZGNB_Q.SQL.Add('Select 功能名,A.功能号 From 组功能表 A,功能表 B Where 组号=:组号 and A.功能号=B.功能号');
ZGNB_Q.Parameters.ParamByName('组号').Value:=YHZ_DG.Fields[0].AsString;
QX_DS.DataSet:=ZGNB_Q;
QX_DG1.Columns[0].FieldName:='功能名';
ZGNB_Q.Open;
end;
//******************************************************************************
procedure TYHZGL_F.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
//***********************************************************************************
procedure TYHZGL_F.FormDestroy(Sender: TObject);
begin
FreeAndNil(YHZ_T);
FreeAndNil(ZGNB_Q);
YHZGL_F:=nil;
CZRZ_F.CZRZ_FM.Lines.Add('');
end;
//***********************************************************************************
procedure TYHZGL_F.Close_BtnClick(Sender: TObject);
begin
close;
end;
//***********************************************************************************
procedure TYHZGL_F.FormCreate(Sender: TObject);
begin
YHZ_T:=TADOTable.Create(nil);
YHZ_T.Connection:=Connect;
YHZ_T.TableName:='用户组表';
YHZ_DS.DataSet:=YHZ_T;
YHZ_DG.Columns[0].FieldName:='组号';
YHZ_DG.Columns[1].FieldName:='组名';
YHZ_T.Open;
YHGNB_T:=TADOTable.Create(nil);
YHGNB_T.Connection:=Connect;
YHGNB_T.TableName:='用户功能表';
YHGNB_T.Open;
YHB_Q:=TADOQuery.Create(nil);
YHB_Q.Connection:=Connect;
ZGNB_Q:=TADOQuery.Create(nil);
ZGNB_Q.Connection:=Connect;
CZRZ:='----------'+timetostr(time)+' 用户组管理:' ;
CZRZ_F.CZRZ_FM.Lines.Add(CZRZ);
WriteCZRZ;
clickDBG;
end;
//***********************************************************************************
procedure TYHZGL_F.YHZ_DGMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ClickDBG;
end;
//***********************************************************************************
procedure TYHZGL_F.TJ_FRBtnClick(Sender: TObject); //选中添加
begin
ZBH_FE.Text:='';
ZBH_FE.Enabled:=true;
ZMC_FE.Text:='';
end;
//***********************************************************************************
procedure TYHZGL_F.XG_FRBtnClick(Sender: TObject); //选中修改
begin
ZBH_FE.Text:=YHZ_DG.DataSource.DataSet.FieldValues['组号'];
ZBH_FE.Enabled:=false;
ZMC_FE.Text:=YHZ_DG.DataSource.DataSet.FieldValues['组名'];
end;
//***********************************************************************************
procedure TYHZGL_F.FlatButton1Click(Sender: TObject);
begin
close;
end;
//******************************************************************************
procedure TYHZGL_F.TJ_FBClick(Sender: TObject);
{var
p:TPoint; }
begin
{ if ZH1=''then
begin
MessageBox(handle,'请先在左面选择组号','请选择组号',MB_OK or MB_ICONERROR);
exit;
end
else
begin
P.x := TJ_FB.Left+TJ_FB.Width;
P.y := TJ_FB.Top;
ZGNB_F.Top := FlatGroupBox1.ClientToScreen(P).y;
ZGNB_F.Left := FlatGroupBox1.ClientToScreen(P).x;
ZGNB_F.ShowModal;
end; }
end;
//******************************************************************************
procedure TYHZGL_F.FlatButton2Click(Sender: TObject);
{var
Del_Flag:integer;
GNB_T,YHZB_T:TADOTable;
GNB_Q:TADOQuery; }
begin
{if ZH1=''then
begin
MessageBox(handle,'请先在左面选择组号','请选择组号',MB_OK or MB_ICONERROR);
exit;
end
else begin
YHZB_T:=TADOTable.Create(nil);
YHZB_T.Connection:=Connect;
YHZB_T.TableName:='用户组表';
YHZB_T.Open;
GNB_T:=TADOTable.Create(nil);
GNB_T.Connection:=Connect;
GNB_T.TableName:='功能表';
GNB_T.Open;
GNB_Q:=TADOQuery.Create(nil);
GNB_Q.Connection:=Connect;
GNB_T.Locate('功能名',QX_DG1.Fields[0].AsString,[]);
GNB_Q.SQL.Add('select * from 组功能表 where 功能号=:功能号 and 组号=:组号' );
GNB_Q.Parameters.ParamByName('功能号').Value:=GNB_T.FieldValues['功能号'];
GNB_Q.Parameters.ParamByName('组号').Value:=ZH1;
GNB_Q.Open;
if GNB_Q.RecordCount>0 then
begin
Del_Flag:=MessageBox(handle,'警告:删除是永久的不可恢复的!确认删除吗?','删除确认',MB_OKCANCEL or MB_ICONWarning);
if Del_Flag=IDCancel then exit;
YHB_Q.Close;
YHB_Q.SQL.Clear;
YHB_Q.SQL.Add('Select * from 用户表 where 组号='+quotedstr(ZH1));
YHB_Q.Open;
YHB_Q.First;
if YHB_Q.RecordCount>0 then
while not YHB_Q.Eof do
begin
if YHGNB_T.Locate('帐号;功能号',vararrayof([YHB_Q.FieldValues['帐号'],GNB_T.FieldValues['功能号']]),[]) then
YHGNB_T.Delete;
YHB_Q.Next;
end;
YHZB_T.Locate('组号',ZH1,[]);
CZRZ:=' '+YHZB_T.FieldByName('组名').AsString+'组删除'+GNB_T.FieldByName('功能名').AsString+'权限 '+timetostr(time);
CZRZ_F.CZRZ_FM.Lines.Add(CZRZ);
WriteCZRZ;
GNB_Q.Delete;
ZGNB_Q.Requery;
end
else
MessageBox(handle,'没有要删除的权限','没有要删除的权限',MB_OK or MB_ICONERROR);
end;
//FreeAndNil(GNB_T);
// FreeAndNil(GNB_Q); }
end;
//******************************************************************************
procedure TYHZGL_F.LHZGL_FBtnClick(Sender: TObject);
begin
if (ZBH_FE.Text='') or (ZMC_FE.Text='') then
begin
MessageBox(handle,'请先填写组号和组名','请填写组号和组名',MB_OK or MB_ICONERROR);
exit;
end
else
begin
if not YHZ_T.Locate('组号',ZBH_FE.Text,[]) then
begin
YHZ_T.Append;
YHZ_T.FieldByName('组号').AsString:=ZBH_FE.Text;
YHZ_T.FieldByName('组名').AsString:=ZMC_FE.Text;
YHZ_T.Post;
YHZ_T.Requery;
CZRZ:=' '+ZMC_FE.Text+'组添加成功 '+timetostr(time);
CZRZ_F.CZRZ_FM.Lines.Add(CZRZ);
WriteCZRZ;
ZBH_FE.Text:='';
ZMC_FE.Text:='';
end
else
begin
ZBH_FE.Text:='';
ZBH_FE.SetFocus;
showmessage('此组号已经存在,请重新输入');
end;
end;
end;
//******************************************************************************
procedure TYHZGL_F.N1Click(Sender: TObject);
var
YHB_Q:TADOQuery;
ZM,msql:string;
begin
ZM:=YHZ_DG.Fields[1].AsString;
if MessageDlg('警告:删除是永久的不可恢复的!'+chr(13)+'而且'+ZM+'组帐户全部删除'+chr(13)+'确认删除吗?',mtconfirmation,[mbyes,mbno],0)=mrno then exit;
try
ADOCon.BeginTrans;
YHB_Q:=TADOQuery.Create(nil);
YHB_Q.Connection:=Connect;
YHB_Q.SQL.Add('Select * from 用户表 where 组号=:组号');
YHB_Q.Parameters.ParamByName('组号').Value:=YHZ_DG.Fields[0].AsString;
YHB_Q.Open;
YHB_Q.First;
if YHB_Q.RecordCount> 0 then
while not YHB_Q.Eof do
begin
msql:='delete * from 用户功能表 where 帐号='+QuotedStr(YHB_Q.FieldValues['帐号']);
ADOCon.Execute(msql);
YHB_Q.Next;
end;
msql:='delete * from 用户表 where 组号='+QuotedStr(YHZ_DG.Fields[0].AsString);
ADOCon.Execute(msql);
msql:='delete * from 组功能表 where 组号='+QuotedStr(YHZ_DG.Fields[0].AsString);
ADOCon.Execute(msql);
{msql:='delete * from 用户组表 where 组号='+QuotedStr(YHZ_DG.Fields[0].AsString);
ADOCon.Execute(msql); }
ADOCon.CommitTrans;
YHZ_DG.DataSource.DataSet.Delete;
MessageBox(handle,'记录已成功删除!','删除成功',MB_OK or MB_ICONINFORMATION);
CZRZ:=' '+ZM+'组删除成功 '+timetostr(time);
CZRZ_F.CZRZ_FM.Lines.Add(CZRZ);
WriteCZRZ;
ZBH_FE.Text:='';
ZBH_FE.Enabled:=true;
ZMC_FE.Text:='';
except
showmessage('删除出错!');
ADOCon.RollbackTrans;
end;
//FreeAndNil(ZGNB_Q);
end;
//******************************************************************************
procedure TYHZGL_F.N2Click(Sender: TObject);
var
p:TPoint;
begin
if ZH1=''then
begin
MessageBox(handle,'请先在左面选择组号','请选择组号',MB_OK or MB_ICONERROR);
exit;
end
else
begin
P.x := QX_DG1.Left+QX_DG1.Width;
P.y := QX_DG1.Top;
ZGNB_F.Top := FlatGroupBox1.ClientToScreen(P).y;
ZGNB_F.Left := FlatGroupBox1.ClientToScreen(P).x;
ZGNB_F.ShowModal;
end;
end;
//******************************************************************************
procedure TYHZGL_F.N3Click(Sender: TObject);
var
Del_Flag:integer;
GNB_T,YHZB_T:TADOTable;
GNB_Q:TADOQuery;
begin
if ZH1=''then
begin
MessageBox(handle,'请先在左面选择组号','请选择组号',MB_OK or MB_ICONERROR);
exit;
end
else begin
YHZB_T:=TADOTable.Create(nil);
YHZB_T.Connection:=Connect;
YHZB_T.TableName:='用户组表';
YHZB_T.Open;
GNB_T:=TADOTable.Create(nil);
GNB_T.Connection:=Connect;
GNB_T.TableName:='功能表';
GNB_T.Open;
GNB_Q:=TADOQuery.Create(nil);
GNB_Q.Connection:=Connect;
GNB_T.Locate('功能名',QX_DG1.Fields[0].AsString,[]);
GNB_Q.SQL.Add('select * from 组功能表 where 功能号=:功能号 and 组号=:组号' );
GNB_Q.Parameters.ParamByName('功能号').Value:=GNB_T.FieldValues['功能号'];
GNB_Q.Parameters.ParamByName('组号').Value:=ZH1;
GNB_Q.Open;
if GNB_Q.RecordCount>0 then
begin
Del_Flag:=MessageBox(handle,'警告:删除是永久的不可恢复的!确认删除吗?','删除确认',MB_OKCANCEL or MB_ICONWarning);
if Del_Flag=IDCancel then exit;
YHB_Q.Close;
YHB_Q.SQL.Clear;
YHB_Q.SQL.Add('Select * from 用户表 where 组号='+quotedstr(ZH1));
YHB_Q.Open;
YHB_Q.First;
if YHB_Q.RecordCount>0 then
while not YHB_Q.Eof do
begin
if YHGNB_T.Locate('帐号;功能号',vararrayof([YHB_Q.FieldValues['帐号'],GNB_T.FieldValues['功能号']]),[]) then
YHGNB_T.Delete;
YHB_Q.Next;
end;
YHZB_T.Locate('组号',ZH1,[]);
CZRZ:=' '+YHZB_T.FieldByName('组名').AsString+'组删除'+GNB_T.FieldByName('功能名').AsString+'权限 '+timetostr(time);
CZRZ_F.CZRZ_FM.Lines.Add(CZRZ);
WriteCZRZ;
GNB_Q.Delete;
ZGNB_Q.Requery;
end
else
MessageBox(handle,'没有要删除的权限','没有要删除的权限',MB_OK or MB_ICONERROR);
end;
//FreeAndNil(GNB_T);
// FreeAndNil(GNB_Q);
end;
//******************************************************************************
procedure TYHZGL_F.QX_DG1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
num:=self.HelpContext;
F1_Help(key);
end;
//******************************************************************************
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -