4

我有一个 JasperReport,我想为此报告创建一个封面。封面必须包含来自数据库的一些信息,例如公司名称等。我正在尝试使用子报告来执行此操作,但没有成功。我创建了一个主报告,其中首先包含封面作为子报告,然后将整个报告作为第二个子报告。我得到了一个空的报告。

我的第二次尝试是将封面页作为子报告放入主报告中,但这并不奏效。

任何提示如何做到这一点?


提前非常感谢。

4

5 回答 5

3

目录话语

使用 Jasper Reports 设置子报表并非易事。至少有两种方法可以告诉主报告在哪里可以找到子报告。

  1. 为参数提供一个值SUBREPORT_DIR
  2. 将子报表放在 CLASSPATH 中。

对于解决方案 1,在运行时确定主报告位置的绝对目录。然后,将子报表放在主报表下的相关目录中。最后,告诉主报告包含子报告的子目录的绝对路径。

我没有使用解决方案2。

参数化主控

考虑参数化主报告,而不是创建子报告。

  1. 将参数列表添加到报告中。
  2. 将参数拖到报告标题上。

如果您只有一份报告,但想使用不同的徽标(以及公司名称、样式等),请使用参数来配置外观。

子报表使用

我发现当数据查​​询几乎相同时创建子报表很有用,但需要以稍微不同的方式对数据进行分组。主报告包含所有常见的内容(显示输入参数——以便可以重新创建报告、标题、公司名称、用户名、时间戳、页码等),子报告关注差异。通常,子报表会重叠并且仅根据输入参数的值执行。

于 2009-09-02T08:29:48.010 回答
1

将它们添加到摘要带中,您甚至可以选择将其放在不同的页面上。在您刚刚添加的子报表上,您可以在他的摘要带上放另一个,在他的上,再放一个,这样就可以了。您可以将无限的报告绑定在一起。

于 2009-12-16T12:52:27.650 回答
1

我在标题带的末尾添加了一个中断。

<title>
   <band>
   <break></break>
   </band>
 </title>

这具有分页符的效果。

于 2013-01-27T20:44:26.963 回答
1

我可能误解了这个问题,因为接受的答案是关于阻止子报告,这是封面的完美解决方案(只需将其放在TITLE带中)。子报表实际上是 JR 的杀手级功能。的确,它们并不简单,但它们可以在没有任何调整或弯曲可用工具集的情况下实现。当数据集查询有很大不同时,我会完全使用它们......

于 2014-05-07T08:28:09.177 回答
0

最近回答,但它可能会帮助另一个有点棘手,

  • 右键单击“最大化带高”的标题带不要删除其他带

在此处输入图像描述

  • 标题栏也将是您的封面页,您可以添加任何您想要的内容

  • 您可以使用条件的每个页面的组件(TextField、Image、Line 等)(int 打印表达式)

带有两页碧玉报告的结帐示例

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.16.0.final using JasperReports Library version 6.16.0-48579d909b7943b64690c65c71e07e0b80981928  -->
<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="with_cover_page" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="54476be0-8bb3-45ff-a01b-12ce691c960b">
    <queryString>
        <![CDATA[]]>
    </queryString>
    <background>
        <band splitType="Stretch"/>
    </background>
    <title>
        <band height="607" splitType="Stretch">
            <textField>
                <reportElement x="4" y="10" width="540" height="30" uuid="9a254956-a600-483d-a9fb-8d64ceb73766"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font size="14"/>
                </textElement>
                <textFieldExpression><![CDATA["Some text header etc."]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="4" y="288" width="540" height="30" uuid="15a732d8-2596-433b-9ba6-4278c008a394"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font size="14"/>
                </textElement>
                <textFieldExpression><![CDATA["Act like Body"]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="4" y="560" width="540" height="30" uuid="1d4d4c98-4469-4001-a2ff-2e880846491e"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font size="14"/>
                </textElement>
                <textFieldExpression><![CDATA["Act like Footer"]]></textFieldExpression>
            </textField>
        </band>
    </title>
    <pageHeader>
        <band height="35" splitType="Stretch">
            <textField>
                <reportElement x="4" y="5" width="546" height="30" uuid="580f101d-9569-4692-914b-4f30e05df9a4">
                    <printWhenExpression><![CDATA[$V{PAGE_NUMBER} != 1]]></printWhenExpression>
                </reportElement>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font size="18"/>
                </textElement>
                <textFieldExpression><![CDATA["This is page Header for every page except first one"]]></textFieldExpression>
            </textField>
        </band>
    </pageHeader>
    <columnHeader>
        <band height="61" splitType="Stretch"/>
    </columnHeader>
    <detail>
        <band height="125" splitType="Stretch">
            <textField>
                <reportElement x="4" y="49" width="546" height="30" uuid="52bcf471-555f-4fe7-bd35-a53aee7e761f"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font size="16"/>
                </textElement>
                <textFieldExpression><![CDATA["This is second page"]]></textFieldExpression>
            </textField>
        </band>
    </detail>
    <columnFooter>
        <band height="45" splitType="Stretch"/>
    </columnFooter>
    <pageFooter>
        <band height="54" splitType="Stretch"/>
    </pageFooter>
    <summary>
        <band height="42" splitType="Stretch"/>
    </summary>
</jasperReport>

这是源代码的预览 ss

在此处输入图像描述 在此处输入图像描述

于 2021-01-08T18:07:23.987 回答