📄 popedom.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 + -