uusermanage.pas

来自「该系统将温度数据以类似股票K线显示方式进行分析」· PAS 代码 · 共 75 行

PAS
75
字号
unit uUserManage;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Grids, ComCtrls, DBGrids, DBCtrls, DB, ADODB;

const
  mIDUserManage = 1;

type
  TUserManageFrm = class(TForm)
    Panel2: TPanel;
    dbgUser: TDBGrid;
    dbnMain: TDBNavigator;
    adocUser: TADOConnection;
    adotUser: TADOTable;
    dsUser: TDataSource;
    procedure FormCreate(Sender: TObject);
  private
    FModuleID: Integer;
    FUserID: Integer;
    function ModuleIsReadOnly(AUserID, AModuleID: Integer): Boolean;
  public
    constructor Create(AOwner: TComponent; AUserID: Integer);
  end;

implementation

{$R *.dfm}

constructor TUserManageFrm.Create(AOwner: TComponent; AUserID: Integer);
begin
  FUserID := AUserID;
  inherited Create(AOwner);
end;

procedure TUserManageFrm.FormCreate(Sender: TObject);
var
  iRight: Integer;
begin
  FModuleID := mIDUserManage;
  with adotUser do
  begin
    Close;
    ReadOnly := ModuleIsReadOnly(FUserID, FModuleID);
    if ReadOnly then
    begin
      Filtered := False;
      Filter := 'UserID=' + IntToStr(FUserID);
      Filtered := True;
    end;
    Open;
  end;
end;

function TUserManageFrm.ModuleIsReadOnly(AUserID, AModuleID: Integer): Boolean;
begin
  //获取当前登录用户的该模块的权限
  with TADOQuery.Create(Self) do
  try
    Connection := adocUser;
    SQL.Text := 'Select ReadOnly From Rights where UserID=' +  IntToStr(AUserID)
               + ' and ModuleID=' + IntToStr(AModuleID);
    Open;
    Result := Fields[0].AsBoolean;
    Close;
  finally
    Free;
  end;
end;

end.

⌨️ 快捷键说明

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