2

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

不使用java代码

我可以上传 jrxml 文件并使用 REST API/Web 服务生成报告单元。

或者这个元素布局还有其他解决方案吗?

--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--

我想有一个数组变量,我用一个元素迭代它<group>并为每个元素打印一个子报告。喜欢:

<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 进行预览)。所有内容都使用相同的数据源,两个查询用于 2 个带图表的分组部分。

4

1 回答 1

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>
于 2013-07-26T07:51:27.743 回答