Data Classification: 0
Key Note: (0-Public; 1-Internal; 2-Confidential; 3-Strictly
Confidential)

Atau kayak gini :
 
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, &
 ls_prefix[] = {'SE','DUA ','TIGA ','EMPAT ','LIMA ','ENAM ','TUJUH
','DELAPAN ','SEMBILAN '}, &
 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
 
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 += ls_follower
 
IF ad_amount < 0 THEN ls_word = 'MINUS ' + ls_word
 
return trim(ls_word)
 
Setelah itu jalanin fungsi ini 
 
f_amount_in_word(251450)

Regards, 

 Ruby Zanuar Z.
 IT-Employee Benefit
 PT. Asuransi ALLIANZ Life Indonesia
 Summitmas II Lt. 19
 Jl. Jend. Sudirman kav 61-62
 Jakarta, 12190
 Phone  : 62-21-52998888 Ext. 2082
 Fax          : 62-21-52998880, 62-21-30003400
 E-mail : [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > 
 

________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf
Of MAJID
Sent: Thursday, December 27, 2007 6:17 AM
To: [email protected]
Subject: Re: [indopb] Adakah contoh Fungsi Terbilang ?



Misal nama DataWindow namanya= dw_header
Misal Colom Name yang mau di BILANG kan namanya : jumlah
tinggal bikin Windows function: misal namanya :wf_terbilang
 
Tinggal manggil! tempatkan di st_terbilang.Text !
------------------------------------------------------------------------
------
ilTerbilang = dw_header.GetItemNumber(dw_header.RowCount(),"jumlah")
dw_header.Object.st_terbilang.Text = '# ' +
wf_bilang(String(ilTerbilang)) + ' Rupiah #'
------------------------------------------------------------------------
------
 
"wf_terbilang" (string as_bilang) return string  -->isinya kayak gini:
------------------------------------------------------------------------
-
INT   li_LenBil, I
STRING
ls_BilStr,ls_Bs0,ls_Bs1,ls_Bs2,ls_Bs3,ls_TeksKwitansi,ls_TeksJuta,ls_Tek
sKon,ls_TeksRibu,ls_TeksSatuan,ls_TeksMilyard
STRING  ls_Teks,ls_Tsalah,ls_Tbenar,ls_min
 
ls_Teks='Satu    Dua     Tiga    Empat   Lima    Enam    Tujuh   Delapan
SembilanNol     '
ls_Tsalah='Satu Puluh Satu    Satu Puluh Dua     Satu Puluh Tiga    Satu
Puluh Empat   Satu Puluh Lima    Satu Puluh Enam    Satu Puluh Tujuh
Satu Puluh Delapan Satu Puluh SembilanSatu Puluh         Satu Ratus
Nol Ratus          Nol Puluh          Nol                '
ls_Tbenar='Sebelas       Duabelas      Tigabelas     Empatbelas
Limabelas     Enambelas     Tujuhbelas    Delapanbelas  Sembilanbelas
Sepuluh       Seratus                                                 '
 
if left(as_bilang,1) = '-' Then
 ls_min = 'Min '
 as_bilang = right(as_bilang,len(as_bilang) -1 )
end if
ls_BilStr=lefttrim(as_Bilang)
li_LenBil=len(ls_BilStr)
 
if li_LenBil < 12 then
   for I=1 to 12 - li_LenBil
       ls_BilStr = '0' + ls_BilStr
   next
end if
 
ls_Bs0 = MID(ls_BilStr,1,3)
ls_Bs1 = MID(ls_BilStr,4,3)
ls_Bs2 = MID(ls_BilStr,7,3)
ls_Bs3 = MID(ls_BilStr,10,3)
 
ls_TeksMilyard =
wf_Koreksi(wf_UbahTeks(ls_Bs0,ls_Teks),ls_Tsalah,ls_Tbenar)
if ls_TeksMilyard <> "" THEN
   ls_TeksMilyard = ls_TeksMilyard + ' Milyard '
end if
 
ls_TeksJuta =
wf_Koreksi(wf_UbahTeks(ls_Bs1,ls_Teks),ls_Tsalah,ls_Tbenar)
if ls_TeksJuta <> "" THEN
   ls_TeksJuta = ls_TeksJuta + ' Juta '
end if
 
ls_TeksRibu =
wf_Koreksi(wf_UbahTeks(ls_Bs2,ls_Teks),ls_Tsalah,ls_Tbenar)
if ls_TeksRibu <> "" Then
   ls_TeksRibu = ls_TeksRibu + ' Ribu '
end if
 
if ls_TeksRibu = 'Satu  Ribu ' Then 
   ls_TeksRibu = 'Seribu '
end if
 
ls_TeksSatuan =
wf_Koreksi(wf_UbahTeks(ls_Bs3,ls_Teks),ls_Tsalah,ls_Tbenar)
if ls_TeksSatuan <> "" Then
   ls_TeksSatuan = ls_TeksSatuan
end if
 
ls_TeksKwitansi = ls_min + ls_TeksMilyard + ls_TeksJuta + ls_TeksRibu +
ls_TeksSatuan  //+ ' Rupiah'
return ls_TeksKwitansi


        ----- Original Message ----- 
        From: stvhui <mailto:[EMAIL PROTECTED]>  
        To: [email protected] <mailto:[email protected]>  
        Sent: Wednesday, December 26, 2007 5:40 PM
        Subject: [indopb] Adakah contoh Fungsi Terbilang ?


        Hello PB'ers
        
        Adakah contoh Fungsi Terbilang ?
        
        Thanks
        Steven 081 2604 1581
        
        

 
This email and any files transmitted with it are confidential and intended 
solely for the use of the individual or entity to whom they are addressed. If 
you have received this email in error please notify the system manager. This 
message contains confidential information and is intended only for the 
individual named. If you are not the named addressee you should not 
disseminate, distribute or copy this e-mail.

Kirim email ke