在SAP系统中,逗号和点有时候会造成不必要的误会。
例如:2,000到底是两千还是二?
这个当然是由用户的user profile中的参数来决定了,那么我们在实际编程过程中就要注意区别了!!
如果应收是2000,而实际做账时却误写为2.000,那后果会不堪设想哦。。。
<!--StartFragment -->下面是判别的方法:
第一步: 确定用户的配置
SELECT SINGLE dcpfm FROM usr01 "Decimal notaion
INTO v_user_decimal
WHERE bname EQ sy-uname. "User master record (runtime data)
第二步: 进行相应转换,确保从字符2,000转换到数字2000能够成功,因为当字符转化为数字时,系统不能识别‘,’
CASE v_user_decimal.
WHEN ' '. " Decimal point is comma: N.NNN,NN
TRANSLATE IT_ORDVALDATA-SEATS USING '. '.
TRANSLATE IT_ORDVALDATA-SEATS USING ',.'.
WHEN 'X'. " Decimal point is period: N,NNN.NN
TRANSLATE IT_ORDVALDATA-SEATS USING ', '.
WHEN 'Y'. " Decimal point is N NNN NNN,NN
TRANSLATE IT_ORDVALDATA-SEATS USING ',.'.
ENDCASE.
CONDENSE IT_ORDVALDATA-SEATS NO-GAPS.
Thanks.