SAP在顯示金額及儲存金額時會透過一個Table(TCURX)及特定的計算公式產生其結果
具體代碼的寫法如下:
A. 顯示存儲的金額
DATA: SHIFT TYPE I.
CLEAR SHIFT.
SELECT SINGLE * FROM TCURX WHERE CURRKEY = (貨幣類型).
IF SY-SUBRC = 0.
? SHIFT = 2 - TCURX-CURRDEC.
ENDIF.
(顯示金額) = (存儲金額) * 10 ** SHIFT.
B. 存儲輸入的金額(至CURR type的數據表的字段)
DATA: SHIFT TYPE I.
CLEAR SHIFT.
SELECT SINGLE * FROM TCURX WHERE CURRKEY = (貨幣類型).
IF SY-SUBRC = 0.
? SHIFT = TCURX-CURRDEC – 2.
ENDIF.
(存儲金額) = (顯示金額) * 10 ** SHIFT.
由上面公式您可以了解為何TWD顯示100為何存儲值為1
在TCURX中CURRKEY = ‘TWD’ 其CURRDEC = 0, 因此顯示金額會乘十的負二次方才是存儲的結果
C:利用現成的Function modules:
CURRENCY_AMOUNT_ SAP _TO_ DISPLAY : 顯示存儲的金額
CURRENCY_AMOUNT_DISPLAY_TO_SAP : 存儲輸入的金額(至CURR type的數據表的字段)