根据登录用户控制报表展现效果(动态宏)
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登录时预览效果如:
新建一张空白报表
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登录时预览效果如:
相关文章推荐
- 润乾报表 -根据登录用户控制报表展现效果(动态宏)
- 使用Zend_Auth和Zend_Acl进行登录认证及根据用户角色进行权限控制
- 使用Zend_Auth和Zend_Acl进行登录认证及根据用户角色进行权限控制
- php中Zend_Auth和Zend_Acl进行登录认证及根据用户角色进行权限控制 (1/4)
- vb.net下根据查询条件动态改变水晶报表中的饼图效果
- 动态添加数据源,根据用户登录切换数据库.编程式Spring事务.
- javascript实现动态显示颜色块的报表效果
- sd--如何控制定价条件根据用户不同而操作不同(有的可以输入有的不可以)
- sharepoint2010如何根据用户登录名获取有权限的列表记录?
- 通过jquery来实现文本框和下拉框动态添加效果,能根据自己的需求来自定义最多允许添加数量,实用的jquery动态添加文本框特效
- 根据鼠标的位置动态的控制层的位置
- 【转载】【权限控制】角色访问动态生成用户权限菜单树(转载: http://www.comprg.com.cn/post_show.asp?id=7873 )
- 使用jQuery动态创建一个表格(根据用户输入的内容添加一行数据,并且能逐行删除)
- 润乾报表如何根据参数是否为null动态拼接sql
- python实现简单的用户密码登录控制(输入三次就锁定用户)
- ASP.NET用户重复登录控制
- 利用Servlet和Spring JDBCTemplate实现用户登录效果
- python实现简单的用户密码登录控制(输入三次就锁定用户)
- ASP.NET中动态控制RDLC报表
- sd--如何控制定价条件根据用户不同而操作不同(有的可以输入有的不可以)