合并几个报告/有几个报告章节

时间:2013-07-22 09:45:12

标签: jasper-reports

如何合并或将多个jrxml jasperreports连接到一个报告单元中,

不使用java代码

我可以上传jrxml文件并使用REST API / 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--

我想有一个Array变量,我用<group>元素迭代它并为每个Element打印一个Sub报告。像:

<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服务器5,(我自己编写jrxml代码,只使用iReports进行预览)。 所有内容的数据源相同,两个查询包含2个带图表的分组部分。

1 个答案:

答案 0 :(得分:0)

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

您可以在Reports目录下看到JasperSoft提供的样本报告名称“标准图表报告”。

要做到这一点: - 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>