会话变量在Web报表中的应用
Web报表设计器支持会话变量,本文通过本示例,可以了解会话变量在报表中的应用。
制作如下图所示的报表:
报表特点:
- 用户在查看报表时,报表能够自动获取系统当前用户的帐号ID
- 报表使用获取到的用户ID查询出该人员所销售的全部订单,因此每个人只能在这张报表中查看到自己的数据
报表中的数据来自产品中自带的演示数据表“演示_订单表”,采用sql检索数据集并对字段“雇员ID”设置了进行数据过滤的检索条件,数据集sql语法如下:
制作方法
在定义报表的sql检索数据集时,选取对应的表和字段后,在检索条件设置中定义一个名称为“sys_UserID”、参数类型为“会话变量”的参数,并应用这个参数设置对字段“雇员ID”的过滤条件。
参数定义如下图:
数据集过滤条件设置如下图:
绘制报表格式,并应用制表助手实现这张列表式报表的制作,注意F2单元格的值是引用了参数“sys_UserID”,即单元格中显示的是当前查看报表的用户ID:
功能点说明
会话变量
会话变量是一种特殊的参数类型。它是能够从web服务器的session会话中读取信息的参数变量。会话变量的值,是自动从session中取同名变量的值。
在产品中,默认可以通过会话变量自动获取当前系统登录人员的用户帐号ID、部门ID、角色ID。对应的会话变量命名规则为:
- 用户ID: sys_UserID
- 机构ID: sys_Orgs_ForDAUC
- 角色ID: sys_Roles_ForDAUC
在报表中设置了以上名称的会话变量时,报表计算就能够自动地获取对应的信息。利用获取到的用户ID、部门、角色信息,可以实现灵活的报表控制,比如进行这些信息的显示,进行数据权限的控制等等。
例如上面的示例报表中,设置了会话变量“sys_UserID”获取当前系统人员的ID,基于该ID值最终实现对报表数据的过滤控制。
详细了解会话变量的应用,请参考:参数。