平时我们在设计报表的过程中,在设计器界面我们通常把所需的列直接从数据源拖入即可。但对于返回不定列的数据集,之前的方法已不能满足我们的需求。假若在列数过多的情况下,一个个进行拖拽,相对比较麻烦;或者我们要定义固定返回几列,也不能立刻实现。下面介绍的动态列报表可以帮我们解决上述问题。
【实例】动态列报表
具体步骤如下:
1、打开报表设计器,新建一张自由报表,定义私有数据源命名为ds1,定义SQL语句:select *
from Employees 。定义好之后,数据表当中的列会显示在左侧的私有数据源面板处。
2、将EmployeeID字段拖拽到A4单元格,保留其默认设置:扩展方向是从上到下,数据是分组。
3、选定单元格B2,右击或者点击工具栏中的按钮,选择单元格元素,编号,弹出如下对话框:

4、在起始数集合中,填入数字1,结束数集合,输入函数=colcount("ds1")。此函数的含义为,计算数据集所返回的列数。当你希望数据集返回希望的列数,同样可以填入一个确切的数值。同时扩展方向选择从左向右。
5、同时在B3单元格中输入公式=colname("ds1",b2),此公式代表的是返回数据集列名。
6、将EmployeeID字段拖拽到B4单元格,保留其默认设置,同时双击B4单元格,在弹出的对话框中,ds1后面,填入公式"=B2",如下:

7、然后给报表加上一些格式,例如背景色,边框等。报表设计图如下所示:

8、值得注意的是:A4和B2单元格,是我们设计报表时需要的数据,但报表效果图,并不需要。为了不影响美观,这时我们就要把这两个单元格返回的数据隐藏。以B2单元格为例:右击单元格B2,选择单元格条件加亮,在弹出的对话框中,行高设置为0,便达到隐藏的效果。同理,将A4单元格的列宽设置为0。点击"预览"按钮,效果图如下:

9、最后将报表保存为../WebReport/WEB-INF/reportlets/com/doc/dynamic_col.cpt。
FineReport V6.1 免费下载
(下载地址:http://www.finereport.com/FineReport-CN.exe)
论坛专区与专家交流
完善的报表使用文档和二次开发文档
更多了解,敬请关注:www.finereport.com
posted on 2008-02-18 16:15
javareport 阅读(485)
评论(0) 编辑 收藏 所属分类:
设计报表