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

我正在使用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”,则我要显示第二段。

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

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

zhaojiewww 回答:BI Publisher逻辑以测试分组中是否存在

因此,您可以检查是否需要打印第一段。真好现在,在打印第一段之后,您可以将全局变量设置为true。选中xdoxslt:set_variable。 现在,仅当此全局变量的值为false时,才需要打印第二段。

,

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

第二,我看到您正在使用很多for-each语句来编写不包含或不包含多行的节。例如,您有以下内容:

...仅每小时$ 0.00 结束,...

for-each用于多个记录。您已经处于row级别,因此无需再使用row进入for-each。否则,如果需要导航XML路径,只需使用row/A.OFFER_AMT

for-each用于发票或装箱单行,您希望多次显示同一件东西,例如发票或装箱单上的所有物品。

本文链接:https://www.f2er.com/2698299.html

大家都在问