如何将表格列页脚设置到明细栏的底部?

时间:2019-02-26 16:53:14

标签: jasper-reports table-footer

我在jasperreport中使用表格,我需要在“组页脚”区域之前将表格列页脚添加到底部

here

但是目前它会像这里一样生成表

this

您会看到表格(在详细信息区域)和组页脚区域之间有很多空格。

<detail>
    <band height="80">
        <componentElement>
            <reportElement key="table1" style="tableStyle" x="1" y="0" width="552" height="80" isPrintWhenDetailOverflows="true" uuid="9a24d27b-9228-4f23-8c02-628268479882">
                <printWhenExpression><![CDATA[$V{REPORT_COUNT} == 1]]></printWhenExpression>
            </reportElement>
            <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" whenNoDataType="AllSectionsNoDetail">
                <datasetRun subDataset="TableDataset" uuid="aad66998-86ba-485c-b8f4-3f2f6eda4796">
                    <dataSourceExpression><![CDATA[$P{datasourceItems}]]></dataSourceExpression>
                </datasetRun>
                <jr:column width="25" uuid="eb2f74b3-8006-4762-a52e-838f5e08a86f">
                    <jr:columnHeader height="40" rowSpan="2">
                        <staticText>
                            <reportElement style="tableProduct_CH" x="0" y="0" width="25" height="40" uuid="6ce8147d-c282-467a-b348-0d5cf3def735"/>
                            <textElement textAlignment="Center" verticalAlignment="Middle"/>
                            <text><![CDATA[No]]></text>
                        </staticText>
                    </jr:columnHeader>
                    <jr:columnFooter style="tableProductFooterNoLine" height="20" rowSpan="1"/>
                    <jr:detailCell height="20" rowSpan="1">
                        <textField isStretchWithOverflow="true">
                            <reportElement style="tableProduct_TD" x="0" y="0" width="25" height="20" uuid="fc581740-46a3-4602-b769-18beca53d355"/>
                            <textElement textAlignment="Center"/>
                            <textFieldExpression><![CDATA[$F{no}]]></textFieldExpression>
                        </textField>
                    </jr:detailCell>
                </jr:column> ...
            </jr:table>
        </componentElement>
    </band>
</detail>

1 个答案:

答案 0 :(得分:2)

AFIK:在使用jr:table组件的jasper报告版本<= 6.7(回答时为当前版本)下,不可能

您可以在background带中画线,然后在groupFooter带中添加页脚,但是我建议您创建一个子报表以避免分页符问题。

子报表将使用标准的detailcolumnFooter带来模拟表格,再次在background带中添加垂直线。

columnFooter的行为由属性isFloatColumnFooter定义,因此在您的情况下,false