gpt4 book ai didi

java - 如果子报表为空则隐藏文本字段

转载 作者:搜寻专家 更新时间:2023-11-01 02:22:49 26 4
gpt4 key购买 nike

我正在用 Jasper 创建一个包含四个部分的报告。每个部分都包含一个作为标题的文本字段和一个子报表。子报表可以为空。如果它为空,则使用Remove Line When Blank 隐藏它。到目前为止这有效。现在,如果子报表被隐藏,相应的标题文本字段也应该被隐藏。

我尝试了很多方法,但无法找到解决方案。例如。使用 Print When Expression:new Boolean ($P{otherField}.read() != -1)。这从不显示标题。

我也试图在我的 Java 程序中隐藏 header ,但找不到合适的 API 命令。我想 getBands()[x].getChildren()[y] 会将我带到正确的标题,但我无法将其隐藏在那里。

还有其他想法吗?

最佳答案

您应该将标题文本放在内部子报表中,例如 title乐队

在子报表中

<title>
<band height="38">
<textField>
<reportElement x="10" y="0" width="100" height="20" uuid="4b8ece47-1608-4d08-bc0b-e6b73bcf8346"/>
<textFieldExpression><![CDATA["TITLE"]]></textFieldExpression>
</textField>
</band>
</title>

确保您没有属性 whenNoDataTypejasperReport标签,所以它使用默认值 NoPages

如果子报表没有记录属性whenNoDataType=NoPages (默认)将确保不会返回任何内容,您也不会看到标题。

如果您在子报表之外需要它(出于某种奇怪的原因),请将记录计数从子报表传回主报表,并使用带有 printWhenExpression 的文本字段和 evalutationTime="Report"

查看此链接以了解有关如何传返回告计数的更多详细信息。

How to get report_count from subreport in iReport

关于java - 如果子报表为空则隐藏文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34682494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com