Rabu, 18 Mei 2011

...::Membuat Angka Terbilang di Foxpro::...

salam belajar......

teman-teman yang mungkin dapat tugas dari dosen tentang membuat angka terbilang di foxpro nih.. saya kasih source codenya mungkin bisa membantu teman-teman yang membutuhkanya..

1. silahkan membuat satu project baru
2. buat satu form
3. dan buat satu code baru

kemudian ketikkan listing berikut di tab code yang baru anda buat tadi...

Function fnterbilang
*-------------------

Lparameter mNumerik
Private MCHASIL,MNLOOP,MCUANG,MNONE,MNTWO,MNTREE
Private MCANGKA0,MCANGKA1,MCANGKA2,MCANGKA3
Private MCANGKA4,MCANGKA5,MCANGKA6,MCANGKA7
Private MCANGKA8,MCANGKA9
Private MCSATU,MCDUA,MCTIGA,MCGABUNG,MCSEN1,MCSEN2

MCHASIL=''
MCUANG=STR(MNUMERIK,15,2)
MNONE=1
MNTWO=2
MNTREE=3
MCANGKA0=''
MCANGKA1="Satu "
MCANGKA2="Dua "
MCANGKA3="Tiga "
MCANGKA4="Empat "
MCANGKA5="Lima "
MCANGKA6="Enam "
MCANGKA7="Tujuh "
MCANGKA8="Delapan "
MCANGKA9="Sembilan "
MCGABUNG=""

FOR MNLOOP = 1 To 4

MCSATU=SUBSTR(MCUANG,MNONE,1)
MCDUA=SUBSTR(MCUANG,MNTWO,1)
MCTIGA=SUBSTR(MCUANG,MNTREE,1)
MCGABUNG=MCSATU+MCDUA+MCTIGA
IF VAL(MCSATU)=1
MCHASIL=MCHASIL+ "Seratus "
ELSE
IF VAl(MCSATU)>1
MCHASIL=MCHASIL+MCANGKA&MCSATU+ "Ratus "
ENDIF
ENDIF
DO CASE
CASE VAL(MCDUA)=1
DO CASE
CASE VAL(MCTIGA)=0
MCHASIL=MCHASIL+"Sepuluh "
CASE VAL(MCTIGA)=1
MCHASIL=MCHASIL+"Sebelas "
OTHER
MCHASIL=MCHASIL+ALLTRIM(MCANGKA&MCTIGA)+;
"belas "
ENDCASE
CASE VAL(MCDUA)>1
MCHASIL=MCHASIL+MCANGKA&MCDUA+"Puluh "+;
MCANGKA&MCTIGA
CASE VAL(MCDUA)=0.AND.VAL(MCTIGA)>0
IF (MNLOOP=3.AND.MCGABUNG="001") .OR. ;
(MNLOOP=3.AND.MCGABUNG=" 1")
MCHASIL=MCHASIL+"Seribu "
ELSE
MCHASIL=MCHASIL+MCANGKA&MCTIGA
ENDIF
ENDCASE

DO CASE
CASE MNLOOP=1.AND.VAL(MCGABUNG)>0
MCHASIL=MCHASIL+"Milyar "
CASE MNLOOP=2.AND.VAL(MCGABUNG)>0
MCHASIL=MCHASIL+"Juta "
CASE MNLOOP=3.AND.VAL(MCGABUNG)>0
IF MCGABUNG="001".OR.MCGABUNG=" 1"
MCHASIL=MCHASIL+""
ELSE
MCHASIL=MCHASIL+"Ribu "
ENDIF
ENDCASE
MNONE=MNONE+3
MNTWO=MNTWO+3
MNTREE=MNTREE+3
NEXT MNLOOP
MCSEN1=SUBSTR(MCUANG,14,1)
MCSEN2=SUBSTR(MCUANG,15,1)
IF LEN(MCHASIL)>1
MCHASIL=MCHASIL+"Rupiah "
ENDIF

DO CASE
CASE VAL(MCSEN1)=0.AND.VAL(MCSEN2)>0
MCHASIL=MCHASIL+MCANGKA&MCSEN2+"Sen"
CASE VAL(MCSEN1)=1
DO CASE
CASE VAL(MCSEN2)=0
MCHASIL=MCHASIL+"Sepuluh Sen"
CASE VAL(MCSEN2)=1
MCHASIL=MCHASIL+"Sebelas Sen"
CASE VAL(MCSEN2)>1
MCHASIL=MCHASIL+ALLTRIM(MCANGKA&MCSEN2)+;
"belas Sen"
ENDCASE
CASE VAL(MCSEN1)>1
MCHASIL=MCHASIL+MCANGKA&MCSEN1+ "Puluh "+;
MCANGKA&MCSEN2 + "Sen "
ENDCASE
RETURN MCHASIL

nah.. sekarang buka formnya dan desain form seperti tampilan berikut ini :




ketikan listing pada object pada form1 procedure init
Set Proc to
SET PROCEDURE TO terbilang ADDITIVE

With Thisform
.text4.value=0
.text4.inputmask='999,999,999,999.99'
.edit1.value=''
.text4.setfocus
Endwith
do case
case dow(date())=1
mhari="Minggu"
case dow(date())=2
mhari="Senin"
case dow(date())=3
mhari="Selasa"
case dow(date())=4
mhari="Rabu"
case dow(date())=5
mhari="Kamis"
case dow(date())=6
mhari="Jumat"
case dow(date())=7
mhari="Sabtu"
endcase
thisform.label3.Caption =mhari

dan object form1 procedure refresh()
a=thisform.text4.value
thisform.edit1.value=fnterbilang(a)

kemudian object jumlah_dana procedure lostfocus
thisform.Refresh()

object terbilang procedure refresh
a=thisform.text4.value
thisform.edit1.value=fnterbilang(a)

terakhir button keluar
thisform.release()

semoga bisa membantu, kalau mau download source codenya di sini

3 komentar:

Anonim mengatakan...

bro...
gimana cara buat report utk cetak Cek?, mohon bantuannya dong, masalahnya ukuran kertas kan kecil belum lagi klo pk @say..., terbilang tidak muat

thk sebelumnya

Anonim mengatakan...

cara save terbilang itu gmn bro??
biar bs masuk ke tabel

Unknown mengatakan...

Thx mr.good man..

Posting Komentar

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Akbar