Winform开发框架 - 特殊权限控制(扩展权限和自定义按钮功能)
Winform开发框架 - 特殊权限控制(扩展权限和自定义按钮功能)
一、开发框架的权限控制介绍
- 开发框架权限控制主要是指控制窗体的功能按钮。
- 窗体分为两大类:1. 数据字典窗体,2.业务单据窗体,分别定义了两个基类窗体,分别是frmBaseDataDict, frmBaseBusiness。
- 数据字典窗体的基本功能:Add,Edit,Delete,Save,Cancel(CRUD)
- 业务单据窗体除了拥有CRUD功能还有Lock锁定,Approval审核等功能。
在某些特殊情况下,有的窗体需要扩展特殊按钮,定制基类窗体没有的功能按钮,下面将详细讲解如何扩展权限和扩展自定义按钮。
二、需求:财务、会计能查看员工的薪资案例
员工资料窗体(frmEmployee)除了定义标准按钮之外需要增加一个“工资”按钮,点击按钮弹出一个对话框窗体(用
于查看和调整薪资等),在表格内显示或隐藏”工资”栏位,有权限就显示,无权限就隐藏。
三、解决方案
在模块主窗体给菜单添加特殊权限, 如: ButtonAuthority.EX_01
SetMenuTag方法:
C# 全选
menuItemEmployee.Tag = new MenuItemTag(MenuType.DataForm, (int)ModuleID.DataDictionary, AuthorityCategory.MASTER_ACTION+ButtonAuthority.EX_01);
参考:ButtonAuthority枚举定义
C# 全选
public class ButtonAuthority
{
.....省略....
/// <summary>
/// 扩展权限EX_01:65536
/// </summary>
public const int EX_01 = 65536;
.....省略....
}
重写InitButtons方法
C# 全选
/// <summary>
/// 扩展窗体的按钮,新增工资按钮。
/// </summary>
public override void InitButtons()
{
base.InitButtons();
//判断当前用户有没有EX_01扩展权限
bool salaryRight = (ButtonAuthority.EX_01 & this.FormAuthorities) == ButtonAuthority.EX_01;
if (salaryRight)
{
//创建“查看工资”按钮
IButtonInfo btnViewSalary = this.ToolbarRegister.CreateButton("btnViewSalary", "工资",
Globals.LoadBitmap("24_DesignReport.ico"), new Size(57, 28), this.DoViewSalary);
//在Toolbar上显示
this._buttons.AddRange(new IButtonInfo[] { btnViewSalary });
}
else
{
//表格列2种处理方式
//没有权限:表格内隐藏”工资”栏位
colSalary.Visible = salaryRight;
//没有权限:删除列
gvSummary.Columns.Remove(colSalary);
}
}
按钮Click事件
C# 全选
//“查看工资”按钮的事件
private void DoViewSalary(IButtonInfo sender)
{
//弹出窗体
new Form().ShowDialog();
}
效果
四、参考文章
用户扩展权限,用户自定义权限 - 窗体自定义按钮权限控制
扫一扫加作者微信
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网