如何获取/使用具有多行的XML元素的分组

我正在尝试创建Oracle BI Publisher报表(使用microsoft Word插件)。该报告是通过从PeopleSoft创建的XML文件创建的。 XML文件包含许多行(我已经包含了一些示例数据)。我有一个名为A.OFFER_AMT的字段,我试图为包含另一个名为A.DESCRSHORT = 'SignOn'的行以及当A.DESCRSHORT = 'BaseSalary'的行显示此字段。因此,我尝试显示与A.DESCRSHORT不同的2个值,并且我想我需要使用某种分组方式,但是我使用Plug-in尝试了几种不同的分组方式,因此只能提取第一行从查询值显示在报告输出上。

我在模板中的IF中添加了条件语句,该语句试图获取特定值,但是在预览报告时,我仅从第一行获取数据。感谢您的协助。

<?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.HRS_PERSON_ID>5773</A.HRS_PERSON_ID>
<A.HRS_RCMNT_ID>303670</A.HRS_RCMNT_ID>
<A.HRS_OFF_ID>7527</A.HRS_OFF_ID>
<A.POSITION_NBR><![CDATA[41622315]]></A.POSITION_NBR>
<A.OFFER_DT>2019-11-21</A.OFFER_DT>
<A.HRS_PROP_ST_DT>2019-12-01</A.HRS_PROP_ST_DT>
<A.HRS_OFR_DT_EXP>2019-11-28</A.HRS_OFR_DT_EXP>
<A.HRS_ONLN_OFR_POSTD><![CDATA[]]></A.HRS_ONLN_OFR_POSTD>
<A.JOBCODE><![CDATA[3902]]></A.JOBCODE>
<A.HRS_HIRING_MGR_ID><![CDATA[CH602575]]></A.HRS_HIRING_MGR_ID>
<A.RECRUITER_ID><![CDATA[552717]]></A.RECRUITER_ID>
<A.WC_COUNCIL_ID><![CDATA[]]></A.WC_COUNCIL_ID>
<A.OFFER_AMT>37</A.OFFER_AMT>
<A.CURRENCY_CD><![CDATA[USD]]></A.CURRENCY_CD>
<A.OFFER_FREQUENCY><![CDATA[H]]></A.OFFER_FREQUENCY>
<A.ERNCD><![CDATA[]]></A.ERNCD>
<A.EARNS_AMT>0</A.EARNS_AMT>
<A.LOCATION><![CDATA[]]></A.LOCATION>
<A.OFFER_COMPONENT><![CDATA[BASSAL]]></A.OFFER_COMPONENT>
<A.EFFDT>1901-01-01</A.EFFDT>
<A.DESCR50_1><![CDATA[Base Salary]]></A.DESCR50_1>
<A.DESCRSHORT><![CDATA[BaseSalary]]></A.DESCRSHORT>
<A.OFFER_TYPE><![CDATA[BAS SAL]]></A.OFFER_TYPE>
<A.MONetaRY_IND><![CDATA[Y]]></A.MONetaRY_IND>
<A.APP_PER_STATUS><![CDATA[A]]></A.APP_PER_STATUS>
<A.EMPLID><![CDATA[709741]]></A.EMPLID>
<A.HRS_EXT_TRN><![CDATA[N]]></A.HRS_EXT_TRN>
<A.POI_TYPE><![CDATA[00000]]></A.POI_TYPE>
<A.COUNTRY_nm_FORMAT><![CDATA[001]]></A.COUNTRY_nm_FORMAT>
<A.NAME><![CDATA[Sara Simplehead]]></A.NAME>
<A.NAME_INITIALS><![CDATA[]]></A.NAME_INITIALS>
<A.NAME_PREFIX><![CDATA[]]></A.NAME_PREFIX>
<A.NAME_SUFFIX><![CDATA[]]></A.NAME_SUFFIX>
<A.NAME_ROYAL_PREFIX><![CDATA[]]></A.NAME_ROYAL_PREFIX>
<A.NAME_TITLE><![CDATA[]]></A.NAME_TITLE>
<A.LAST_NAME><![CDATA[Simplehead]]></A.LAST_NAME>
<A.FIRST_NAME><![CDATA[Sara]]></A.FIRST_NAME>
<A.MIDDLE_NAME><![CDATA[A.]]></A.MIDDLE_NAME>
<A.NAME_DISPLAY><![CDATA[Sara Simplehead]]></A.NAME_DISPLAY>
<A.NAME_FORMAL><![CDATA[Sara Simplehead]]></A.NAME_FORMAL>
<A.ADDRESS_TYPE><![CDATA[HOME]]></A.ADDRESS_TYPE>
<A.COUNTRY><![CDATA[USA]]></A.COUNTRY>
<A.ADDRESS1><![CDATA[140 test drive]]></A.ADDRESS1>
<A.ADDRESS2><![CDATA[]]></A.ADDRESS2>
<A.ADDRESS3><![CDATA[]]></A.ADDRESS3>
<A.ADDRESS4><![CDATA[]]></A.ADDRESS4>
<A.CITY><![CDATA[anytown]]></A.CITY>
<A.NUM1><![CDATA[]]></A.NUM1>
<A.NUM2><![CDATA[]]></A.NUM2>
<A.HOUSE_TYPE><![CDATA[]]></A.HOUSE_TYPE>
<A.COUNTY><![CDATA[chemung]]></A.COUNTY>
<A.STATE><![CDATA[NY]]></A.STATE>
<A.POSTAL><![CDATA[14845]]></A.POSTAL>
<A.DESCR><![CDATA[New York]]></A.DESCR>
<A.SEQUENCE_NUMber>2</A.SEQUENCE_NUMber>
<A.HRS_DESCR><![CDATA[Cash]]></A.HRS_DESCR>
<A.HRS_JOB_OPENING_ID>115298</A.HRS_JOB_OPENING_ID>
<A.DESCR1><![CDATA[Anytown Hospital]]></A.DESCR1>
<A.ADDRESS1_2><![CDATA[One Test Drive]]></A.ADDRESS1_2>
<A.CITY2><![CDATA[Anytown]]></A.CITY2>
<A.STATE2><![CDATA[NY]]></A.STATE2>
<A.POSTAL2><![CDATA[14830]]></A.POSTAL2>
<A.DESCR2><![CDATA[Registered Nurse]]></A.DESCR2>
<A.DESCR3><![CDATA[Nursing Unit - LDRP]]></A.DESCR3>
<A.CASE_IDENTIFIER><![CDATA[Full Time]]></A.CASE_IDENTIFIER>
<A.STATUS_DT>2017-02-07</A.STATUS_DT>
<A.NAME52><![CDATA[Susie Smith]]></A.NAME52>
<A.JOBTITLE><![CDATA[Sr. Recruiter]]></A.JOBTITLE>
<A.CASE_NUMber_AUS><![CDATA[Non-exempt]]></A.CASE_NUMber_AUS>
<A.CASE_NUMber_NZL><![CDATA[ ###-###-###]]></A.CASE_NUMber_NZL>
<A.STD_HOURS>36</A.STD_HOURS>
<A.GRADE><![CDATA[99]]></A.GRADE>
<A.STD_HOURS_NEW>.9</A.STD_HOURS_NEW>
<A.GH_SESSION_DATE></A.GH_SESSION_DATE>
<A.SAL_ADMIN_PLAN><![CDATA[UNH]]></A.SAL_ADMIN_PLAN>
<A.STEP_FROM>0</A.STEP_FROM>
<A.DATE>2019-11-22</A.DATE>
</row>
<row rownumber="2">
<A.HRS_PERSON_ID>5773</A.HRS_PERSON_ID>
<A.HRS_RCMNT_ID>303670</A.HRS_RCMNT_ID>
<A.HRS_OFF_ID>7527</A.HRS_OFF_ID>
<A.POSITION_NBR><![CDATA[41622315]]></A.POSITION_NBR>
<A.OFFER_DT>2019-11-21</A.OFFER_DT>
<A.HRS_PROP_ST_DT>2019-12-01</A.HRS_PROP_ST_DT>
<A.HRS_OFR_DT_EXP>2019-11-28</A.HRS_OFR_DT_EXP>
<A.HRS_ONLN_OFR_POSTD><![CDATA[]]></A.HRS_ONLN_OFR_POSTD>
<A.JOBCODE><![CDATA[3902]]></A.JOBCODE>
<A.HRS_HIRING_MGR_ID><![CDATA[CH602575]]></A.HRS_HIRING_MGR_ID>
<A.RECRUITER_ID><![CDATA[552717]]></A.RECRUITER_ID>
<A.WC_COUNCIL_ID><![CDATA[]]></A.WC_COUNCIL_ID>
<A.OFFER_AMT>36.5</A.OFFER_AMT>
<A.CURRENCY_CD><![CDATA[USD]]></A.CURRENCY_CD>
<A.OFFER_FREQUENCY><![CDATA[H]]></A.OFFER_FREQUENCY>
<A.ERNCD><![CDATA[]]></A.ERNCD>
<A.EARNS_AMT>0</A.EARNS_AMT>
<A.LOCATION><![CDATA[]]></A.LOCATION>
<A.OFFER_COMPONENT><![CDATA[PROB]]></A.OFFER_COMPONENT>
<A.EFFDT>1903-01-01</A.EFFDT>
<A.DESCR50_1><![CDATA[Probationary Rate]]></A.DESCR50_1>
<A.DESCRSHORT><![CDATA[Probationa]]></A.DESCRSHORT>
<A.OFFER_TYPE><![CDATA[PROB]]></A.OFFER_TYPE>
<A.MONetaRY_IND><![CDATA[Y]]></A.MONetaRY_IND>
<A.APP_PER_STATUS><![CDATA[A]]></A.APP_PER_STATUS>
<A.EMPLID><![CDATA[709741]]></A.EMPLID>
<A.HRS_EXT_TRN><![CDATA[N]]></A.HRS_EXT_TRN>
<A.POI_TYPE><![CDATA[00000]]></A.POI_TYPE>
<A.COUNTRY_nm_FORMAT><![CDATA[001]]></A.COUNTRY_nm_FORMAT>
<A.NAME><![CDATA[Sara Simplehead]]></A.NAME>
<A.NAME_INITIALS><![CDATA[]]></A.NAME_INITIALS>
<A.NAME_PREFIX><![CDATA[]]></A.NAME_PREFIX>
<A.NAME_SUFFIX><![CDATA[]]></A.NAME_SUFFIX>
<A.NAME_ROYAL_PREFIX><![CDATA[]]></A.NAME_ROYAL_PREFIX>
<A.NAME_TITLE><![CDATA[]]></A.NAME_TITLE>
<A.LAST_NAME><![CDATA[Simplehead]]></A.LAST_NAME>
<A.FIRST_NAME><![CDATA[Sara]]></A.FIRST_NAME>
<A.MIDDLE_NAME><![CDATA[A.]]></A.MIDDLE_NAME>
<A.NAME_DISPLAY><![CDATA[Sara Simplehead]]></A.NAME_DISPLAY>
<A.NAME_FORMAL><![CDATA[Sara Simplehead]]></A.NAME_FORMAL>
<A.ADDRESS_TYPE><![CDATA[HOME]]></A.ADDRESS_TYPE>
<A.COUNTRY><![CDATA[USA]]></A.COUNTRY>
<A.ADDRESS1><![CDATA[140 test drive]]></A.ADDRESS1>
<A.ADDRESS2><![CDATA[]]></A.ADDRESS2>
<A.ADDRESS3><![CDATA[]]></A.ADDRESS3>
<A.ADDRESS4><![CDATA[]]></A.ADDRESS4>
<A.CITY><![CDATA[anytown]]></A.CITY>
<A.NUM1><![CDATA[]]></A.NUM1>
<A.NUM2><![CDATA[]]></A.NUM2>
<A.HOUSE_TYPE><![CDATA[]]></A.HOUSE_TYPE>
<A.COUNTY><![CDATA[chemung]]></A.COUNTY>
<A.STATE><![CDATA[NY]]></A.STATE>
<A.POSTAL><![CDATA[14845]]></A.POSTAL>
<A.DESCR><![CDATA[New York]]></A.DESCR>
<A.SEQUENCE_NUMber>1</A.SEQUENCE_NUMber>
<A.HRS_DESCR><![CDATA[Cash]]></A.HRS_DESCR>
<A.HRS_JOB_OPENING_ID>115298</A.HRS_JOB_OPENING_ID>
<A.DESCR1><![CDATA[Anytown Hospital]]></A.DESCR1>
<A.ADDRESS1_2><![CDATA[One Test Drive]]></A.ADDRESS1_2>
<A.CITY2><![CDATA[Anytown]]></A.CITY2>
<A.STATE2><![CDATA[NY]]></A.STATE2>
<A.POSTAL2><![CDATA[14830]]></A.POSTAL2>
<A.DESCR2><![CDATA[Registered Nurse]]></A.DESCR2>
<A.DESCR3><![CDATA[Nursing Unit - LDRP]]></A.DESCR3>
<A.CASE_IDENTIFIER><![CDATA[Full Time]]></A.CASE_IDENTIFIER>
<A.STATUS_DT>2017-02-07</A.STATUS_DT>
<A.NAME52><![CDATA[Susie Smith]]></A.NAME52>
<A.JOBTITLE><![CDATA[Sr. Recruiter]]></A.JOBTITLE>
<A.CASE_NUMber_AUS><![CDATA[Non-exempt]]></A.CASE_NUMber_AUS>
<A.CASE_NUMber_NZL><![CDATA[ ###-###-###]]></A.CASE_NUMber_NZL>
<A.STD_HOURS>36</A.STD_HOURS>
<A.GRADE><![CDATA[99]]></A.GRADE>
<A.STD_HOURS_NEW>.9</A.STD_HOURS_NEW>
<A.GH_SESSION_DATE></A.GH_SESSION_DATE>
<A.SAL_ADMIN_PLAN><![CDATA[UNH]]></A.SAL_ADMIN_PLAN>
<A.STEP_FROM>0</A.STEP_FROM>
<A.DATE>2019-11-22</A.DATE>
</row>
<row rownumber="3">
<A.HRS_PERSON_ID>5773</A.HRS_PERSON_ID>
<A.HRS_RCMNT_ID>303670</A.HRS_RCMNT_ID>
<A.HRS_OFF_ID>7527</A.HRS_OFF_ID>
<A.POSITION_NBR><![CDATA[41622315]]></A.POSITION_NBR>
<A.OFFER_DT>2019-11-21</A.OFFER_DT>
<A.HRS_PROP_ST_DT>2019-12-01</A.HRS_PROP_ST_DT>
<A.HRS_OFR_DT_EXP>2019-11-28</A.HRS_OFR_DT_EXP>
<A.HRS_ONLN_OFR_POSTD><![CDATA[]]></A.HRS_ONLN_OFR_POSTD>
<A.JOBCODE><![CDATA[3902]]></A.JOBCODE>
<A.HRS_HIRING_MGR_ID><![CDATA[CH602575]]></A.HRS_HIRING_MGR_ID>
<A.RECRUITER_ID><![CDATA[552717]]></A.RECRUITER_ID>
<A.WC_COUNCIL_ID><![CDATA[]]></A.WC_COUNCIL_ID>
<A.OFFER_AMT>5000</A.OFFER_AMT>
<A.CURRENCY_CD><![CDATA[USD]]></A.CURRENCY_CD>
<A.OFFER_FREQUENCY><![CDATA[O]]></A.OFFER_FREQUENCY>
<A.ERNCD><![CDATA[]]></A.ERNCD>
<A.EARNS_AMT>0</A.EARNS_AMT>
<A.LOCATION><![CDATA[]]></A.LOCATION>
<A.OFFER_COMPONENT><![CDATA[SIGNON]]></A.OFFER_COMPONENT>
<A.EFFDT>1901-01-01</A.EFFDT>
<A.DESCR50_1><![CDATA[Sign On Bonus]]></A.DESCR50_1>
<A.DESCRSHORT><![CDATA[SignOn]]></A.DESCRSHORT>
<A.OFFER_TYPE><![CDATA[SIGNON]]></A.OFFER_TYPE>
<A.MONetaRY_IND><![CDATA[Y]]></A.MONetaRY_IND>
<A.APP_PER_STATUS><![CDATA[A]]></A.APP_PER_STATUS>
<A.EMPLID><![CDATA[709741]]></A.EMPLID>
<A.HRS_EXT_TRN><![CDATA[N]]></A.HRS_EXT_TRN>
<A.POI_TYPE><![CDATA[00000]]></A.POI_TYPE>
<A.COUNTRY_nm_FORMAT><![CDATA[001]]></A.COUNTRY_nm_FORMAT>
<A.NAME><![CDATA[Sara Simplehead]]></A.NAME>
<A.NAME_INITIALS><![CDATA[]]></A.NAME_INITIALS>
<A.NAME_PREFIX><![CDATA[]]></A.NAME_PREFIX>
<A.NAME_SUFFIX><![CDATA[]]></A.NAME_SUFFIX>
<A.NAME_ROYAL_PREFIX><![CDATA[]]></A.NAME_ROYAL_PREFIX>
<A.NAME_TITLE><![CDATA[]]></A.NAME_TITLE>
<A.LAST_NAME><![CDATA[Simplehead]]></A.LAST_NAME>
<A.FIRST_NAME><![CDATA[Sara]]></A.FIRST_NAME>
<A.MIDDLE_NAME><![CDATA[A.]]></A.MIDDLE_NAME>
<A.NAME_DISPLAY><![CDATA[Sara Simplehead]]></A.NAME_DISPLAY>
<A.NAME_FORMAL><![CDATA[Sara Simplehead]]></A.NAME_FORMAL>
<A.ADDRESS_TYPE><![CDATA[HOME]]></A.ADDRESS_TYPE>
<A.COUNTRY><![CDATA[USA]]></A.COUNTRY>
<A.ADDRESS1><![CDATA[140 test drive]]></A.ADDRESS1>
<A.ADDRESS2><![CDATA[]]></A.ADDRESS2>
<A.ADDRESS3><![CDATA[]]></A.ADDRESS3>
<A.ADDRESS4><![CDATA[]]></A.ADDRESS4>
<A.CITY><![CDATA[anytown]]></A.CITY>
<A.NUM1><![CDATA[]]></A.NUM1>
<A.NUM2><![CDATA[]]></A.NUM2>
<A.HOUSE_TYPE><![CDATA[]]></A.HOUSE_TYPE>
<A.COUNTY><![CDATA[chemung]]></A.COUNTY>
<A.STATE><![CDATA[NY]]></A.STATE>
<A.POSTAL><![CDATA[14845]]></A.POSTAL>
<A.DESCR><![CDATA[New York]]></A.DESCR>
<A.SEQUENCE_NUMber>3</A.SEQUENCE_NUMber>
<A.HRS_DESCR><![CDATA[Cash]]></A.HRS_DESCR>
<A.HRS_JOB_OPENING_ID>115298</A.HRS_JOB_OPENING_ID>
<A.DESCR1><![CDATA[Anytown Hospital]]></A.DESCR1>
<A.ADDRESS1_2><![CDATA[One Test Drive]]></A.ADDRESS1_2>
<A.CITY2><![CDATA[Anytown]]></A.CITY2>
<A.STATE2><![CDATA[NY]]></A.STATE2>
<A.POSTAL2><![CDATA[14830]]></A.POSTAL2>
<A.DESCR2><![CDATA[Registered Nurse]]></A.DESCR2>
<A.DESCR3><![CDATA[Nursing Unit - LDRP]]></A.DESCR3>
<A.CASE_IDENTIFIER><![CDATA[Full Time]]></A.CASE_IDENTIFIER>
<A.STATUS_DT>2017-02-07</A.STATUS_DT>
<A.NAME52><![CDATA[Susie Smith]]></A.NAME52>
<A.JOBTITLE><![CDATA[Sr. Recruiter]]></A.JOBTITLE>
<A.CASE_NUMber_AUS><![CDATA[Non-exempt]]></A.CASE_NUMber_AUS>
<A.CASE_NUMber_NZL><![CDATA[ ###-###-###]]></A.CASE_NUMber_NZL>
<A.STD_HOURS>36</A.STD_HOURS>
<A.GRADE><![CDATA[99]]></A.GRADE>
<A.STD_HOURS_NEW>.9</A.STD_HOURS_NEW>
<A.GH_SESSION_DATE></A.GH_SESSION_DATE>
<A.SAL_ADMIN_PLAN><![CDATA[UNH]]></A.SAL_ADMIN_PLAN>
<A.STEP_FROM>0</A.STEP_FROM>
<A.DATE>2019-11-22</A.DATE>
</row>
</query>

如何获取/使用具有多行的XML元素的分组

更新:

我现在已经把它拉成多行了,但是在下面的文本框中,对于超时的输出,我注意到它正在将下面的A.OFFER_AMT字段推到它自己的行上,并拆分了该段。我怎样才能解决这个问题?谢谢!

模板:

如何获取/使用具有多行的XML元素的分组

实际输出:

如何获取/使用具有多行的XML元素的分组

qazwsx991688 回答:如何获取/使用具有多行的XML元素的分组

您正在检查<?if:A.DESCRSHORT='PROB'?><?if:A.DESCRSHORT='BASAL'?>,但是在提供的XML示例中,A.DESCRSHORTBaseSalaryProbationaSignOn

A.OFFER_COMPONENTOFFER_TYPEBASSALPROBSIGNON

如果要检查所有行,则需要添加一个重复组:

<?for-each:row?>
    <?if:A.OFFER_COMPONENT='PROB'?>
        Probationary Rate of Pay: <?A.OFFER_AMT?>
    <?end if?>
    <?if:A.OFFER_COMPONENT='BASSAL'?>
        Base Rate of Pay: <?A.OFFER_AMT?>
    <?end if?>
    <?if:A.OFFER_COMPONENT='SIGNON'?>
        Sign-on Bonus: <?A.OFFER_AMT?>
    <?end if?>
<?end for-each?>

其他建议: 行之间有很多重复的数据。在77个字段中,只有6个具有与报价相关的唯一数据。考虑将connected queries用于数据中的父子关系。

,

对于在段落中添加换行符的问题,这是由于if条件引起的。 if条件始终会添加新行。如果要防止这种情况,请使用if@inlines

if,then,else

的其他示例
本文链接:https://www.f2er.com/3036434.html

大家都在问