我有一个JasperReport,我想为此报告创建一个封面。 封面必须包含来自数据库的一些信息,如公司名称等。 我试图使用子报表执行此操作,但我没有成功。 我创建了一个主报告,首先包含封面页作为子报表然后 整个报告作为第二个子报告。我收到了一份空的报告。
我的第二次尝试是将封面页面作为子报告放入主报告中 这不起作用。
任何提示如何做到这一点?
非常感谢提前。
答案 0 :(得分:3)
目录话语
使用Jasper Reports设置子报表并非易事。至少有两种方法可以告诉主报告在哪里查找子报告。
SUBREPORT_DIR
参数提供值。对于解决方案1,请在运行时确定主报表位置的绝对目录。然后,将子报表放在主报表下的相对目录中。最后,告诉master报告包含子报告的子目录的绝对路径。
我没有使用过解决方案2.
参数化大师
考虑参数化主报告,而不是创建子报告。
如果您只有一个报告,但想要使用其他徽标(以及公司名称,样式等),请使用参数配置外观。
子报告用法
我发现当数据查询几乎相同时创建子报表很有用,但需要以稍微不同的方式对数据进行分组。主报告包含所有常见内容(显示输入参数 - 以便可以重新创建报告,标题,公司名称,用户名,时间戳,页码等),子报告关注差异。通常,子报表将重叠并仅根据输入参数的值执行。
答案 1 :(得分:1)
将它们添加到摘要区域,您甚至可以选择将其放在其他页面上。 比你刚刚添加的那个子报告,在他的摘要乐队你可以放另一个, 在他,另一个,所以你去。您可以将无限报告绑定在一起。
答案 2 :(得分:1)
我在标题乐队的末尾添加了一个休息时间。
<title>
<band>
<break></break>
</band>
</title>
这会导致分页。
答案 3 :(得分:0)
我可能误解了这个问题,因为接受的答案是关于阻止子报告,这是封面的完美解决方案(只需将其放入 TITLE 频段)。 子报告实际上是JR的杀手级功能。这是真的,它们并不简单,但它们可以在没有任何调整或弯曲可用工具集的情况下实现。 当数据集查询差别很大时,我会完全使用它们......
答案 4 :(得分: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