润乾报表数据集中参数和宏的使用方法
来源:互联网 发布:js中的正则表达式或者 编辑:程序博客网 时间:2024/05/01 05:43
在设计一张报表时,报表中的数据会经常变化,因此常常需要根据一些条件来过滤出想要的数据。这就需要通过参数的形式控制报表中的数据。
接下来的例子展示如何在数据集中加入参数使得报表变得更加灵活。
第一步:单击主菜单中的【配置】->【参数】。
弹出”参数编辑”窗体,如下图所示:
第二步:点击【增加】按钮,新增一个参数,默认名称为”arg1″,名称可根据自己的需要来命名。
这里把【名称】和【描述】分别改成”name”和”员工姓名”,【数据类型】我们选择默认的”字符串”。如下图所示:
同样的方法增加一个”奖金”参数,【数据类型】设置为”数值型”。
同样的方法增加一个”性别”参数,【数据类型】设置为”字符串”。
第三步:单击主菜单中的【配置】->【数据集】,弹出【数据集设置】窗体,如下图所示:
选择ds1,点击【编辑】按钮,弹出SQL编辑器,可以在此对ds1数据集进行修改。
选择【检索条件】标签页,设置检索条件(EMPLOYEE.EMPNAME like ? and EMPLOYEE.BONUS >? and EMPLOYEE.BIRTHDAY >? and EMPLOYEE.SEX =?),如图所示:
选择【参数】标签页,点击【增加】按钮,增加四个参数与检索条件中的”?”匹配。
点击【确定】按钮,完成参数的设置。
第四步:在设计器中预览报表,点 按钮,会弹出”设置报表参数窗口”,录入相关信息,如图所示:
点击【确定】按钮查询出姓名中包含”小”字、奖金高于200、出生日期大于”1960-01-01″且性别为”男”的员工信息,(注:性别在数据库中是以编码的形式存储的,”1″代表男,”2″代表女)。查询结果如下图所示:
第五步:此时的报表已经可以实现根据参数的不同而查询出不同的内容了,可是很多时候用户往往希望参数值不录的时候选出所有记录,接下来我们来需要对报表做一点修改,来实现这一功能。
点击主菜单中的【配置】->【数据集】,弹出”数据集设置”窗体,选择ds1,点【编辑】按钮,弹出SQL编辑器,将【检索条件】修改为:(EMPLOYEE.EMPNAME like ? or ? is null) and (EMPLOYEE.BONUS>? or ? is null) and (EMPLOYEE.BIRTHDAY >? or ? is null) and (EMPLOYEE.SEX =? or ? is null)。如图所示:
然后在【参数】标签页中按照问号顺序,写入参数名或含参数的表达式,如下图所示:
此时预览报表,不录入任何参数即可查询出所有记录。
接下来,需要处理这样的情况:
在这里表中数据有空的情况存在,如果想抓取不为空的记录,就需要在sql的where条件中加入参数来过滤。
设置的sql如下:
参数为表中的字段名,即替换后的sql表示抓取某个字段不为空的记录:
这时浏览数据会发现空的记录也被抓取出来了,如下图所示:
这是因为当一个字符串判断”not null”时,返回的永远是true,所以这种sql语句不能用参数。
解决这个问题需要用到宏。
宏的使用总体上来说和参数没有太大的区别,设置一个宏如下图:
把宏添加到sql语句中:
这时结果如下:
在很多时候参数和宏是可以并用的,而且在一些参数无法达到效果的时候,宏往往能轻而易举的解决。
关于参数和宏的更多用法,请参考润乾设计器帮助文档中的相关介绍。
- 润乾报表数据集中参数和宏的使用方法
- 润乾报表数据集中参数和宏的使用方法
- 润乾报表如何取出数据集中的最后一条数据
- 数据集中参数的设置
- 润乾报表中使用动态宏实现数据集中字段分别排序
- 润乾报表发布参数报表和查询报表方式
- 数据集中不确定数据列的报表制作
- 水晶报表显示ado.net数据集中的数据表
- 润乾报表4参数模板的下拉数据集的样式如何修改
- 润乾报表两个数据集间传递参数
- 润乾报表如何用动态参数取得季度数据
- 报表数据集参数表达式的应用
- Yii: 参数检查和错误的集中处理技巧
- 通过第一个参数,选择筛选报表数据的参数
- 报表控件Stimulsoft Reports数据字段的使用方法
- 银行金融的数据大集中和灾难备份技术
- SSRS Reporting Service 报表参数和数据集信息抽取
- 润乾报表通过ajax实现参数的动态过滤
- ENVI4.8安装之MSVC_sp1_x86
- Velocity:微软的分布式内存缓存
- int long 字节数
- libeasy库的配置
- 远程方法调用
- 润乾报表数据集中参数和宏的使用方法
- 双链表删除/插入节点
- 自定义格式的图文混排编辑控件
- 禁用通知栏的下拉
- 关于SVN 目录结构
- FreeMarker标签
- 群赛56(B,E,G,K)
- 解决win7下使用jdk1.5,时间差8小时的问题
- 乞讨的真相