У меня есть SP Dataview, который я преобразовал в XSLT, чтобы я мог добавить заголовок, отображающий процент (Завершено).
Прежде чем я преобразовал dvwp в xslt, я добавил два заголовка счетчика - один в Complete, а другой в LastName. Они работали чудесно - показывали мне количество записей и количество записей со значением в полном поле. Однако, когда я преобразовал dv в xslt, я понял, что потерял свои заголовки :(
Итак, я добавляю их обратно в xslt. В настоящее время код XPath для моего уравнения равен <xsl:value-of select="count($Rows) div count($Rows)" />
.
Как я могу получить общее количество значений Yes, которые есть в моем поле Complete?
Update1:
Нашел это http://www.endusersharepoint.com/STP/viewtopic.php?f=14&t=534 и попробовал его, однако вызывает следующую ошибку - Ошибка установки таблицы стилей процессора: 0x80004005: Аргумент 1 должен возвращать набор узлов. -> count (/ dsQueryResponse / Rows / Row = 'Y') <- </strong>
UPDATE2:
Complete - это имя поля с моим набором данных XSLT. Тип возвращаемого значения - Y или пусто. Для ухмылок я попытался <xsl:value-of select="count(/xpath/to/parent/element[@Complete eq 'Y']) div count($Rows)" />
, однако получил следующую ошибку - Не удалось установить таблицу стилей процессора: 0x80004005: Ожидаемый токен ']' found 'NAME'.count ((/ xpath / to / parent / element [@Complete - > eq <- 'Y']) div count ($ Rows) </strong> Начинаю думать, что может быть проблема с / eq .... Ссылка на мои операторы XML ...
Update3: 1021 *
*
<xsl:value-of select="count(/xpath/to/parent/element[@Complete = 'Y']) div count($Rows)" />
Ладно, значит, он по-прежнему показывает 0, но я думаю, что причина, по которой он не показывает правильный ответ, состоит в том, что b / c ожидает показать целое число, и, очевидно, значение, возвращаемое из уравнения, будет десятичным. .. возился с уравнением в XPath ... вот что я попробовал -
count(/xpath/to/parent/element[@Complete = 'Y']) div count($Rows)*100
(count(/xpath/to/parent/element[@Complete = 'Y']) div count($Rows))*100
100(count(/xpath/to/parent/element[@Complete = 'Y']) div count($Rows))
UPDATE4:
Итак, я знаю, что моя предыдущая мысль о том, что правильное число, не показывающее b / c, было плавающей точкой, неверна, так как все числа в XPath и XSLT 1.0 являются числами с плавающей точкой. Ссылка
UPDATE5:
После дальнейшего исследования я обнаружил, что проблема заключается в части count(/xpath/to/parent/element[@Complete = 'Y'])
моего уравнения, так как она возвращает 0 вместо значения. [я знаю, что у меня есть по крайней мере 3 'Y' в моей полной коле]
ОБНОВЛЕНИЕ6 :
<records*>
<record*>
<last_name></last_name>
<first_name></first_name>
<mi></mi>
<office_symbol></office_symbol>
<geo_location></geo_location>
<complete></complete>
<date_complete></date_complete>
<date_expires></date_expires>
<email></email>
<supervisor></supervior>
</record*>
</records*>
* я не знаю, как называются эти узлы, так как мои данные поступают из базы данных, а не из файла XML, я просто составил запись / записи
UPDATE7
Возвращаясь к моему первоначальному вопросу. Я все еще пытаюсь выяснить уравнение XPath для отображения количества родителей (запись в XML, который я разместил выше), где полный узел = Y.
UPDATE8
Хорошо. Итак, я отредактировал и протестировал, используя http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&xsltfile=tryxsl_value-of. Рабочий XSLT для подсчета числа завершенных = Y равен <xsl:value-of select="count(catalog/cd [complete = 'Y'])" />
, поэтому я положил ТОЧНО, что работает в W3schools в мой SP Dataview, и я ничего не получаю ... просто пустой пространство. Почему код не работает в моем SPDV?