貨幣轉換函數:CURRENCY_CONVERTING_FACTOR

 

 

 

針對不一樣幣別要作金額欄位轉換html

計算規則: 金額 = 原始金額 * 轉換率數據庫

 

如下轉自博客:http://www.javashuo.com/article/p-nbyrernw-ms.html函數

貨幣轉換函數:CURRENCY_CONVERTING_FACTOR

【CURRENCY_CONVERTING_FACTOR】在SAP系統中,對於曰幣、韓幣、臺幣這類特殊貨幣的處理是有特殊規則的。post

首先,根據幣別到DB表中讀取 TCURX 中讀取相應的小數位數 CURRDEC。url

若是沒有維護相應幣別的信息  則默認 CURRDEC = 2。spa

若是 CURRDEC GT 5 就報錯。code

而後默認轉換率是100。htm

在CURRDEC NE 0 的狀況下blog

循環 CURRDEC 次,每次將轉換比率 除以 10.get

 

因此若是表 TCURX 中的 CURRDEC  = 0 就默認轉換比率 爲100

當表 TCURX 中沒有找到相應數據時 則默認 CURRDEC = 2.

轉換比率也是 100/ 10 / 10 = 1.

 

其餘的, 若是表TCURX 中的 CURRDEC = 4,  則轉換比率應該爲 100/ 10 /10 /10 / 10 = 0.01

咱們在SE16中看到的貨幣金額基本上都通過了這個轉換,如曰元,都是除以100後存入數據庫的。
因此當咱們從數據庫中讀取曰元金額時也應該做相應的轉換,乘以100 。

簡單的使用Function CURRENCY_CONVERTING_FACTOR。輸入幣別,就能夠獲得相應的轉換比率了。

 

函數中所涉及的經常使用選項:
EXPORTING:
    CURRENCY:   將被處理的貨幣種別編號
IMPORTING:
    FACTOR:      轉換後獲得的貨幣比率

 

例1.

FORM BRF_AP USING F_BETRAG             "  金額
                  F_CURRENCY.         " 貨幣代碼

  DATA: S_FACTOR  TYPE  P DECIMALS 3.

  CALL FUNCTION 'CURRENCY_CONVERTING_FACTOR'
    EXPORTING
      CURRENCY          = F_CURRENCY
    IMPORTING
      FACTOR            = S_FACTOR
    EXCEPTIONS
      TOO_MANY_DECIMALS = 1
      OTHERS            = 2.

  IF S_FACTOR NE 0.
    F_BETRAG = F_BETRAG / S_FACTOR.
  ENDIF.
ENDFORM.                    "BRF_AP

 

例2

DATA: G_PER_PRICE  TYPE P,
      G_KPER_PRICE TYPE P,
      G_PRICE      TYPE P,
      PG_FACTOR    TYPE P DECIMALS 3.

FORM CHANGEVALUEBYFACTOR USING P_WAERS CHANGING PG_FACTOR.
  CALL FUNCTION 'CURRENCY_CONVERTING_FACTOR'
    EXPORTING
      CURRENCY          = P_WAERS   "輸入的幣別
    IMPORTING
      FACTOR            = PG_FACTOR  "輸出的值
    EXCEPTIONS
      TOO_MANY_DECIMALS = 1
      OTHERS            = 2.

  IF SY-SUBRC <> 0.
    PG_FACTOR = 1.
  ENDIF.
ENDFORM.                    "CHANGEVALUEBYFACTOR
相關文章
相關標籤/搜索