最近在做一个case,里面的item单位是已经定义好了的,其中有个单位定义为KUSD,而我们的key figure是没有单位,也没有币别栏位的,纯粹一数字,而我从系统得到的数据却是以RMB为单位的数据,因此,需要将RMB首先转换为USD,然后就简单了;
RMB转换为USD code 如下:
SPAN {
font-family: "Courier New";
font-size: 10pt;
color: #000000;
background: #FFFFFF;
}
.L4S52 {
color: #0000FF;
}
TABLES:TCURR.
SPAN {
font-family: "Courier New";
font-size: 10pt;
color: #000000;
background: #FFFFFF;
}
.L4S31 {
font-style. italic;
color: #808080;
}
.L4S32 {
color: #3399FF;
}
.L4S33 {
color: #4DA619;
}
.L4S52 {
color: #0000FF;
}
DATA:l_day like sy-datum.
DATA:l_date like tcurr-GDATU.
DATA:l_rate LIKE tcurr-UKURS.
data chdat(8) type c.
data chdat2(8) type c.
*BREAK-POINT.
CONCATENATE SOURCE_FIELDS-CALMONTH '01' INTO l_day.
CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
EXPORTING
date_external = l_day
IMPORTING
date_internal = l_date
EXCEPTIONS
date_external_is_invalid = 1.
MOVE l_date TO chdat.
chdat2 = '99999999' - chdat.
select UKURS FROM tcurr INTO l_rate
WHERE GDATU = chdat2 and FCURR = 'RMB' AND KURST = 'M' AND TCURR =
'USD'.
ENDSELECT.
RESULT = -1 * SOURCE_FIELDS-AMOUNT / l_rate / 1000 .
DATA:l_date like tcurr-GDATU.
DATA:l_rate LIKE tcurr-UKURS.
data chdat(8) type c.
data chdat2(8) type c.
*BREAK-POINT.
CONCATENATE SOURCE_FIELDS-CALMONTH '01' INTO l_day.
CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
EXPORTING
date_external = l_day
IMPORTING
date_internal = l_date
EXCEPTIONS
date_external_is_invalid = 1.
MOVE l_date TO chdat.
chdat2 = '99999999' - chdat.
select UKURS FROM tcurr INTO l_rate
WHERE GDATU = chdat2 and FCURR = 'RMB' AND KURST = 'M' AND TCURR =
'USD'.
ENDSELECT.
RESULT = -1 * SOURCE_FIELDS-AMOUNT / l_rate / 1000 .