SAP 货币转换中的转换因子
生活随笔
收集整理的這篇文章主要介紹了
SAP 货币转换中的转换因子
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ABAP編程中,有個概念很重要,即Currency ConvertingFactor(貨幣轉換因子)。可能很多ABAP初學者都不知道這是什么東西,這里我們就簡單探討下。
1.?什么是貨幣轉換因子 在SAP中,貨幣是維護在TCURC表里面,這從Domain: WAERS中可以看到。 不過這里我們要介紹的是表TCURX,它維護了貨幣金額的小數位。比如JPY日元,在該表是0。正常的貨幣都是2位小數的。那么,該表有什么意義呢?我們來看下面的例子。 DATA: netwr TYPE p DECIMALS 2.netwr = '1.3'.
WRITE: netwr CURRENCY 'JPY'. 輸出的結果是130,即1.3*100,我們說日元的轉換因子為100。這是因為TCURX定義了日元沒有小數位,那么數據庫表的實際數字1.3 就解釋成了130。反過來就是,我們認為的130日元,在數據庫里存儲成了1.3。這個過程都是SAP自動處理的。 同理,小數位為1的,其轉換因子為10;而RMB因為小數位為2,其轉換因子為1,這也是系統的默認值。 2. 如何將CURR字段賦給DEC(P)字段 如果要將一個CURR字段賦值給類型為DEC(P)的字段,則要考慮貨幣轉換因子的影響。當我們寫與外系統集成的接口時,這就顯得很有必要了。 這里介紹個函數:CURRENCY_CONVERTING_FACTOR,它可用于讀取貨幣轉換因子。 DATA: v LIKE vbap-netwr,
?????p TYPE p DECIMALS 2,
?????cur LIKE vbap-waerk,
?????factor TYPE p DECIMALS 3.
v = '1.3'.
cur = 'JPY'.
CALL FUNCTION 'CURRENCY_CONVERTING_FACTOR'
? EXPORTING
???currency?????????= cur
? IMPORTING
???factor???????????= factor
? EXCEPTIONS
???too_many_decimals = 1
???OTHERS???????????= 2.
IF sy-subrc <> 0.
? factor = 1.
ENDIF.
p = v * factor.
WRITE: p.
這樣,我們與外系統集成時,應該以p作為接口參數,130日元就不會錯誤地成了1.3日元。 3. ABAP編程中需要注意的地方 在編程中,我們對CURR字段要多加以注意,下面簡單舉幾個應用例子。 (1) List中,當輸出CURR字段時,記得指定對應的貨幣. ?? 如:WRITE: vbap-netwr CURRENCY vbap-waerk. (2) Screen中,對于CURR字段,需要設置對應的貨幣字段, ?? (3) ALV中,需要對FIELD CATALOG進行設置. ?? 如:ls_cfieldname = 'WAERS'. "這里的WAERS是內表中的另一字段 轉自:http://blog.chinaunix.net/u2/86821/showart_2009173.html
總結
以上是生活随笔為你收集整理的SAP 货币转换中的转换因子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP 金额在表中的存储及货币转换因子
- 下一篇: ABAP Subscreen and t