业务报表中 ,有些敏感数据是必要 根据用户身份过滤的。比如 贩卖 数据统计表,只答应 报表用户看到本部分 的贩卖 数据 。这时就必要 将用户信息作为报表数据的查询条件。
葡萄城报表提供了一个专门的表达式变量,表现 用户身份信息。不但 可以按登录报表体系 的用户名来查询数据,也可以按照用户所属部分 等其他关联信息作为查询条件。这种用户身份关联信息称为“用户上下文(User Context)”信息 。引用用户上下文信息的表达式情势 为:
=Code.UserContext.GetValue("Key")
此中 ,Key表现 上下文信息的键值,比如 :Name表现 用户名,也就是说 ,Code.UserContext.GetValue("Name")返回的就是正在查察 报表的用户登录名。
通过葡萄城报表特有的安全提供程序机制,可以支持恣意 字符串的Key,比如 用户所属部分 、业务管辖地区 、乃至 姓名、年龄 、身份证号等任何与用户帐号关联的信息。
下面是一个贩卖 统计表的简单 示例 ,在此示例中,查察 报表的用户只能看到其所属部分 的贩卖 数据 。数据库中的用户关联信息如下表:
此中 :UserName表现 用户登录报表体系 的用户帐号;DepId为用户所属部分 的代码。贩卖 数据如下表:
此中 的DepId就是部分 代码,SalesQty为贩卖 数量 ,SalesAmt为贩卖 额。新建一个RDL报表,添加用户信息参数,参数名为UserName ,如下图:
留意 :由于 这个参数的值要从体系 中主动 获取,而不是让用户在参数栏自行输入,以是 勾选了【隐蔽 】,如许 可以克制 用户输入其他用户的用户名 ,从而“偷窥 ”敏感信息 。
切换到【默认值】选项卡,选择【非查询结果 】,点击加号图标 ,添加一个参数默认值,设置其表达式为:=Code.UserContext.GetValue("Name")如下图:
点击【确定】按钮,生存 参数设置。添加数据源 ,如下图:
添加数据集,先界说 数据集参数,使之引用前面界说 好的取用户信息的报表参数UserName ,如下图:
再界说 查询语句,select * from DepSaleswhere DepId in (select DepId from Emp where UserName = @p1)如下图:
此中 的Where子句,就是根据用户所属部分 来过滤数据。预备 好数据集之后 ,在计划 区拖放一个文本框,用于表现 UserName参数的内容,再放一个表格,绑定命 据集的字段 ,如下图:
留意 :由于 本地 计划 器中并没有哪个用户登录,因此在计划 器中预览时,是取不到用户上下文信息的 。假如 在预览时看到报错 ,可将UserName参数设置为【答应 空值】,如下图:
为了查抄 按用户身份过滤数据的结果 ,请点击【文件】菜单的【生存 到服务器】 ,将报表模板上传到报表服务器。然后在报表管理流派 设置报表查察 权限,如下图:
再在体系 管理流派 创建几个用户,如下图:
以zhang ,li,wang等用户身份登录到报表查察 流派 ,查察 报表 ,如下图:
可以看到,报表内容精确 表现 了当前用户名,而且 表格中仅表现 该用户所属部分 的业务数据。
有奖问卷
酷爱 的用户,感谢您对葡萄城的支持和承认 !为充实 相识 您的需求 ,以便我们连续 改进,提供更强大 的控件软件产物 和更专业的技能 服务,特约请 您参加 本次问卷观察 。参加 即有奖!完备 填写问卷 ,即可得到 500枚 GCDN金币(可兑换实体奖品),还可参加 抽奖获赠风雅 奖品。
问卷地点 :https://www.wenjuan.in/s/fYzUJf/
转载请注明出自:葡萄城报表
相识 葡萄城报表:http://www.grapecity.com.cn/enterprise-solutions/activereports_server/
关于葡萄城
葡萄城创建 于1980年,是环球 最大的控件提供商 ,天下 领先的企业应用定制工具、企业报表和贸易 智能办理 方案提供商,为高出 75%的环球 财产 500强企业提供服务。葡萄城于1988年在中国设立研发中心 ,在环球 化产物 的研发过程中 ,不绝 顺应 中国市场的本地 需求,并为软件企业和各行业的信息化提供良好 的软件工具和咨询服务。