0
한 라인 아이템을 분할하는 방법은 필드에 따라 다릅니다.라인 아이템 생성은 AccCodeType 필드 (split)에 따라 다릅니다
한 라인 아이템을 분할하는 방법은 필드에 따라 다릅니다.라인 아이템 생성은 AccCodeType 필드 (split)에 따라 다릅니다
는이 작업을 수행하려면, 당신은 XSL 만들 수 있습니다 (예 : 현금과 크레딧 카드 등) 이외의 분할 요소를 일치 키를, 및 룩업 같은 가장 앞 분할 요소를 사용하여. 그런 다음
<xsl:key name="Acc"
match="AccCode[AccCodeType != 'Split']"
use="generate-id(preceding-sibling::AccCode
[AccCodeType = 'Split']
[SuppDocNo/RefNo = current()/SuppDocNo/RefNo][1])" />
, 다음 XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:key name="Acc" match="AccCode[AccCodeType != 'Split']" use="generate-id(preceding-sibling::AccCode[AccCodeType = 'Split'][SuppDocNo/RefNo = current()/SuppDocNo/RefNo][1])"/>
<xsl:template match="/">
<xsl:apply-templates select="//AccCode[AccCodeType = 'Split']"/>
</xsl:template>
<xsl:template match="AccCode[AccCodeType = 'Split']">
<ITEM>
<LineItemNo>
<xsl:value-of select="../LineNo"/>
</LineItemNo>
<SplitPercentage>
<xsl:value-of select="PrimDocNo/RefNo"/>
</SplitPercentage>
<SplitNo>
<xsl:value-of select="SuppDocNo/RefNo"/>
</SplitNo>
<xsl:apply-templates select="key('Acc', generate-id())"/>
</ITEM>
</xsl:template>
<xsl:template match="AccCode[AccCodeType != 'Split']">
<xsl:element name="{AccCodeType}">
<xsl:value-of select="PrimDocNo/RefNo"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
에 따라서 키
<xsl:apply-templates select="key('Acc', generate-id())" />
에서 그들을 찾는 모든 관련 요소를 얻을 수 있습니다 당신은 분할의 AccCode에 일치하는 경우
샘플 XML에이 값을 적용하면 다음이 출력됩니다.
<ITEM>
<LineItemNo>01</LineItemNo>
<SplitPercentage>100.00</SplitPercentage>
<SplitNo>01</SplitNo>
<Cash>100</Cash>
<CreditCard>200</CreditCard>
</ITEM>
<ITEM>
<LineItemNo>02</LineItemNo>
<SplitPercentage>50.00</SplitPercentage>
<SplitNo>02</SplitNo>
<Cash>300</Cash>
<CreditCard>400</CreditCard>
</ITEM>
<ITEM>
<LineItemNo>02</LineItemNo>
<SplitPercentage>50.00</SplitPercentage>
<SplitNo>01</SplitNo>
<Cash>500</Cash>
<CreditCard>600</CreditCard>
</ITEM>
안녕하세요, 명확한 의견을 남겨 주셔서 감사합니다. – Sara