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);
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;
.....省略....
}
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
/// <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();
}
//“查看工资”按钮的事件
private void DoViewSalary(IButtonInfo sender)
{
//弹出窗体
new Form().ShowDialog();
}

参考文档:
1. 扩展按钮功能 - 扩展一个【复制单据】按钮操作详解
2. 在基类窗体扩展一个通用导出Excel文件的按钮(支持导出所有表格的数据到Xlsx文件)

参考文档:
Winform快速开发框架之权限系统设计(3) - 功能按钮权限控制基本原理
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
C# Winform等待窗体WaitingForm组件下载(CSFramework提供)|C/S开发框架
企业级C/S系统快速开发框架(Winform+.NET8+EFCore)|C/S开发框架
最新MES系统快速开发平台(Winform+NET8+EFCore)|C/S开发框架
Winform软件开发框架|快速开发平台推荐|C/S开发框架
Winform开发框架 | 表格编辑窗体权限控制|C/S开发框架
DevExpress组件版本下载、安装与VS开发环境 | Winform C/S框架|C/S开发框架
WinFormsApp窗体应用快速开发框架(.NET7+EFCore+VS2022)
Winform C/S架构自动升级程序 AutoUpgraderV1.2迭代记录|C/S开发框架
C/S Winform框架开发指南 | 如何新增系统消息参数(sys_SystemSettings表)|C/S开发框架
C/S Winform开发框架 | 单表基础资料窗体实现主从表资料管理|C/S开发框架
PLC,上位机软件快速开发框架(VS2022+C#+Winform)
Winform开发框架 - 使用Linq判断日期时间范围查询条件的方法
CSFrameworkV6 - Winform开发框架 - Delete方法使用
CSFrameworkV6 - Winform开发框架 - GetLookupData方法使用
Winform快速开发框架之权限系统设计(3) - 功能按钮权限控制基本原理
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
C# Winform等待窗体WaitingForm组件下载(CSFramework提供)|C/S开发框架
企业级C/S系统快速开发框架(Winform+.NET8+EFCore)|C/S开发框架
最新MES系统快速开发平台(Winform+NET8+EFCore)|C/S开发框架
Winform软件开发框架|快速开发平台推荐|C/S开发框架
Winform开发框架 | 表格编辑窗体权限控制|C/S开发框架
DevExpress组件版本下载、安装与VS开发环境 | Winform C/S框架|C/S开发框架
WinFormsApp窗体应用快速开发框架(.NET7+EFCore+VS2022)
Winform C/S架构自动升级程序 AutoUpgraderV1.2迭代记录|C/S开发框架
C/S Winform框架开发指南 | 如何新增系统消息参数(sys_SystemSettings表)|C/S开发框架
C/S Winform开发框架 | 单表基础资料窗体实现主从表资料管理|C/S开发框架
PLC,上位机软件快速开发框架(VS2022+C#+Winform)
Winform开发框架 - 使用Linq判断日期时间范围查询条件的方法
CSFrameworkV6 - Winform开发框架 - Delete方法使用
CSFrameworkV6 - Winform开发框架 - GetLookupData方法使用
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
