将报表参数与Jasper Reports中的子数据集参数链接

时间:2014-06-25 19:56:43

标签: jasper-reports jaspersoft-studio

我看过许多文章和文章,但其中很多看起来很旧或难以阅读。

我用一堆子参数创建了一个报告。我保存了它,创建了一堆具有相同名称的输入控件,并将其保存到jasper服务器。所以到现在为止我知道它并不那么简单,我知道你必须在主报告中创建这些参数,并以某种方式链接它们。

我尝试创建具有相同名称的参数,我尝试使用默认表达式来使用主要参数,我尝试使用数据集属性中的“参数”按钮添加所有参数对于表。

我不知道从哪里开始。如何链接主数据集参数以及与我的表关联的数据集的参数。

1 个答案:

答案 0 :(得分:2)

你正在使用Jaspersoft Studio,对吧?

如果是,请选择您的表格。在“属性”框中(通常在右下角),如果选择“数据集”选项卡并滚动到它的末尾,您可能会注意到“参数”按钮。在那里,您可以将表达式映射到表格数据集中使用的每个参数。因此,在这些表达式中,您可以使用主报表中声明的参数。

在您的JRXML文件中,它类似于(对于java.lang.String参数):

...
<parameter name="MAIN_REPORT_PARAMETER" class="java.lang.String"/>
...
<subDataset name="Dataset1">
    ...
    <parameter name="DATASET_PARAMETER" class="java.lang.String"/>
    ...
</subDataset>
...
<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="Dataset1">
                    <datasetParameter name="DATASET_PARAMETER">
                        <datasetParameterExpression><![CDATA[$P{MAIN_REPORT_PARAMETER}]]></datasetParameterExpression>
                    </datasetParameter>

                     ...
                </datasetRun>
...
</jr:table>