Группировка по условию IF не работает - PullRequest
0 голосов
/ 09 мая 2019

У меня есть отчет BIP, в котором у меня есть родительская группа (<?for-each-group:G_1[./TICKET_JOBNUMBER=$JobNum];./TICKET_JOBNUMBER?>), и под ней у меня есть другая группа, которую необходимо выбрать на основе параметра отчета $ date. То есть я делаю следующее:

<?if@inlines: $date = "" OR $date = null?>
<?for-each-group:current-group();./TICKETNUM?>
<?end if?>
<?if@inlines: $date != "" ?>
<?for-each-group:current-group()[./TICKET_TICKETDATE=$date];./TICKETNUM?>
<?end if?>

Но это дает нежелательный вывод. Я хочу, чтобы каждый <?for-each-group:current-group();./TICKETNUM?> был отдельным, но с моими условиями IF он генерирует консолидированный вывод, а не отдельную запись для каждой группы.

В настоящее время я вижу следующее:

enter image description here

Но так и должно быть:

enter image description here

Если условия IF срабатывают по отдельности, но не работают, когда я их соединяю.

Ссылка для скачивания rtf и образца xml.

https://drive.google.com/file/d/1e6h6ENsGzjB7Gfzp6vqDlbddREWitS5f/view?usp=sharing https://drive.google.com/file/d/1pwMqtV5PxVmGSySbNllVDIlbK_3cdVaK/view?usp=sharing

1 Ответ

0 голосов
/ 09 мая 2019
  1. Вы захотите использовать @section для разделения страниц для новых групп, когда у вас есть правильная группировка / перегруппировка в правильных местах.
  2. for-each и / илиfor-each-group должен находиться только в ячейке таблицы, если вы собираетесь повторять эту конкретную строку / раздел.Я вижу, у вас есть они в первой ячейке верхней таблицы, это не будет работать, чтобы повторить страницы.Поместите их перед таблицей или за ее пределами.
  3. Вам нужна функция current-group (), только если вы уже находитесь в разделе группировки и хотите ссылаться на элементы, которые вы сгруппировали.Так что это не должно быть в первой группе.
  4. Я не понимаю, что вы пытаетесь делать с операторами if.Как правило, если вам нужно условие для одной из записей, просто поместите оператор if только внутри for-each / end for-each.
  5. Встроенные строки есть только в том случае, если вы что-то делаете в серединепредложение, и вы не хотите новую строку после логики.Из того, что я могу сказать, вам здесь это не нужно.

Звучит так, будто вы хотите что-то вроде этого

for-each-group@section:DATA_DS/G_1;TICKETNUM
[header section and table]
[Line]
for-each:current-group();
[line content]
end for-each
end for-each-group

Надеюсь, это заставит вас двигаться в правильном направлении.Похоже, у вас довольно много проблем, поэтому трудно точно сказать, чего вы хотите.И в духе StackOverflow я не хочу делать для вас полное решение, просто решите одну проблему, которая у вас есть.Документация BI Publisher на самом деле довольно хорошая.Если у вас возникнут какие-то проблемы, попробуйте начать с меньшего, заставить его работать, а затем увеличивайте его, следя за тем, чтобы каждое новое дополнение работало по мере добавления.

...