‎2007 Mar 20 7:35 AM
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!
‎2007 Mar 20 7:48 AM
‎2007 Mar 20 7:39 AM
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
‎2007 Mar 20 7:39 AM
‎2007 Mar 20 7:40 AM
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
‎2007 Mar 20 7:42 AM
&----
*& 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
‎2007 Mar 20 7:42 AM
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.
‎2007 Mar 20 7:46 AM
‎2007 Mar 20 7:48 AM
‎2007 Mar 20 7:52 AM