private frmChangeTagName(TreeNode node) { _node = node; _tag = node.Tag as ActionNodeTag; InitializeComponent(); this.textEdit1.Text = node.Text; }
/// <summary> /// 初始化功能点树结点 /// </summary> /// <param name="node">功能点所在的树结点</param> /// <param name="menuItem">菜单项</param> private void InitAction(TreeNode node, ToolStripItem menuItem) { if (menuItem.Tag == null || !(menuItem.Tag is MenuItemTag)) { return; //功能菜单没有分配权限,不处理 } MenuItemTag menuItemTag = menuItem.Tag as MenuItemTag; //取菜单的功能权限对象 if (menuItemTag.MenuType != MenuType.DataForm) { return; //只处理数据窗体 } if (menuItemTag.FormAuthorities == 0) { return; //此菜单对应的窗体没有分配权限(功能点) } //取当前菜单权限.SystemAuthentication.UserAuthorities当前用户的权限数据 DataRow auth = GetDataRowByMenuName(SystemAuthentication.UserAuthorities, menuItemTag.ModuleID, menuItem.Name); int userAuths = auth == null ? 0 : ConvertEx.ToInt(auth[tb_sys_UG_Auth.FAuths]); //当前用户拥有此菜单的权限 AuthNodeTag tag1 = node.Tag as AuthNodeTag; //取树结点的引用对象 //int formAuths = menuItemTag.FormAuthorities; //窗体可用的功能点 bool isAdmin = Loginer.CurrentUser.IsAdmin(); //是否系统管理员 int formAuths = tag1.DataRow == null ? 0 :Convert.ToInt32(tag1.DataRow[tb_sys_Function.FAuths].ToString()); string sFun = tag1.DataRow == null?tag1.FUnctionID.ToString() : tag1.DataRow[tb_sys_Function.__KeyName].ToString(); string filter = string.Format(tb_sys_Fun_MenuBar.FFunctionID + "={0}", sFun); DataRow[] rs = _AuthorityItem.Select(filter); foreach (DataRow row in rs) //循环所有功能点. { int value = int.Parse(row[tb_sys_Fun_MenuBar.FAuthority].ToString()); //功能点权限值 if (value == 0) { continue; //不显示权限值为0的功能点 } if ((value & formAuths) != value) { continue; } //用每个功能点的值与窗体的最大权限进行逻辑"与"运算, 但不能超出当前用户的权限. //if (isAdmin || ((value & userAuths) == value)) //{ string caption = row[tb_sys_Fun_MenuBar.FName].ToString(); //取功能点名称 //DataRow tagNameRow = GetCustomTagName(menuItem.Name, value); //取功能点的自定义名称资料行 //if (tagNameRow != null) caption = tagNameRow["TagName"].ToString();//如果有自定义名称,则取定义名 //构建一个树结点Tag属性的引用对象,Node.Tag=引用对象 ActionNodeTag tag = new ActionNodeTag(value, auth); tag.TagMenuNameRef = menuItem.Name; tag.TagNameTable = _FormTagCustomName; tag.TagNameDataRow = row; tag.TagNameOld = caption; //按钮标题 TreeNode actionNode = new TreeNode(caption, 0, 0); //新增树结点 actionNode.Tag = tag; //绑定引用的对象 actionNode.ImageIndex = 2; actionNode.SelectedImageIndex = 2; node.Nodes.Add(actionNode); //} } }
/// <summary> /// 初始化功能点树结点 /// </summary> /// <param name="node">功能点所在的树结点</param> /// <param name="menuItem">菜单项</param> private void InitAction(TreeNode node, ToolStripItem menuItem) { if (menuItem.Tag == null || !(menuItem.Tag is MenuItemTag)) return; //功能菜单没有分配权限,不处理 MenuItemTag menuItemTag = menuItem.Tag as MenuItemTag;//取菜单的功能权限对象 if (menuItemTag.MenuType != MenuType.DataForm) return;//只处理数据窗体 if (menuItemTag.FormAuthorities == 0) return; //此菜单对应的窗体没有分配权限(功能点) //取当前菜单权限.SystemAuthentication.UserAuthorities当前用户的权限数据 DataRow auth = GetDataRowByMenuName(SystemAuthentication.UserAuthorities, menuItemTag.ModuleID, menuItem.Name); int userAuths = auth == null ? 0 : ConvertEx.ToInt(auth[tb_sys_UG_Auth.FAuths ]);//当前用户拥有此菜单的权限 AuthNodeTag tag1 = node.Tag as AuthNodeTag; //取树结点的引用对象 //int formAuths = menuItemTag.FormAuthorities; //窗体可用的功能点 bool isAdmin = Loginer.CurrentUser.IsAdmin();//是否系统管理员 int formAuths = tag1.DataRow == null ? 0 :Convert.ToInt32( tag1.DataRow[tb_sys_Function.FAuths].ToString()); string sFun = tag1.DataRow == null ? tag1.FUnctionID.ToString() : tag1.DataRow[tb_sys_Function.__KeyName].ToString(); string filter = string.Format(tb_sys_Fun_MenuBar.FFunctionID + "={0}", sFun); DataRow[] rs = _AuthorityItem.Select(filter); foreach (DataRow row in rs) //循环所有功能点. { int value = int.Parse(row[tb_sys_Fun_MenuBar.FAuthority].ToString());//功能点权限值 if (value == 0) continue;//不显示权限值为0的功能点 if ((value & formAuths) != value) continue; //用每个功能点的值与窗体的最大权限进行逻辑"与"运算, 但不能超出当前用户的权限. //if (isAdmin || ((value & userAuths) == value)) //{ string caption = row[tb_sys_Fun_MenuBar.FName].ToString(); //取功能点名称 //DataRow tagNameRow = GetCustomTagName(menuItem.Name, value); //取功能点的自定义名称资料行 //if (tagNameRow != null) caption = tagNameRow["TagName"].ToString();//如果有自定义名称,则取定义名 //构建一个树结点Tag属性的引用对象,Node.Tag=引用对象 ActionNodeTag tag = new ActionNodeTag(value, auth); tag.TagMenuNameRef = menuItem.Name; tag.TagNameTable = _FormTagCustomName; tag.TagNameDataRow = row; tag.TagNameOld = caption; //按钮标题 TreeNode actionNode = new TreeNode(caption, 0, 0);//新增树结点 actionNode.Tag = tag;//绑定引用的对象 actionNode.ImageIndex = 2; actionNode.SelectedImageIndex = 2; node.Nodes.Add(actionNode); //} } }