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的数据表的字段)
本文详细介绍了SAP系统中货币金额的显示与存储原理。通过TCURX表和特定公式实现货币金额的转换,并提供了ABAP代码示例,同时介绍了如何使用现有的Function modules简化操作。
118

被折叠的 条评论
为什么被折叠?



