gpt4 book ai didi

jasper-reports - 无法在 jasper 报告中使用子报告创建表格

转载 作者:行者123 更新时间:2023-12-04 16:06:46 31 4
gpt4 key购买 nike

我在 Jasper 报告中使用报告书,并且我必须创建一个包含表的内容报告(与子报告相同)。我正在使用 JRBeanCollectionDataSource。

当我单独编译和运行子报告时,它运行良好。
但是当我运行整个报告书时,它甚至不会打印该子报告,其他子报告将按预期打印。

我敢肯定,我缺少一些小设置。因为在报告书中,我使用的是图表、交叉表,它们工作正常。但唯一的问题是那张 table 。

这是我的子报表 jrxml:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.3.0.final using JasperReports Library version 6.3.0 -->
<!-- 2016-08-02T13:49:19 -->
<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="sub_filter_table" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="5ec68712-81e7-4231-85ad-a535169f9480">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<property name="net.sf.jasperreports.print.create.bookmarks" value="true"/>
<style name="Table_TH" mode="Opaque" backcolor="#F0F8FF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<style name="Table_CH" mode="Opaque" backcolor="#BFE1FF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<style name="Table_TD" mode="Opaque" backcolor="#FFFFFF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<subDataset name="filterTableDataset" uuid="5e16eed0-53ee-4e32-9078-a3f75f05ca4e">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<parameter name="filterTableDataSource" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>
<queryString>
<![CDATA[]]>
</queryString>
<field name="database" class="java.lang.String"/>
<field name="systemNumber" class="java.lang.String"/>
<field name="channels" class="java.lang.String"/>
<field name="from" class="java.lang.String"/>
<field name="to" class="java.lang.String"/>
<field name="keep" class="java.lang.String"/>
<field name="description" class="java.lang.String"/>
</subDataset>
<parameter name="filterTableDataSource" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>
<parameter name="filter_table_title" class="java.lang.String">
<defaultValueExpression><![CDATA["Filter logs"]]></defaultValueExpression>
</parameter>
<parameter name="SITE" class="java.lang.String"/>
<queryString>
<![CDATA[]]>
</queryString>
<background>
<band splitType="Stretch"/>
</background>
<summary>
<band height="342">
<componentElement>
<reportElement x="0" y="110" width="555" height="100" uuid="f7bcc7fb-0f93-41a1-96fd-a17d82997667">
<property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/>
<property name="com.jaspersoft.studio.table.style.table_header" value="Table_TH"/>
<property name="com.jaspersoft.studio.table.style.column_header" value="Table_CH"/>
<property name="com.jaspersoft.studio.table.style.detail" value="Table_TD"/>
<property name="com.jaspersoft.studio.components.autoresize.proportional" value="true"/>
<property name="com.jaspersoft.studio.components.autoresize.next" value="true"/>
</reportElement>
<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="filterTableDataset" uuid="c89753d2-101b-4cbc-a23b-0c83bd725c45">
<parametersMapExpression><![CDATA[$P{filterTableDataSource}]]></parametersMapExpression>
<datasetParameter name="filterTableDataSource">
<datasetParameterExpression><![CDATA[$P{filterTableDataSource}]]></datasetParameterExpression>
</datasetParameter>
<dataSourceExpression><![CDATA[$P{filterTableDataSource}]]></dataSourceExpression>
</datasetRun>
<jr:column width="73" uuid="1f2db4a6-020e-47f7-baf2-3544dcb71121">
<jr:columnHeader style="Table_CH" height="30">
<staticText>
<reportElement x="0" y="0" width="73" height="30" uuid="14c78a1d-169f-4a55-9a9c-754fa02fd371"/>
<text><![CDATA[database]]></text>
</staticText>
</jr:columnHeader>
<jr:detailCell style="Table_TD" height="30">
<textField>
<reportElement x="0" y="0" width="73" height="30" uuid="4e86a802-0103-43ea-85fb-ae227412b60f"/>
<textFieldExpression><![CDATA[$F{database}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="73" uuid="b21d7484-4645-4759-b3a1-e0dc7dc2cdf9">
<jr:columnHeader style="Table_CH" height="30">
<staticText>
<reportElement x="0" y="0" width="73" height="30" uuid="a74174db-9266-4a63-8571-3e6b7a5e671a"/>
<text><![CDATA[systemNumber]]></text>
</staticText>
</jr:columnHeader>
<jr:detailCell style="Table_TD" height="30">
<textField>
<reportElement x="0" y="0" width="73" height="30" uuid="06a5dd33-40a5-48dd-93b2-ed21a86894b1"/>
<textFieldExpression><![CDATA[$F{systemNumber}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="73" uuid="672670d2-071a-4987-b9b5-b9ccec62ffcd">
<jr:columnHeader style="Table_CH" height="30">
<staticText>
<reportElement x="0" y="0" width="73" height="30" uuid="02b4645f-4e30-40f7-8229-bbb01dd3fc94"/>
<text><![CDATA[channels]]></text>
</staticText>
</jr:columnHeader>
<jr:detailCell style="Table_TD" height="30">
<textField>
<reportElement x="0" y="0" width="73" height="30" uuid="94eb42f5-b3f2-4592-b5f7-5a4cc48f1eec"/>
<textFieldExpression><![CDATA[$F{channels}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="68" uuid="83e9f896-849b-4d96-bde7-c35f73824100">
<jr:columnHeader style="Table_CH" height="30">
<staticText>
<reportElement x="0" y="0" width="68" height="30" uuid="30b2d1c9-4cd0-4358-9df9-aa7fa99c22a2"/>
<text><![CDATA[from]]></text>
</staticText>
</jr:columnHeader>
<jr:detailCell style="Table_TD" height="30">
<textField>
<reportElement x="0" y="0" width="68" height="30" uuid="64748c55-8224-4ba2-8275-13c13a2b66a5"/>
<textFieldExpression><![CDATA[$F{from}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="54" uuid="896e3191-2c4a-428d-a65f-658375611c01">
<jr:columnHeader style="Table_CH" height="30">
<staticText>
<reportElement x="0" y="0" width="54" height="30" uuid="34bfb207-d3e0-4343-8a7b-69aa6b15e881"/>
<text><![CDATA[to]]></text>
</staticText>
</jr:columnHeader>
<jr:detailCell style="Table_TD" height="30">
<textField>
<reportElement x="0" y="0" width="54" height="30" uuid="65268f63-f9c2-487f-9de6-b6045c3f8f33"/>
<textFieldExpression><![CDATA[$F{to}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="59" uuid="ca8721df-5260-41c3-b549-19f7478831d2">
<jr:columnHeader style="Table_CH" height="30">
<staticText>
<reportElement x="0" y="0" width="59" height="30" uuid="558d37f8-a6e0-49a0-948f-3a8352c014ca"/>
<text><![CDATA[keep]]></text>
</staticText>
</jr:columnHeader>
<jr:detailCell style="Table_TD" height="30">
<textField>
<reportElement x="0" y="0" width="59" height="30" uuid="5d15ec66-40c1-4b91-b330-639783230764"/>
<textFieldExpression><![CDATA[$F{keep}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="155" uuid="94e61aed-be5f-4d95-9342-0a4a129e7fb8">
<jr:columnHeader style="Table_CH" height="30">
<staticText>
<reportElement x="0" y="0" width="155" height="30" uuid="737886b1-2568-4840-8d59-b6bef0bb46ed"/>
<text><![CDATA[description]]></text>
</staticText>
</jr:columnHeader>
<jr:detailCell style="Table_TD" height="30">
<textField>
<reportElement x="0" y="0" width="155" height="30" uuid="f451bec1-8ae6-4ee5-b4ca-fb337b5c94fb"/>
<textFieldExpression><![CDATA[$F{description}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
</jr:table>
</componentElement>
<textField bookmarkLevel="2">
<reportElement x="140" y="20" width="170" height="30" uuid="af7d5b5d-e209-4417-9830-0994cd6d5b39"/>
<textFieldExpression><![CDATA[$P{filter_table_title}]]></textFieldExpression>
<anchorNameExpression><![CDATA[$P{filter_table_title}]]></anchorNameExpression>
</textField>
<textField>
<reportElement x="436" y="46" width="100" height="30" uuid="924b35b3-34f5-47ad-b404-9483044489b2"/>
<textFieldExpression><![CDATA[$P{SITE}]]></textFieldExpression>
</textField>
</band>
</summary>
</jasperReport>

主报告书 jrxml
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.3.0.final using JasperReports Library version 6.3.0 -->
<!-- 2016-08-02T13:50:30 -->
<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="Abstract_Book" pageWidth="595" pageHeight="842" sectionType="Part" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="30" bottomMargin="30" whenResourceMissingType="Error" uuid="d2716064-8ae4-40cf-a575-33afba400e3a">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<property name="net.sf.jasperreports.print.create.bookmarks" value="true"/>
<property name="com.jaspersoft.studio.book.group.cover.header" value="Cover and Table of Contents"/>
<property name="com.jaspersoft.studio.book.group.cover.footer" value="Backcover"/>
<parameter name="SUBREPORT_DIR" class="java.lang.String"/>
<parameter name="Name" class="java.lang.String">
<parameterDescription><![CDATA[]]></parameterDescription>
</parameter>
<parameter name="XYChartDataSource" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>
<parameter name="tableDataSource" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>
<parameter name="IMAGE_DIR" class="java.lang.String"/>
<parameter name="filterTableDataSource" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>
<parameter name="externalDataSource" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>
<parameter name="REPORT_TYPE" class="java.lang.String"/>
<parameter name="SITE" class="java.lang.String"/>
<parameter name="CMS" class="java.lang.String"/>
<parameter name="OPPORTUNITY_ID" class="java.lang.String"/>
<parameter name="windTableDataSource" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>
<queryString>
<![CDATA[]]>
</queryString>
<group name="cover">
<groupHeader>
<part uuid="7aed05b9-1301-4a53-b47e-34289560bc0c">
<p:subreportPart xmlns:p="http://jasperreports.sourceforge.net/jasperreports/parts" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/parts http://jasperreports.sourceforge.net/xsd/parts.xsd">
<subreportParameter name="Name">
<subreportParameterExpression><![CDATA[$P{Name}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="externalDataSource">
<subreportParameterExpression><![CDATA[$P{externalDataSource}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="REPORT_TYPE">
<subreportParameterExpression><![CDATA[$P{REPORT_TYPE}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="CMS">
<subreportParameterExpression><![CDATA[$P{CMS}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="SITE">
<subreportParameterExpression><![CDATA[$P{SITE}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="OPPORTUNITY_ID">
<subreportParameterExpression><![CDATA[$P{OPPORTUNITY_ID}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="IMAGE_DIR">
<subreportParameterExpression><![CDATA[$P{IMAGE_DIR}]]></subreportParameterExpression>
</subreportParameter>
<subreportExpression><![CDATA[$P{SUBREPORT_DIR}+"/Abstract_Book_cover.jasper"]]></subreportExpression>
</p:subreportPart>
</part>
<part evaluationTime="Report" uuid="56ab525c-754f-4f48-a52c-7cc23934be3d">
<property name="net.sf.jasperreports.bookmarks.data.source.parameter" value="REPORT_DATA_SOURCE"/>
<p:subreportPart xmlns:p="http://jasperreports.sourceforge.net/jasperreports/parts" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/parts http://jasperreports.sourceforge.net/xsd/parts.xsd">
<subreportExpression><![CDATA[$P{SUBREPORT_DIR}+"/Abstract_Book_toc.jasper"]]></subreportExpression>
</p:subreportPart>
</part>
</groupHeader>
<groupFooter>
<part uuid="88decbbe-63ad-45cc-9e03-5dadc50004d5">
<p:subreportPart xmlns:p="http://jasperreports.sourceforge.net/jasperreports/parts" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/parts http://jasperreports.sourceforge.net/xsd/parts.xsd">
<subreportExpression><![CDATA[$P{SUBREPORT_DIR}+"/Abstract_Book_backcover.jasper"]]></subreportExpression>
</p:subreportPart>
</part>
</groupFooter>
</group>
<detail>
<part uuid="3d143dd6-5587-4c12-90f0-ff77f9d026af">
<p:subreportPart xmlns:p="http://jasperreports.sourceforge.net/jasperreports/parts" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/parts http://jasperreports.sourceforge.net/xsd/parts.xsd">
<subreportParameter name="SITE">
<subreportParameterExpression><![CDATA[$P{SITE}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="REPORT_DATA_SOURCE">
<subreportParameterExpression><![CDATA[$P{filterTableDataSource}]]></subreportParameterExpression>
</subreportParameter>
<subreportExpression><![CDATA[$P{SUBREPORT_DIR}+"/sub_filter_table.jasper"]]></subreportExpression>
</p:subreportPart>
</part>
<part uuid="5e668430-9acd-4835-be21-f4e2902ce33d">
<p:subreportPart xmlns:p="http://jasperreports.sourceforge.net/jasperreports/parts" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/parts http://jasperreports.sourceforge.net/xsd/parts.xsd">
<subreportParameter name="REPORT_DATA_SOURCE">
<subreportParameterExpression><![CDATA[$P{XYChartDataSource}]]></subreportParameterExpression>
</subreportParameter>
<subreportExpression><![CDATA[$P{SUBREPORT_DIR}+"/sub_chart.jasper"]]></subreportExpression>
</p:subreportPart>
</part>
<part uuid="0e5ec483-6a4d-4323-8cb8-850ca3cefe34">
<p:subreportPart xmlns:p="http://jasperreports.sourceforge.net/jasperreports/parts" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/parts http://jasperreports.sourceforge.net/xsd/parts.xsd">
<subreportParameter name="REPORT_DATA_SOURCE">
<subreportParameterExpression><![CDATA[$P{tableDataSource}]]></subreportParameterExpression>
</subreportParameter>
<subreportExpression><![CDATA[$P{SUBREPORT_DIR}+"/sub_crosstab.jasper"]]></subreportExpression>
</p:subreportPart>
</part>
<part uuid="f4249881-1728-4f1f-8c54-75fc7725f6f6">
<p:subreportPart xmlns:p="http://jasperreports.sourceforge.net/jasperreports/parts" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/parts http://jasperreports.sourceforge.net/xsd/parts.xsd">
<subreportParameter name="REPORT_DATA_SOURCE">
<subreportParameterExpression><![CDATA[$P{windTableDataSource}]]></subreportParameterExpression>
</subreportParameter>
<subreportExpression><![CDATA[$P{SUBREPORT_DIR}+"/sub_wind_crosstab.jasper"]]></subreportExpression>
</p:subreportPart>
</part>
</detail>
</jasperReport>

最佳答案

我在 Java 方面做了一些小的改动。

而不是传递 JRBeanCollectionDataSource:

parameters.put(FILTER_TABLE_DATA_SOURCE, new JRBeanCollectionDataSource(filterList));

我直接将 List 作为参数传递
parameters.put(FILTER_TABLE_DATA_SOURCE, filterList);

主报告

创建如下参数
<parameter name="FILTER_TABLE_DATA_SOURCE" class="java.util.List"/>

在 MasterReport 上选择子报表并转到子报表的属性并设置数据源表达式如下:
它将设置 $P{REPORT_DATA_SOURCE}
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{FILTER_TABLE_DATA_SOURCE})

子报表

首先,我犯了一个错误,将表格放在摘要带中。

Table should always be in Detail band



因为表中的字段需要迭代,这就是细节带所做的。

像往常一样使用 List 中的字段创建表,但请记住使用 *$P{REPORT_DATA_SOURCE}*作为 JRDatasource 表达式

关于jasper-reports - 无法在 jasper 报告中使用子报告创建表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38719830/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com