Minggu, 13 September 2009

Belajar Visual Basic

Kebanyakan developer aplikasi akutansi menggunakan fungsi konversi untuk menampilkan angka dan juga dalam bentuk teks. Sehingga dari berbagai programmer memiliki satu cara tersendiri untuk membuat fungsi konversi angka ke teks. Dan pada artikel kali ini kami ingin menyajikan fungsi tsb dalam bentuk yang berbeda sesuai dengan kebutuhan kami sendiri, dan ingin sekali membagi bagi dengan rekan rekan yg belum sempat membuatnya. Dipersilahkan untuk memodifikasi fungsi tsb sesuai dengan selera dan kebutuhan Anda.

Jika ada kesalahan atau ketidaktepatan hasil konversi, kami dengan senang hati menerimanya. Silahkan send email ke "diehs@ymail.com" Berikut kode program yg bisa anda copy.

 
FUNCTION AngkaToTeks( lnAngka )
LOCAL lcAngka, lcAmt, lcTeks, i
 
i = 0
lcAmt = ""
STORE "Satu    Dua     Tiga    Empat   Lima    " + ;
      "Enam    Tujuh   Delapan Sembilan" TO lcTeks
 
lcAngka = LEFT( STR(ROUND(lnAngka,0), 9), 9)
 
FOR i = 1 TO 3
 
 IF SUBSTR(lcAngka,1,1) = "1"
  lcAmt = lcAmt + " Seratus "
 ENDIF
 IF SUBSTR(lcAngka,1,1) > "1"
    lcAmt = lcAmt + RTRIM( SUBSTR( lcTeks, 
                VAL( SUBSTR( lcAngka,1,1)) * 8-7, 8)) + " Ratus "
 ENDIF
 IF SUBSTR(lcAngka,2,1) = "1"
    DO CASE
       CASE SUBSTR(lcAngka,3,1) = "0"
            lcAmt = lcAmt + " Sepuluh "
       CASE SUBSTR(lcAngka,3,1) = "1"
            lcAmt = lcAmt + " Sebelas "
       CASE SUBSTR(lcAngka,3,1) > "1"
            lcAmt = lcAmt + RTRIM( SUBSTR( lcTeks, 
                        VAL( SUBSTR( lcAngka,3,1)) * 8-7, 8)) + " Belas "
    ENDCASE
 ENDIF
 
 IF SUBSTR(lcAngka,2,1) > "1"
    lcAmt = lcAmt + RTRIM( SUBSTR( lcTeks, 
                VAL( SUBSTR(lcAngka,2,1)) * 8-7,8)) + " Puluh "
    IF SUBSTR( lcAngka,3,1) > "0"
       lcAmt = lcAmt + RTRIM( SUBSTR( lcTeks, 
                   VAL( SUBSTR( lcAngka,3,1)) * 8-7, 8))
    ENDIF
 ENDIF
 
 IF SUBSTR(lcAngka,2,1) = "0" AND SUBSTR( lcAngka,3,1) > "0"
    lcAmt = lcAmt + RTRIM( SUBSTR( lcTeks, 
                VAL( SUBSTR( lcAngka,3,1)) * 8-7, 8))
 ENDIF
 
 IF SUBSTR(lcAngka,1,2) = "  " AND SUBSTR( lcAngka,3,1) > "0"
    lcAmt = lcAmt + RTRIM( SUBSTR( lcTeks, 
                VAL( SUBSTR( lcAngka,3,1)) * 8-7, 8))
 ENDIF
 
IF !EMPTY(lcAmt) AND LEN(lcAngka) = 9
   lcAmt = lcAmt + " Juta "
ENDIF
 
IF !EMPTY(lcAmt) AND LEN(lcAngka) = 6
   lcAmt = lcAmt + " Ribu "
ENDIF
 
IF !EMPTY(lcAmt) AND LEN(lcAngka) = 3
   lcAmt = lcAmt + " Rupiah "
ENDIF
 
lcAngka = SUBSTR(lcAngka, 4)
 
ENDFOR
 
RETURN lcAmt
ENDFUNC





Tidak ada komentar:

Posting Komentar