SAP:解决SMARTFORM中因‘-’导致字符串折行的问题

我们在某些ECC系统中使用smartforms打印时,会发现有时候一个单元格里字符串一行没打印完就折行了,好像只要有“-”这种连字符就会发生这个问题,那如何才能解决这个问题呢?

1.首先,我们弄清楚打印输出的原理。

如上图所示,每一个字符的“宽度”加起来,小于等于这个单元格的“宽度”,就能放到一行上。

那么这里说到一个“宽度”,对于单元格而言,单元格的外在宽度会有不同的单位,比如:CM、MM、IN等,那么势必是要转换到内部的一个宽度标准上对吧

对于文字、符号的宽度,因为受到很多因素影响,比如:字体字号、打印机输出属性设置等,在此我们就不做解释字符宽度是怎么计算出来的。

但有一点还是需要说明,汉字在SAP里是一个字符位,但是输出是2个字符位。所以计算的时候,是需要先根据每个指针偏移来计算占的字符位,然后才乘以1个字符位的长度得到这个偏移位字符的宽度

 

例如目的中的截图,我们看“暖”,由于是汉字,因此得知他占2个字符位,而smartforms默认不修改字体字号等情况下,一个字符位的宽度大概是144,所以这个字占位是288,图中单元格设置的是4CM宽,换算内部宽度也就是2268,这样一行能放多少是不是就能算出来了?

2.这样说比较抽象,我们到标准代码里具体看吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值