спасибо всем за ваши комментарии. Ниже приведена упрощенная версия «Панели инструментов», которая работает именно так, как я хочу. Вы можете изменить последний статус: недопустимый на «закрытый», чтобы на странице отображалась только первая проблема со статусом Drivable.
issues.xml:
<catalog>
<issue>
<title>Crack on the window</title>
<truck>GGEU12</truck>
<status>Drivable</status>
</issue>
<issue>
<title>Need new smelling tree</title>
<truck>GGEU12</truck>
<status>Closed</status>
</issue>
<issue>
<title>Topping up cooling</title>
<truck>GGEU12</truck>
<status>Closed</status>
</issue>
<issue>
<title>Flat tire</title>
<truck>GGEU12</truck>
<status>Undrivable</status>
</issue>
</catalog>
status.xsl:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:variable name="CountIssues" select="count(catalog/issue[(truck)='GGEU12' and (status)!='Closed'])" />
<xsl:variable name="MoreThan" select="$CountIssues > 1" />
<html>
<body>
<h2>Truck Status Dashboard</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Truck</th>
</tr>
<xsl:choose>
<xsl:when test="$MoreThan">
<tr>
<td>Orange truck icon</td>
<td>Orange truck icon</td>
</tr>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="catalog/issue[(truck)='GGEU12' and (status)!='Closed']">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="truck"/></td>
</tr>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Итак, у меня проблема с SharePoint. Я попытался включить все, что у меня есть на странице, но я подозреваю, что вы, ребята, должны воспроизвести мои настройки, чтобы увидеть проблему. В приведенном ниже примере будет получен список из четырех проблем, как указано выше, и значение выбора, которое показывает сумму, которую получает переменная count, равную 2, и которая отображается четыре раза (столько элементов, сколько существует):
<WebPartPages:WebPartZone runat="server" Title="loc:Row1" ID="Row1" FrameType="TitleBarOnly" Orientation="Horizontal"><ZoneTemplate>
<WebPartPages:DataFormWebPart runat="server" IsIncluded="True" NoDefaultStyle="TRUE" ViewFlag="0" Title="Service Requests" __markuptype="vsattributemarkup" partorder="1" __WebPartId="{F711505C-6DEC-414D-9742-9327B43A6EB4}" id="g_f711505c_6dec_414d_9742_9327b43a6eb4">
<DataSources><SharePoint:SPDataSource runat="server" DataSourceMode="List" UseInternalName="true" selectcommand="<View></View>" id="dataformwebpart2"><SelectParameters><WebPartPages:DataFormParameter Name="ListID" ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{EDBDB620-5543-464F-801A-891B15105E59}"/></SelectParameters><DeleteParameters><WebPartPages:DataFormParameter Name="ListID" ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{EDBDB620-5543-464F-801A-891B15105E59}"/></DeleteParameters><UpdateParameters><WebPartPages:DataFormParameter Name="ListID" ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{EDBDB620-5543-464F-801A-891B15105E59}"/></UpdateParameters><InsertParameters><WebPartPages:DataFormParameter Name="ListID" ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{EDBDB620-5543-464F-801A-891B15105E59}"/></InsertParameters></SharePoint:SPDataSource></DataSources>
<datafields>@Title,Titel;@Status,Status;@truck,truck;</datafields>
<XSL><xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" version="1.0" exclude-result-prefixes="xsl msxsl ddwrt" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:ddwrt2="urn:frontpage:internal">
<xsl:output method="html" indent="no"/>
<xsl:decimal-format NaN=""/>
<xsl:param name="dvt_apos">'</xsl:param>
<xsl:variable name="dvt_1_automode">0</xsl:variable>
<xsl:template match="/">
<xsl:call-template name="dvt_1"/>
</xsl:template>
<xsl:template name="dvt_1">
<xsl:variable name="dvt_StyleName">Table</xsl:variable>
<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row"/>
<table border="0" width="100%" cellpadding="2" cellspacing="0">
<tr valign="top">
<xsl:if test="$dvt_1_automode = '1'" ddwrt:cf_ignore="1">
<th class="ms-vh" width="1%" nowrap="nowrap"></th>
</xsl:if>
<th class="ms-vh" nowrap="nowrap">Truck</th>
<th class="ms-vh" nowrap="nowrap">Status</th>
</tr>
<xsl:call-template name="dvt_1.body">
<xsl:with-param name="Rows" select="$Rows"/>
</xsl:call-template>
</table>
</xsl:template>
<xsl:template name="dvt_1.body">
<xsl:param name="Rows"/>
<xsl:for-each select="$Rows">
<xsl:call-template name="dvt_1.rowview"/>
</xsl:for-each>
</xsl:template>
<xsl:template name="dvt_1.rowview">
<xsl:variable name="CountIssues" select="count(/dsQueryResponse/Rows/Row[@truck='GGEU12' and @Status!='closed'])" />
<xsl:value-of select="$CountIssues" />
<tr>
<xsl:if test="position() mod 2 = 1">
<xsl:attribute name="class">ms-alternating</xsl:attribute>
</xsl:if>
<xsl:if test="$dvt_1_automode = '1'" ddwrt:cf_ignore="1">
<td class="ms-vb" width="1%" nowrap="nowrap">
<span ddwrt:amkeyfield="ID" ddwrt:amkeyvalue="ddwrt:EscapeDelims(string(@ID))" ddwrt:ammode="view"></span>
</td>
</xsl:if>
<td class="ms-vb">
<xsl:value-of select="@truck"/>
</td>
<td class="ms-vb">
<xsl:value-of select="@Status"/>
g </td>
</tr>
</xsl:template>
</xsl:stylesheet>
Помощник по решению должен создать новый список с тремя столбцами, грузовиком, названием и статусом. Создайте новую страницу веб-части, и в конструкторе SharePoint создайте представление списка данных, и цель xsl здесь состоит в том, чтобы отобразить зеленый значок, если состояние грузовика является управляемым (или нет отчетов), красный, если он не доступен, и, наконец, оранжевый значок, если Есть более двух проблем с конфликтующими статусами. Когда я делаю это, он отображает столько значков, сколько есть проблем.
Спасибо за чтение!