注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 [业内传闻]今天,7月25日..
 帮助

专业Web报表工具FineReport ——报表教程之结果集筛选


2008-02-20 16:44:03
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://javareport.blog.51cto.com/127966/62559
一 般来说,我们呈现在报表当中的数据,是将数据库中的数据全部呈现出来,或者通过通过筛选条件过滤一些数据。但是筛选条件的过滤只能通过一个固定值作为筛选 标准来过滤数据。而我们有时候需要的数据仅仅是最前或最末几个的数据,不能够使用固定值作为筛选条件。例如在一张产品销售量月报表当中,部门经理最关心的 是销售业绩最优秀的五个城市和销售业绩最差的三个城市,而此时我们并不知道具体的销售量准确的衡量数字,所以这时候就可以通过结果集筛选来得到想要的数 据。
结果集筛选,就是可以通过一些设置对结果值进行一些特定的筛选,设置的方式是在绑定数据列对话框中的其它页面,结果集筛选区域。如下图所示:
系统默认的设置是未定义,即不对结果值做任何设置。用户可通过下拉框进行选择的设置包括:前N个,后N个,偶数,奇数,指定。具体的意义解释如下:
前N个:即报表当中只显示指定的前N个数据,选择了前N个之后,会在下拉框右侧出现对应的文本框,在文本框中输入N的具体值即可。
后N个:即报表当中只显示指定的后N个数据,选择了后N个之后,会在下拉框右侧出现对应的文本框,在文本框中输入N的具体值即可。
偶数:即数据集号从1开始,选择偶数的数据集。
奇数:即数据集号从1开始,选择奇数的数据集。
指定:即用户可以指定显示的数据集号,选择了指定之后,会在下拉框右侧出现对应的文本框,在文本框中数据要显示的数据集的具体值即可,当需要显示的数据集多于一个的时候,指定的数值必须用逗号分隔。
【实例】结果集筛选(高级)
用一个实例来演示一下结果集筛选的作用。如下图:
该效果的做法如下:
1、新建一个自由报表。
2、添加私有数据源命名为ds1,其SQL语句为select * from sales
3、将数据查询 ds1 ProductName 字段放置在单元格A4当中。类型为扩展,数据为分组,扩展方向为从上向下
4、将 Month 字段放置在单元格B4当中。类型为扩展,数据为分组,扩展方向为从上向下
5、将 Attributes 字段放置在单元格C3当中。类型为扩展,数据为分组,扩展方向为从左向右
6、将 Sales 字段放置在单元格C4当中。类型为不扩展,数据为汇总|所有行(sum).
7、将A5和B5单元格合并,在合并后的单元格中写入内容 Sum:。在C5单元格中写入公式 =sum(C4)
8、将A6和B6单元格合并,在合并后的单元格中写入内容 Total: 。在C6单元格中写入公式 =sum(C4)
9、双击B4单元格,在结果集筛选当中,选择前N个,在右边的文本框中写入数字 2 ,这样便定义了筛选的条件为前2个。
10、同上,双击A4单元格,在结果集筛选当中,选择前N个,在右边的文本框中写入数字 2
11、最后将报表保存为../WebReport/WEB-INF/reportlets/com/doc/choose.cpt
(下载地址:http://www.finereport.com/FineReport-CN.exe
论坛专区与专家交流
完善的报表使用文档和二次开发文档
更多了解,敬请关注:www.finereport.com

本文出自 “Java报表” 博客,请务必保留此出处http://javareport.blog.51cto.com/127966/62559





    文章评论
 
 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: