SAPSAP技术干货

将ALV中负号提前

2017-09-12  本文已影响16人  Mmm_余安
一般我们在alv上展示的金额如果是负数,默认是这样显示的: 系统默认样式 在有的开发中,客户可能要求负号提前,实现这样的效果: 负号提前
CLOI_PUT_SIGN_IN_FRONT
REPORT ZGY_TEST.
TABLES : BSEG.
DATA : E_DMBTR TYPE STRING.
E_DMBTR = '100-'.
CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
 CHANGING V
ALUE = E_DMBTR.
WRITE : E_DMBTR.

这个的局限是只能用字符类型进行操作,这样就不是金额这样的数字类型了,对于对齐等也都和金额类型不同,同时会导致千分位符号丢失。 用write to语句把负数取绝对值,然后把数字型写入字符型可以保留千位符,再判断正负数,在输出的时候添上负号。

Form asset_front_minus changing value1. 
value2 = abs( value1 ). 
write value2 to string1.
 condense string1.
 if value1 < 0. 
write: '-', string1 LEFT-JUSTIFIED NO-GAP NO-ZERO. 
else. 
write: string1 LEFT-JUSTIFIED NO-GAP NO-ZERO.
 endif.
endform.
上一篇下一篇

猜你喜欢

热点阅读