我有一个报告,使用以下行在页脚中显示“X页Y”:
<textField isStretchWithOverflow="true">
<reportElement x="432" y="21" width="95" height="10" forecolor="#000000"/>
<textElement textAlignment="Right">
<font size="8"/>
</textElement>
<textFieldExpression><![CDATA[
$R{Report.Footer.Label.Page} + " " + $V{PAGE_NUMBER}
]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" evaluationTime="Report">
<reportElement x="527" y="21" width="20" height="10" forecolor="#000000"/>
<textElement textAlignment="Right">
<font size="8"/>
</textElement>
<textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression>
</textField>在我们的测试环境中,一切都很好。正确显示页码。
在客户的环境中,事情很奇怪。没有显示第二个textField。但是,当我将第二个字段的计算类型更改为"Now“时,就会显示它。
你知道是什么导致了我们和客户环境中的行为差异吗?您是否有任何提示或您知道关于呈现字段的评估类型和报告,这可以帮助我解决问题的任何细节?
我正在使用Jasper Reports 4.1.2。
编辑:,即使该变量被删除,并且我使用
<textFieldExpression><![CDATA["T"]]></textFieldExpression>行为保持不变。使用evaluationTime="Report“,将不显示第二个文本字段。“现在”就是了。
发布于 2012-09-05 14:43:51
我终于找到了解决办法:
问题是,在客户环境中,字段必须扩展,因为客户系统似乎使用了比我们的系统更多的字体。在我们的环境中,它们没有,在JasperReports终极指南中,有关于拉伸行为的以下部分:
带有延迟计算的文本字段不会拉伸以获取表达式的所有内容。这是因为文本元素高度是在生成报表部分时计算出来的,而且即使引擎稍后返回文本字段的文本内容,元素高度也不会适应,因为这会破坏已经创建的布局。
因此,这些字段在带有计算类型!= "Now“的customers环境中消失了,因为在这种情况下它们不会扩展。增加字段的高度是有帮助的,但我认为从长远来看,我们必须改变字体设置,以便在我们的测试环境中具有相同的条件。
https://stackoverflow.com/questions/12261364
复制相似问题