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