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

时间:2015-12-14 10:01:59

标签: jasper-reports

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

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

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

1 个答案:

答案 0 :(得分:3)

实现这一目标的最简单方法是将您的表格放在<groupFooter> 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>

<强>结果

Result