我正在尝试创建一个递增变量的循环,然后在一些 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
问题在于,在“总计”表中,当分组中有超过 1 个 Column2 时,Column6 值被拆分。