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

📄 permit.cs

📁 车载GPS?今天这个就是最好的工具
💻 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 + -