万能报表自动换行处理【分享】
金蝶云社区-天冥异
天冥异
3人赞赏了该文章 1288次浏览 未经作者许可,禁止转载编辑于2018年08月02日 17:16:31

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

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


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


实际运行时,
测试字串:

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

复制代码



预览的效果:


通过测试效果可以看到,
倒序查找,超过1行字串时,1993数字后面是有空格的,1993后面出现了自动折行,
之后又查找到超过1行字串时 找到“-”,又自动做了折行,
并且更大的问题是字串的后面是显示不全的。

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

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


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


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

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

附上有用的2行脚本,

  1. //替换文本中的空格及字符"-"

  2. XRLabel bindLabel  = sender as XRLabel;

  3. bindLabel.Text = bindLabel.Text.Replace(" ","").Replace("-","/");


复制代码


如果万能报表要增加打印时间,是否也可以通过脚本来实现,该如何写呢?

报表中有个“页信息”控件,点控件上面的小箭头,“页面信息”属性,选择“Current Date and Time”。

赞 3