This FM is for formatting the number in the required format, either INR or USD
Ex: 12345678.00
In INR : 123,456,78.00
In USD : 12,345,678.00
FUNCTION ZSD_INR_USD_CONVERT.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(CURRENCY_DATA) TYPE ZTEXT30
*" REFERENCE(CURRENCY) TYPE CHAR3
*" EXPORTING
*" REFERENCE(CURRENCY_INR_USD) TYPE ZTEXT30
*"----------------------------------------------------------------------
data a type i.
data b type i.
data p_str1 type string.
data p_str2 type string.
if CURRENCY_DATA is not INITIAL.
SPLIT CURRENCY_DATA AT '.' into p_str1 p_str2.
a = strlen( p_str1 ).
if CURRENCY = 'INR'.
IF A LT 4.
CONCATENATE p_str1 '.' p_str2 into p_str1.
elseIF A EQ 4.
CONCATENATE p_str1(1) ',' p_str1+1(3) '.' p_str2 into p_str1.
ELSEIF A EQ 5.
CONCATENATE p_str1(2) ',' p_str1+2(3) '.' p_str2 into p_str1.
ELSEIF A EQ 6.
CONCATENATE p_str1(1) ',' p_str1+1(2) ',' p_str1+3(3) '.' p_str2 into p_str1.
ELSEIF A EQ 7.
CONCATENATE p_str1(2) ',' p_str1+2(2) ',' p_str1+4(3) '.' p_str2 into p_str1.
ELSEIF A EQ 8.
CONCATENATE p_str1(1) ',' p_str1+1(2) ',' p_str1+3(2) ',' p_str1+5(3) '.' p_str2 into p_str1.
ELSEIF A EQ 9.
CONCATENATE p_str1(2) ',' p_str1+2(2) ',' p_str1+4(2) ',' p_str1+6(3) '.' p_str2 into p_str1.
ELSEIF A EQ 10.
CONCATENATE p_str1(1) ',' p_str1+1(2) ',' p_str1+3(2) ',' p_str1+5(2) ',' p_str1+7(3) '.' p_str2 into p_str1.
ELSEIF A EQ 11.
CONCATENATE p_str1(2) ',' p_str1+2(2) ',' p_str1+4(2) ',' p_str1+6(2) ',' p_str1+8(3) '.' p_str2 into p_str1.
ELSEIF A EQ 12.
CONCATENATE p_str1(1) ',' p_str1+1(2) ',' p_str1+3(2) ',' p_str1+5(2) ',' p_str1+7(2) ',' p_str1+9(3)'.' p_str2 into p_str1.
ELSEIF A EQ 13.
CONCATENATE p_str1(2) ',' p_str1+2(2) ',' p_str1+4(2) ',' p_str1+6(2) ',' p_str1+8(2) ',' p_str1+10(3)'.' p_str2 into p_str1.
ELSEIF A EQ 14.
CONCATENATE p_str1(1) ',' p_str1+1(2) ',' p_str1+3(2) ',' p_str1+5(2) ',' p_str1+7(2) ',' p_str1+9(2) ',' p_str1+11(3) '.' p_str2 into p_str1.
ELSEIF A EQ 15.
CONCATENATE p_str1(2) ',' p_str1+2(2) ',' p_str1+4(2) ',' p_str1+6(2) ',' p_str1+8(2) ',' p_str1+10(2) ',' p_str1+12(3)'.' p_str2 into p_str1.
endif.
else.
IF A EQ 4.
CONCATENATE p_str1(1) ',' p_str1+1(3) '.' p_str2 into p_str1.
ELSEIF A LT 4.
CONCATENATE p_str1 '.' p_str2 into p_str1.
ELSEIF A EQ 5.
CONCATENATE p_str1(2) ',' p_str1+2(3) '.' p_str2 into p_str1.
ELSEIF A EQ 6.
CONCATENATE p_str1(3) ',' p_str1+3(3) '.' p_str2 into p_str1.
ELSEIF A EQ 7.
CONCATENATE p_str1(1) ',' p_str1+1(3) ',' p_str1+4(3) '.' p_str2 into p_str1.
ELSEIF A EQ 8.
CONCATENATE p_str1(2) ',' p_str1+2(3) ',' p_str1+5(3) '.' p_str2 into p_str1.
ELSEIF A EQ 9.
CONCATENATE p_str1(3) ',' p_str1+3(3) ',' p_str1+6(3) '.' p_str2 into p_str1.
ELSEIF A EQ 10.
CONCATENATE p_str1(1) ',' p_str1+1(3) ',' p_str1+4(3) ',' p_str1+7(3) '.' p_str2 into p_str1.
ELSEIF A EQ 11.
CONCATENATE p_str1(2) ',' p_str1+2(3) ',' p_str1+5(3) ',' p_str1+8(3) '.' p_str2 into p_str1.
ELSEIF A EQ 12.
CONCATENATE p_str1(3) ',' p_str1+3(3) ',' p_str1+6(3) ',' p_str1+9(3) '.' p_str2 into p_str1.
ELSEIF A EQ 13.
CONCATENATE p_str1(1) ',' p_str1+1(3) ',' p_str1+4(3) ',' p_str1+7(3) ',' p_str1+10(3)'.' p_str2 into p_str1.
ELSEIF A EQ 14.
CONCATENATE p_str1(2) ',' p_str1+2(3) ',' p_str1+5(3) ',' p_str1+8(3) ',' p_str1+11(3) '.' p_str2 into p_str1.
ELSEIF A EQ 15.
CONCATENATE p_str1(3) ',' p_str1+3(3) ',' p_str1+6(3) ',' p_str1+9(3) ',' p_str1+12(3) '.' p_str2 into p_str1.
endif.
endif.
CURRENCY_INR_USD = p_str1.
else.
CURRENCY_INR_USD = CURRENCY_DATA.
endif.
ENDFUNCTION.
Thanks & Regards,
A.Uttam
Hi,
PARAMETERS : p_value TYPE dbekr_cm.
DATA : gv_dbekr TYPE char18,
p_str2 TYPE string,
a TYPE i,
b TYPE i,
c TYPE i,
d TYPE i,
e TYPE i,
p_str3 TYPE string,
p_str1 TYPE string.
gv_dbekr = p_value.
SPLIT gv_dbekr AT '.' INTO p_str1 p_str2.
SHIFT p_str1 LEFT DELETING LEADING space.
a = strlen( p_str1 ).
IF a LT 4.
CONCATENATE p_str1 '.' p_str2 INTO p_str1.
ENDIF.
IF a GE 4.
c = a - 3.
b = c / 2.
d = c MOD 2.
CONCATENATE p_str1+c(3) '.' p_str2 INTO p_str3.
c = c - 1.
DO b TIMES.
e = c - 1.
IF e GE 0 AND c GE 0.
CONCATENATE p_str1+e(1) p_str1+c(1) ',' p_str3 INTO p_str3.
ELSEIF c GE 0.
CONCATENATE p_str1+c(1) ',' p_str3 INTO p_str3.
ENDIF.
c = c - 2.
ENDDO.
ENDIF.
Thanks,
Chai