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)