【ABAP系列】SAP ABAP中將字符格式的金額轉換為數值的函數


公眾號: 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.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM