Winform开发框架 - 特殊权限控制(扩展权限和自定义按钮功能)

  Winform开发框架 - 特殊权限控制(扩展权限和自定义按钮功能)




开发框架的权限控制


是指控制窗体的功能按钮,窗体按功能使用分为两大类:1. 数据字典窗体,2.业务单据窗体,这两种窗体分别定义了两个基类窗体,分别是frmBaseDataDict, frmBaseBusiness。

数据字典窗体的基本功能:Add,Edit,Delete,Save,Cancel(CRUD)

业务单据窗体除了拥有CRUD功能还有Lock锁定,Approval审核等功能。

在某些特殊情况下,有的窗体需要扩展特殊按钮,也就是说定制基类窗体没有的功能按钮,下面将详细讲解如何扩展权限和扩展自定义按钮。


财务会计能查看员工的薪资资料案例:


员工资料窗体(frmEmployee)除了定义标准按钮之外需要增加一个“工资”按钮,点击按钮弹出一个对话框窗体(用

于查看和调整薪资等),在表格内显示或隐藏”工资”栏位,有权限就显示,无权限就隐藏。



解决方案及步骤:


1) 在模块主窗体给菜单添加特殊权限, 如: ButtonAuthority.EX_01


SetMenuTag方法:


C# Code:

menuItemEmployee.Tag = new MenuItemTag(MenuType.DataForm, (int)ModuleID.DataDictionary, AuthorityCategory.MASTER_ACTION+ButtonAuthority.EX_01);



ButtonAuthority枚举定义:


C# Code:

public class
ButtonAuthority
{
.....省略....

///
<summary>

/// 扩展权限EX_01:65536
/// </summary>
public const int EX_01 = 65536;

.....省略....

}


重写InitButtons方法:


C# Code:


/// <summary>
/// 扩展窗体的按钮,新增工资按钮。
/// </summary>
public override void InitButtons()
{
   base.InitButtons();
   
   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 });
   }
}

//来源:C/S框架网(www.csframework.com) QQ:1980854898



按钮事件:
 


C# Code:


//“查看工资”按钮的事件
private void DoViewSalary(IButtonInfo sender)
{
   //弹出窗体
   new Form().ShowDialog();
}



 


贴图图片





参考文档:


1. 扩展按钮功能 - 扩展一个【复制单据】按钮操作详解



2. 在基类窗体扩展一个通用导出Excel文件的按钮(支持导出所有表格的数据到Xlsx文件)










C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
发表评论

评论内容
昵称:
关联文章

Winform开发框架 - 特殊权限控制(扩展权限定义按钮功能)
Winform快速开发框架权限系统设计(3) - 功能按钮权限控制基本原理
如何进行菜单管理、扩展权限、更改定义按钮名称|C/S框架
窗体的定义按钮权限控制-扩展权限按钮详解
Winform界面的功能按钮同等权限控制|C/S框架
关于扩展权限扩展功能按钮定义功能点的命名|C/S框架
C/S开发框架权限扩展与定制按钮功能详细设计
解决方案:扩展按钮定义权限没有出现在权限树给用户勾选
界面扩展按钮-定义按钮
如何扩展窗体的定义权限按钮
C/S开发框架权限控制按钮级别的吗?
模块主窗体怎样控制定义按钮权限
扩展按钮功能 - 扩展一个【复制单据】按钮操作详解
窗体定义功能按钮(InitButton/AddButton方法)
C/S系统开发框架权限系统 - 功能按钮权限值 - ButtonAuthority类详解
Winform界面权限控制原理|C/S框架
Winform软件快速开发平台 - 关于数据权限,表格列权限控制两种解决方案
开发框架支持自己定义工具栏按钮吗?
Winform快速开发框架权限系统设计(2) - 功能模块介绍
[转帖]FreeTextBox添加定义按钮