Я пытаюсь создать цикл, который увеличивает переменную, а затем использует эту переменную внутри некоторого кода xsl. Вот код, который я использую для увеличения счетчика:
<?xdoxslt:set_variable($_XDOCTX, ‘counter’, 0)?>
<?for-each-group:$g2;./STATUS?>
<?sort:current-group()/STATUS;'ascending';data-type='text'?>
<?xdoxslt:set_variable($_XDOCTX, ‘counter’, xdoxslt:get_variable($_XDOCTX, ‘counter’)
+ count(xdoxslt:distinct_values(current-group()/ACTION)))?>
<?end for-each-group?>
Следующий код выведет нужный мне номер:
<xsl:value-of select="xdoxslt:get_variable($_XDOCTX, ‘counter’)"/>
Итак, я знаю, что цикл работает, и переменная имеет правильный номер. Однако мне нужно использовать переменную в следующем коде:
<xsl:attribute name="number-rows-spanned" xdofo:ctx="block">
<xsl:value-of select="xdoxslt:get_variable($_XDOCTX, ‘counter’)"/>
</xsl:attribute>
Когда я использую этот код, я получаю следующую ошибку:
java.lang.NumberFormatException: For input string: ""
Я также пробовал:
<xsl:variable name="rowcount" select="xdoxslt:get_variable($_XDOCTX, ‘counter’)"/>
<xsl:attribute name="number-rows-spanned" xdofo:ctx="block">
<xsl:value-of select="$rowcount"/>
</xsl:attribute>
Это приводит к той же ошибке. Есть ли обходной путь, который позволит мне использовать переменную таким образом, или мне просто нужно найти альтернативное решение?
Это отчет, который я пытаюсь создать:
Group by Column1
Group by Column2
Column3 | Column4 | column5 | Column6
Group Left | Group Left | Group Left | Number
End Group by Column2
Totals
Column3 | Column4 | column5 | Column6
Group Left | Group Left | Group Left | sum()
End Group by column1
Проблема заключается в том, что в таблице «Итоги» значения столбца 6 разделяются, когда в группе более 1 столбца 2.