转至元数据结尾
转至元数据起始

1. 内容概述



设计报表时,经常需要根据用户的身份来决定显示哪些数据,也即根据用户的某些属性值(用户/组织上下文信息)进行数据过滤。

接下来通过示例为您介绍如何实现根据用户/组织信息上下文进行数据过滤。


2. 使用用户信息上下文过滤数据



(1)  添加一个用户扩展属性“大区”,并将admin的“大区”属性值改为“东北”。具体操作方法请见扩展属性


(2)  新建报表,选择WynDemoDataV3数据源创建内嵌数据集。

将扩展属性“大区”以 {Usercontext.GetValue("大区")} 的形式传递给数据集查询参数1,然后将查询语句设置为“select * from 销售明细 where 销售大区=@查询参数1”。如下图所示。

提示

  •  {Usercontext.GetValue("大区")} 为使用用户上下文信息的固定表达式,其中“大区”为实际扩展属性的名称。
  • 如果扩展属性为多值属性,那么需要在表达式中添加“s”,{Usercontext.GetValues("大区")}。查询语句中也需要使用 IN(@查询参数1)的用法,例如 select * from 销售明细 where 销售大区 IN (@查询参数1)
  • 有关用户信息上下文更多介绍,详见 用户/组织上下文


(3)  设计报表内容。比如我们使用表格组件,并绑定数据字段。


(4)  预览报表。当前用户扩展属性“大区”的值为“东北”,因此报表将销售大区为东北的数据过滤出来。


3. 使用组织信息上下文过滤数据



(1)  添加一个组织模型“大区组织”。

新建一个组织O1,并将O1组织的“大区组织”属性值设置为“东北”。


然后将admin加入到O1 组织中。


(2)  新建报表,选择WynDemoData数据源创建内嵌数据集。

将组织属性“大区组织”以 {Usercontext.GetValue("tenant$大区组织")} 的形式传递给数据集查询参数1,然后将查询语句设置为“select * from 销售明细 where 销售大区=@查询参数1”。如下图所示。

提示

  •  {Usercontext.GetValue("tenant$组织属性")} 是使用组织信息上下文的固定表达式,其中“组织属性”为实际的组织属性名称。
  • 如果组织属性为多值属性,那么需要在表达式中添加“s”, {Usercontext.GetValues("tenant$组织属性")} 。查询语句中也需要使用 IN(@查询参数1)的用法,例如 select * from 销售明细 where 销售大区 IN (@查询参数1)
  • 有关组织信息上下文更多介绍,详见组织属性和组织信息上下文


(3)  设计报表内容。比如我们使用表格组件,并绑定数据字段。


(4)  预览报表。当前用户组织属性“大区组织”的值为“东北”,因此报表将销售大区为东北的数据过滤出来。


  • 无标签