Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Cheque Printing Words ?
Message
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00326809
Message ID:
00328002
Views:
27
Try this. If it works please let me know over my email.
It was written in our currency format. Check it and change acoording to yours.

Thanks

Regards
Faruk Hosain

*******************************************************
* Taka.Prg *
* Copyright : Faruk Hosain, PROFESSIONALS WORKSHOP *
* Converts numeric string to currency format in words *
* call :- *
* ? Taka(amount) && where amount is the numeric*
* memory variable to convert *
*******************************************************

Function Taka
Para Value
If Value >999999999.99
Return Value
Endif

Private number, num, num1, num2, counter, paisa, digits, savetalk
Private Zerothousand , Zerolakh, Zerocrore

If SET('TALK')='ON'
Set talk off
Savetalk='ON'
Else
Savetalk='OFF'
EndIF

number=''
taka='Taka'

If Value < 1
taka=''
EndIf

num1=str(value,12,2)
counter=1
num=''
Zerothousand=substr(str(value),6,2)
Zerolakh=substr(str(value),4,2)
Zerocrore=substr(str(value),2,2)

Do While counter <= Len(num1)
If substr(num1,counter,1)=' '
counter=counter+1
Else
num=num+substr(num1,counter,1)
counter=counter+1
EndIf
EndDo

digits=at('.',num)
paisa=substr(num,digits+1,2)
digits=digits-1
num=substr(num,1,digits)
counter=digits

Do While counter >= 1

Do Case
Case counter=9
num1=substr(num,1,1)
num2=substr(num,2,1)
If num1='1'
Do TEENS
taka=taka+number
taka=taka+' Crore '
num=substr(num,3,7)
Else
Do TWODIGIT
taka=taka+number
num=substr(num,2,8)
EndIf

Case counter=8
num2=substr(num,1,1)
DO ONEDIGIT
taka=taka+number
If Zerocrore <> '00'
taka=taka+'Crore'
EndIf
num=substr(num,2,7)

Case counter=7
num1=substr(num,1,1)
num2=substr(num,2,1)
If num1='1'
Do TEENS
taka=taka+number
taka=taka+'Lakh'
num=substr(num,3,5)
Else
Do TWODIGIT
taka=taka+number
num=substr(num,2,6)
EndIf

Case counter=6
num2=substr(num,1,1)
DO ONEDIGIT
taka=taka+number
If Zerolakh <> '00'
taka=taka+'Lakh'
EndIf

num=substr(num,2,5)

Case counter=5
num1=substr(num,1,1)
num2=substr(num,2,1)
If num1='1'
DO TEENS
taka=taka+number+'Thousand'
num=substr(num,3,3)
Else
DO TWODIGIT
taka=taka+number
num=substr(num,2,4)
EndIf

Case counter=4
num2=substr(num,1,1)
DO ONEDIGIT
taka=taka+number
If Zerothousand <> '00'
taka=taka+'Thousand'
EndIf
num=substr(num,2,3)

Case counter=3
num2=substr(num,1,1)
DO ONEDIGIT
taka=taka+number
If num2 <> '0'
taka=taka+'Hundred'
EndIf
num=substr(num,2,2)

Case counter=2
num1=substr(num,1,1)
num2=substr(num,2,1)
If num1='1'
DO TEENS
taka=taka+number
Else
DO TWODIGIT
taka=taka+number
EndIf
num=num2

Case counter=1
num2=num
DO ONEDIGIT
taka=taka+number

EndCase
counter=counter-1

EndDo

If paisa='00'
taka=taka+'Only'
Else
taka=taka+'and'
num=paisa
paisa=' '
num1=substr(num,1,1)
num2=substr(num,2,1)
If num1='1'
DO TEENS
paisa=paisa+number
Else
DO TWODIGIT
paisa=paisa+number
DO ONEDIGIT
paisa=paisa+number
EndIf
taka=taka+' Paisa'+paisa+' Only'
EndIf

Set talk &Savetalk
Release number, num, num1,num2, counter, paisa, digits, savetalk
Return taka

PROC ONEDIGIT
Do Case
Case num2='0'
number=' '
Case num2='1'
number=' One '
Case num2='2'
number=' Two '
Case num2='3'
number=' Three '
Case num2='4'
number=' Four '
Case num2='5'
number=' Five '
Case num2='6'
number=' Six '
Case num2='7'
number=' Seven '
Case num2='8'
number=' Eight '
Case num2='9'
number=' Nine '
EndCase
Return

PROC TWODIGIT
Do Case
Case num1='0'
number=' '
* Case num1='1'
* number=' '
Case num1='2'
number=' Twenty '
Case num1='3'
number=' Thirty '
Case num1='4'
number=' Forty '
Case num1='5'
number=' Fifty '
Case num1='6'
number=' Sixty '
Case num1='7'
number=' Seventy '
Case num1='8'
number=' Eighty '
Case num1='9'
number=' Ninety '
EndCase


PROC TEENS
Do Case
Case num2='0'
number=' Ten '
Case num2='1'
number=' Eleven '
Case num2='2'
number=' Twelve '
Case num2='3'
number=' Thirteen '
Case num2='4'
number=' Forteen '
Case num2='5'
number=' Fifteen '
Case num2='6'
number=' Sixteen '
Case num2='7'
number=' Seventeen '
Case num2='8'
number=' Eighteen '
Case num2='9'
number=' Nineteen '
EndCase

counter=counter-1
Return
Faruk Hosain
MBA (New York)
MCSD (C#), MCAD C(#), MCDBA (SQL 2000)
Previous
Reply
Map
View

Click here to load this message in the networking platform