2016-07-08 76 views
0

我有一个计数器变量:<?xdoxslt:set_variable($_XDOCTX, ‘storeCounter’, 0)?>如何在BI Publisher的更新计数器,每个标签

我把这个柜台到了,每个标签,并希望它会返回循环次数:

<?for-each:G_1?> 
    <?xdoxslt:set_variable($_XDOCTX, 'storeCounter', xdoxslt:get_variable($_XDOCTX, 'storeCounter') + 1)?> 

这里是我的报告细节: enter image description here

和数据模型的xml:

<output rootName="DATA_DS" uniqueRowName="false"> 
<nodeList name="data-structure"> 
<dataStructure tagName="DATA_DS"> 
<group name="G_1" label="G_1" source="test"> 
<element name="TY_SOH_TOT" value="TY_SOH_TOT" label="TY_SOH_TOT" dataType="xsd:double" breakOrder="" fieldOrder="1"/> 
<element name="LY_SOH_TOT" value="LY_SOH_TOT" label="LY_SOH_TOT" dataType="xsd:double" breakOrder="" fieldOrder="2"/> 
<element name="LLY_SOH_TOT" value="LLY_SOH_TOT" label="LLY_SOH_TOT" dataType="xsd:double" breakOrder="" fieldOrder="3"/> 
</group> 
</dataStructure> 
</nodeList> 
</output> 

但它只是返回1作为计数器的结果:

<?xdoxslt:get_variable($_XDOCTX, 'storeCounter')?> 

那么,怎样才能使计数器正确地更新?

+0

的语法是正确的。 <?的for-each:G_1> <?xdoxslt:set_variable($ _ XDOCTX, 'storeCounter',xdoxslt:get_variable($ _ XDOCTX, 'storeCounter')+ 1)?><?端的for-each> <?xdoxslt:get_variable($ _ XDOCTX,'storeCounter')?> 这适用于我。如果您可以发送完整的xml和rtf给我,我可以检查它:[email protected] –

回答

0

你关闭了for循环吗?

<?for-each:G_1?> 
    <?xdoxslt:set_variable($_XDOCTX, 'storeCounter', xdoxslt:get_variable($_XDOCTX, 'storeCounter') + 1)?> 
<?end for-each?> 

<?xdoxslt:get_variable($_XDOCTX, 'storeCounter')?> 

打印计数。

如果你只需要计数,你可以使用<?count(G_1)?>,给人的计数,而循环

+0

是的,我已经用<?end for-each?>标记关闭循环。除了柜台外,我还需要在循环中进行一些计算。我编辑了我的问题,以获取关于我的报告的更多详细信请检阅它。 –

+0

你可以发布xml吗? –

+0

我已经在问题中上传了xml。是你提到的xml吗? –

1

看你的新的XML,看来你将不得不遍历“元素”,而不是“组”。通过“组”循环会给你0

<?xdoxslt:set_variable($_XDOCTX, 'storeCounter', 0)?> 
<?for-each: element?> 
<?xdoxslt:set_variable($_XDOCTX, 'storeCounter', xdoxslt:get_variable($_XDOCTX, 'storeCounter') + 1)?> 
<?end for-each?> 
<?xdoxslt:get_variable($_XDOCTX, 'storeCounter')?> 

会给你3

+0

谢谢你的帮助我已经看到了根本原因:) –