Jasper reports 合并多个报告/具有多个报告章节

Jasper reports 合并多个报告/具有多个报告章节,jasper-reports,Jasper Reports,如何将多个jrxml JasperReport合并到一个报告单元中 而不使用java代码 我可以上传jrxml文件并仅使用RESTAPI/Webservice生成报告单元 或者该元素布局是否有其他解决方案 --header-- * group of countries england australia croatia * pie chart with countries --footer-- --new page-- --header-- * group of so

如何将多个jrxml JasperReport合并到一个报告单元中

而不使用java代码

我可以上传jrxml文件并仅使用RESTAPI/Webservice生成报告单元

或者该元素布局是否有其他解决方案

--header--
* group of countries
    england
    australia
    croatia
* pie chart with countries
--footer--

--new page--

--header--
* group of something else
    something 1
    something else 2
    ....
* chart of something else
--footer--
我想用
元素迭代一个数组变量,并为每个元素打印一个子报告。比如:

<variable name="chapters" class="java.util.List" resetType="None" resetGroup="ChapterGroup" incrementType="Group" incrementGroup="BrowserGroup">
    <variableExpression>
        <![CDATA[java.util.Arrays.asList("browser", "country")]]>           
    </variableExpression>
    <initialValueExpression>
        <![CDATA[new java.util.ArrayList()]]>
    </initialValueExpression>
</variable>

<group name="ChapterGroup" isStartNewPage="true" keepTogether="true">
    <groupExpression><![CDATA[$V{chapters}]]></groupExpression>
    <groupHeader>
        <band height="20" splitType="Stretch"/>
    </groupHeader>
    <groupFooter>
        <band height="20" splitType="Stretch">
  <subreport>
    <reportElement isPrintRepeatedValues="false" x="5" y="25" width="325" height="20" isRemoveLineWhenBlank="true" backcolor="#ffcc99"/>
    <subreportParameter name="<![CDATA[$V{chapters}]]>">
        <subreportParameterExpression><![CDATA[$V{chapters}]]></subreportParameterExpression>
    </subreportParameter>
    <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
    <subreportExpression class="net.sf.jasperreports.engine.JasperReport"><![CDATA["repo:/reports/" + $V{chapters}]]></subreportExpression>
  </subreport>

但是我不能让它工作

使用Jasper Report server 5(我自己编写jrxml,并且只使用iReports进行预览)。
所有内容的数据源相同,两个查询用于两个带图表的分组部分。

这可以通过添加报告组来完成,您可以根据需要为每个图表添加任意多个报告组,并将每个图表的页眉和页脚保留在同一报告组中,每个报告组都将具有子数据集。 我已经组合了5个不同页眉和页脚的报告

您可以在Reports目录下看到JasperSoft提供的示例报告名称“Standard Chart report”

为此:- 1:-添加数据集 2:-添加报告组 3:-从调色板拖动图表

这是代码示例,在此代码示例中,我将条形图和堆叠条形图组合在两个页面中,并使用两个不同的子数据集:-

    <group name="bar">
    <groupExpression><![CDATA[null]]></groupExpression>
    <groupHeader>
        <band height="400">
            <barChart>
                <chart evaluationTime="Report">
                    <reportElement x="0" y="0" width="555" height="300"/>
                    <chartTitle>
                        <titleExpression><![CDATA["Bar Chart"]]></titleExpression>
                    </chartTitle>
                    <chartSubtitle>
                        <subtitleExpression><![CDATA["Chart Displaying Bars"]]></subtitleExpression>
                    </chartSubtitle>
                    <chartLegend/>
                    <hyperlinkTooltipExpression><![CDATA["Bar Chart"]]></hyperlinkTooltipExpression>
                </chart>
                <categoryDataset>
                    <dataset incrementType="Group" incrementGroup="salesState">
                        <datasetRun subDataset="categoryDataset"/>
                    </dataset>
                    <categorySeries>
                        <seriesExpression><![CDATA[$F{sales_state}]]></seriesExpression>
                        <categoryExpression><![CDATA[$F{full_name}]]></categoryExpression>
                        <valueExpression><![CDATA[$V{personAmount}]]></valueExpression>
                    </categorySeries>
                </categoryDataset>
                <barPlot>
                    <plot/>
                    <itemLabel/>
                    <categoryAxisLabelExpression><![CDATA["Name"]]></categoryAxisLabelExpression>
                    <valueAxisLabelExpression><![CDATA["Amount"]]></valueAxisLabelExpression>
                </barPlot>
            </barChart>
        </band>
    </groupHeader>
</group>
<group name="stackedBar">
    <groupExpression><![CDATA[null]]></groupExpression>
    <groupHeader>
        <band height="400">
            <stackedBarChart>
                <chart evaluationTime="Report">
                    <reportElement x="0" y="0" width="555" height="300"/>
                    <chartTitle>
                        <titleExpression><![CDATA["Stacked Bar Chart"]]></titleExpression>
                    </chartTitle>
                    <chartSubtitle>
                        <subtitleExpression><![CDATA["Chart Displaying Stacked Bars"]]></subtitleExpression>
                    </chartSubtitle>
                    <chartLegend/>
                    <hyperlinkTooltipExpression><![CDATA["Stacked Bar Chart"]]></hyperlinkTooltipExpression>
                </chart>
                <categoryDataset>
                    <dataset incrementType="Group" incrementGroup="salesState">
                        <datasetRun subDataset="categoryDataset"/>
                    </dataset>
                    <categorySeries>
                        <seriesExpression><![CDATA[$F{sales_state}]]></seriesExpression>
                        <categoryExpression><![CDATA[$F{full_name}]]></categoryExpression>
                        <valueExpression><![CDATA[$V{personAmount}]]></valueExpression>
                    </categorySeries>
                </categoryDataset>
                <barPlot>
                    <plot/>
                    <itemLabel/>
                    <categoryAxisLabelExpression><![CDATA["Name"]]></categoryAxisLabelExpression>
                    <valueAxisLabelExpression><![CDATA["Amount"]]></valueAxisLabelExpression>
                </barPlot>
            </stackedBarChart>
        </band>
    </groupHeader>
</group>


拥有子报告怎么样???。这就是问题所在。如何在没有Java的情况下使用它们?因此,当您知道如何组合报表时,为什么不向我展示如何组合报表或修复我的尝试?在iReport中打开示例报表“sample Chart report”,您可以看到其结构。您的答案可能会更好,它对我没有帮助,对其他人也没有帮助。唯一有用的提示是查看示例报告。我已经更新了答案,如果您仍然面临任何问题,请告诉我。对我来说,最大的问题是在定义了几个组后,确定我将
放在哪里。我现在知道,他们只是在跟踪小组,一切都很顺利。你的答案现在看起来也好多了!