Вложенный цикл в шаблоне Oracle BI Publisher .RTF - PullRequest
0 голосов
/ 12 июня 2019

У меня есть два вложенных цикла, каждый из которых использует отдельный узел для получения данных:

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 ввторой цикл равен целевому тесту в первом цикле?С этим условием я могу просто скрыть строки таблицы, когда условие не выполнено.

Ответы [ 2 ]

1 голос
/ 13 июня 2019

Вы говорите коду, чтобы сделать это:

Для каждой строки в тесте с различным значением 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?>

Если это не помогает, приведите воспроизводимый пример собразец данных.

0 голосов
/ 13 июня 2019

Кажется, что самый простой выход - использовать переменные во внешней петле, сохранить значение thed target_test в переменной (set_variable), а затем проверить это во втором цикле.

Но также возможно фильтровать во втором цикле только те записи, которые соответствуют родительскому циклу. Это возможно с переменными и без переменных, используя фильтр (квадратные скобки).

...