cancel
Showing results for 
Search instead for 
Did you mean: 

To print Lakhs instead of thousand for India cheque

Former Member
0 Kudos

Dear all,

For India cheque the wording printed for cheque amount for thousand is Lakhs. My abaper has problem and unable to print Lakhs instead of thousand.

Eg: 400,800.00 is printed as four lakhs and eight hundred only instead of four thousand and eight hundred only.

Can any one share how you managed to print Lakhs instead of thousand for india cheque? Any function can be used for this?

Thank you very much in advance for your assistance.

kind rgds,

Dahlia

Accepted Solutions (1)

Accepted Solutions (1)

former_member387317
Active Contributor
0 Kudos

Hi Dahlia Tan,

Use FM

HR_IN_CHG_INR_WRDS

Import parameters               Value

 AMT_IN_NUM                                400,800.00


 Export parameters               Value

 AMT_IN_WORDS                     FOUR LAKH EIGHT HUNDRED Rupees

Hope it will solve your problem..

Thanks & Regards

ilesh 24x7

Answers (5)

Answers (5)

Former Member
0 Kudos

hi

ask ur abaper to use function - 'HR_IN_CHG_INR_WRDS'.

i think he is using spell_amt presently.

regards

Former Member
0 Kudos

Hi Dahlia,

Please check the Currency setting in T-code: OY01.

Also controlled via standard function module to convert the format of currency,

The name is SPELL_AMOUNT

FUNCTION zsdfmc2_india_amtfmt.

*"----


""Local interface:

*" IMPORTING

*" VALUE(AMOUNT) DEFAULT 0

*" EXPORTING

*" VALUE(NEW_AMOUNT) TYPE C

*" EXCEPTIONS

*" TOO_LONG

*"----


DATA spell LIKE spell.

DATA itemline TYPE i.

DATA countamt(15).

DATA netwr TYPE p DECIMALS 2.

DATA sign.

CHECK NOT amount IS INITIAL.

CLEAR: countamt, sign.

MOVE amount TO countamt.

SEARCH countamt FOR '-'.

IF sy-subrc = 0.

SPLIT countamt AT '-' INTO countamt sign.

CONDENSE countamt.

sign = '-'.

ENDIF.

CONDENSE countamt NO-GAPS.

itemline = strlen( countamt ).

MOVE countamt TO netwr.

IF itemline <= 8.

WRITE netwr TO new_amount DECIMALS 2.

ELSEIF itemline = 9.

WRITE netwr TO new_amount USING EDIT MASK 'V_,__,___.__'.

ELSEIF itemline = 10.

WRITE netwr TO new_amount USING EDIT MASK 'V__,__,___.__'.

ELSEIF itemline = 11.

WRITE netwr TO new_amount USING EDIT MASK 'V_,__,__,___.__'.

ELSEIF itemline = 12.

WRITE netwr TO new_amount USING EDIT MASK 'V__,__,__,___.__'.

ELSE.

RAISE too_long.

EXIT.

ENDIF.

CONDENSE new_amount NO-GAPS.

CONCATENATE sign new_amount INTO new_amount.

CONDENSE new_amount NO-GAPS.

ENDFUNCTION.

Hope this helps !

Rgds,

x-coll

Former Member
0 Kudos

CALL FUNCTION 'SPELL_AMOUNT'

EXPORTING

AMOUNT = V_TOTAL

CURRENCY = WA_EKKO-WAERS

  • FILLER = ' '

LANGUAGE = SY-LANGU

IMPORTING

IN_WORDS = WA_SPELL

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.

former_member480923
Active Contributor
0 Kudos

Call the Function Module Spell_amount in a Subroutine. Also check the entries in the table T015Z, before you do the print.

Hope That Helps

Anirban M.

Mohamed_Mukhtar
Active Contributor
0 Kudos

Hi ,

Create a subroutine pool in SE38 and call that in your script

Try to use function module : SPELL_AMOUNT

Example Program : RF_SPELL

Regards