一般报表的标题单元格,公式单元格等手工输入的值,都是不能自动根据分组数据进行重复显示的。这类的格子,在需要被重复的时候,需要给他自定义父格,让其跟随父格进行扩展。
下面来看一个简单的明细表,在这个报表当中绑定数据列的单元格比较少,而我们手写的格子和设置了背景,边框等的格子比较多。这些格子我们都需要它能够根据数据来重复显示。
新建一个自由报表,定义私有数据源ds1,其SQL语句为:select * from Employees。
我们先画好报表的样式,如下图所示:

如上是一个最基本的电子表格,下面我们在这个基础上来绑定数据。
将ds1中的字段 Name拖拽到B2单元格中,保留其默认的扩展并且分组的设置。
将字段 Sex拖拽到B3单元格中,保留其默认的扩展并且分组的设置。在绑定数据列对话框中附属页面,将其左父格自定义为 Name字段所在的单元格B2,也就是说B2单元格绑定的每一条记录,会有一个B3单元格的记录跟随在它下方。
同理,将其它与标题呼应的字段拖拽到对应的单元格中,采用与B3同样的设置。也就是报表当中每出现一次B2中的数据记录,后面所有以B2为父格的数据,都会出现在B2下方对应的位置。
绑定数据之后的报表设计界面如下图所示:

从数据源预览,我们可以知道,该数据表共有8条不同的记录,那么我们预览报表,得到的应该是8张相对独立的报表。但是预览,我们可以看到效果如下图:

除了第一张表是完整的报表之外,其它的7张表,都分别缺少了一些单元格,这是因为这些普通的格子并没有父格,所以它们不会跟随父格的扩展而被复制。
但是为什么有一些同样是普通单元格的格子,比如A3,A4这些格子却被复制了呢?
这是因为,我们设置了B3,B4这些格子的左父格是B2,那么这些格子会跟随B2扩展。而这种扩展,并不是仅仅是复制B3或者B4这一个格子,而是它们所在的行,所以和它们处于同一行的数据也被复制了。
那么要如何设置才能使其它的几个格子也能够跟随被复制呢?
解决的方法,就是自定义这几个格子的左父格为B2,也就是要让它们跟随B2的扩展而被复制。定义的方法是右键要被复制的单元格,选择父格设置,在系统弹出的对话框中,将其左父格自定义为B2。如下图所示:

另外,为了让每个表之间有间隔,可以给A11这个空白的行,也自定义其左父格为B2,这样,每个表的最下方就会有一个空白的行。预览报表效果图如下:

上面这张报表在示例当中为../WebReport/WEB-INF/reportlets/com/doc/simpledetail.cpt。
详情敬请登录:http://www.finereport.com
posted on 2008-01-31 16:24
javareport 阅读(903)
评论(0) 编辑 收藏 所属分类:
设计报表