Как сгруппировать все записи о сотруднике в одну строку в XSLT

Я работаю над кодом XSLT для создания выходного файла фиксированной длины, который будет содержать несколько сумм платежей для одного и того же сотрудника. В настоящее время файл XSLT генерируется таким образом, что для одного и того же сотрудника будет доступно несколько строк, если для него в одном прогоне имеется более одного платежа.

Ищу возможность вывести запись в одну строку на каждого сотрудника. Пожалуйста, порекомендуйте.

[![Пример записи][1]][1]

      <xsl:for-each select="/Export/Record">
<xsl:sort select="Last_Name"/>
<xsl:if test="Employment_Indicator='Regular' or Employment_Indicator='Executive' or Employment_Indicator='Internship'">
    <xsl:if test="EmploymentStatusID  = 'ACTIVE'">
        <xsl:if test="DeductionName = 'HSA - Self' or DeductionName = 'HSA - Family' 
 or DeductionName = 'Dependent Care - Single' or DeductionName = 'Dependent Care - Family'
 or DeductionName = 'Health Flex' or DeductionName = 'Health Flex Limited Purpose' ">
            <xsl:if test="prd_effstart !=''">
                <xsl:if test="pp_suffix = '00'">
                    <xsl:value-of select="Record_Type"/>
                    <xsl:choose>
                        <xsl:when test="Employee_Person_ID = ''">
                            <xsl:value-of select="$zeros"/>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:value-of select="Employee_Person_ID"/>
                        </xsl:otherwise>
                    </xsl:choose>
                    <!-- <xsl:value-of select="translate(Last_Name, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/> -->
                    <xsl:value-of select="concat(translate(Last_Name, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 
                                      substring($spaces, 1, 30 - string-length(Last_Name)))"/>
                    <xsl:value-of select="concat(translate(First_Name, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 
                                      substring($spaces, 1, 20 - string-length(First_Name)))"/>
                    <xsl:choose>
                        <xsl:when test="DeductionName = 'Health Flex'">
                            <xsl:value-of select="format-number(FSA * 100, '000000000000000')"/>
                        </xsl:when>
                        <xsl:when test="DeductionName = 'Health Flex Limited Purpose'">
                            <xsl:value-of select="format-number(FSALP * 100, '000000000000000')"/>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:text/>
                        </xsl:otherwise>
                    </xsl:choose>
                    <!--Employee DCSA Contribution -->
                    <xsl:choose>
                        <xsl:when test="DeductionName = 'Dependent Care - Single'">
                            <xsl:value-of select="format-number(DCS * 100, '000000000000000')"/>
                        </xsl:when>
                        <xsl:when test="DeductionName = 'Dependent Care - Family'">
                            <xsl:value-of select="format-number(DCFM * 100, '000000000000000')"/>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:text/>
                        </xsl:otherwise>
                    </xsl:choose>
                    <xsl:text>&#xD;&#xA;</xsl:text>
                </xsl:if>
            </xsl:if>
        </xsl:if>
    </xsl:if>
</xsl:if>

</xsl:for-each>

0 ответов

Другие вопросы по тегам