Jasper 报告:将元素定位在页面底部

Vka*_*Vka 2 jasper-reports

我想知道是否可以将动态增长的(表格)元素定位到页面底部?我的表格元素位于详细信息区域上,位于页脚区域上方。

基本上在我的情况下,表最上面行的位置将根据表中的行数一直动态变化。但我不确定是否可以使用 Jasper 创建这种演示文稿,其中表格基本上从下到上“增长”,表格的最后一行基本上固定在页面底部,就在上面页脚。如果表格最上面行的位置始终固定并且表格从固定的顶部位置向页面底部“正常增长”,那就没有问题了......

我尝试将表格的位置类型属性设置为相对于底部固定,但之后整个表格完全消失。这是迄今为止我能想到的唯一能解决我的问题的方法。

Pet*_*erg 5

也许实现这一目标的最简单方法是将您的表放在一个<groupFooter>with中footerPosition="StackAtBottom"

正确的分组方法取决于您的数据源,但假设您只有一个表创建虚拟组。

具有页面StackAtBottom表的虚拟组示例

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Example2" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="ca579c38-1e4f-4993-a020-efcea9d1096e">
<style name="table"><box><pen lineWidth="1.0" lineColor="#000000"/></box></style>
<style name="table_TD" mode="Opaque" backcolor="#FFFFFF"><box><pen lineWidth="0.5" lineColor="#000000"/></box></style>
<subDataset name="Table" uuid="982be61b-ae46-4404-a9a0-30ba13e8c414">
    <queryString language="xPath">
        <![CDATA[/report/table/entry]]>
    </queryString>
    <field name="name" class="java.lang.String">
        <fieldDescription><![CDATA[name]]></fieldDescription>
    </field>
    <field name="class" class="java.lang.String">
        <fieldDescription><![CDATA[class]]></fieldDescription>
    </field>
</subDataset>
<queryString language="xPath">
    <![CDATA[/report]]>
</queryString>
<group name="dummy" footerPosition="StackAtBottom">
    <groupFooter>
        <band height="29">
            <componentElement>
                <reportElement key="table" style="table" x="0" y="0" width="360" height="20" uuid="53ea5a0e-1218-4150-ab5a-5f947e73b284"/>
                <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="Table" uuid="64092841-9993-4ccd-89b4-84a546c719cf">
                        <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("report/table/entry")]]></dataSourceExpression>
                    </datasetRun>
                    <jr:column width="90" uuid="4f5b1813-a9cc-4f83-9bdb-b0d8c4299133">
                        <jr:detailCell style="table_TD" height="20">
                            <textField>
                                <reportElement x="0" y="0" width="90" height="20" uuid="f1a97e19-e23d-40b6-ad95-10614f516db7"/>
                                <textFieldExpression><![CDATA[$F{class}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="90" uuid="98cfbe63-f865-419c-ad8f-d8af2ed706ba">
                        <jr:detailCell style="table_TD" height="20">
                            <textField>
                                <reportElement x="0" y="0" width="90" height="20" uuid="0480f047-02ba-4ec4-b12a-ef56a3cbfee9"/>
                                <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                </jr:table>
            </componentElement>
        </band>
    </groupFooter>
</group>
<detail>
    <band height="17" splitType="Stretch"/>
</detail>
</jasperReport>
Run Code Online (Sandbox Code Playgroud)

结果

结果