公眾號:
matinal
本文作者:
matinal
前言部分
大家可以關注我的公眾號,公眾號里的排版更好,閱讀更舒適。
正文部分
函數名:UNITS_STRING_CONVERT
作用:根據當前用戶的金額顯示方式,將帶有分隔符的金額(字符型)轉換為P類型的數值。例如:將“1,000.123”轉換為 1000.123
(我一開始的時候是用replace將逗號替換掉,然后直接賦值給一個數值型的變量.但是通用性不太好)
先說說sap的數字顯示的三種方式:
1. 小數點是逗號,分隔符是句號 N.NNN,NN(歐洲人的方式很奇怪:))
2.小數點是句號,分隔符是逗號 N,NNN.NN
3.小數點是逗號,分隔符是空格 N NNN,NN
系統以哪種方式顯示,存儲在用戶表USR01的DCPFM字段,值分別是"空" 、“X”、“Y”。
調用函數的時候將這個字段將作為其中的一個輸入參數.函數會根據當前顯示轉換.
例如:
DATA: l_clabs TYPE p DECIMALS 3, l_dcpfm LIKE usr01-dcpfm. SELECT SINGLE dcpfm INTO l_dcpfm FROM usr01 WHERE bname = sy-uname. CALL FUNCTION 'UNITS_STRING_CONVERT' EXPORTING units_string = '123,456.789' dcpfm = l_dcpfm "此時為X * MLLN = 'M' * TSND = 'T' IMPORTING units = l_clabs EXCEPTIONS invalid_type = 1 OTHERS = 2.