SAP中的Currency Converting Factor
生活随笔
收集整理的這篇文章主要介紹了
SAP中的Currency Converting Factor
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
ABAP編程中,有個(gè)概念很重要,即Currency Converting Factor(貨幣轉(zhuǎn)換因子)。可能很多ABAP初學(xué)者都不知道這是什么東西,這里我們就簡單探討下。
1.?什么是貨幣轉(zhuǎn)換因子 在SAP中,貨幣是維護(hù)在TCURC表里面,這從Domain: WAERS中可以看到。 不過這里我們要介紹的是表TCURX,它維護(hù)了貨幣金額的小數(shù)位。比如JPY日元,在該表是0。正常的貨幣都是2位小數(shù)的。那么,該表有什么意義呢?我們來看下面的例子。 DATA: netwr TYPE p DECIMALS 2.netwr = '1.3'.
WRITE: netwr CURRENCY 'JPY'. 輸出的結(jié)果是130,即1.3*100,我們說日元的轉(zhuǎn)換因子為100。這是因?yàn)門CURX定義了日元沒有小數(shù)位,那么數(shù)據(jù)庫表的實(shí)際數(shù)字 1.3 就解釋成了130。反過來就是,我們認(rèn)為的130日元,在數(shù)據(jù)庫里存儲(chǔ)成了1.3。這個(gè)過程都是SAP自動(dòng)處理的。 同理,小數(shù)位為1的,其轉(zhuǎn)換因子為10;而RMB因?yàn)樾?shù)位為2,其轉(zhuǎn)換因子為1,這也是系統(tǒng)的默認(rèn)值。 2. 如何將CURR字段賦給DEC(P)字段 如果要將一個(gè)CURR字段賦值給類型為DEC(P)的字段,則要考慮貨幣轉(zhuǎn)換因子的影響。當(dāng)我們寫與外系統(tǒng)集成的接口時(shí),這就顯得很有必要了。 這里介紹個(gè)函數(shù):CURRENCY_CONVERTING_FACTOR,它可用于讀取貨幣轉(zhuǎn)換因子。 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.
這樣,我們與外系統(tǒng)集成時(shí),應(yīng)該以p作為接口參數(shù),130日元就不會(huì)錯(cuò)誤地成了1.3日元。 3. ABAP編程中需要注意的地方 在編程中,我們對CURR字段要多加以注意,下面簡單舉幾個(gè)應(yīng)用例子。 (1) List中,當(dāng)輸出CURR字段時(shí),記得指定對應(yīng)的貨幣. 如: WRITE: vbap-netwr CURRENCY vbap-waerk. (2) Screen中,對于CURR字段,需要設(shè)置對應(yīng)的貨幣字段,
(3) ALV中,需要對FIELD CATALOG進(jìn)行設(shè)置. 如: ls_cfieldname = 'WAERS'. "這里的WAERS是內(nèi)表中的另一字段
總結(jié)
以上是生活随笔為你收集整理的SAP中的Currency Converting Factor的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ABAP中有关于换行符,TAB KEY等
- 下一篇: 用总计金额求本体额与消费税额FM,所引起