RDIFramework.NET开发实例━表约束条件权限的使用-WinForm

RDIFramework.NET开发实例━表约束条件权限的使用-WinForm

在实际的应用中,客户常有这样的需求,指定用户或角色可以看指定条件下的数据,这里的“指定条件”在RDIFramework.NET框架中,我们称作为“用户或角色的约束条件表达式”。要完成这样的功能,可以通过RDIFramework.NET框架中的用户或角色的“约束条件权限设置”功能即可完成,再在你的业务表单中调用我们的得到用户或角色的约束条件表达式接口即可完成。

可以调用框架提供的下面几个接口即可完成对用户或角色约束条件的得到。

  1、RDIFrameworkService.Instance.TableColumnsService.GetConstraint
  2、RDIFrameworkService.Instance.TableColumnsService.GetUserConstraint

  下面我们以实例进行展示约束条件权限的设置,可供用户参考。

要使用“约束条件权限”首先需要在用户权限或角色权限中设置用户或角色的“约束条件”表达式。用户的“约束条件权限设置”如下图所示:

  

  在“系统管理”→“用户权限管理”→“权限设置”→“约束条件权限设置”,即可打开上面的窗口。在“表约束条件”设置窗口,可以选择我们需要设置表的约束条件,点击“设置条件表达式”即可设置。如下图所示:

  

在上图中,我们可以对设置的约束条件表达式进行验证是否正确,可以还可以查看约束表达式所展示的数据集等操作,“查看约束数据集”如下图所示:

  

  “角色约束条件的设置”与“用户约束条件设置”类似,可参考上面的“用户约束条件设置”,角色约束条件设置窗口如下:

    

  经过上面的设置,现在我们就可以使用“约束条件”了,使用很简单,只需在需要展示数据的地方通过框架提供的服务接口即可。下面我们以“产品管理”来演示约束条件权限。

在“产品管理”主界面的FormOnLoad事件代码中调用以下接口即可得到用户的约束条件:  

1、RDIFrameworkService.Instance.TableColumnsService.GetConstraint(this.UserInfo, PiUserTable.TableName, this.UserInfo.Id, ProductInfoTable.TableName); //按表约束条件获得数据(按当前用户)。
2、RDIFrameworkService.Instance.TableColumnsService.GetUserConstraint(this.UserInfo, ProductInfoTable.TableName); //按表约束条件获得数据(得到用户与角色的约束条件)。

  完整代码如下:  

//userConstraintExpress = RDIFrameworkService.Instance.TableColumnsService.GetConstraint(this.UserInfo, PiUserTable.TableName, this.UserInfo.Id, ProductInfoTable.TableName); //按表约束条件获得数据(按当前用户)。
userConstraintExpress = RDIFrameworkService.Instance.TableColumnsService.GetUserConstraint(this.UserInfo, ProductInfoTable.TableName); //按表约束条件获得数据(得到用户与角色的约束条件)。

var recordCount = 0;
if (!string.IsNullOrEmpty(userConstraintExpress))
{
    if (!string.IsNullOrEmpty(this.searchValue))
    {
        this.searchValue += " AND " + userConstraintExpress;
    }
    else
    {
        this.searchValue = userConstraintExpress;
    }
}
this.DTProductInfo = GetData(out recordCount, ucPager.PageIndex, ucPager.PageSize, this.searchValue);
ucPager.RecordCount = recordCount;
ucPager.InitPageInfo();

  在上图中我们对用户”yonghu”设置了约束条件,现在我们以“yonghu”登录系统看下他能看到的数据:

  

  我们对用户“yonghu”设置的约束条件是单价大于10000,在上图中,可以看到系统已经自动过滤了数据共143条数据。我们再以超级管理员用户登录进来看下,如下图所示:

    

  以超级管理员登录的数据是8971条。

以上只是一个简单的实例展示,还可以更加灵活的应用到其他各个实用的场合。

  

作者: EricHu
出处: http://www.cnblogs.com/huyong
Email: [email protected]
QQ 交流:406590790
QQ群:237326100
平台博客: 【CSDN】http://blog.csdn.net/chinahuyong
         【CNBLOGS】http://www.cnblogs.com/huyong
关于作者:高级工程师、信息系统项目管理师、DBA。专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,曾多次组织并开发多个大型项目,精通DotNet,DB(SqlServer、Oracle等)技术。熟悉Java、Delhpi及Linux操作系统,有扎实的网络知识。在面向对象、面向服务以及数据库领域有一定的造诣。现从事DB管理与开发、WinForm、WCF、WebService、网页数据抓取以及ASP.NET等项目管理、开发、架构等工作。
如有问题或建议,请多多赐教!
本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢。

时间: 2024-10-28 18:16:09

RDIFramework.NET开发实例━表约束条件权限的使用-WinForm的相关文章

RDIFramework.NET开发实例━表约束条件权限的使用-Web

RDIFramework.NET开发实例━表约束条件权限的使用-Web 在上一篇文章"RDIFramework.NET开发实例━表约束条件权限的使用-WinForm"我们讲解了在WinForm下表约束条件权限的使用,下面我们来看看在Web下的使用. 在实际的应用中,客户常有这样的需求,指定用户或角色可以看指定条件下的数据,这里的"指定条件"在RDIFramework.NET框架中,我们称作为"用户或角色的约束条件表达式".要完成这样的功能,可以通

RDIFramework.NET (.NET快速信息化系统开发整合框架) 【开发实例】之产品管理(MVC版)

RDIFramework.NET—.NET快速开发整合框架 [开发实例]之产品管理(MVC版) 第1部分 概述 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,为企业或个人在.NET环境下快速开发系统提供了强大的支持,开发人员不需要开发系统的基础功能和公共模块,框架自身提供了强大的函数库和开发包,开发人员只须集中精力专注于业务部分的开发,因此大大提高开发效率和节约开发成本.框架采用目前最主流的C#语言开发完成,支持多种数据库类型,支持WinForm与Web.使用RD

RDIFramework.NET V2.8版本 ━ 开发实例之产品管理(WinForm)

RDIFramework.NET V2.8版本 ━ 开发实例之产品管理(WinForm) 现在,我们使用.NET快速开发整合框架(RDIFramework.NET)来开发一个应用,此应用皆在说明如何使用框架简单快速的进行开发,整合.在这里我们要开发一个产品管理的功能模块,在开发前,我们需要进行数据库的设计,在这儿为了简单说明,我们只涉及到了一张产品表.CASE_PRODUCTINFO(产品信息表) 序号 列 名 数据 类型 长 度 小数 位 标 识 主 键 允许 空 默认值 说 明 1 ID i

SharePoint无代码工作流设计开发实例——交通费报销流程(三)

SharePoint无代码工作流设计开发实例——交通费报销流程(三) 分类: SharePoint2012-07-21 01:28 8512人阅读 评论(7) 收藏 举报 sharepoint工作交通任务开发工具 4.SharePoint Designer无代码工作流的设计 开发工具为SharePoint Designer 2010 新建“列表工作流”,绑定“交通费报销单”表单库 设置工作流启动选项“创建项目时自动启动工作流” 编辑工作流 (关于以下工作流详细设计可参考http://blog.c

Android手机拨打电话的开发实例

一部手机最常用的功能就是打电话和发短信了,在Android开发中我们如何通过程序拨打电话呢?本文就给出一个用Android手机拨打电话的简单的实例. 下面是开发此实例的具体步骤: 一.新建一个Android工程,命名为phoneCallDemo. 二.设计程序的界面,打开main.xml把内容修改如下: XML/HTML代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:and

springMVC+Hibernate3+spring3整合实例,附带基本权限功能及CURD例子

实例说明: 1.本实例的架子是在2012年为了真实项目的开发搭建的,目前已经在此架子上做了几个中小项目.分为两个不同的版本,一个是Hibernate版本,一个是ibatis版本. 2.本实例是一个SSH的完整的架子,包括了基本的权限管理及CURD的例子.权限管理包括用户管理,菜单管理,角色管理,权限分配等.CURD的例子包括了基本的CURD以及分页功能,可以做为代码复制的例子,只专为新手学习编写的. 3..在本实例的架子上已经开发了几个中小项目,系统技术架构为springMVC+Hibernat

Android系统Google Maps开发实例浅析

Google Map(谷歌地图)是Google公司提供的电子地图服务.包括了三种视图:矢量地图.卫星图片.地形地图.对于Android系统来说,可以利用Google提供的地图服务来开发自己的一些应用.Google Map的服务体现在两个方面:地图API和位置API.使用Android Maps API(地图API)和Android Location API(定位API)可以轻松实现实用而且强大的功能. 我的位置:“我的位置”在地图上显示你的当前位置(通常在 1000 米范围之内).即使没有 GP

报表开发实例——动态多层次KPI钻取报表(II)

在报表开发实例--动态多层次KPI钻取报表(I)中,我们说到了动态层次报表需要层次钻取的场景,并介绍了利用oracle复杂sql的实现方法.这里仍然通过该报表来了解一下使用"脚本+本地文件"的开发方法. 各级部门KPI报表的格式和具体要求参见(I).有所不同的是,报表数据源从数据库表变为本地文件:tree.b(树形结构维表)和kpi.b(指标事实表),数据如下图: Tree文件数据 Kpi文件数据 Tree的叶子节点,通过id字段与kpi表关联.KPI文件每个ID每天都会新增kpi记录

C#软件开发实例.私人订制自己的屏幕截图工具(九)使用自定义光标,QQ截图时的光标

在使用QQ的截图功能的时候,是不是觉得它的光标很酷呢?今天就说一下怎么应用自定义光标,在我们的截图工具中使用QQ截图的光标. 打开资源: 切换到文件资源视图: 打开资源文件目录,将光标文件复制到此目录下: 所需光标文件下载:C#软件开发实例.私人订制自己的屏幕截图工具中使用的光标文件 选中Resources目录,刷新,显示出刚刚复制进来的光标文件: 选中光标文件,拖动到资源的文件视图中: 资源资源名称中的单词第一个字母改为大写. 光标预览: 在Form1类中添加私有变量: #region 自定义