您的位置:首页 > 其它

根据登录用户控制报表展现效果(动态宏)

2014-01-11 20:19 337 查看
根据登录用户控制报表展现效果(动态宏)

新建一张空白报表
1、首先进行参数和宏的设置。
【报表属性】->【参数定义】如图:



我们的目的是根据登录的用户不同,在arg1(sys_UserID)中获取不同的值,来选择要进行过滤的字段,例如sys_UserID==root,则获取所有雇员信息,否则根据登录用户的ID不同,获取该员工的个人信息表。
那么如何才能将这些可按参数选择的规则实现到SQL中呢,普通的宏只可能实现一个规则,这时候就需要使用动态宏。
所谓动态宏,与动态参数十分类似,简单的说就是可以使用表达式的宏。在本例中,添加一个新宏:
【报表属性】->【宏定义】



选择宏的类型为动态宏。值的表达式为:
if(sys_UserID=="root","1=1","雇员ID=9")
这个宏的作用预计是用来做数据集的检索条件的,其表达式作用是按照arg1(sys_UserID)的值选择不同的检索条件。
2、建立数据集。
1)ds01:SELECT * FROM DEMO_EMPLOYEE where ${macro1}



2)切换到宏配置tab页,在配置通用查询字段tab页中,提取宏并为宏配置数据表。
3)预览数据。
3.制作如图报表:



A1单元格表达式为:
=if(@sys_UserID=="root","所有雇员信息表",@sys_UserID+"个人信息表")
其内容是显示出当前的过滤条件。
4.保存并预览报表
使用root时登录,报表效果如:



使用其他ID登录时预览效果如:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐