Jasper Reports - 检查 table 是否为空(无记录)并隐藏 table 标签

Jasper Reports - check if table is empty (no records) and hide table label

我的场景:摘要字段上有 2 table,每个 table 都有自己的数据集。此外,每个 table 都有标签,因此每个 table.All 的顶部都有一个标签是可以的,但是如果 table 中没有数据,则不会打印 table 但 table 标签仍​​然可见。

如果 table 没有数据,我需要隐藏 table 标签。有可能吗?我找不到任何解决方案如何确定 table 是否为空,设置为隐藏标签的表达式。

有什么想法吗?

从您的 table 组件获取记录计数没有问题,这是通过返回值

完成的
<returnValue fromVariable="REPORT_COUNT" toVariable="TABLE_COUNT"/>

但是这不能解决你的问题,因为你不能设置printWhenExpressionevalutationTime,你只能设置evalutationTime textFieldExpression

问题通常通过移动您的"table label"在tableheader

从 IDE 将您的列分组并在 table header.

内的 groupHeader 中添加 textField

示例(jrxml 结果)

<componentElement>
    <reportElement key="table" style="table" x="0" y="33" width="360" height="50" uuid="6a7d5ab9-f15d-4676-85b2-1e48f016c155"/>
    <jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
        <datasetRun subDataset="tableData" uuid="fa5df3de-f4c5-4bfc-8274-bd064e8b81e6">
            <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
        </datasetRun>
        <jr:columnGroup width="217" uuid="c96f6ab0-8cce-4dc7-b686-da6928e7cabb">
            <jr:tableHeader height="61" rowSpan="1">
                <textField>
                    <reportElement x="0" y="0" width="217" height="61" uuid="98aa260d-7e84-4df7-89cc-fc1eabdcf656"/>
                    <textElement textAlignment="Center" verticalAlignment="Middle"/>
                    <textFieldExpression><![CDATA["MY TABLE LABEL"]]></textFieldExpression>
                </textField>
            </jr:tableHeader>
            <jr:column width="90" uuid="889a828a-ad48-40a0-81f4-326a95d6585c">
                <jr:columnHeader style="table_CH" height="60" rowSpan="1"/>
                <jr:detailCell style="table_TD" height="43" rowSpan="1">
                    <textField>
                        <reportElement x="0" y="0" width="90" height="43" uuid="82b2a835-4373-4638-b75a-d43f531678ba"/>
                        <textFieldExpression><![CDATA[$F{myField1}]]></textFieldExpression>
                    </textField>
                </jr:detailCell>
            </jr:column>
            <jr:column width="127" uuid="004c3afe-c39f-44e2-a82d-5c96697ebd7e">
                <jr:columnHeader style="table_CH" height="60" rowSpan="1"/>
                <jr:detailCell style="table_TD" height="43" rowSpan="1">
                    <textField>
                        <reportElement x="0" y="0" width="90" height="43" uuid="90287319-765f-49a0-9f80-0851f40f2b13"/>
                        <textFieldExpression><![CDATA[$F{myField2}]]></textFieldExpression>
                    </textField>
                </jr:detailCell>
            </jr:column>
        </jr:columnGroup>
    </jr:table>
</componentElement>