BI Publisher逻辑来测试分组中是否存在

问题描述 投票:0回答:2

我正在使用PeopleSoft BI Publisher RTF模板,并将使用具有多行的XML文档,如下所示:

<?xml version='1.0'?>
<query numrows="3" queryname="GH3_HRS_OFFER_DS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="">
<row rownumber="1">
<A.ERNCD/>
<A.EARNS_AMT>0</A.EARNS_AMT>
<A.OFFER_COMPONENT><![CDATA[BASSAL]]></A.OFFER_COMPONENT>
</row>
<row rownumber="2">
<A.ERNCD/>
<A.EARNS_AMT>0</A.EARNS_AMT>
<A.OFFER_COMPONENT><![CDATA[PROB]]></A.OFFER_COMPONENT>
</row>
<row rownumber="3">
<A.ERNCD/>
<A.EARNS_AMT>0</A.EARNS_AMT>
<A.OFFER_COMPONENT><![CDATA[SIGNON]]></A.OFFER_COMPONENT>
</row>
</query>

[我需要做的是显示第一段,如果数据的行带有OFFER_COMPONENT = 'PROB',并且我认为第一段可以按原样工作。

但是我希望此功能起作用,以便显示上面的第一段中的任何一个,显示第二段中的[<?if@inlines:A.OFFER_COMPONENT<>'PROB'?>),但不能同时显示两个。

[我认为第二段编码为<?if@inlines:A.OFFER_COMPONENT<>'PROB'?>的方式不会阻止此段显示,因为一旦遇到第二行而不是'PROB'的值,它也会显示该段。我希望能够从根本上测试组(多行)中是否存在字段A.OFFER_COMPONENT ='PROB'。如果此字段的某一行中确实包含'PROB',则我NOT希望第二段显示。

我看了网上,却没有发现一种检查多行中字段值是否存在的方法,因此,如果有人知道这样做的方法,我将不胜感激。预先感谢!

enter image description here

peoplesoft bi-publisher
2个回答
0
投票

首先,对于段落选择,对于第一段使用<?if@inlines:A.OFFER_COMPONENT='PROB'?>,对于第二段使用<?if@inlines:A.OFFER_COMPONENT<>'PROB'?>。确保以if->结束每个if条件

第二,我看到您正在为不包含或不应包含多行的节使用大量的for-each语句。例如,您有这个:
...仅每小时$

for-each

0.00

end

,...

for-each用于多个记录。您已经处于row级别,因此无需再次使用row进入for-each。否则,如果需要导航XML路径,只需使用row/A.OFFER_AMT[for-each应该用于发票或装箱单行,您要多次显示同一事物,例如发票或装箱单上的所有项目。


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.