如何用OpenTBS在Word模板输出逗号分隔字符串(SugarCRM MailMergeReports场景)
解决方案
该需求完全可以仅通过模板配置实现,无需修改PHP代码,具体操作如下:
核心原理
你原有代码每行输出一个州名,是因为block=w:p参数将循环块绑定到了Word的段落标签,每循环一次就会生成一个新段落,自然会换行。只需要调整block的绑定范围,搭配TBS内置的循环序号判断逗号插入时机即可实现单行逗号分隔效果。
模板修改示例
把你原来的2行模板代码全部删除,在同一个Word段落内写入如下内容即可:
[a_sub5;block=text;nodata]No States[a_sub5;if [a_sub5.#]!=1;then ', '][a_sub5.name]
参数说明
block=text:将循环块绑定为文本范围,循环时不会生成新的Word段落,所有内容输出在同一行[a_sub5.#]:TBS内置的循环计数器,默认从1开始计数,代表当前循环到的项的序号if判断逻辑:非首个循环项的内容前自动拼接,,避免开头出现多余逗号
该语法是TBS原生支持的标准功能,openTBS完全兼容,SugarCRM的MailMergeReports插件未屏蔽相关原生能力,替换模板后直接生效即可。
内容的提问来源于stack exchange,提问作者bcaverly
相关产品推荐
相关产品推荐

