[]
报表设计中,经常需要根据用户身份,决定显示哪些数据。
报表提供的 UserContext 表达式不仅可以取到当前登录报表系统的用户名,还可以获得用户所属角色、电子邮件地址等信息。
这里我们用表达式 {UserContext.GetValue("keyName ")} 来获取用户上下文,其中 keyname 为用户属性名,可以是系统内置的用户属性也可以使用扩展属性。
如果使用系统内置属性的话,属性与keyname对应关系如下:
用户名对应“name”,即表达式为 {UserContext.GetValue("name")}
角色对应"role",即表达式为 {UserContext.GetValues("role")},请注意如果keyname为“role”的话,表达式中需带有“s”。
邮箱对应“email”,即表达式为 {UserContext.GetValue("email")}
如果使用扩展属性的话,将表达式中的keyname直接换成扩展属性名即可,如果扩展属性为多值属性,那么也需要在表达式中加"s"。
有关具体应用方法请见用户/组织上下文信息。
在报表中使用组织上下文与使用用户上下文的方法类似,只是调用组织上下文信息的表达式为:
组织上下文为单值时:{UserContext.GetValue(" tenant$ 组织属性")}
组织上下文为多值时:UserContext.GetValue s (" tenant$ 组织属性")
有关具体应用方法请见用户/组织上下文信息。
通过定制开发安全提供程序,甚至可以获取任何有关当前用户的信息,比如所属部门、职务、业务区域等任何希望用于业务报表数据过滤的信息。获取到这些信息后,再利用扩展属性的功能进行使用。
有关自定义安全提供程序的详细信息,请参见: