首页 > 解决方案 > 如何将表格列页脚设置为详细信息带的底部?

问题描述

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

这里

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

这个

如您所见,表格(详细说明带)和组页脚带之间有很多空格..

<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>

标签: jasper-reportstable-footer

解决方案


AFIK:在使用该组件的 jasper 报告版本 <=6.7(回答日期的当前版本)中这是不可能jr:table

您可以在带区中绘制线条,background然后在带区中添加页脚groupFooter,但我建议您创建一个子报表以避免出现分页问题。

detail子报表将使用标准和带模拟表格columnFooter,您将再次在background带中添加垂直线。

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


推荐阅读