JasperReport 根据内容动态调整报表行高

JasperReport结合IReport如何设计出一个能根据内容自动调整行高的报表呢?

 

有人说目前只有detail 这个Band才可以实现。其实无论哪个band都可以实现这个功能!

主要是通过以下几个元素实现:

1.Stretch with overflow 针对TextFileld

2.Stretch Type:relative to tallest object/relative to band height

3.Position type:Float/Fix relative to top/Fix relative to bottom

4.element group(为元素分组)

 

一、先看看detail中根据内容自动调整行高的办法

假如detail band中设计时只有一行,那么选中所有元素,在属性中的Stretch Type中选中relative to band height,Position type中选中Fix relative to top ;勾选 Stretch with overflow即可。

但是,如果detail band中设计时不止一行,有两行以上,按照以上的设计无论Stretch type /Position type选中什么值,同时勾选Stretch with overflow.运行出来都是不行的,有些行无法看到,要吗就是行与行之间的内容有覆盖的现象。

这时,一定要运用上element group(注意不是Report group)。假定设计时有两行吧,把这两行分别归为一个element group,在IReport中按住shift键,选中第一行,右键单击选择“group selected elements”,在属性Stretch Type中选中relative to tallest object,Position type中选中Float ;勾选 Stretch with overflow即可。第二行也做类似操作。


 

二、Title band或header band中如何根据内容自动调整行高

其实设置方法同Detail完全一样,单行是可以不归element group(当然也可归为一个element group),多行必须归类element group


 

注意:IReport 对Element group的控制有点问题,不行的话就直接改源码,将相应的TexitField或label归到<elementgroup></elementgroup>之间即可
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值