Convert decimal number to text string for check printing MODULE('') NumberToWords(*DECIMAL PassedAmount),STRING END NumberToWords PROCEDURE(*DECIMAL PassedAmount) Amount DECIMAL(8,2),AUTO AmtString CSTRING(80),AUTO TempAmt1 BYTE,AUTO TempAmt2 BYTE,AUTO CODE IF NOT INRANGE(PassedAmount,0.01,999999.99) MESSAGE('Amount is outside range supported by function','ERROR',ICON:Hand) RETURN('') END Amount = PassedAmount AmtString = '' IF Amount < 1 AmtString = ' ZERO' ELSE IF Amount >= 100000 TempAmt1 = INT(Amount/100000) DO OneToNine AmtString = AmtString & ' HUNDRED' Amount -= INT(Amount/100000) * 100000 AmtString = CHOOSE(Amount < 1000, AmtString & ' THOUSAND', AmtString) END IF Amount >= 10000 TempAmt1 = INT(Amount/10000) TempAmt2 = CHOOSE(TempAmt1 = 1, INT((Amount-10000)/1000), 0) DO TenToNinety Amount -= CHOOSE(INT(Amount/10000) = 1, (INT(Amount/1000)*1000), 0) Amount -= INT(Amount/10000) * 10000 AmtString = CHOOSE(Amount < 1000, AmtString & ' THOUSAND', AmtString) END IF Amount >= 1000 TempAmt1 = INT(Amount/1000) DO OneToNine AmtString = AmtString & ' THOUSAND' Amount -= INT(Amount/1000) * 1000 END IF Amount >= 100 TempAmt1 = INT(Amount/100) DO OneToNine AmtString = AmtString & ' HUNDRED' Amount -= INT(Amount/100) * 100 END IF Amount >= 10 TempAmt1 = INT(Amount/10) TempAmt2 = CHOOSE(TempAmt1 = 1, INT(Amount-10), 0) DO TenToNinety Amount -= CHOOSE(INT(Amount/10) = 1, INT(Amount), 0) Amount -= INT(Amount/10) * 10 END IF Amount >= 1 TempAmt1 = INT(Amount) DO OneToNine Amount -= INT(Amount) END END IF Amount RETURN(LEFT(AmtString & ' and ' & FORMAT(Amount*100,@N02) & '/100')) ELSE RETURN(LEFT(AmtString & ' and NO/100')) END OneToNine ROUTINE EXECUTE TempAmt1 AmtString = AmtString & ' ONE' AmtString = AmtString & ' TWO' AmtString = AmtString & ' THREE' AmtString = AmtString & ' FOUR' AmtString = AmtString & ' FIVE' AmtString = AmtString & ' SIX' AmtString = AmtString & ' SEVEN' AmtString = AmtString & ' EIGHT' AmtString = AmtString & ' NINE' END TenToNinety ROUTINE EXECUTE TempAmt1 BEGIN EXECUTE TempAmt2 + 1 AmtString = AmtString & ' TEN' AmtString = AmtString & ' ELEVEN' AmtString = AmtString & ' TWELVE' AmtString = AmtString & ' THIRTEEN' AmtString = AmtString & ' FOURTEEN' AmtString = AmtString & ' FIFTEEN' AmtString = AmtString & ' SIXTEEN' AmtString = AmtString & ' SEVENTEEN' AmtString = AmtString & ' EIGHTEEN' AmtString = AmtString & ' NINETEEN' END END AmtString = AmtString & ' TWENTY' AmtString = AmtString & ' THIRTY' AmtString = AmtString & ' FORTY' AmtString = AmtString & ' FIFTY' AmtString = AmtString & ' SIXTY' AmtString = AmtString & ' SEVENTY' AmtString = AmtString & ' EIGHTY' AmtString = AmtString & ' NINETY' END