📄 qxgl_form.pas
字号:
unit QXGL_Form;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TFlatEditUnit, TFlatRadioButtonUnit, TFlatButtonUnit,
Grids, DBGrids, TFlatGroupBoxUnit, ExtCtrls, TFlatComboBoxUnit,DB,ADODB,
ComCtrls;
type
TQXGL_F = class(TForm)
QX_DS: TDataSource;
YHGL_PC: TPageControl;
ZHGL_TS: TTabSheet;
FlatButton1: TFlatButton;
QXZX_FBtn: TFlatButton;
FlatGroupBox8: TFlatGroupBox;
Label18: TLabel;
Label19: TLabel;
Label1: TLabel;
Label3: TLabel;
Label4: TLabel;
QXBH_FE: TFlatEdit;
QXXM_FE: TFlatEdit;
ZM_FCB: TFlatComboBox;
XMM_FE: TFlatEdit;
QR_FE: TFlatEdit;
FlatGroupBox7: TFlatGroupBox;
QXXG_FRBtn: TFlatRadioButton;
QXTJ_FRBtn: TFlatRadioButton;
FlatGroupBox5: TFlatGroupBox;
QX_DG: TDBGrid;
QXDel_FBtn: TFlatButton;
QXGL_TS: TTabSheet;
FlatGroupBox1: TFlatGroupBox;
ZH_FE: TFlatEdit;
CZ_FB: TFlatButton;
FlatGroupBox2: TFlatGroupBox;
QX_DG1: TDBGrid;
FlatButton2: TFlatButton;
QX_DS1: TDataSource;
TJ_FB: TFlatButton;
Edit1: TEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure QXDel_FBtnClick(Sender: TObject);
procedure QXTJ_FRBtnClick(Sender: TObject);
procedure QXXG_FRBtnClick(Sender: TObject);
procedure QXZX_FBtnClick(Sender: TObject);
procedure CZ_FBClick(Sender: TObject);
procedure FlatButton1Click(Sender: TObject);
procedure FlatButton2Click(Sender: TObject);
procedure TJ_FBClick(Sender: TObject);
procedure ZH_FEKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure QR_FEKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure QX_DGMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
QXGL_F: TQXGL_F;
implementation
uses share, GNB_Form;
{$R *.dfm}
var
YHB_T:TADOTable; //用户表
YHGNB_T:TADOTable; // 用户功能表
YHZ_T:TADOTable; //用户组表
QXGL_Q:TADOQuery; //
procedure TQXGL_F.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
//***********************************************************************************
procedure TQXGL_F.FormDestroy(Sender: TObject);
begin
FreeAndNil(YHB_T);
FreeAndNil(YHGNB_T);
FreeAndNil(YHZ_T);
FreeAndNil(QXGL_Q);
QXGL_F:=nil;
end;
//***********************************************************************************
procedure TQXGL_F.Button1Click(Sender: TObject);
begin
close;
end;
//***********************************************************************************
procedure TQXGL_F.FormCreate(Sender: TObject);
begin
YHB_T:=TADOTable.Create(nil);
YHB_T.Connection:=Connect;
YHB_T.TableName:='用户表';
YHB_T.Open;
YHGNB_T:=TADOTable.Create(nil);
YHGNB_T.Connection:=Connect;
YHGNB_T.TableName:='用户功能表';
YHGNB_T.Open;
YHZ_T:=TADOTable.Create(nil);
YHZ_T.Connection:=Connect;
YHZ_T.TableName:='用户组表';
YHZ_T.Open;
QXGL_Q:=TADOQuery.Create(nil);
QXGL_Q.Connection:=Connect;
QXGL_Q1:=TADOQuery.Create(nil);
QXGL_Q1.Connection:=Connect;
end;
//***********************************************************************************
procedure TQXGL_F.FormShow(Sender: TObject);
begin
QXGL_Q.Close;
QXGL_Q.SQL.Clear;
QXGL_Q.SQL.Add('Select 帐号,姓名,组名 From 用户表 A,用户组表 B Where A.组号=B.组号');
QX_DS.DataSet:=QXGL_Q;
QX_DG.Columns[0].FieldName:='帐号';
QX_DG.Columns[1].FieldName:='姓名';
QX_DG.Columns[2].FieldName:='组名';
QXGL_Q.Open;
while not YHZ_T.Eof do
begin
ZM_FCB.Items.Add(YHZ_T.FieldValues['组名']);
YHZ_T.Next;
end;
ZM_FCB.ItemIndex:=0;
QXXG_FRBtn.Checked:=True;
end;
//***********************************************************************************
procedure TQXGL_F.QXDel_FBtnClick(Sender: TObject);
var
Flag:integer;
YHGNB_Q:TADOQuery;
begin
Flag:=MessageBox(handle,'警告:删除是永久的不可恢复的!确认删除吗?','确认删除',MB_OKCANCEL or MB_ICONWarning);
if flag=IDCANCEL then exit;
YHGNB_Q:=TADOQuery.Create(nil);
YHGNB_Q.Connection:=Connect;
{YHGNB_Q.SQL.Add('delect * from 用户功能表 where 帐号=:帐号');
YHGNB_Q.Parameters.ParamByName('帐号').Value:=QX_DG.Fields[0].AsString;
YHGNB_Q.ExecSQL;}
YHGNB_Q.Close;
YHGNB_Q.SQL.Clear;
YHGNB_Q.SQL.Add('select * from 用户功能表 where 帐号=:帐号');
YHGNB_Q.Parameters.ParamByName('帐号').Value:=QX_DG.Fields[0].AsString;
YHGNB_Q.Open;
while not YHGNB_Q.Eof do YHGNB_Q.Delete;
YHB_T.Locate('帐号',QX_DG.Fields[0].AsString,[]);
YHB_T.Delete;
QXGL_Q.Requery;
//FreeAndNil(YHGNB_Q);
end;
//***********************************************************************************
procedure TQXGL_F.QXTJ_FRBtnClick(Sender: TObject); //选中添加
begin
QXBH_FE.Text:='';
QXBH_FE.Enabled:=true;
QXXM_FE.Text:='';
ZM_FCB.ItemIndex:=0;
QXXM_FE.Enabled:=true;
XMM_FE.Text:='';
QR_FE.Text:='';
end;
//***********************************************************************************
procedure TQXGL_F.QXXG_FRBtnClick(Sender: TObject);
begin
QXXG_FRBtn.Checked:=true;
QXBH_FE.Text:=QX_DG.Fields[0].AsString;
QXBH_FE.Enabled:=False;
QXXM_FE.Enabled:=false;
QXXM_FE.Text:=QX_DG.Fields[1].AsString;
ZM_FCB.ItemIndex:=ZM_FCB.Items.IndexOf(QX_DG.Fields[2].AsString);
end;
//***********************************************************************************
procedure TQXGL_F.QXZX_FBtnClick(Sender: TObject); //执行操作
var
YHB_Q:TADOQuery;
ZGNB_Q:TADOQuery;
YHGNB_Q:TADOQuery;
begin
ZGNB_Q:=TADOQuery.Create(nil);
ZGNB_Q.Connection:=Connect;
if QXXG_FRBtn.Checked then
begin
YHB_T.Locate('帐号',QXBH_FE.Text,[]);
YHZ_T.Close;
YHZ_T.Open;
YHZ_T.Locate('组名',ZM_FCB.text,[]);
YHB_T.Edit;
YHB_T.FieldByName('组号').AsString:=YHZ_T.FieldValues['组号'];
YHGNB_Q:=TADOQuery.Create(nil);
YHGNB_Q.Connection:=Connect;
YHGNB_Q.Close;
YHGNB_Q.SQL.Clear;
YHGNB_Q.SQL.Add('select * from 用户功能表 where 帐号=:帐号');
YHGNB_Q.Parameters.ParamByName('帐号').Value:=QXBH_FE.Text;
YHGNB_Q.Open;
while not YHGNB_Q.Eof do YHGNB_Q.Delete;
ZGNB_Q.Close;
ZGNB_Q.SQL.Clear;
ZGNB_Q.SQL.Add('select 功能号 from 组功能表');
ZGNB_Q.SQL.Add('where 组号=:组号');
ZGNB_Q.Parameters.ParamByName('组号').Value:=YHZ_T.FieldValues['组号'];
ZGNB_Q.Open;
if ZGNB_Q.RecordCount>0 then
while not ZGNB_Q.Eof do
begin
YHGNB_T.Append;
YHGNB_T.FieldByName('帐号').AsString:=QXBH_FE.Text;
YHGNB_T.FieldByName('功能号').AsString:=ZGNB_Q.FieldValues['功能号'];
YHGNB_T.Post;
ZGNB_Q.Next;
end;
if XMM_FE.Text<>'' then
if XMM_FE.Text=QR_FE.Text then
begin
YHB_T.FieldByName('密码').AsString:=QR_FE.Text;
YHB_T.Post;
YHB_T.Requery;
MessageBox(handle,'记录修改成功!','成功',MB_OK or MB_ICONINFORMATION);
end
else begin
MessageBox(handle,'两次输入的新密码不一致!','错误',MB_OK or MB_ICONERROR);
YHB_T.Cancel;
exit;
end
else
begin
YHB_T.Requery;
MessageBox(handle,'记录修改成功!','成功',MB_OK or MB_ICONINFORMATION);
end;
XMM_FE.Text:='';
QR_FE.Text:='';
end
else begin
YHB_Q:=TADOQuery.Create(nil);
YHB_Q.Connection:=Connect;
YHB_Q.Close;
YHB_Q.SQL.Clear;
YHB_Q.SQL.Add('Select * From 用户表 Where 帐号=:帐号');
YHB_Q.Parameters.ParamByName('帐号').Value:=QXBH_FE.Text;
YHB_Q.Open;
if YHB_Q.RecordCount >0 then
begin
MessageBox(handle,'此编号已经存在了,请换个编号!','错误',MB_OK or MB_ICONERROR);
exit;
end;
YHZ_T.Close;
YHZ_T.Open;
YHZ_T.Locate('组名',ZM_FCB.Text,[]);
YHB_T.Append;
YHB_T.FieldByName('帐号').AsString:=QXBH_FE.Text;
YHB_T.FieldByName('姓名').AsString:=QXXM_FE.Text;
YHB_T.FieldByName('组号').AsString:=YHZ_T.FieldValues['组号'];
if XMM_FE.Text=QR_FE.Text then YHB_T.FieldByName('密码').AsString:=QR_FE.Text
else begin
MessageBox(handle,'两次输入的新密码不一致!','错误',MB_OK or MB_ICONERROR);
YHB_T.Cancel;
exit;
end;
YHB_T.Post;
YHB_T.Requery;
//ZGNB_Q:=TADOQuery.Create(nil);
//ZGNB_Q.Connection:=Connect;
ZGNB_Q.SQL.Add('select 功能号 from 组功能表');
ZGNB_Q.SQL.Add('where 组号=:组号');
ZGNB_Q.Parameters.ParamByName('组号').Value:=YHZ_T.FieldValues['组号'];
ZGNB_Q.Open;
if ZGNB_Q.RecordCount>0 then
while not ZGNB_Q.Eof do
begin
YHGNB_T.Append;
YHGNB_T.FieldByName('帐号').AsString:=QXBH_FE.Text;
YHGNB_T.FieldByName('功能号').AsString:=ZGNB_Q.FieldValues['功能号'];
YHGNB_T.Post;
ZGNB_Q.Next;
end;
MessageBox(handle,'记录添加成功!','成功',MB_OK or MB_ICONINFORMATION);
QXTJ_FRBtnClick(QXTJ_FRBtn);
XMM_FE.Text:='';
QR_FE.Text:='';
end;
QXGL_Q.Requery;
//FreeAndNil(YHB_Q);
// FreeAndNil(ZGNB_Q);
//FreeAndNil(YHGNB_Q);
end;
procedure TQXGL_F.CZ_FBClick(Sender: TObject);
begin
QXGL_Q1.Close;
QXGL_Q1.SQL.Clear;
ZH:=ZH_FE.Text;
FlatGroupBox2.Caption:=ZH+ '用户已有权限:';
QXGL_Q1.SQL.Add('Select 功能名,A.功能号 From 用户功能表 A,功能表 B Where 帐号=:帐号 and A.功能号=B.功能号');
QXGL_Q1.Parameters.ParamByName('帐号').Value:=ZH_FE.Text;
QXGL_Q1.Open;
if QXGL_Q1.RecordCount>0 then
begin
QXGL_Q1.Close;
QX_DS1.DataSet:=QXGL_Q1;
QX_DG1.Columns[0].FieldName:='功能名';
QXGL_Q1.Open;
end
else
MessageBox(handle,'没有此用户的信息存在!','没有此用户',MB_OK or MB_ICONERROR);
ZH_FE.Text:='';
end;
procedure TQXGL_F.FlatButton1Click(Sender: TObject);
begin
close;
end;
procedure TQXGL_F.FlatButton2Click(Sender: TObject);
var
Del_Flag:integer;
GNB_T:TADOTable;
GNB_Q:TADOQuery;
HSXX_Q:TADOQuery;
begin
GNB_T:=TADOTable.Create(nil);
GNB_T.Connection:=Connect;
GNB_T.TableName:='功能表';
GNB_T.Open;
GNB_Q:=TADOQuery.Create(nil);
GNB_Q.Connection:=Connect;
HSXX_Q:=TADOQuery.Create(nil);
HSXX_Q.Connection:=Connect;
HSXX_Q.SQL.Add('select * from 用户功能表');
HSXX_Q.SQL.Add('where 帐号=:帐号');
HSXX_Q.Parameters.ParamByName('帐号').Value:=ZH;
HSXX_Q.Open;
if HSXX_Q.RecordCount>0 then
begin
Del_Flag:=MessageBox(handle,'警告:删除是永久的不可恢复的!确认删除吗?','删除确认',MB_OKCANCEL or MB_ICONWarning);
if Del_Flag=IDCancel then exit;
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:=ZH;
GNB_Q.Open;
if (GNB_Q.FieldValues['功能号']='10') or (GNB_Q.FieldValues['功能号']='20') then
begin
MessageBox(handle,'不能删除此功能','错误',MB_OK or MB_ICONERROR);
exit;
end ;
GNB_Q.Delete;
QXGL_Q1.Requery;
//FreeAndNil(GNB_Q);
end
else
begin
ZH_FE.Text:='';
MessageBox(handle,'请先指定帐号','请先指定帐号',MB_OK or MB_ICONERROR);
exit;
end;
//FreeAndNil(GNB_T);
//FreeAndNil(GNB_Q);
//FreeAndNil(HSXX_Q);
end;
procedure TQXGL_F.TJ_FBClick(Sender: TObject);
var
p:TPoint;
YHZH_Q:TADOQuery;
begin
YHZH_Q:=TADOQuery.Create(nil);
YHZH_Q.Connection:=Connect;
YHZH_Q.SQL.Add('select * from 用户功能表');
YHZH_Q.SQL.Add('where 帐号=:帐号');
YHZH_Q.Parameters.ParamByName('帐号').Value:=ZH;
YHZH_Q.Open;
if YHZH_Q.RecordCount>0 then
begin
P.x := TJ_FB.Left+TJ_FB.Width;
P.y := TJ_FB.Top;
GNB_F.Top := FlatGroupBox2.ClientToScreen(P).y;
GNB_F.Left := FlatGroupBox2.ClientToScreen(P).x;
GNB_F.Show(Edit1);
//FreeAndNil(YHZH_Q);
end
else
begin
ZH_FE.Text:='';
MessageBox(handle,'请先查找帐号','请先查找帐号',MB_OK or MB_ICONERROR);
exit;
end;
end;
procedure TQXGL_F.ZH_FEKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=VK_RETURN then CZ_FBClick(CZ_FB);
end;
procedure TQXGL_F.QR_FEKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=VK_RETURN then QXZX_FBtnClick(QXZX_FBtn);
end;
procedure TQXGL_F.QX_DGMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
QXXG_FRBtn.Checked:=true;
QXBH_FE.Text:=QX_DG.Fields[0].AsString;
QXBH_FE.Enabled:=False;
QXXM_FE.Enabled:=false;
QXXM_FE.Text:=QX_DG.Fields[1].AsString;
ZM_FCB.ItemIndex:=ZM_FCB.Items.IndexOf(QX_DG.Fields[2].AsString);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -