sap中對於金額和匯率欄位的處理(一般是會計相關的,如果會計發票,銷售發票,採購發票等)有點特殊,並不是說你多少就在系統表中寫多少,有些貨幣的金額會進行除以乙個值(一般是100),所有這些金額在取出來的時候得進行相應的轉換,而有些匯率是會乘以一定的係數(一般也是100),所以我們在通過匯率計算的時候需要除以乙個數,系統提供了函式來讀取金額和匯率的轉換值。
我們在從系統表中直接取出金額和匯率是一般都需要進行如下轉換
處理金額的時候需要乘以轉換值 這個值可以通過
currency_converting_factor 函式獲得,
處理匯率的時候需要除以轉換值 這個值可以通過
read_exchange_rate 獲得
(函式 read_exchange_rate 也可以根據時間獲得相應的匯率)
"獲取金額轉換比率的函式
type-pools isoc.
data
:cur
like
t001-waers
.data
:l_fact
type
isoc_factor.
cur
= 'jpy'
."1.獲取轉換因子
call
function
'currency_converting_factor'
exporting
currency
= cur
importing
factor
= l_fact
exceptions
too_many_decimals = 1
others = 2
.write
:l_fact.
"2.獲取匯率比率的函式
data
:fc
like
t001-waers
.data
:l_fact
type i.
call
function
'read_exchange_rate'
exporting
date
= sy-datum
foreign_currency
= fc
local_currency
= 'cny'
type_of_rate
= 'm'
importing
foreign_factor
= l_fact
exceptions
no_rate_found = 1
no_factors_found = 2
no_spread_found = 3
derived_2_times = 4
overflow = 5
zero_rate = 6
others = 7
.
"3.獲取當前匯率
data
:fact
type i,
rate
like
vbrp-kursk,
p_kursf
like
vbrp
-kursk
."呼叫取匯率函式
call
function
'read_exchange_rate'
exporting
date
= sy
-datum
"匯率日期
foreign_currency
= p_waers
"外幣local_currency
= 'cny'
"本幣type_of_rate
= 'm'
"型別*
exact_date
= ' '
importing
exchange_rate
= rate
"交換率
foreign_factor
= fact
"比率exceptions
no_rate_found = 1
no_factors_found = 2
no_spread_found = 3
derived_2_times = 4
overflow = 5
zero_rate = 6
others = 7
.*最終匯率結果 這裡也是除以因子才是真正的匯率
p_kursf
= rate / fact.
endif.
SAP匯率轉換的操作
今天碰到需要進行匯率轉換的操作,下面 挺有用的。report z barry convert currency data jine like bseg wrbtr data date like sy datum data curr ex like bapicurr bapicurr date 200...
06 匯率轉換
1.一直輸入,直到使用者選擇退出 coding utf 8 功能 匯率兌換 版本 3.0 功能 一直輸入,指導使用者選擇退出 rate 6.77 go on y while go on y currency str input 請輸入帶單位的貨幣金額 如cny100,usd100 flag curr...
python 實現匯率轉換
用python實現美元與人民幣之間的貨幣轉換,首先知道美元與人民幣的匯率,分別對美元轉換為人民幣,人民幣轉換為美元的計算,最後列印出結果。如下 示例 一美元 6.4866 人民幣 rate 6.4866 print 匯率轉換 money input 輸入金額 以 或者 結尾 i money 1 pr...