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

📄 usermg.pas

📁 北京铁路局住房分配系统,数据库为MSSql2000,依次执行crebas4.sql
💻 PAS
字号:
unit UserMG;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, ImgList, ToolWin, ExtCtrls, Db, ADODB, Grids, DBGrids, StdCtrls,
  Buttons;

type
  TUserMaint = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    ControlBar1: TControlBar;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    StatusBar1: TStatusBar;
    DBGrid1: TDBGrid;
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Panel2: TPanel;
    CheckBoxA1: TCheckBox;
    CheckBoxA2: TCheckBox;
    CheckBoxA3: TCheckBox;
    CheckBoxA4: TCheckBox;
    CheckBoxA5: TCheckBox;
    CheckBoxA6: TCheckBox;
    CheckBoxA7: TCheckBox;
    CheckBoxA8: TCheckBox;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn0: TBitBtn;
    Panel3: TPanel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Panel4: TPanel;
    CheckBoxB1: TCheckBox;
    CheckBoxB2: TCheckBox;
    CheckBoxB3: TCheckBox;
    CheckBoxB4: TCheckBox;
    CheckBoxB5: TCheckBox;
    CheckBoxB6: TCheckBox;
    CheckBoxB7: TCheckBox;
    CheckBoxB8: TCheckBox;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    ImageList1: TImageList;
    ImageList2: TImageList;
    CheckBoxB9: TCheckBox;
    CheckBoxB10: TCheckBox;
    CheckBoxB11: TCheckBox;
    CheckBoxB12: TCheckBox;
    CheckBoxB13: TCheckBox;
    CheckBoxB14: TCheckBox;
    CheckBoxB15: TCheckBox;
    CheckBoxB16: TCheckBox;
    CheckBoxB17: TCheckBox;
    CheckBoxB18: TCheckBox;
    CheckBoxB19: TCheckBox;
    CheckBoxB20: TCheckBox;
    CheckBoxA9: TCheckBox;
    CheckBoxA10: TCheckBox;
    CheckBoxA11: TCheckBox;
    CheckBoxA12: TCheckBox;
    CheckBoxA13: TCheckBox;
    CheckBoxA14: TCheckBox;
    CheckBoxA15: TCheckBox;
    CheckBoxA16: TCheckBox;
    CheckBoxA17: TCheckBox;
    CheckBoxA18: TCheckBox;
    CheckBoxA19: TCheckBox;
    CheckBoxA20: TCheckBox;
    procedure ToolButton9Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn0Click(Sender: TObject);
    procedure RefreshItem(Index,Item:integer);
    procedure ToolButton5Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  UserMaint: TUserMaint;

implementation

uses PublicFun,datamodl;
{$R *.DFM}

procedure TUserMaint.ToolButton9Click(Sender: TObject);
//退出
begin
  close;
end;

procedure TUserMaint.FormCreate(Sender: TObject);
//初始化
begin
  fUserInfo;
  PageControl1.ActivePageIndex :=0;
  dbgrid1.DataSource:=datamodule1.DataS;
  if (_usertype=0) and (Copy(_userpurview,2,1)='0') then
  begin
    ToolButton3.Enabled :=false;
    ToolButton5.Enabled :=false;
    if copy(_userpurview,3,1)='0' then
      ToolButton4.Enabled :=false;
  end;
end;

procedure TUserMaint.ToolButton1Click(Sender: TObject);
//用户列表
begin
  fUserInfo;
  PageControl1.ActivePageIndex :=0;
  refreshitem(0,0);
end;

procedure TUserMaint.ToolButton3Click(Sender: TObject);
//增加用户
begin
  PageControl1.ActivePageIndex :=1;
  Toolbutton5.Enabled :=false;
  Toolbutton4.Enabled :=false;
  Toolbutton3.Enabled :=false;
  refreshitem(1,0);
end;

procedure TUserMaint.ToolButton4Click(Sender: TObject);
//修改用户
var
  username,userid,userpurview,userpwd : string;
  ni,UserType:smallint;
  purviewenabled:boolean;
begin
  fUser(UserId,UserPwd,UserName,UserPurview,UserType);
  if userid=_UserId then
    showmessage('用户不能修改自己!')
  else
    if UserType = 1 then
      showmessage('超级用户“'+username+'”不允许修改!')
    else
      begin
        //设置是否更改用户项目
        if (_UserType=1) or (Copy(_userpurview,2,1)='1') then
        begin
          if _UserType=1 then
          begin
            edit7.Enabled :=true;
            edit8.Enabled :=true;
            edit7.Color :=clWindow;
            edit8.Color :=clWindow;
          end
          else
          begin
            edit7.Enabled :=false;
            edit8.Enabled :=false;
            edit7.Color :=clMenu;
            edit8.Color :=clMenu;
          end;
          edit5.Enabled :=true;
          edit5.Color :=clWindow;
          edit6.Color :=clWindow;
        end
        else
        begin
            edit5.Enabled :=false;
            edit5.Color :=clMenu;
            edit6.Color :=clMenu;
            edit7.Enabled :=false;
            edit8.Enabled :=false;
            edit7.Color :=clMenu;
            edit8.Color :=clMenu;
        end;
        //赋值
        edit5.Text :=username;
        edit6.Text :=userid;
        edit7.Text :=UserPwd;
        edit8.Text :=edit7.Text ;
       { if UserState=0 then
          RadBtn3.Checked:=true
        else
          RadBtn4.Checked:=true;    }
        //设置权限值
        for ni:=0 to panel4.ControlCount-1 do
          if copy(userpurview,ni+1,1)='1' then
            (panel4.Controls[ni] as tcheckbox).checked:=true
          else
            (panel4.Controls[ni] as tcheckbox).checked:=false;

        //设置是否可以授权
        if (_UserType=1) or (Copy(_userpurview,3,1)='1') then
          purviewenabled:=true
        else
          purviewenabled:=false;
        for ni:=0 to panel4.ControlCount-1 do
          (panel4.Controls[ni] as tcheckbox).enabled:=purviewenabled;

        //更换面面
        PageControl1.ActivePageIndex :=2;
        Toolbutton5.Enabled :=false;
        Toolbutton4.Enabled :=false;
        Toolbutton3.Enabled :=false;
      end;
end;

procedure TUserMaint.BitBtn1Click(Sender: TObject);
//增加用户存盘
var
  Purview:string;
  nRet,ni,nl:smallint;
begin
  purview:='';
  for ni:=1 to panel2.ControlCount do
  begin
    if panel2.Controls[ni-1].Visible then
    begin
      if (panel2.Controls[ni-1] as tcheckbox).checked then
        purview:=purview+'1'
      else
        purview:=purview+'0';
    end
    else
      break;
  end;
  for nl:=ni to 20 do
    purview:=purview+'0';
  if (edit1.Text <>'') and (edit2.Text <>'') then
  begin
    if edit3.Text =edit4.Text then
    begin
      nRet := UserSave(trim(Edit2.Text),trim(Edit1.Text),trim(Edit3.Text),Purview,0);//iif(RadBtn1.Checked,0,1));
      if nRet=0 then
      begin
        refreshitem(1,1);
        showmessage('存盘成功');
      end
      else
        if nRet=1 then
          showmessage('用户代码已被其他人使用,请重新填写!')
        else
          showmessage('存盘失败,请稍候再重试!')
    end
    else
      showmessage('密码输入错误,请重新输入!');
  end
  else
    showmessage('用户名及用户代码不能为空,请输入!');
end;

procedure TUserMaint.BitBtn0Click(Sender: TObject);
//继续增加
begin
  refreshitem(1,0);
end;

procedure TUserMaint.RefreshItem(Index,Item:integer);
//刷新项目
var
  ni :smallint;
begin
  case index of
    0: begin
         if (_usertype=0) and (Copy(_userpurview,2,1)='0') then
         begin
           ToolButton3.Enabled := false;
           ToolButton5.Enabled := false;
           if copy(_userpurview,3,1)='0' then
             ToolButton4.Enabled := false
           else
             Toolbutton4.Enabled := true;
         end
         else
         begin
           Toolbutton3.Enabled := true;
           Toolbutton4.Enabled := true;
           Toolbutton5.Enabled := true;
         end;
       end;
    1: begin  //增加
         case item of
           0: begin  //增加新职工
                bitbtn1.Enabled :=true;
                bitbtn0.Enabled :=false;
                edit1.Text :='';
                edit2.Text :='';
                edit3.Text :='';
                edit4.Text :='';
                edit1.Enabled :=true;
                edit2.Enabled :=true;
                edit3.Enabled :=true;
                edit4.Enabled :=true;
                for ni:=1 to panel2.ControlCount do
                begin
                  (panel2.Controls[ni-1] as tcheckbox).Checked := False;
                end;
              end;
           1: begin  //增加存盘时更新控件属性
                bitbtn0.Enabled :=true;
                bitbtn1.Enabled :=false;
                edit1.Enabled :=false;
                edit2.Enabled :=false;
                edit3.Enabled :=false;
                edit4.Enabled :=false;

              end;
         end;
       end;
    2: begin  //修改用户
       end;
  end;
end;
procedure TUserMaint.ToolButton5Click(Sender: TObject);
//删除用户
var
  username,userid : string;
  nRet:smallint;
  userpurview,userpwd : string;
  UserType:smallint;
  HD:Thandle;
begin
  fUser(UserId,UserPwd,UserName,UserPurview,UserType);
  if userid=_UserId then
    showmessage('用户不能删除自己!')
  else
    if UserType = 1 then
      showmessage('超级用户“'+username+'”不允许删除!')
    else
      begin
      HD:= UserMaint.Handle;
      if messagebox(HD,pchar('是否要删除用户“'+username+'”吗?'),pchar('信息提示'),MB_YESNO)=IDYES then
        begin
          nRet:=UserDel(Userid);
          case nRet of
            0: begin
                 showmessage('用户“'+username+'”删除成功。');
                 fUserInfo;
               end;
            1: showmessage('用户“'+username+'”已登录,不允许删除!');
            2: showmessage('删除用户“'+username+'”失败!');
        end;
      end;
    end;
end;

procedure TUserMaint.BitBtn4Click(Sender: TObject);
var
  Purview:string;
  nRet,ni,nl:smallint;
begin
  purview:='';
  for ni:=1 to panel4.ControlCount do
  begin
    if panel4.Controls[ni-1].Visible then
    begin
      if (panel4.Controls[ni-1] as tcheckbox).checked then
        purview:=purview+'1'
      else
        purview:=purview+'0';
    end
    else
      break;
  end;
  for nl:=ni to 20 do
    purview:=purview+'0';
  if (edit5.Text <>'') then
  begin
    if edit7.Text =edit8.Text then
    begin
      nRet := UserSave(trim(Edit6.Text),trim(Edit5.Text),trim(Edit7.Text),Purview,0);
      if nRet=0 then
      begin
        refreshitem(1,1);
        showmessage('修改成功。');
      end
      else
        if nRet=1 then
           showmessage('用户代码已被其他人删除!')
        else
           showmessage('存盘失败,请稍候再重试!')
    end
    else
      showmessage('密码输入错误,请重新输入!');
  end
  else
    showmessage('用户名不能为空,请输入!');

end;

procedure TUserMaint.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
    begin
      Key := #0;
      Perform(WM_NEXTDLGCTL,0,0);
    end;
end;

end.

⌨️ 快捷键说明

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