Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Help in spell amount format...

aris_hidalgo
Contributor
0 Likes
967

Hello Experts,

Suppose I have the value 15,329.78 in my sales invoice. Now I want to

show it in this format:

'***' 'ROUND VALUE' '&' 'DECIMALS' '/ 100 PESOS ***'

SO it will look more or less like this:

      • fifteen thousand three hundred twenty nine & seventy eight / 100 PESOS ***

Hope you could help me out here guys. Thank you and take care!

1 ACCEPTED SOLUTION
Read only

RaymondGiuseppi
Active Contributor
0 Likes
940

Look at thread

Regards

8 REPLIES 8
Read only

ashok_kumar24
Contributor
0 Likes
940

Hi,

Good check out the following function module

CALL FUNCTION 'SPELL_AMOUNT'

EXPORTING

AMOUNT = PAMOUNT

CURRENCY = PWAERS

FILLER = SPACE

LANGUAGE = 'E'

IMPORTING

IN_WORDS = T_SPELL

EXCEPTIONS

NOT_FOUND = 1

TOO_LARGE = 2

OTHERS = 3.

Good Luck and thanks

AK

Read only

Simha_
Product and Topic Expert
Product and Topic Expert
0 Likes
940

Hi,

Use F.M <b>SPELL_AMOUNT</b>

Cheers,

Simha.

Read only

Former Member
0 Likes
940

Hi,

You can use this FM <b>SPELL_AMOUNT</b>. Here u can specify the curreny. The output u can modify to display according to ur need. U can either append some text etc..

Reward points if useful...

Cheers,

Sam

Read only

Former Member
0 Likes
940

&----


*& Report YSAI_COMPLEXREPORT1 *

*& *

&----


*& *

*& *

&----


REPORT YSAI_COMPLEXREPORT1

NO STANDARD PAGE HEADING

LINE-COUNT (3)

LINE-SIZE 240.

&----


*& TABLES *

&----


TABLES :

KNA1, " CUSTMOER MASTER TABLE

VBAK, " SALES ORDER HEADER

VBAP, " SALES ORDER DETAILS

SPELL. " CURRENCY CONVERTER

&----


*& DATA TYPES *

&----


TYPES: BEGIN OF TY_ORDERS,

KUNNR TYPE KUNNR, " CUSTOMER NUMBER

NAME1 TYPE NAME1, " CUSTOMER NAME

ORT01 TYPE ORT01, " CUSTOMER CITY

LAND1 TYPE LAND1, " COUNTRY

VBELN TYPE VBELN, " ORDER NO

ERDAT TYPE ERDAT, " ORDER DATE

NETWR TYPE NETWR, " ORDER VALUE

NETPR TYPE NETPR, " ORDER VALUE

POSNR TYPE POSNR, " ITEM NO

ARKTX TYPE ARKTX, " ITEM DESCRIPTION

WERKS TYPE WERKS_EXT, " PLANT NUMBER

END OF TY_ORDERS.

&----


*& DATA TYPES FOR VARIBLES *

&----


DATA : P TYPE I, "VARIBLE FOR LINE-COUNT

Q TYPE I, "VARIBLE FOR LINE-COUNT

A TYPE NETWR, "VARIBLE FOR SUB TOTAL

B TYPE NETWR, "VARIBLE FOR GRAND TOTAL

R TYPE I, "VARIBLE FOR LINE-COUNT FOR DESCRIBE LINE OR PAGE

T LIKE SY-PAGNO, "VARIBLE FOR INPUT ON

N(3) TYPE C, "VARIBLE USED FOR TO GET TOTAL NUMBER OF PAGE

DATE TYPE D,

X TYPE I.

P = SY-SROWS.

Q = SY-SROWS - 2.

R = SY-SROWS - 1.

PERFORM WRITE.

PERFORM GET_TOTAL_PAGENO. " THIS PERFORM IS FOR TO GET TOTAL GET TOTAL NUMBER OF PAGES

&----


*& WORK AREA *

&----


DATA : WA_ORDERS TYPE TY_ORDERS.

&----


*& BODY OF THE TABLE *

&----


DATA : T_ORDERS TYPE STANDARD TABLE OF TY_ORDERS INITIAL SIZE 100.

&----


*& SELECTING OPTION *

&----


SELECT-OPTIONS : S_CUSTNO FOR KNA1-KUNNR,

S_ORDER FOR VBAK-VBELN .

*SELECT-OPTIONS : S_CUSTNO FOR KNA1-KUNNR DEFAULT 1500 TO 2000," WE CAN GIVE LIKE THIS ALSO.

&----


*& EVENT BLOCKS *

&----


INITIALIZATION.

S_CUSTNO-SIGN = 'I'.

S_CUSTNO-OPTION = 'BT'.

S_CUSTNO-LOW = 1000.

S_CUSTNO-HIGH = 2000.

APPEND S_CUSTNO.

S_ORDER-SIGN = 'I'.

S_ORDER-OPTION = 'BT'.

S_ORDER-LOW = 5000.

S_ORDER-HIGH = 5300.

APPEND S_ORDER.

&----


*& EVENT BLOCKS *

&----


TOP-OF-PAGE.

WRITE: SY-ULINE(240).

NEW-LINE NO-SCROLLING.

WRITE: / SY-VLINE, 40 '**************** SALES AND DISTRIBUTION ******************'." 240 SY-VLINE COLOR 1.

NEW-LINE SCROLLING.

skip to line 2.

WRITE: 142 SY-VLINE.

FORMAT COLOR 1.

WRITE: / SY-ULINE(240),

/00 SY-VLINE,

05 'CUST NO ' COLOR 1 INVERSE,

20 'CUST NAME',

55 'CITY',

94 'COUNTRY',

111 'ORDER NO' COLOR 1 INVERSE,

128 'ORDER DATE',

149 'ORDER VALUE',

170 'ITEM VALUE',

185 'ITEM NO',

195 'ITEM DISCRIPTION',

230 'PLANT NO',

240 SY-VLINE,

SY-ULINE(240) .

FORMAT COLOR OFF.

&----


*& EVENT BLOCK FOR INPUT ACTION *

&----


SET PF-STATUS 'ENTER'.

AT USER-COMMAND.

READ LINE R OF CURRENT PAGE FIELD VALUE T.

SCROLL LIST TO PAGE T.

&----


*& EVENT BLOCKS FOR END-OF-PAGE *

&----


END-OF-PAGE.

IF SY-PAGNO NE N.

WRITE: SY-ULINE(240).

NEW-LINE NO-SCROLLING.

WRITE:/ SY-VLINE,40 '************* END OF THE PAGE',(3) SY-PAGNO,'of','XXX','***************',

106 'GO PAGE NO:' COLOR 6 INVERSE,118 T INPUT ON LEFT-JUSTIFIED ,SY-ULINE(240).

NEW-LINE SCROLLING.

skip to line R.

WRITE: 142 SY-VLINE.

ELSE.

WRITE: SY-ULINE(240).

NEW-LINE NO-SCROLLING.

WRITE:/ SY-VLINE,40 '************* END OF THE PAGE',(3) SY-PAGNO,'***************',

106 'GO PAGE NO:' COLOR 6 INVERSE,118 T INPUT ON LEFT-JUSTIFIED ,

SY-ULINE(240).

skip to line R.

WRITE: 142 SY-VLINE.

ENDIF.

&----


*& EXTRACTING DATA *

&----


START-OF-SELECTION.

FORM WRITE.

SELECT

K~KUNNR

K~NAME1

K~ORT01

K~LAND1

V~VBELN

V~ERDAT

V~NETWR

D~NETPR

D~POSNR

D~ARKTX

D~WERKS INTO CORRESPONDING FIELDS OF TABLE T_ORDERS FROM ( ( KNA1 AS K

INNER JOIN VBAK AS V ON KKUNNR = VKUNNR )

INNER JOIN VBAP AS D ON VVBELN = DVBELN )

WHERE KKUNNR IN S_CUSTNO AND VVBELN IN S_ORDER.

X = SY-DBCNT.

&----


*& DISPLAY DATA *

&----


SORT T_ORDERS BY KUNNR VBELN.

LOOP AT T_ORDERS INTO WA_ORDERS.

AT NEW KUNNR.

*CLEAR A.

NEW-PAGE LINE-COUNT P.

READ TABLE T_ORDERS INTO WA_ORDERS WITH KEY KUNNR = WA_ORDERS-KUNNR.

WRITE:/05 WA_ORDERS-KUNNR,

20 WA_ORDERS-NAME1,

55 WA_ORDERS-ORT01,

95 WA_ORDERS-LAND1.

ENDAT.

AT NEW VBELN.

READ TABLE T_ORDERS INTO WA_ORDERS WITH KEY VBELN = WA_ORDERS-VBELN.

WRITE:/112 WA_ORDERS-VBELN,

128 WA_ORDERS-ERDAT,

139 WA_ORDERS-NETWR.

A = A + WA_ORDERS-NETWR.

B = B + WA_ORDERS-NETWR.

ENDAT.

WRITE: /165 WA_ORDERS-NETPR,

185 WA_ORDERS-POSNR,

195 WA_ORDERS-ARKTX,

235 WA_ORDERS-WERKS.

&----


*& SUB TOTAL OF EVERY CUSTOMER *

&----


AT END OF KUNNR.

*SUM.

uline.

WRITE: /148 SY-ULINE(18).

FORMAT COLOR 3 .

WRITE: /18 'SUB TOTAL', 138 'RS',142 A. "WA_ORDERS-NETWR, '/-'.

WRITE: /148 SY-ULINE(18).

SKIP.

FORMAT COLOR OFF .

&----


*& SUB TOTAL IN WORDS BY CALLING SPELL_AMOUNT FUNCTION *

&----


CALL FUNCTION 'SPELL_AMOUNT'

EXPORTING

AMOUNT = A "WA_ORDERS-NETWR

CURRENCY = 'INR'

IMPORTING

IN_WORDS = SPELL.

FORMAT COLOR 3 .

NEW-LINE NO-SCROLLING.

WRITE: 01 SPELL-WORD .

NEW-LINE NO-SCROLLING.

WRITE:/08'AND',12 SPELL-DECWORD ,23 'RUPEES', 'ONLY.'.

FORMAT COLOR OFF .

uline.

SKIP TO LINE Q.

ENDAT.

.

&----


*& GRAND TOTAL *

&----


AT LAST.

*SUM.

WRITE: /148 SY-ULINE(18).

FORMAT COLOR 3 .

WRITE:/18'GRAND TOTAL', 139 'RS', 148 B ,'/-'." WA_ORDERS-NETWR,

FORMAT COLOR OFF.

WRITE: /148 SY-ULINE(18).

&----


*& GRAND TOTAL IN WORDS BY CALLING SPELL_AMOUNT FUNCTION *

&----


SKIP.

CALL FUNCTION 'SPELL_AMOUNT'

EXPORTING

AMOUNT = B "WA_ORDERS-NETWR

CURRENCY = 'INR'

IMPORTING

IN_WORDS = SPELL.

FORMAT COLOR 3 .

NEW-LINE NO-SCROLLING.

WRITE: 02 SPELL-WORD ,/08'AND',12 SPELL-DECWORD ,23 'RUPEES', 'ONLY.' .

FORMAT COLOR OFF.

SKIP TO LINE Q.

ENDAT.

*SCROLL LIST RIGHT.

*SCROLL LIST TO FIRST PAGE.

*SCROLL LIST INDEX 1 TO FIRST PAGE.

*SCROLL LIST TO LAST PAGE.

SET LEFT SCROLL-BOUNDARY COLUMN 35.

ENDLOOP.

ENDFORM.

&----


*& Form get_total_pageno

&----


  • text

----


FORM get_total_pageno.

WRITE SY-PAGNO TO N .

DO SY-PAGNO TIMES.

READ LINE R OF PAGE SY-INDEX.

REPLACE 'XXX' WITH N INTO SY-LISEL.

MODIFY LINE R OF PAGE SY-INDEX.

ENDDO.

ENDFORM. "get_total_pageno

Read only

former_member189631
Active Contributor
0 Likes
940

Hi Vijay,

Please try this,

CALL FUNCTION 'SPELL_AMOUNT'

  • EXPORTING

  • AMOUNT = 0

  • CURRENCY = ' '

  • FILLER = ' '

  • LANGUAGE = SY-LANGU

  • IMPORTING

  • IN_WORDS =

  • EXCEPTIONS

  • NOT_FOUND = 1

  • TOO_LARGE = 2

  • OTHERS = 3

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

Read only

aris_hidalgo
Contributor
0 Likes
940

Thank you guys that was fast!

Read only

RaymondGiuseppi
Active Contributor
0 Likes
941

Look at thread

Regards

Read only

Former Member
0 Likes
940

for spell amount in indian currency use fm

HR_IN_CHG_INR_WRDS