Grouping based on IF condition is not working

时间:2019-05-08 21:11:47

标签: bi-publisher

I have a BIP report in which I have a parent group as (<?for-each-group:G_1[./TICKET_JOBNUMBER=$JobNum];./TICKET_JOBNUMBER?>) and under that I have another group that is needed to be selected based on report parameter $date. That is, I am doing following:

<?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?>

But this is giving unwanted output. I want each <?for-each-group:current-group();./TICKETNUM?> as separate but with my IF conditions it is generating a consolidated output but not a separate record for each group.

Currently I am seeing following:

enter image description here

之后插入 3

但是应该像这样:

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 :(得分:0)

  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文档实际上非常好。如果遇到麻烦,请尝试从小处开始,使其工作,然后从那里开始扩大,确保每次添加时都能正常工作。