function gf_amount_in_word_indonesia (double ad_amount) return string
double ld_divisor,ld_large_amount,ld_tiny_amount,ld_dividen,ld_dummy
string ls_word
string ls_weight1,ls_weight2,ls_unit,ls_follower
string ls_prefix[] = {'SE','DUA ','TIGA ','EMPAT ','LIMA ','ENAM ','TUJUH ','DELAPAN ','SEMBILAN '}
string ls_sufix[] = {'SATU ','DUA ','TIGA ','EMPAT ','LIMA ','ENAM ','TUJUH ','DELAPAN ','SEMBILAN '}
 
ls_word = ''
ld_large_amount = abs(truncate(ad_amount,0) )
ld_tiny_amount = round((abs(ad_amount) - ld_large_amount ) * 100,0)
ld_divisor = 1000000000000.00

// tidak boleh lebih dari 999,999,999,999,997
if ad_amount > 999999999999997  THEN return 'OUT OF RANGE'

IF ad_amount < 0 THEN RETURN 'OUT OF RANGE'
//IF ld_large_amount > ld_divisor THEN return 'OUT OF RANGE'
 
DO WHILE ld_divisor >= 1
 
 ld_dividen = truncate(ld_large_amount / ld_divisor,0)
 ld_large_amount = mod(ld_large_amount,ld_divisor)
 
 ls_unit = ''
 IF ld_dividen > 0 THEN
  CHOOSE CASE ld_divisor
   CASE 1000000000000.00
    ls_unit = 'TRILYUN '
   CASE 1000000000.00
    ls_unit = 'MILYAR '  
   CASE 1000000.00
    ls_unit = 'JUTA '   
   CASE 1000.00
    ls_unit = 'RIBU '
  END CHOOSE
 END IF
 
 ls_weight1 = ''
 ld_dummy = ld_dividen
 IF ld_dummy >= 100 THEN ls_weight1 = ls_prefix[truncate(ld_dummy / 100,0) ] + 'RATUS '
 
 ld_dummy = mod(ld_dividen,100)
 CHOOSE CASE ld_dummy
  CASE IS < 10
   IF ld_dummy = 1 AND ls_unit = 'RIBU ' THEN
    ls_weight1 += 'SE'
   ELSEIF ld_dummy > 0 THEN
    ls_weight1 += ls_sufix[ld_dummy]
   END IF
  CASE 11 TO 19
   ls_weight1 += ls_prefix[mod(ld_dummy,10) ] + 'BELAS '
  CASE ELSE
   ls_weight1 += ls_prefix[truncate(ld_dummy / 10,0) ] + 'PULUH '
   IF mod(ld_dummy,10) > 0 THEN ls_weight1 += ls_sufix[mod(ld_dummy,10) ]
 END CHOOSE
 
 ls_word += ls_weight1 + ls_unit
 ld_divisor /= 1000.00
LOOP
 
IF truncate(ad_amount,0) = 0 THEN ls_word = 'NOL '
ls_follower = ''
CHOOSE CASE ld_tiny_amount
 CASE IS < 10
  IF ld_tiny_amount > 0 THEN ls_follower = 'KOMA NOL ' + ls_sufix[ld_tiny_amount]
 CASE ELSE
  ls_follower = 'KOMA ' + ls_sufix[truncate(ld_tiny_amount / 10,0) ]
  IF mod(ld_tiny_amount,10) > 0 THEN ls_follower += ls_sufix[mod(ld_tiny_amount,10) ]
END CHOOSE
 
//ls_word += 'Rupiah ' + ls_follower  --> tulisan rupiah
ls_word += ls_follower

 
IF ad_amount < 0 THEN ls_word = 'MINUS ' + ls_word
 
return trim(ls_word)

SELAMAT MENCOBA
Putu


mr_beemx wrote:

dear all

mohong bantuannya ....
gimana cara membuat kalimat terbilang dengan menggunakan powerbuilder
misal rp.2.750.000.000
terbilang (dua miliar tujuh ratuslima puluh juta rupiah)

by

din


No virus found in this incoming message. Checked by AVG - http://www.avg.com Version: 8.0.176 / Virus Database: 270.9.18/1848 - Release Date: 12/14/2008 12:28 PM

  


--
__._,_.___

-----------------------------------------------
IndoPB - Indonesia PB User Group
http://groups.yahoo.com/group/indopb




Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___

Kirim email ke