for-each
我正在使用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希望第二段显示。
我看了网上,却没有发现一种检查多行中字段值是否存在的方法,因此,如果有人知道这样做的方法,我将不胜感激。预先感谢!
首先,对于段落选择,对于第一段使用<?if@inlines:A.OFFER_COMPONENT='PROB'?>
,对于第二段使用<?if@inlines:A.OFFER_COMPONENT<>'PROB'?>
。确保以if->结束每个if条件
for-each
语句。例如,您有这个:for-each
end
,...for-each用于多个记录。您已经处于row
级别,因此无需再次使用row
进入for-each
。否则,如果需要导航XML路径,只需使用row/A.OFFER_AMT
。 [for-each
应该用于发票或装箱单行,您要多次显示同一事物,例如发票或装箱单上的所有项目。