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

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

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

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

  1、RDIFrameworkService.Instance.TableColumnsService.GetConstraint2、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条。

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

  

posted on 2015-01-13 12:43 yonghu86 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/huyong/p/4220855.html

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

  1. 伺服电机控制工程 伺服电机开发实例 modbus开发源码C# winform位置模式力矩模式

    伺服电机控制工程 伺服电机开发实例 modbus开发源码C# winform位置模式力矩模式 本工程源码编译环境是visual studio (最好采用2013以上版本),编写语言是C# ,winfo ...

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

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

  3. PHP开发实例大全(基础卷) 适合菜鸟新手学习

    <PHP开发实例大全(基础卷)>筛选.汇集了PHP开发从基础知识到高级应用各个层面的大量实例及源代码,共有600个左右,每个实例及源代码按实例说明.关键技术.设计过程.详尽注释.秘笈心法的 ...

  4. hc05与单片机连接图_基于proteus的51单片机开发实例(13)-LED指示那个按键被按下

    1. 基于proteus的51单片机开发实例(13)-LED指示那个按键被按下 1.1. 实验目的 本实例将实现两路外部中断的检测和识别,让我们能够更好地理解51单片机的外部中断以及中断优先级的概念. ...

  5. AgileEAS.NET平台开发实例-药店系统-报表开发(高级篇)

    开篇 上篇我们讲述了报表开发的独立开发与基于平台的开发二种方式,相信大家已经对报表开发有了一定的了解,那么我们本篇将会巩固大家对报表开发的知识,我们这里提供一 个我们平时在项目中应用到的一些关于报表开 ...

  6. php 微信开发 菜单,微信公众号中个性化菜单的开发实例

    微信公众号中个性化菜单的开发实例 个性化菜单让公众号的不同用户群体看到不一样的自定义菜单.该接口开放给已认证订阅号和已认证服务号,个性化菜单要求用户的微信客户端版本在iPhone6.2.2,Andro ...

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

    开发环境: (1)SharePoint Designer 2010 (2)SharePoint Online(Office 365) 关于Office 365和SharePoint Online的相关 ...

  8. 2021爱智先行者—(2)零基础APP开发实例

    [本文正在参与"2021爱智先行者-征文大赛"活动],活动链接:https://bbs.csdn.net/topics/602601454 欢迎关注 『Python小白的项目实战』 ...

  9. Vue开发实例(15)之动态路由

    引言 Vue是现在前端最流行的框架之一,作为前端开发人员应该要熟练的掌握它,如果你是打算学习Vue的开发流程,那么来吧,明哥带你快速上手.带你飞! 即使你并非前端开发人员,对前端的开发流程进行一定的了 ...

  10. UR机器人双臂开发实例

    UR机器人双臂开发实例 前言:UR系列机器人已经运用一段时间了,随着应用过程中发现并解决的问题越来越多,脑袋已经不够记录了,因此撰写系列博文进行记录,本篇博文记录核心内容,基础内容等我有时间再详细描述 ...

最新文章

  1. 《面向模式的软件体系结构2-用于并发和网络化对象模式》读书笔记(12)--- 策略化加锁...
  2. “睡服”面试官系列第三篇之变量的结构赋值(建议收藏学习)
  3. 怎么读取瑞萨mcu的 checksum_为物联网设备选择一颗“安全”的MCU
  4. 大数据_MapperReduce_与hive的集成_使用hive数据分析工具_关联操作hbase---Hbase工作笔记0025
  5. 机器学习实战(四)逻辑回归LR(Logistic Regression)
  6. 数据库原理—数据模型(三)
  7. 读书:海明威的《老人与海》
  8. 京东全链路压测军演系统(ForceBot)架构解密
  9. redhat 6.4 虚拟化平台搭建千万PV架构
  10. 使用python解决算法和数据结构--使用栈实现进制转换
  11. 程序员如何写工作日志
  12. Arduino连接超声波传感器测距
  13. 【XGantt教程】为甘特图分组添加舒适排序选项的三个步骤
  14. Android:方向传感器
  15. cephadm全功能安装Ceph Pacfic
  16. 未来的智能制造,或许会往这些方向推进
  17. 程序员的损失!Erlang 之父 Joe Armstrong 离世
  18. 帝国CMS7.5照样可以高仿haosf网站风格
  19. 控制台线、console线做法
  20. 桌面图标黑色解决方案

热门文章

  1. iOS常用---NSString,NSMutabuleString
  2. cordova android项目自定义插件及使用(二)
  3. python+Django+test 测试数据库生成报错
  4. eclipse中无法新建Android工程 出现问题:Plug-in org.eclipse.ajdt.ui was unable to load
  5. 测试工程师面试准备之----测试基础
  6. 测试Flume-1.6.0写入HDFS(Hadoop-2.7.2)的简单实例
  7. rhel6.3搭建iscsi-target服务器实战
  8. 工作流软件是未来web的支柱
  9. .NET组件和COM组件之间的相互操作方法
  10. 55. Yii import class 与 对象创建