javaGrowing

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  92 随笔 :: 33 文章 :: 49 评论 :: 0 Trackbacks

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的数据表的字段)
posted on 2008-03-05 08:29 javaGrowing 阅读(2077) 评论(0)  编辑  收藏 所属分类: sap

只有注册用户登录后才能发表评论。


网站导航: