Re: Showing Written $ Amounts
Posted in 1996
Steven Jay Evans (sevans@vixa.voyager.net) wrote: : Any one know how to (Under Informix 4gl) chaanges ie. $24.50 into Twenty F four dollars and 50/100 : E-mail at sevans@vixa.voyager.net Below is my way of doing it, I think may be you need to modify a bit. # Function testword() below is just a temporary function to test # the numtowrd(numvar) function in converting the number into word. To # use the numtowrd(numvar) function, just call from anywhere in in the # program. This function receive a decimal(20,2) data type and return # a char(250) data type. If the original number is not decimal(20,2), # it can be converted to this data type easily. FUNCTION testword() define num decimal(20,2), dnum char(27), wrd char(250), x char(1) open window w_pwrd at 6,30 with 1 rows, 18 columns attribute (border) whenever error continue error "PLEASE ENTER NUMBERS ONLY" prompt "" for num let wrd = numtowrd(num) close window w_pwrd let formname = formpath, "dnumwrd" open window w_dwrd at 9,2 with form formname display wrd to wrd let dnum = num using "$$$$,$$$,$$$,$$$,$$$,$$$.&&" display dnum to dnum prompt "" for char x close window w_dwrd END FUNCTION FUNCTION numtowrd(numvar) define aa, bb, cc, dd, ee, ff, gg smallint, numvar decimal(20,2), numalp char(21), numcha char(3), numwrd1, numwrd2 char(250) call repo_id("numtowrd","fnc_fl5") let numwrd1 = "" let numalp = numvar let aa = length(numalp) let bb = aa mod 3 let cc = aa / 3 for dd = 1 to cc let ee = aa - ((dd - 1) * 3) let ff = ee - 2 let numcha = numalp[ff,ee] let numwrd1 = cnv(dd,numcha) let numwrd2 = numwrd1 clipped, numwrd2 clipped end for if bb <> 0 then let numcha = numalp[1,bb] case bb when 1 let numcha = "00", numcha clipped when 2 let numcha = "0", numcha clipped end case let numwrd1 = cnv(dd,numcha) let numwrd2 = numwrd1 clipped, numwrd2 clipped end if let numwrd2 = "Ringgit Malaysia :", numwrd2 clipped, " Only" return(numwrd2) END FUNCTION FUNCTION cnv(no1,ch1) define no1 smallint, ch1 char(3), sch char(1), dch char(2), wrd char(50) if ch1 = "000" or ch1 = ".00" then if no1 = 1 and ch1 = ".00" then let wrd = "" return(wrd) else let wrd = "" return(wrd) end if end if let sch = ch1[1] case ch1[1] when "0" let wrd = "" when "" let wrd = "" when "." let wrd = " and sen" otherwise let wrd = cnv1(sch) clipped, " Hundred" end case let dch = ch1[2,3] case ch1[2] when "" let wrd = wrd clipped, "" when "1" let wrd = wrd clipped, cnv2(dch) clipped otherwise let wrd = wrd clipped, cnv3(dch) clipped end case case no1 when 1 let wrd = wrd clipped, "" when 2 let wrd = wrd clipped, "" when 3 let wrd = wrd clipped, " Thousand" when 4 let wrd = wrd clipped, " Million" when 5 let wrd = wrd clipped, " Billion" when 6 let wrd = wrd clipped, " Trillion" when 7 let wrd = wrd clipped, " Zillion" end case return(wrd) END FUNCTION FUNCTION cnv1(num1) define num1 char(1), wrd1 char(30) case num1 when "1" let wrd1 = " One" when "2" let wrd1 = " Two" when "3" let wrd1 = " Three" when "4" let wrd1 = " Four" when "5" let wrd1 = " Five" when "6" let wrd1 = " Six" when "7" let wrd1 = " Seven" when "8" let wrd1 = " Eight" when "9" let wrd1 = " Nine" end case return(wrd1) END FUNCTION FUNCTION cnv2(num1) define num1 char(2), wrd1 char(30) case num1[2] when "0" let wrd1 = " Ten" when "1" let wrd1 = " Eleven" when "2" let wrd1 = " Twelve" when "3" let wrd1 = " Thirteen" when "4" let wrd1 = " Fourteen" when "5" let wrd1 = " Fifteen" when "6" let wrd1 = " Sixteen" when "7" let wrd1 = " Seventeen" when "8" let wrd1 = " Eighteen" when "9" let wrd1 = " Nineteen" end case return(wrd1) END FUNCTION FUNCTION cnv3(num1) define num1 char(2), num2 char(1), wrd1 char(30) case num1[1] when "0" let wrd1 = "" when "2" let wrd1 = " Twenty" when "3" let wrd1 = " Thirty" when "4" let wrd1 = " Forty" when "5" let wrd1 = " Fifty" when "6" let wrd1 = " Sixty" when "7" let wrd1 = " Seventy" when "8" let wrd1 = " Eighty" when "9" let wrd1 = " Ninety" end case let num2 = num1[2] let wrd1 = wrd1 clipped, cnv1(num2) clipped return(wrd1) END FUNCTION --------------- ///I\\\\\\ Ahmad Pakhri Yahya // o o \\\\ Supervisor, Admin, Root, DBA // v \\\\ ---------------------------------------------------- // - \\\\ ISD, Aseambankers Malaysia Berhad /// \\\\\\ Kuala Lumpur, Malaysia. ---------------