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

📄 userright.pas

📁 企业端数据申报系统:单位管理模块 单位查询. 业务申报模块 在线数据下载 在线数据上传 在线业务申核 申报业务查询 磁盘数据导出 磁盘数据导入 在线业务模块 在线业务
💻 PAS
📖 第 1 页 / 共 2 页
字号:

//模块名称:用户权限

unit userright;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, basewin, Menus, ActnList, ImgList, ExtCtrls, ComCtrls, ToolWin,
  TFlatCheckBoxUnit, TFlatGroupBoxUnit, StdCtrls, TFlatEditUnit, Buttons,
  fcTreeView, XPMenu, TFlatButtonUnit, TFlatSpeedButtonUnit;


type
  Tuseradmin_frm = class(Tbasewin_frm)
    Panel2: TPanel;
    Splitter1: TSplitter;
    Exit_but: TAction;
    ImageList2: TImageList;
    Add_user: TAction;
    Del_user: TAction;
    N2: TMenuItem;
    N3: TMenuItem;
    Save_but: TAction;
    Panel3: TPanel;
    Splitter2: TSplitter;
    Panel4: TPanel;
    fcTreeView1: TfcTreeView;
    fcTreeView3: TfcTreeView;
    Modi_user: TAction;
    fcTreeView2: TfcTreeView;
    MainMenu1: TMainMenu;
    useradmin_menu: TMenuItem;
    a21: TMenuItem;
    a31: TMenuItem;
    adduser_submenu: TMenuItem;
    modifyuser_submenu: TMenuItem;
    deluser_submenu: TMenuItem;
    save_submenu: TMenuItem;
    N7: TMenuItem;
    N1: TMenuItem;
    help_but: TAction;
    N4: TMenuItem;
    Panel5: TPanel;
    Panel6: TPanel;
    FlatSpeedButton1: TFlatSpeedButton;
    FlatSpeedButton2: TFlatSpeedButton;
    FlatSpeedButton3: TFlatSpeedButton;
    FlatSpeedButton4: TFlatSpeedButton;
    {procedure Exit_butExecute(Sender: TObject);
    procedure Add_userExecute(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Del_userExecute(Sender: TObject);
    procedure Save_butExecute(Sender: TObject);
    procedure TreeView1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Modi_userExecute(Sender: TObject);
    procedure fcTreeView1ToggleCheckbox(TreeView: TfcCustomTreeView;
      Node: TfcTreeNode);
    procedure fcTreeView2Click(Sender: TObject);
    procedure ListNode(L,H,id:integer;item:TfcTreeNode);
    procedure InitTree(Tree:TfcTreeView;Sour:String;const flag:boolean);
    procedure fcTreeView3ToggleCheckbox(TreeView: TfcCustomTreeView;
      Node: TfcTreeNode);
    procedure SetNode(item:TfctreeNode;state:boolean);
    procedure help_butExecute(Sender: TObject); }

  private
    { Private declarations }
  public

  end;

type
  TOrganization=record
  parentid:integer;   //父节点编码
  id:integer;         //机构编码
  name:string;        //机构名称
  disptype:integer;   //显示类型:1-单位  2-部门
end;


var
  useradmin_frm: Tuseradmin_frm;
  Oper_type:Char;
  TreeItem,UnitItem:TfcTreeNode;
  Organ:array of TOrganization;

implementation

uses datashare, useroption, main,  hh;   // hh_funcs,

{$R *.dfm}
{
procedure Tuseradmin_form.Exit_butExecute(Sender: TObject);
begin
  inherited;
  //退出当前模块
  if Application.MessageBox('您真的要退出当前操作吗?','退出确认',MB_OKCancel+MB_DEFBUTTON1+MB_IconQuestion+MB_SystemModal)=IdOk then
    close;
end;

procedure Tuseradmin_form.Add_userExecute(Sender: TObject);
var
  str:string;
begin
  inherited;
  with datashare_form.Query1 do
  begin
    close;
    sql.Clear;
    str:='select OPMANG from users where  OPERID=:p1';
    sql.add(str);
    params[0].AsInteger:=main_form.user.OPERID;
    prepare;
    open;
    if fieldbyname('opmang').AsString='0' then
    begin
      application.MessageBox('普通用户不能进行操作人员添加!','恩普软件',MB_OK+MB_IconStop+MB_SystemModal);
      exit;
    end;
  end;
  try
    Oper_type:='0';
    useroption_form:=Tuseroption_form.create(application);
    useroption_form.showmodal;
  finally
    useroption_form.free;
  end;

end;


procedure Tuseradmin_form.FormCreate(Sender: TObject);
var
  Str:string;
  NewItem,fcNewItem:TfcTreeNode;
  p,k,i:integer;

begin
  inherited;

  modifyuser_submenu.Enabled:=false;
  deluser_submenu.Enabled:=false;
  save_submenu.Enabled:=false;
  modifyuser_button.Enabled:=false;
  deleteuser_button.Enabled:=false;
  save_button.Enabled:=false;

  try                             //初始化用户列表
    with datashare_form.Query1 do
    begin
      close;
      sql.Clear;
      Str:='select OPERID,OPNAME,OPMANG from USERS where OPSTAT=:para1 order by OPNAME,OPMANG';
      sql.Add(Str);
      params[0].AsString:='0';
      prepare;
      open;
      while not eof do
      begin
        NewItem:=fcTreeView2.Items.AddChild(fcTreeView2.Items.GetFirstNode,trim(fieldbyname('OPNAME').AsString));
        NewItem.CheckboxType:=tvctRadioGroup;
        NewItem.StringData:=fieldbyname('OPERID').AsString;
        NewItem.StringData2:=fieldbyname('OPMANG').AsString;
        NewItem.ImageIndex:=1;
        NewItem.SelectedIndex:=1;
        NewItem.StateIndex:=1;
        next;
      end;
      params.Clear;
      close;
    end;
  except
    on e:exception do
      application.MessageBox(pchar(e.Message),'恩普软件',MB_OK+MB_IconStop+MB_SystemModal);
  end;

  try                         //权限项目列表
    with datashare_form.Query1 do
    begin
      close;
      sql.Clear;
      str:='where ITEMNO in (select ITEMNO from VERSION where VER='+#39+ESIIS_VERSION+#39+')';
      str:='select * from RIGHTCORT '+str+' order by GROUPNO,NODENO,ORDNO';
      sql.Add(str);
      prepare;
      open;
      while not eof do
      begin
        if fieldbyname('NODENO').AsString='0' then
        begin
          fcNewItem:=fcTreeView1.Items.Add(nil,fieldbyname('ITEMNAME').AsString);
          p:=fcNewItem.AbsoluteIndex;
        end
        else
          fcNewItem:=fcTreeView1.Items.AddChild(fcTreeView1.Items.Item[p],fieldbyname('ITEMNAME').AsString);
        fcNewItem.CheckboxType:=tvctCheckbox;
        fcNewItem.StringData:=fieldbyname('ITEMNO').AsString;
        next;
      end;
    end;
  except
    on e:exception do
      application.MessageBox(pchar(e.Message),'恩普软件',MB_OK+MB_IconStop+MB_SystemModal);
  end;

  try           //列出单位部门
    with datashare_form.Query1 do
    begin
      close;
      sql.Clear;
      str:='select parentid,id,name,disptype from organization order by parentid,id';
      sql.Add(str);
      prepare;
      open;
      setlength(Organ,recordcount);
      k:=0;
      while not eof do                    //将组织结构存入结构体数组
      begin
        Organ[k].parentid:=fieldbyname('parentid').AsInteger;
        Organ[k].id:=fieldbyname('id').AsInteger;
        Organ[k].name:=fieldbyname('name').AsString;
        Organ[k].disptype:=fieldbyname('disptype').AsInteger;
        inc(k);
        next;
      end;
    end;
  except
    on e:exception do
      application.MessageBox(pchar(e.Message),'恩普软件',MB_OK+MB_IconStop+MB_SystemModal);
  end;
  for i:=low(Organ) to high(Organ) do
  begin
    if Organ[i].parentid=0 then
    begin
      UnitItem:=fcTreeView3.Items.AddChild(Nil,Organ[i].name);
      UnitItem.CheckboxType:=tvctCheckbox;
      UnitItem.StringData:=inttostr(Organ[i].id);
      UnitItem.StringData2:=inttostr(Organ[i].parentid);
      ListNode(i,High(Organ),Organ[i].id,UnitItem);
    end;
  end;

  fcTreeView2.FullExpand;
  fcTreeView3.FullExpand;
end;

procedure Tuseradmin_form.ListNode(L,H,id:integer;item:TfcTreeNode);
var
  i:integer;
  NewItem:TfcTreeNode;
begin
  for i:=L to H do
  begin
    if Organ[i].parentid=id then
    begin
      NewItem:=fcTreeView3.Items.AddChild(item,Organ[i].name);
      NewItem.CheckboxType:=tvctCheckbox;
      NewItem.StringData:=inttostr(Organ[i].id);
      NewItem.StringData2:=inttostr(Organ[i].parentid);
      ListNode(i,H,organ[i].id,NewItem);
    end;
  end;
end;

procedure Tuseradmin_form.Del_userExecute(Sender: TObject);
var
  Str:string;
begin
  inherited;
  if (strtoint(fctreeview2.Selected.StringData)=main_form.user.OPERID) then
  begin
    application.MessageBox('删除用户不能为当前系统用户!','恩普软件',MB_OK+MB_IconStop+MB_SystemModal);
    exit;
  end;
  if Application.MessageBox('您真的要当前选择用户进行删除操作吗?','退出确认',MB_OKCancel+MB_DEFBUTTON1+MB_IconQuestion+MB_SystemModal)=IdOk then
  begin
    datashare_form.Dbs.StartTransaction;
    try
      with datashare_form.Query1  do
      begin
        close;
        sql.Clear;
        Str:='delete from USERRIGHT where OPERID=:p1';
        sql.Add(Str);
        params[0].AsInteger:=strtoint(fctreeview2.Selected.StringData);
        execsql;

        close;
        sql.Clear;
        Str:='delete from UNITRIGHT where OPERID=:p1';
        sql.Add(Str);
        params[0].AsInteger:=strtoint(fctreeview2.Selected.StringData);
        execsql;

        close;
        sql.Clear;
        str:='delete from USERS where OPERID=:p1';
        sql.Add(Str);
        params[0].AsInteger:=strtoint(fctreeview2.Selected.StringData);
        execsql;
      end;

      datashare_form.Dbs.Commit;
      fcTreeView2.Selected.Delete;
    except
      on e:exception do

⌨️ 快捷键说明

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