北京安通林JIS系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

91 lines
3.3 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Stone.Entity;
using System.Data;
using System.Windows.Forms;
namespace Stone.User
{
public class F_Authority
{
public static void Init(TreeView leftTree, string UserName)
{
leftTree.CheckBoxes = true;
DataSet dsMenu = GetData();
DataTable dtAuthority = GetAuthority(UserName);
DataRow[] drOnes = dsMenu.Tables[0].Select("[Levels]=1", "[Sort] asc");
foreach (DataRow drOne in drOnes)
{
string oneCode = drOne["Code"].ToString();
TreeNode nodeOne = new TreeNode(drOne["Name"].ToString(), 0, 1);
if (Convert.ToInt32(drOne["IsChild"]) == 1) nodeOne = new TreeNode(drOne["Name"].ToString(), 2, 3);
nodeOne.Tag = drOne["Code"].ToString();
if (dtAuthority.Select("[MenuCode]='" + oneCode + "'").Length > 0) nodeOne.Checked = true;
DataRow[] drTows = dsMenu.Tables[0].Select("[Levels]=2 and [Code] like '" + oneCode + "%'", "[Sort] asc");
foreach (DataRow drTow in drTows)
{
string towCode = drTow["Code"].ToString();
TreeNode nodeTow = new TreeNode(drTow["Name"].ToString(), 0, 1);
if (Convert.ToInt32(drTow["IsChild"]) == 1) nodeTow = new TreeNode(drTow["Name"].ToString(), 2, 3);
nodeTow.Tag = drTow["Code"].ToString();
if (dtAuthority.Select("[MenuCode]='" + towCode + "'").Length > 0) nodeTow.Checked = true;
DataRow[] drThrees = dsMenu.Tables[0].Select("[Levels]=3 and [Code] like '" + towCode + "%'", "[Sort] asc");
foreach (DataRow drThree in drThrees)
{
string treeCode = drThree["Code"].ToString();
TreeNode nodeThree = new TreeNode(drThree["Name"].ToString(), 0, 1);
if (Convert.ToInt32(drThree["IsChild"]) == 1) nodeThree = new TreeNode(drThree["Name"].ToString(), 2, 3);
nodeThree.Tag = drThree["Code"].ToString();
if (dtAuthority.Select("[MenuCode]='" + treeCode + "'").Length > 0) nodeThree.Checked = true;
nodeTow.Nodes.Add(nodeThree);
}
nodeOne.Nodes.Add(nodeTow);
}
leftTree.Nodes.Add(nodeOne);
}
leftTree.ExpandAll();
}
private static DataSet GetData()
{
Entity_t_Sys_Menu t_Menu = new Entity_t_Sys_Menu();
return t_Menu.GetData("[IsShow]=1");
}
private static DataTable GetAuthority(string UserName)
{
Entity_t_Sys_User t_Sys_User = new Entity_t_Sys_User();
Entity_t_Sys_Menu_Authority t_Sys_Menu_Authority = new Entity_t_Sys_Menu_Authority();
DataTable dtUser = t_Sys_User.GetData("[Name]='" + UserName + "'").Tables[0];
if (dtUser.Rows.Count == 0) throw new Exception(UserName + " 在系统中不存在");
string UserID = dtUser.Rows[0]["ID"].ToString();
return t_Sys_Menu_Authority.GetData("[UserID]=" + UserID).Tables[0];
}
}
}