万能报表自动换行处理【分享】
金蝶云社区-云社区用户4u731234
云社区用户4u731234
0人赞赏了该文章 3,359次浏览 未经作者许可,禁止转载编辑于2017年05月03日 16:42:40

我们知道普通情况,万能报表的模板中,控件勾选“自动换行”就会够了,效果就实现了,
但一些时候就会有些小问题,
比如下帖
原始问题贴:
万能报表打印问题,急!
https://vip.kingdee.com/questions/22342
本帖子是为解决万能报表自动换行出现问题而写的解决办法,

经过测试万能报表的自动换行处理,
倒序查找,
当自动换行超过一行字串时,
是会优先查找数字后面的空格,
其次是“-”字符,也就是我们常用日期中的分割符,
会按照倒序查找 数字后面的空格或者 “-”进行自动折行处理。

测试过程:
使用了一张单据的“备注”字段做了测试,
这张单据我们选用的是【销售订单】,
【销售订单】的单据头“备注”字段,
拖入报表Detail明细带区,
设计了一张万能报表模板,

修改“套打设置”,选择“使用标准报表模板打印”,“对应标准报表模板”关联设置的报表模板。

实际运行时,
测试字串:
[code]2017-05-03金蝶国际软件集团有限公司(“金蝶国际”或“金蝶”)始创于1993 年,是香港联交所主板上市公司(股票代码:0268),总部位于中国深圳。以“致良知、走正道、行王道”为核心价值观,金蝶致力成为最值得信赖的大数据服务公司,已为世界范围内超过600万家企业、政府等公共组织,提供管理软件产品、云服务及互联网金融等服务,用户数超过6000万。[/code]

预览的效果:

通过测试效果可以看到,
倒序查找,超过1行字串时,1993数字后面是有空格的,1993后面出现了自动折行,
之后又查找到超过1行字串时 找到“-”,又自动做了折行,

并且更大的问题是字串的后面是显示不全的。

那么针对此种问题是否有解决办法呢?
答案当然是有的,
因为使用万能报表控件,本身是有相当强的脚本支持的,

具体的脚本编写过程,
选中绑定“备注”字段的报表模板中的控件,
字段属性中 找到“脚本”,
选到“在打印前”事件,
选择“新建”,

之后会弹出脚本编辑界面,

保存后,我们再来看下效果,


截图中我们已经看到,文本超过1行的自动折行已经显示正常了,字串信息也完全都显示全了。

附上有用的2行脚本,
[code]//替换文本中的空格及字符"-"
XRLabel bindLabel = sender as XRLabel;
bindLabel.Text = bindLabel.Text.Replace(" ","").Replace("-","/");
[/code]

完 谢谢。