ireport设置textfield的自动伸缩

比如 放置一个文本框设置长度为20  宽度为10设置内容为aaaaaaaaaaaaaaa

当宽度超过10时 内容自动被截断 这个时候 

勾选 Strech With OverFlow 即可自动换行 如果在detail中 为某个textfield设置 会导致其他的列 对不齐 这个时候 将所有的列 Strech Type设置成Relative to Band Height 即可


如果有个需求是假如 在Page Header 上有 5个字段 当其中任何一个字段没有值时 要将后面的内容上移  也就是自动伸缩的实现 

这个时候将所有的 5个 textfield的Position Type设置成Float 同时勾选 Strech With OverFlow  再将 textfield的高度设置成0  并且将后面的textfield全部拖到第一个的位置 

将 Print When Experession的值改成 $P{LINE2}!=null && !"".equals($P{LINE2}.trim())   //$P{LINE2}为你设置到textfield的参数

即可

因为当长度为0时 有内容时Strech With OverFlow 就会自动伸展开 如果没有内容高度就是0 并且控件不打印出来 Position 设置成float就是悬浮紧靠上个控件   


必须是textfield才行 因为 label是没有Strech With OverFlow 因为是静态文本 文本一开始就知道了长度 无需伸缩  label只需要设置Print With Expression 的值为对应的表达式

比如 $P{A}!=null && !"".equal($P{A})

posted @ 2014-07-24 16:28  饺子吃遍天  阅读(603)  评论(0编辑  收藏  举报