首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jasper Reports:当评估时间为“报告”时,文本字段消失。

Jasper Reports:当评估时间为“报告”时,文本字段消失。
EN

Stack Overflow用户
提问于 2012-09-04 10:16:40
回答 1查看 6K关注 0票数 5

我有一个报告,使用以下行在页脚中显示“X页Y”:

代码语言:javascript
复制
<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。

编辑:,即使该变量被删除,并且我使用

代码语言:javascript
复制
<textFieldExpression><![CDATA["T"]]></textFieldExpression>

行为保持不变。使用evaluationTime="Report“,将不显示第二个文本字段。“现在”就是了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-05 14:43:51

我终于找到了解决办法:

问题是,在客户环境中,字段必须扩展,因为客户系统似乎使用了比我们的系统更多的字体。在我们的环境中,它们没有,在JasperReports终极指南中,有关于拉伸行为的以下部分:

带有延迟计算的文本字段不会拉伸以获取表达式的所有内容。这是因为文本元素高度是在生成报表部分时计算出来的,而且即使引擎稍后返回文本字段的文本内容,元素高度也不会适应,因为这会破坏已经创建的布局。

因此,这些字段在带有计算类型!= "Now“的customers环境中消失了,因为在这种情况下它们不会扩展。增加字段的高度是有帮助的,但我认为从长远来看,我们必须改变字体设置,以便在我们的测试环境中具有相同的条件。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12261364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档