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的数据表的字段)
 

转载于:https://www.cnblogs.com/duadu/archive/2007/08/01/6166692.html

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐