当前位置: 首页 > 知识库问答 >
问题:

当IsigneRegaging时如何拆分到新的页面?

佘茂才
2023-03-14

使用Jaspersoft studio 6.2。

带有详细和摘要带的主要报告。主报告的摘要带中的子报告。主报表本身(没有子报表时)将分成两个页面,因此我选中了IsignorePagination,主报表(没有子报表时)将显示为单页。

默认情况下,子报表本身分为9页,当我选中IsIgnorePagination时,它显示为一个单独的页。好吧。当我用上面的所有设置将子报表放在主报表中时,它就会显示为一个单独的页面。我如何在一页中制作主报告,在另一页中制作子报告(所以总共两页)?

编辑

试过中断组件,它工作,但仍然有一个问题。主报表的页面高度必须设置得足够大,以包括主报表和子报表,否则会有超过2页的页面,但这会在主报表的底部留下太多空白。下面是一个例子来说明我的意思。

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Created with Jaspersoft Studio version 6.2.0.final using JasperReports Library version 6.2.0  -->
    <!-- 2016-04-26T16:13:43 -->
    <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="test11" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="ce9d78e1-7194-4754-aaf9-93e871d2a5cf">
        <property name="com.jaspersoft.studio.data.sql.tables" value=""/>
        <property name="com.jaspersoft.studio.data.defaultdataadapter" value="datamart"/>
        <property name="com.jaspersoft.studio.unit." value="pixel"/>
        <queryString>
            <![CDATA[select 1 as a
    union all select 2 as a]]>
        </queryString>
        <field name="a" class="java.lang.Integer"/>
        <variable name="Total" class="java.lang.Integer" calculation="Sum">
            <variableExpression><![CDATA[$F{a}]]></variableExpression>
        </variable>
        <background>
            <band splitType="Stretch"/>
        </background>
        <columnHeader>
            <band height="50">
                <staticText>
                    <reportElement x="54" y="0" width="100" height="30" uuid="e9116c0f-c827-4cb3-95d1-9155f4be7cb7"/>
                    <text><![CDATA[a]]></text>
                </staticText>
            </band>
        </columnHeader>
        <detail>
            <band height="49" splitType="Stretch">
                <textField>
                    <reportElement x="50" y="10" width="100" height="30" uuid="79fa53fa-48e2-43d0-96a4-0cda54e95c25"/>
                    <textFieldExpression><![CDATA[$F{a}]]></textFieldExpression>
                </textField>
            </band>
        </detail>
        <summary>
            <band height="297" splitType="Stretch">
                <textField>
                    <reportElement mode="Opaque" x="52" y="16" width="100" height="30" backcolor="#C4E5F6" uuid="2a393151-947e-4f1d-ab24-e456ce56bd19"/>
                    <textFieldExpression><![CDATA[$V{Total}]]></textFieldExpression>
                </textField>
                <subreport>
                    <reportElement x="62" y="97" width="200" height="200" uuid="b342cbae-597b-4ca5-b00d-3a4d047910f8"/>
                    <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                    <subreportExpression><![CDATA["test12.jasper"]]></subreportExpression>
                </subreport>
                <break>
                    <reportElement x="0" y="60" width="619" height="1" uuid="ccc2155d-6a2e-4c23-a972-88bb871cb17d"/>
                </break>
            </band>
        </summary>
    </jasperReport>

子报告

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Created with Jaspersoft Studio version 6.2.0.final using JasperReports Library version 6.2.0  -->
    <!-- 2016-04-26T16:14:10 -->
    <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="test12" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="3601f813-f6da-4105-a4d8-5c1ee1dd54d4">
        <property name="com.jaspersoft.studio.data.sql.tables" value=""/>
        <property name="com.jaspersoft.studio.data.defaultdataadapter" value="datamart"/>
        <queryString>
            <![CDATA[select 10 as col 
    union all select 20  as col]]>
        </queryString>
        <field name="col" class="java.lang.Integer"/>
        <variable name="total" class="java.lang.Integer" calculation="Sum">
            <variableExpression><![CDATA[$F{col}]]></variableExpression>
        </variable>
        <background>
            <band splitType="Stretch"/>
        </background>
        <columnHeader>
            <band height="61" splitType="Stretch">
                <staticText>
                    <reportElement x="73" y="0" width="100" height="30" uuid="5f2cfa26-c7ab-413e-94cf-80c1f1b288eb"/>
                    <text><![CDATA[col]]></text>
                </staticText>
            </band>
        </columnHeader>
        <detail>
            <band height="125" splitType="Stretch">
                <textField>
                    <reportElement x="73" y="90" width="100" height="30" uuid="3af983fb-00e2-4bb9-9e91-2d2214ca95d7"/>
                    <textFieldExpression><![CDATA[$F{col}]]></textFieldExpression>
                </textField>
            </band>
        </detail>
        <summary>
            <band height="49" splitType="Stretch">
                <textField>
                    <reportElement mode="Opaque" x="74" y="19" width="100" height="30" backcolor="#FFCC33" uuid="b333fb92-8aa8-4f00-9a1a-db24657d5521"/>
                    <textFieldExpression><![CDATA[$V{total}]]></textFieldExpression>
                </textField>
            </band>
        </summary>
    </jasperReport>

主报告中有一个中断,这很好,2页一个主报告和一个子报告,但主报告在底部留下太多空白,如果我降低主报告的高度(如400像素),将有超过2页。有没有可能只得到2页而没有太多空白?

共有1个答案

叶元凯
2023-03-14

要为每个页面实现不同的大小,需要在JasperReport标记上使用属性Isignorrepagination=“true”

IsIgnorePagination为true时,默认情况下会忽略break元素,您需要通过将此属性net.sf.jasperreports.page.break.noo pagination设置为apply来启用它

忽略-在非分页报表中忽略分页符。(默认值)
Apply- 分页符在非分页报表中得到遵守。

<property name="net.sf.jasperreports.page.break.no.pagination" value="apply"/>
<break> 
    <reportElement x="0" y="0" width="100" height="1" uuid="604c65b5-1127-4874-a63c-9b1a98dbf25c"/>
</break>
 类似资料:
  • 我希望能够处理从必须在页面中访问的源读取的java流。作为第一种方法,我实现了一个分页迭代器,它在当前页面用尽条目时简单地请求页面,然后使用< code > stream support . stream(iterator,false)获取迭代器上的流句柄。 因为我发现获取我的页面非常昂贵,所以我想通过并行流的方式访问页面。此时,我发现由于java直接从迭代器提供的spliterator实现,我的

  • 我在我的骆驼分裂()路线中有一个聚合策略。 splitMessage方法已将数据拆分为3个请求数据。因此,我将点击http目标endpoint3次。 使用聚合策略,我的http响应在前2次被聚合。 第三次http调用因异常而失败。返回给调用者的交换不包含前两个分组交换。 在这种情况下,我如何获得分组交换(成功,异常)。 如果问题不清楚,请告诉我。

  • 下一段代码应该将一个多页pdf文件拆分为每页一个文件。它适用于第一页,但当关闭第二页的目标pdfDocument时,它会抛出iText。内核PDFEException:“文档没有页面。”尝试使用不同的源文件,结果相同。还尝试先获取页面数,然后打开每个页面的读卡器,得到相同的结果

  • 我使用上述命令仅根据字段[1]、字段[3]和字段[5]获取值。 下面的值是我作为实际输出获得的,因为输入文件中的第二列包含几个用于拆分行的逗号。当有几个分隔符时,我如何拆分数据?或者有什么方法可以删除我不想使用的表?我想删除几列有长字符串,这会导致这个问题发生 我期待以下输出。 我将上传示例输入值,以便您理解我的问题, 正如您所看到的,在这个示例输入的第二行中,它包含了许多逗号,使我无法拆分。

  • 成功登录验证后,我需要刷新主页。在这里,我使用下面的代码在成功登录后移动到下一页,并使用Firebase作为后端。 它只是打开主页而没有刷新。欢迎,如果有人能给我一个解决方案。

  • 在html中,当创建选项卡时,我可以将Paris选项卡设置为活动的(在html中用“style=”display:block;“硬编码)。因此,当页面加载时,活动选项卡(Paris)将显示。 问题 当我点击不同的标签(伦敦)并点击刷新,它再次显示巴黎。我如何才能点击刷新并显示当前活动的选项卡的信息?而不是将我带回定义的选项卡。也许javascript或jquery可以解决我的问题? 柱塞视图 示例