会话变量
报表样例
通过本示例,可以了解会话变量在报表中的应用。
制作如下图所示的报表:
报表特点
用户在查看报表时,报表能够自动获取系统当前用户的帐号ID。
报表使用获取到的用户ID查询出该人员所销售的全部订单,因此每个人只能在这张报表中查看到自己的数据。
制作方法
第一步 定义带有会话变量的数据集
报表中的数据来自产品中自带的演示数据表“演示_订单表”,采用sql检索数据集并对字段“雇员ID”设置了进行数据过滤的检索条件。
在定义报表的sql检索数据集时,选取对应的表和字段后,在检索条件设置页面定义一个名称为“sys_UserID”、参数类型为“会话变量”的参数,并应用这个参数设置对字段“雇员ID”的过滤条件,设置如下图:
数据集sql语法如下:
保存为“雇员信息表”。
第二步 制作表样
绘制报表基本结构:
第三步 定义单元格表达式
拖拽对应字段到相应单元格,生成表达式如下:
A4单元格:=雇员信息表.Select(订单ID)
B4单元格:=雇员信息表.客户ID
C4单元格:=雇员信息表.订购日期
D4单元格:=雇员信息表.货主地区
E4单元格:=雇员信息表.货主城市
F4单元格:=雇员信息表.雇员ID
在F2单元格写入表达式:=@sys_UserID
,用于接收参数值。
第四步 保存报表
点击保存按钮,将报表保存为“个人订单查询表”。
第五步 查看报表
登录刘新军,ID为5(登录用户名和缺省密码均为5)账号,在资源中心下点击报表名称查看报表,效果如下:
登录王晓娴,ID为1(登录用户名和缺省密码均为1)账号,查看效果如下:
功能点说明
会话变量是一种特殊的参数类型。它是能够从web服务器的session会话中读取信息的参数变量。会话变量的值,是自动从session中取同名变量的值。
在产品中,默认可以通过会话变量自动获取当前系统登录人员的用户帐号ID、部门ID、角色ID。对应的会话变量命名规则为:
用户ID: sys_UserID 机构ID: sys_Orgs_ForDAUC 角色ID: sys_Roles_ForDAUC 在报表中设置了以上名称的会话变量时,报表计算就能够自动地获取对应的信息。利用获取到的用户ID、部门、角色信息,可以实现灵活的报表控制,比如进行这些信息的显示,进行数据权限的控制等等。
例如上面的示例报表中,设置了会话变量“sys_UserID”获取当前系统人员的ID,基于该ID值最终实现对报表数据的过滤控制。