Как отобразить значение на добавленные вручную столбцы в конструкторе sharepoint с помощью кода XSLT - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть два столбца: Месяц и Нет , которые извлекаются из списка SharePoint.Когда я добавил данные в дизайнер SharePoint, приведенный ниже код автоматически создается на панели кода.Я изменил несколько строк кода, однако он не работал правильно.Я был бы признателен, если кто-нибудь поможет достичь этого.

    Input Data:(Data retrieved from List)
        Month    No
        Jan-18   1
        Feb-18   1      
        Feb-18   1
        Apr-18   1
        Apr-18   1
        May-18   1
        May-18   1
        Jun-18   1

Code:
<td class="ms-vb" style="width: 373px">
                <xsl:value-of select="@Month" />
            </td>       

 <xsl:if test="string(@Month)='Jan 18'">
                    <td class="ms-vb">

                        <xsl:value-of select="@No_x0020__x0027_of_x0020_Instanc" /> </td> </xsl:if>

Здесь столбцы добавляются вручную и значения должны отображаться соответственно

Output:
           Jan-18  Feb-18 Apr-18  May-18 Jun-18
             1       2      2      2      1

1 Ответ

0 голосов
/ 26 ноября 2018

Более эффективным способом было бы определить две клавиши:

  • в Месяце
  • в Месяце и Нет

Вы можете использовать для каждого , что упростит выражение подсчета:

 <xsl:key name="monthKey" match="/items/Item" use="@Month"/>
 <xsl:key name="noKey" match="/items/Item" use="concat(@Month, '|', @No)"/>

<xsl:for-each select="/items/Item[generate-id() = generate-id(key('monthKey',@Month)[1])]">
        <tr>
            <td class="ms-vb" style="width: 373px">
                <xsl:value-of select="@Month" />
            </td>
            <td class="ms-vb">
                <xsl:for-each select="key('monthKey',@Month)[generate-id() = generate-id(key('noKey', concat(@Month, '|', @No))[1])]">
                    <xsl:value-of select="count(key('noKey', concat(@Month, '|', @No)))"/>
                </xsl:for-each>
            </td>
        </tr>
    </xsl:for-each>

Я сделал образец XML из ваших данных следующим образом, U может изменить XPATH соответственно.

<items>
<Item Month='Jan-18' No='1'/>
<Item Month='Feb-18' No='1'/>
<Item Month='Feb-18' No='1'/>
<Item Month='Apr-18' No='1'/>
<Item Month='Apr-18' No='1'/>
<Item Month='May-18' No='1'/>
<Item Month='May-18' No='1'/>
<Item Month='Jun-18' No='1'/>
</items>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...