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

📄 popedom.pas

📁 一款不错的商务程序商品管理系统,有简易的窗体皮肤
💻 PAS
字号:
unit Popedom;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, ExtCtrls, Buttons,StrUtils, ImgList, DB,
  ADODB,Theme;

type
  TFrm_Popedom = class(TBaseForm)
    GroupBox1: TGroupBox;
    TreeView1: TTreeView;
    GroupBox2: TGroupBox;
    Panel1: TPanel;
    TreeView2: TTreeView;
    SpeedButton5: TSpeedButton;
    SpeedButton6: TSpeedButton;
    Panel2: TPanel;
    SpeedButton7: TSpeedButton;
    ImageList1: TImageList;
    SpeedButton1: TSpeedButton;
    ADOQ: TADOQuery;
    procedure SpeedButton6Click(Sender: TObject);
    procedure TreeView2MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure SpeedButton1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TreeView1DblClick(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
  private
    FGroupName:string;
    { Private declarations }
    procedure GetMenuTree(Tree:TTreeView);
    procedure GetGroup;
    procedure ReadTree(Node:TTreeNode;PID,GroupName:string);
  public
    { Public declarations }
  end;

var
  Frm_Popedom: TFrm_Popedom;

implementation
uses Main,PopedomEdit,User, DM;
{$R *.dfm}

{ TForm2 }

procedure TFrm_Popedom.GetMenuTree(Tree: TTreeView);
var
  i,j:Integer;
  Txt:string;
  Node:TTreeNode;
begin
  Node:=nil;
  Tree.Items.Clear;
  with Frm_Main.MainMenu1 do
  begin
    for i:=0 to Items.Count-1 do
    begin
      Txt:=Items[i].Hint;
      if Txt<>'' then
      begin
        Node:=Tree.Items.Add(nil,Txt);
      end;
      for j:=0 to Items[i].Count-1 do
      begin
        Txt:=Items[i].Items[j].Hint;
        if Txt<>'' then
          Tree.Items.AddChild(Node,Txt);
      end;
    end;
  end;
  Tree.FullExpand;
end;

procedure TFrm_Popedom.SpeedButton6Click(Sender: TObject);
begin
  Close;
end;

procedure TFrm_Popedom.TreeView2MouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  Node:TTreeNode;
begin
if Button = mbRight then
begin
  Node:=TreeView2.GetNodeAt(X,Y);
  Node.Selected:=True;
  if Node.SelectedIndex=0 then
  begin
    Node.SelectedIndex:=1;
    Node.ImageIndex:=1;
  end
  else
  begin
    Node.SelectedIndex:=0;
    Node.ImageIndex:=0;
  end;
end;
  TreeView2.Refresh;
end;

procedure TFrm_Popedom.SpeedButton1Click(Sender: TObject);
begin
  Frm_PopEdit.ShowModal;
  GetGroup;
end;

procedure TFrm_Popedom.GetGroup;
var
  i:Integer;
begin
  TreeView1.TopItem.DeleteChildren;
  ADOQ.Close;
  ADOQ.SQL.Text:='Select Distinct MR_Name From MR_Group_Tab';
  ADOQ.Open;
  if ADOQ.RecordCount=0 then
    Exit;
  for i:=0 to ADOQ.RecordCount-1 do
  begin
    TreeView1.Items.AddChild(TreeView1.TopItem,ADOQ.Fields[0].AsString);
    ADOQ.Next;
  end;
end;

procedure TFrm_Popedom.FormShow(Sender: TObject);
begin
  GetGroup;
end;

procedure TFrm_Popedom.TreeView1DblClick(Sender: TObject);
var
  GroupName,SQLStr:string;
begin
  if (Assigned(TreeView1.Selected)) and (TreeView1.Selected<>TreeView1.TopItem) then
  begin
    GroupName:=TreeView1.Selected.Text;
    FGroupName:=GroupName;
    SQLStr:='Select * From MR_Popedom_Tab Where MR_Name='+QuotedStr(GroupName);
    ADOQ.Close;
    ADOQ.SQL.Text:=SQLStr;
    ADOQ.Open;
    if ADOQ.RecordCount=0 then
    begin
      GetMenuTree(TreeView2);
    end
    else
    begin
      TreeView2.Items.Clear;
      ReadTree(nil,'0',FGroupName);
      TreeView2.FullExpand;
    end;
  end;
end;

procedure TFrm_Popedom.SpeedButton5Click(Sender: TObject);
var
  i,IsUse,No,PNo:Integer;
  SQLStr,FormName:string;

begin
  if FGroupName='' then
  begin
    Application.MessageBox('请选择用户组','明日科技');
    Exit;
  end;
  SQLStr:='Delete From MR_Popedom_Tab where MR_Name='+QuotedStr(FGroupName);
  ADOQ.Close;
  ADOQ.SQL.Text:=SQLStr;
  ADOQ.ExecSQL;
  for i:=0 to TreeView2.Items.Count-1 do
  begin
    FormName:=TreeView2.Items[i].Text;
    if TreeView2.Items[i].ImageIndex=0 then
      IsUse := 1
    else
      IsUse := 0;
    No:=TreeView2.Items[i].AbsoluteIndex+1;
    if Assigned(TreeView2.Items[i].Parent) then
      PNo:=TreeView2.Items[i].Parent.AbsoluteIndex+1
    else
      PNo:=0;
    SQLStr:='insert into MR_Popedom_Tab (MR_Name,MR_FormName,IsUse,MR_NO,MR_PNO)'+
        ' values ('+QuotedStr(FGroupName)+','+QuotedStr(FormName)+','+
        IntToStr(IsUse)+','+IntToStr(No)+','+IntToStr(PNo)+')';
    ADOQ.Close;
    ADOQ.SQL.Text:=SQLStr;
    ADOQ.ExecSQL;
  end;
  Application.MessageBox('组权限设置成功!','明日科技');
end;

procedure TFrm_Popedom.ReadTree(Node:TTreeNode;PID,GroupName:string);
var
  ADOQ:TADODataSet;
  i:Integer;
  ChileID:string;
  CHNode:TTreeNode;
begin
  ADOQ:=TADODataSet.Create(nil);
  ADOQ.Connection:=fdm.ADOConnection1;
  ADOQ.CommandText:='Select * from MR_Popedom_Tab where MR_PNO='+PID+' and MR_Name='+QuotedStr(GroupName)+' order by MR_NO';
  ADOQ.Active:=True;

  for i:=0 to ADOQ.RecordCount-1 do
  begin
    ChileID:=ADOQ.FieldByName('MR_NO').AsString;
    CHNode:=TreeView2.Items.AddChild(Node,ADOQ.FieldByName('MR_FormName').AsString);
    if ADOQ.FieldByName('IsUse').AsBoolean then
      CHNode.ImageIndex:=0
    else
      CHNode.ImageIndex:=1;
    ReadTree(CHNode,ChileID,GroupName);
    ADOQ.Next;
  end;
end;

procedure TFrm_Popedom.SpeedButton7Click(Sender: TObject);
begin
  Frm_User.ShowModal;
end;

end.

⌨️ 快捷键说明

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