我使用iReport创建报告,我想知道是否有办法设置“光学分组字段”的宽度。它们应设置为仍显示最长文本的最小尺寸。我在左侧有静态文本,右侧有文本字段。此文本字段设置为宽度150并向右对齐,但我想设置较小的尺寸以消除空白区域。
考虑像这样的事情
Name: Paul
Surname: Smither
并希望自动
Name: Paul
Surname: Smither
等。可以小于预设尺寸但不大。
有办法吗?甚至一些组件
答案 0 :(得分:0)
如果不使用Java框架,无法动态更改元素宽度。
JasperReports Ultimate Guide的引用:
元素大小
width和height属性是必需的,表示大小 以像素为单位测量的报告元素。其他元素拉伸 设置可能会指示报告引擎忽略指定的 元素高度。即使在这种情况下,属性仍然是必需的 因为即使动态计算高度,元素也会 不小于最初指定的高度。
您可以阅读this article以更好地了解更改元素大小的机制。
答案 1 :(得分:0)
如果它真的只是来自数据集中同一行的几个字段,那么你可以一起破解。
" "
将您的字段文本从$F{FirstName}
更改为:
$P{MaxLengthString}.substring(
$P{MaxLengthString}.length() + $F{FirstName}.length() - java.lang.Math.max($F{FirstName}.length(), $F{LastName}.length())
) + $F{FirstName}
那是......呃......有点复杂。它只适用于等宽字体。而且我无法相信我真的建议了这一点。不要这样做。 (但它应该有效。)