当货币币别为越南盾VND等币值很小的货币时,SAP后台表存储会将小数位也利用上,如下图所示,下图中净价的个位及十位存储到了后台表的小数点上。
我们在做自开发报表时取的数据是表中数据,比实际少两位。需要用一个语句做转换.具体的转换位数是根据SPRO 中币别的配置。
方法一:在循环数据时按照币别将金额转换为该币别正确的金额(直接修改了原金额数据)
WRITE <fs_edi_ekpo>-netpr TO l_tmp_str CURRENCY <fs_edi_ekko>-waers NO-GROUPING.
<fs_edi_ekpo>-netpr = l_tmp_str.
方法二:在ALV的fieldcat为金额字段添加币别的参考,这样alv在展示时小数位数就变化了,但是实际存储的数据没变,这里和方法以不同
IF ls_fcat-fieldname = 'WRBTR'.
ls_fcat-CFIELDNAME = 'WAERS' .
ENDIF.