Jasper reports 在子数据集中引用主数据集

Jasper reports 在子数据集中引用主数据集,jasper-reports,Jasper Reports,查询子数据集时,我希望在Jasper.jrxml中引用我的主数据集 我有十几个子数据集,它们都依赖于主数据集,如下所示: SELECT what_i_need, for_my, subdataset FROM (my main dataset which has a fairly long query) m group by m.sth order by 3,4 desc, 2; 这样做的目的是查询主数据集,然后将其用作表来查询子数据集,但缺点是每次需要更改主数据集时,我都必须手动更改每个子数

查询子数据集时,我希望在Jasper.jrxml中引用我的主数据集

我有十几个子数据集,它们都依赖于主数据集,如下所示:

SELECT
what_i_need,
for_my,
subdataset
FROM
(my main dataset which has a fairly long query) m
group by m.sth
order by 3,4 desc, 2;
这样做的目的是查询主数据集,然后将其用作表来查询子数据集,但缺点是每次需要更改主数据集时,我都必须手动更改每个子数据集

我知道我可以在数据库中创建一个视图,然后简单地从Jasper内部为main和subs引用它。 (并根据需要更改视图定义)

我在问Jasper是否可以“学会”如何使用整个主数据集作为子数据集的参数? 目标是使用某种参数一次性设置所有子数据集,并且只更改主数据集,并获得预期的结果

最终目标应该是这样的:

SELECT
what_i_need,
for_my,
subdataset
FROM
$P{Main_Dataset} m
group by m.sth
order by 3,4 desc, 2;

将字符串参数添加到数据集中,例如
pQuery

SELECT ...
  FROM ( $P!{pQuery} ) m
  GROUP BY ...
  ORDER BY ...
感叹号
字符很重要

在图表的数据源中:

  • 使用带有默认值的连接表达式
    $P{REPORT\u connection}
  • 添加
    pQuery
    参数并将表达式设置为
    $P{JASPER_REPORT}.getQuery().getText()

什么是子数据集?列出组件、子报表、JasperFillManager或其他?图表,每个图表都有一个子集,所有图表都有一个来自主数据集的单一参数。这完全符合规定,只是我花了比正常情况下更多的时间试图弄清楚为什么它不起作用。注意:请确保不要像我那样用分号关闭主数据集查询,否则您将日日夜夜徒劳无功。