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

📄 user_right.pas

📁 软件类别: 数据库 软件大小: 2.60M 运行环境: Win9xNT/2000/XP 一套车辆管理系统,此版本为商业版,大家一定用的着。
💻 PAS
字号:
unit User_Right;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Buttons, CheckLst;

type
  Tfrm_User_Right = class(TForm)
    Panel1: TPanel;
    GroupBox3: TGroupBox;
    Panel3: TPanel;
    Panel4: TPanel;
    CheckListBox1: TCheckListBox;
    Panel5: TPanel;
    SpeedButton1: TSpeedButton;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    Panel2: TPanel;
    Label1: TLabel;
    GroupBox1: TGroupBox;
    Panel6: TPanel;
    Label2: TLabel;
    EditUser_Type: TComboBox;
    EditUser_Name: TComboBox;
    Label3: TLabel;
    EditUser_ID: TLabeledEdit;
    Edit_Right: TEdit;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure EditUser_NameChange(Sender: TObject);
    procedure EditUser_TypeChange(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
    frm_User_Right: Tfrm_User_Right;
    Right         :string;//局部权限定义
    i             :Integer;
implementation

uses Data, func;

{$R *.dfm}

procedure Tfrm_User_Right.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
    action:=Cafree;
end;

procedure Tfrm_User_Right.FormShow(Sender: TObject);
begin
    with frm_data.Query_Login do
    begin
        Edituser_Type.Clear;
        EditUser_Name.Clear;
        Close;
        Sql.Clear;
        Sql.Add('SELECT Distinct User_Type FROM [Login]');
        Try
            Prepared;
            Open;
            while not eof do
            begin
                Edituser_Type.Items.Add(frm_data.Query_Login.FieldByName('User_Type').AsString);
                Next;
            end;
        except
            Application.MessageBox('系统错误!在打开数据表【LOGIN】时与远程服务器连接错误!请确认!',Pchar(Application.Title),MB_ICONWARNing);
            Exit;
        End;
    end;
end;

procedure Tfrm_User_Right.EditUser_NameChange(Sender: TObject);

begin
    //
    //**************************************************************************
    //把符合条件的用户ID过滤出来并加载到文本筐里
    with frm_data.Query_Login do
    begin
        Close;
        Sql.Clear;
        Sql.Add('SELECT * FROM [Login] WHERE User_Type='''+Trim(EditUser_Type.Text)+''' and User_Name='''+Trim(EditUser_Name.Text)+''' ');
        Try
            Prepared;
            Open;
            EditUser_ID.Text:=frm_data.Query_Login.FieldByName('User_ID').AsString;
        Except
            Application.MessageBox('系统错误!在打开数据表【LOGIN】时与远程服务器连接错误!请确认!',Pchar(Application.Title),MB_ICONWARNing);
            Exit;
        End
    end;
    //**************************************************************************
    //
    //--------------------------------------------------------------------------
    //提取现有权限
    with frm_data.Query_User_Right do
    begin
        Close;
        Sql.Clear;
        Sql.Add('Select * from [User_Right] where User_ID='''+Trim(EditUser_ID.Text)+'''');
        Try
            Prepared;
            Open;
            Pub_Right:='';
            if frm_data.Query_User_Right.RecordCount>0 then
            begin
                First;
                while not Eof do
                begin
                    Right:=Right+frm_data.Query_User_Right.FieldByName('Right_Name').AsString+',';
                    Next ;
                end;

                for i:=0 to checklistbox1.Count-1 do
                begin
                    if pos(checklistbox1.Items.Strings[i],right)>0 then
                    begin
                        checklistbox1.Checked[i]:=true
                    end
                    else
                    begin
                        checklistbox1.Checked[i]:=false;
                    end;
                end;
            end;

            if frm_data.Query_User_Right.RecordCount<=0 then
            begin
                for i:=0 to checklistbox1.Count-1 do
                begin
                    checklistbox1.Checked[i]:=false;
                end;
            end;
        Except
            Application.MessageBox('系统错误!在打开数据表【User_Right】时与远程服务器连接错误!请确认!',Pchar(Application.Title),MB_ICONWARNing);
            Exit;
        End;
    end;
        //--------------------------------------------------------------------------
end;

procedure Tfrm_User_Right.EditUser_TypeChange(Sender: TObject);
begin
    with frm_data.Query_Login do
    begin
        EditUser_Name.Clear;
        Close;
        Sql.Clear;
        Sql.Add('SELECT User_Name FROM [Login] WHERE User_Type='''+Trim(EditUser_Type.Text)+'''');
        Try
            Prepared;
            Open;
            while not eof do
            begin
                EditUser_Name.Items.Add(frm_data.Query_Login.FieldByName('User_Name').AsString);
                Next;
            end;
        except
            Application.MessageBox('系统错误!在打开数据表【LOGIN】时与远程服务器连接错误!请确认!',Pchar(Application.Title),MB_ICONWARNing);
            Exit;
        End;
    end;
end;

procedure Tfrm_User_Right.RadioButton1Click(Sender: TObject);
begin
    if trim(EditUser_ID.Text)='' then
    begin
        Application.MessageBox('操作失败,【用户姓名】不能为空,请确认!',Pchar(application.Title),MB_ICONWarning);
        RadioButton1.Checked:=false;
        exit;
    end
    else
    begin
        for i:=0 to checklistbox1.Count-1 do
        begin
            Checklistbox1.Checked[i]:=true;
        end;
    end;
end;

procedure Tfrm_User_Right.RadioButton2Click(Sender: TObject);
begin
    for i:=0 to checklistbox1.Count-1 do
    begin
        Checklistbox1.Checked[i]:=False;
    end;
end;

procedure Tfrm_User_Right.SpeedButton1Click(Sender: TObject);
begin
    if trim(EditUser_ID.Text)='' then
    begin
        Application.MessageBox('操作失败,【用户姓名】不能为空,请确认!',Pchar(application.Title),MB_ICONWarning);
        RadioButton1.Checked:=false;
        Exit;
    end;
    with frm_data.Query_User_Right do
    begin
        Close;
        Sql.Clear;
        Sql.Add('delete [User_Right] where User_ID='''+Trim(EditUser_ID.Text)+'''');
        Try
            Prepared;
            ExecSql;
            for i:=0 to  checklistbox1.Items.Count-1 do
            begin
                if checklistbox1.Checked[i] then
                begin
                    with frm_data.Query_User_Right do
                    begin
                        Close;
                        Sql.Clear;
                        Sql.Add('insert into [User_Right] (User_ID,Right_Name) values (:User_ID,:Right_Name)');
                        frm_data.Query_User_Right.Parameters[0].Value:=Trim(EditUser_ID.Text);
                        frm_data.Query_User_Right.Parameters[1].Value:=checklistbox1.Items[i];
                        Try
                            Prepared;
                            ExecSql;
                        Except
                            Application.MessageBox('系统错误,系统在保存数据表【User_Right】时出错!,请确认!',Pchar(application.Title),MB_ICONWarning);
                            Exit;
                        End;
                    end;
                end;
            end;
            Application.MessageBox('权限设置完成!请确认!',Pchar(application.Title),MB_ICONWarning);
        Except
            Application.MessageBox('系统错误,系统在删除数据表【User_Right】时出错!,请确认!',Pchar(application.Title),MB_ICONWarning);
            Exit;
        End;
    end;
end;

end.

⌨️ 快捷键说明

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