Oracle BI Publisher .RTF 模板中的嵌套循环

Nested loop in Oracle BI Publisher .RTF template

我有两个嵌套循环,每个循环使用不同的节点来获取数据:

1) <?for-each-group:/DATA/TEST/ROW;./target_test?>  
2) <?for-each:/DATA/TEST2/ROW?>

循环第一组,每个 target_test 我生成一页报告,第二组我填充 table。 在这一点上,如果我只有一个 target_test,报告会很好地工作,但如果我有更多 target_test,那么 table 会充满所有 target_test,而不仅仅是 与引用上层循环的那个。因此,例如,我的页面 target_test = data1 在 table 中还包含 target_test = data2、target_test = data3 等。

我的问题是:如果第二个循环中的 target_test 等于第一个循环中的目标测试,是否可以检查条件?在这种情况下,我可以简单地隐藏 当条件不为真时 table 的行。

最简单的方法似乎是使用变量,在外循环中,将 target_test 值存储到变量 (set_variable) 中,然后在第二个循环中检查它。

但也可以在第二个循环中过滤仅匹配父循环的记录。这在有和没有变量的情况下都是可能的,使用过滤器(方括号)。

您正在告诉代码这样做:

For every row in test with a different target_test value, loop over every row in TEST2.

所以这是预期的行为。您没有指定外循环 target_test 应如何影响内循环。

你可能想要这样的东西:

<?for-each-group:/DATA/TEST/ROW;./target_test?>  
<?for-each:/DATA/TEST2/ROW[target_test=current-group()/target_test]?>
do something
<?end for-each?>
<?end for-each-group?>

如果这没有帮助,请提供带有数据样本的可重现示例。