在子数据集中引用Main_Dataset

时间:2019-03-09 14:04:00

标签: jasper-reports

查询子数据集时,我想在Jasper .jrxml中引用我的MAIN数据集。

我有大约十二个子数据集,这些子数据集都通过以下方式依赖于主集:

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内部为主视图和子视图引用该视图。 (并根据需要更改视图定义)

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

最终目标应该是这样的:

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

1 个答案:

答案 0 :(得分:1)

将String参数添加到数据集中,例如pQuery

SELECT ...
  FROM ( $P!{pQuery} ) m
  GROUP BY ...
  ORDER BY ...

感叹号!字符很重要。

在图表的数据源中:

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