BI Publisher:如何移除循环生成的逗号分隔值末尾多余逗号
移除RTF模板循环末尾多余逗号的两种方法
方法一:通过位置判断控制逗号输出
在循环体里,仅当当前条目不是最后一项时才输出逗号,用position()和last()函数做判断:
替换你原来的循环代码:
<?for-each-group@inlines:current-group():./NAME?> <?NAME?> <?NUMBER?><?if:not(position()=last())?>, <?end if?> <?end for-each-group?>
原理:position()返回当前条目的位置序号,last()返回分组内总条目数,当两者不相等时才输出逗号,最后一项自然不会带多余逗号。
方法二:用string-join函数直接拼接(更简洁)
如果你的BI Publisher支持XPath 2.0,可以直接用string-join函数一次性完成拼接,不用写循环:
<?string-join(current-group()/concat(NAME,' ',NUMBER), ', ')?>
原理:先把每个条目的NAME和NUMBER拼接成"NameX numberX"格式的字符串,再用, 作为分隔符把所有字符串连起来,函数会自动处理末尾无逗号的问题。
内容的提问来源于stack exchange,提问作者quodsolis
相关产品推荐
相关产品推荐

