📄 permit.cs
字号:
using System;
using System.Windows.Forms;
using System.Data;
namespace GEROSYS
{
/// <summary>
/// Permit 的摘要说明。
/// </summary>
public class Permit
{
private string lsPos;
private MenuTreeNode [] leftMenu;
private string _RoleId;
public Permit()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public string RoleId
{
get
{
return this._RoleId ;
}
set
{
_RoleId = value ;
}
}
#region 左菜单初始化
public long IniLeftMenu(string lsRole)
{
AccessData AppClient=new AccessData ();
DataTable dtEmp =new DataTable();
try
{
string strSQL = "SELECT b.role_id,a.func_name,a.func_caption,a.func_position ,a.func_class,a.func_level FROM func a,permit b where a.func_id=b.func_id and b.role_id='" + lsRole +"'";
dtEmp=AppClient.SelectSQL(strSQL);
leftMenu= new MenuTreeNode[dtEmp.Rows.Count];
for (int llCount=0;llCount<dtEmp.Rows.Count;llCount++)
{
DataRow drEmp;
MenuTreeNode SingerLeftMenu=new MenuTreeNode();
drEmp=dtEmp.Rows[llCount];
SingerLeftMenu.MenuItemName=drEmp["func_name"].ToString();
SingerLeftMenu.MenuItemText=drEmp["func_caption"].ToString();
SingerLeftMenu.MenuItemPosition =drEmp["func_position"].ToString();
SingerLeftMenu.MenuItemClass =drEmp["func_class"].ToString();
SingerLeftMenu.MenuItemLevel =drEmp["func_level"].ToString();
SingerLeftMenu.MenuItemRole=drEmp["Role_Id"].ToString();
leftMenu[llCount]=SingerLeftMenu;
}
}
catch(Exception ms)
{
MessageBox.Show(ms.Message, "General Error");
return 0;
}
return dtEmp.Rows.Count;
}
#endregion
public long IniLeftMenu()
{
AccessData AppClient=new AccessData ();
DataTable dtEmp =new DataTable();
try
{
string strSQL="select * from func";
dtEmp=AppClient.SelectSQL(strSQL);
leftMenu= new MenuTreeNode[dtEmp.Rows.Count];
for (int llCount=0;llCount<dtEmp.Rows.Count;llCount++)
{
DataRow drEmp;
MenuTreeNode SingerLeftMenu=new MenuTreeNode();
drEmp=dtEmp.Rows[llCount];
SingerLeftMenu.MenuItemName=drEmp["func_name"].ToString();
SingerLeftMenu.MenuItemText=drEmp["func_caption"].ToString();
SingerLeftMenu.MenuItemPosition =drEmp["func_position"].ToString();
SingerLeftMenu.MenuItemClass =drEmp["func_class"].ToString();
SingerLeftMenu.MenuItemLevel =drEmp["func_level"].ToString();
leftMenu[llCount]=SingerLeftMenu;
}
}
catch(Exception ms)
{
MessageBox.Show(ms.Message, "General Error");
return 0;
}
return dtEmp.Rows.Count;
}
private void ConstitutionMenu(TreeNode CurrentNode)
{
CurrentNode.Tag ="Root";
TreeNode CurTempNode=CurrentNode;
while (true)
{
if( CurrentNode.Nodes.Count > 0 )
if (CurrentNode ==CurTempNode.LastNode )
{
CurrentNode = CurrentNode.Parent;
if ( (string)CurrentNode.Tag == "Root" )
return;
else
CurTempNode=CurrentNode.Parent;
}
else
CurrentNode = CurrentNode.NextNode;
else
{
if ( LoadMenuItem(CurrentNode) )
{
CurTempNode=CurrentNode;
CurrentNode = CurrentNode.FirstNode;
}
else if (CurrentNode ==CurTempNode.LastNode )
{
CurrentNode = CurrentNode.Parent;
if ( (string)CurrentNode.Tag == "Root" )
return;
else
CurTempNode=CurrentNode.Parent;
}
else
CurrentNode = CurrentNode.NextNode;
}
}
}
private bool LoadMenuItem(TreeNode Nonce)
{
MenuTreeNode MenuBoot;
bool LeafFlag=false;
int liLen=1;
if (((MenuTreeNode)Nonce).NoteStyle == TreeNodeStyle.MenuLeaf)
return false;
for (int liCount=0;liCount<leftMenu.Length ;liCount++ )
{
if (leftMenu[liCount].MenuItemText ==Nonce.Text )
{
lsPos=leftMenu[liCount].MenuItemPosition;
liLen=lsPos.Length-1;
break;
}
}
for (int liCount=0;liCount<leftMenu.Length;liCount++ )
{
if ( lsPos.Substring(0,liLen) == leftMenu[liCount].MenuItemPosition.Substring(0,liLen) )
if ( leftMenu[liCount].MenuItemPosition.Substring(liLen,1)!="0" & leftMenu[liCount].MenuItemLevel.ToString() !="9")
{
if (leftMenu[liCount].MenuItemLevel.ToString() =="0" )
{
MenuBoot=new MenuTreeNode (TreeNodeStyle.MenuLeaf ,@leftMenu[liCount].MenuItemText);
Nonce.Nodes.Add (MenuBoot);
}
else
{
MenuBoot=new MenuTreeNode (TreeNodeStyle.MenuStem ,@leftMenu[liCount].MenuItemText);
Nonce.Nodes.Add (MenuBoot);
return true;
}
LeafFlag=true;
}
}
return LeafFlag;
}
// 递归的深度优先 添加菜单的功能项
public void TreeViewLoadNote (TreeView LeftMenuTree)
{
try
{
if (RoleId==null)
IniLeftMenu();
else
IniLeftMenu(RoleId);
for (int liCount=0;liCount<leftMenu.Length;liCount++ )
{
if (leftMenu[liCount].MenuItemPosition.Substring(1,1)=="0")
{
MenuTreeNode MenuBoot=new MenuTreeNode (TreeNodeStyle.MenuStem ,@leftMenu[liCount].MenuItemText );
MenuBoot.MenuItemPosition=leftMenu[liCount].MenuItemPosition;
MenuBoot.MenuItemLevel=leftMenu[liCount].MenuItemLevel;
MenuBoot.MenuItemClass =leftMenu[liCount].MenuItemClass;
LeftMenuTree.Nodes.Add (MenuBoot);
foreach (TreeNode MenuRootNode in LeftMenuTree.Nodes)
{
if( MenuRootNode.Text ==leftMenu[liCount].MenuItemText )
{
ConstitutionMenu(MenuRootNode);
break;
}
}
}
}
}
catch (Exception e)
{
MessageBox.Show (e.Message) ;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -