首页 > 解决方案 > Oracle BI Publisher .RTF 模板中的嵌套循环

问题描述

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

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

为每个 target_test 循环使用第一组,我生成一页报告,并使用第二组填充一个表格。此时,如果我只有一个 target_test,则报告运行良好,但如果我有更多 target_test,则该表将填充所有 target_test,而不仅仅是引用上层循环的那个。因此,例如,我有一个带有 target_test = data1 的页面,该页面在表中还包含 target_test = data2、target_test = data3 等。

我的问题是:是否可以检查第二个循环中的 target_test 是否等于第一个循环中的目标测试?有了这个条件,当条件不成立时,我可以简单地隐藏表格的行。

标签: oracleobieebi-publisheroracle-bi

解决方案


您正在告诉代码执行此操作:

对于 test 中具有不同 target_test 值的 每一行,循环遍历 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?>

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


推荐阅读