⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mc_yhqxgl.pas

📁 1、系统环境要求:所有程序均在Windows98/XP操作系统下测试运行。 2、建议用户在系统上安装DELPHI7.0企业版。 3、如果数据库为SQL Server数据库
💻 PAS
字号:
unit MC_YHQXGL;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, DBTables, StdCtrls, Grids, DBGrids, Buttons, Mask, DBCtrls;

type
  TYHQXGL = class(TForm)
    Table1: TTable;
    Table1BDEDesigner: TStringField;
    Table1BDEDesigner2: TStringField;
    Table1BDEDesigner3: TStringField;
    Table1BDEDesigner4: TStringField;
    Table1BDEDesigner5: TStringField;
    DataSource1: TDataSource;
    GroupBox1: TGroupBox;
    DBGrid1: TDBGrid;
    Label1: TLabel;
    DBEdit1: TDBEdit;
    Label2: TLabel;
    DBEdit2: TDBEdit;
    Label3: TLabel;
    DBEdit3: TDBEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    GroupBox2: TGroupBox;
    DBGrid2: TDBGrid;
    Query1: TQuery;
    DataSource2: TDataSource;
    Query2: TQuery;
    BitBtn4: TBitBtn;
    GroupBox3: TGroupBox;
    ListBox1: TListBox;
    BitBtn5: TBitBtn;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure Table1AfterScroll(DataSet: TDataSet);
    procedure ListBox1DblClick(Sender: TObject);
    procedure DBGrid2DblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  YHQXGL: TYHQXGL;

implementation

{$R *.DFM}

procedure TYHQXGL.BitBtn1Click(Sender: TObject);
begin
  if BitBtn1.Caption='添加[&I]' then     //添加用户信息
  begin
    Groupbox1.Enabled:=True;   //用户信息区域可用
    Bitbtn1.Caption:='取消[&U]';
    BitBtn3.Caption:='保存[&S]';
    Bitbtn2.Enabled:=False;
    BitBtn4.Enabled:=False;
    DBGrid1.Enabled:=False;
    Table1.Append;     //添加一条记录
    DBEdit1.SetFocus;
  End
  Else
  begin
    GroupBox1.Enabled:=False;     //用户信息区域不可用
    BitBtn1.Caption:='添加[&I]';
    BitBtn3.Caption:='修改[&E]';
    BitBtn2.enabled:=True;
    Bitbtn4.Enabled:=True;
    DBGrid1.Enabled:=True;
    Table1.Cancel;     //取消当前记录的修改
  end;
end;

procedure TYHQXGL.BitBtn3Click(Sender: TObject);
begin
  if BitBtn3.Caption='修改[&E]' then   //修改用户信息
  begin
  Groupbox1.Enabled:=True;      //用户信息区域可编辑
  Bitbtn1.Caption:='取消[&U]';
  BitBtn3.Caption:='保存[&S]';
  Bitbtn2.Enabled:=False;
  BitBtn4.Enabled:=False;
  DBGrid1.Enabled:=False;
  Table1.Edit;        //使数据集处于编辑状态
  DBEdit1.SetFocus;
  End
  Else
  begin
  if Length(Table1.FieldByname('姓名').asString)=0 then
  showMessage('请输入姓名')
  Else      //保存用户信息
  begin
     GroupBox1.Enabled:=False;
     BitBtn1.Caption:='添加[&I]';
     BitBtn3.Caption:='修改[&E]';
     BitBtn2.enabled:=True;
     Bitbtn4.Enabled:=True;
     DBGrid1.Enabled:=True;
     Table1.Post;    //将用户信息写入数据库
  end;
  end;
end;

procedure TYHQXGL.BitBtn2Click(Sender: TObject);
begin
  if Table1.FieldByName('姓名').AsString='系统管理员' then
  ShowMessage('不能删除系统管理员!!')
  Else
  If Table1.RecordCount <> 0 Then
  if MessageDlg('是否删除当前用户的信息?',mtCustom,[mbYes,mbNo],0)=mrYes then
  begin
    Query2.close;
    Query2.SQL.Clear;
    Query2.sQL.Add('Delete 权限检查表');
    Query2.SQL.Add('Where 姓名=:A');
    Query2.ParamByName('A').AsString:=Table1.FieldByName('姓名').AsString;
    Query2.EXECSQL;
    Table1.Delete;
    Query1.Close;
    Query1.Open;
  end;
end;

procedure TYHQXGL.BitBtn4Click(Sender: TObject);  //权限修改
begin
  GroupBox3.Visible:=True;  //显示用户权限
end;

procedure TYHQXGL.BitBtn5Click(Sender: TObject);    //关闭权限修改
begin
  GroupBox3.Visible:=False;   //隐藏用户权限
end;

procedure TYHQXGL.Table1AfterScroll(DataSet: TDataSet);  //选择不同的操作员,权限列表显示相应权限
begin
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('Select * From 权限检查表 Where 姓名=:A ORDER By 使用选项 ASC');
  Query1.ParamByName('A').AsString:=Table1.FieldByName('姓名').AsString;
  Query1.Open;
end;

procedure TYHQXGL.ListBox1DblClick(Sender: TObject);  //设置操作权限
var a:String;
  begin
  Query1.close;
  Query1.SQL.Clear;
  Query1.SQL.Add('Select * From 权限检查表 where 姓名=:A');
  Query1.ParamByName('A').AsString:=Table1.FieldByName('姓名').AsString;
  Query1.Open;
  if RadioButton1.Checked then a:=RadioButton1.Caption  else a:=RadioButton2.Caption; //设置操作权限读或写
  if Query1.Locate('使用选项',ListBox1.Items.Strings[ListBox1.ItemIndex],[loPartialKey]) then
  begin      //如果权限已设置,则修改操作权限
    Query2.Close;
    Query2.SQL.Clear;
    Query2.SQL.Add('update 权限检查表 Set 读写=:B Where 使用选项=:C and 姓名=:D');
    Query2.ParamByName('C').AsString:=ListBox1.Items.Strings[ListBox1.ItemIndex];
    Query2.ParamByName('D').AsString:=Table1.FieldByName('姓名').AsString;
    Query2.ParamByName('B').AsString:=a;
    Query2.EXECSQL;
  End
  Else       //如果权限未设置,则添加此操作权限
  begin
    Query2.Close;
    Query2.SQL.Clear;
    Query2.SQL.Add('Insert 权限检查表(姓名,使用选项,读写)');
    Query2.SQL.Add('Values(:A,:B,:C)');
    Query2.ParamByName('A').AsString:=Table1.FieldByName('姓名').AsString;
    Query2.ParamByName('B').AsString:=ListBox1.Items.Strings[ListBox1.ItemIndex];
    Query2.ParamByName('C').AsString:=a;
    Query2.ExecSQL;
  end;
    Query1.Close;
    Query1.Open;
end;

procedure TYHQXGL.DBGrid2DblClick(Sender: TObject);  //删除选中权限
begin
  If Query1.Active Then
  if Table1.FieldbyName('用户类别').AsString<>'系统管理员' then
  If Query1.RecordCount <> 0 Then
  begin
    Query2.Close;
    Query2.SQL.Clear;
    Query2.SQL.Add('Delete 权限检查表 Where 姓名=:A and 使用选项=:B');
    Query2.ParamByName('A').AsString:=Table1.FieldByName('姓名').aSString;
    Query2.ParamByName('B').AsString:=Query1.FieldByName('使用选项').AsString;
    Query2.ExecSQL;
    Query1.Close;
    Query1.Open;
  end;
end;

procedure TYHQXGL.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  YHQXGL.Release;
  YHQXGL:=Nil;
end;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -