Form digunakan untuk mengolah dan memproses data dalam suatu aplikasi. menambah
data, mengedit data, menghapus data, menampilkan data atau mencari data dapat
dilakukan melalui form dengan tampilan grafhics yang bagus. Sebuah form disimpan
dengan ekstensi.SCX
Contoh pembuatan program aplikasi pengolahan Data Stok Barang membutuhkan banyak
sekali form yang digunakan untuk mengolah data.
Grid
Gambar 4.2 Tampilan designer Form
A. PROPERTIS OBJECT
Nama Propertis Nilai
Object
Form Caption Pengolahan Data Petugas
Name Petugas
Auto Center .T.
MDIForm .T.
ShowWindows 1-In Top-Level
Windowstate 0-Normal
Label1 Caption Kode Petugas
Label2 Caption Nama
Label3 Caption Jabatan
Label4 Caption Sandi
Text1 Name Txtkode
Maxlength 5
Text2 Name Txtnama
Maxlength 20
Text3 Name Txtjabatan
Maxlength 20
Text4 Name txtSandi
PassworChar *
Maxlength 25
Text5 Name Txtcari
Maxlength 20
Command1 Name Baru
Caption \<Baru
Command2 Name Simpan
Caption \<Simpan
Command3 Name Batal
Caption \<Batal
Command4 Name Rubah
Caption \<Rubah
Command5 Name Hapus
Caption \<Hapus
Command6 Name Atas
Caption |<
Cammand7 Name Mundur
Caption <
Command8 Name Maju
Caption >
Command9 Name Bawah
Caption >|
Command10 Name Cari
Caption \<Cari
Grid1 Name Grid1
ReadOnly .T.
RecordSource Petugas
Setelah Design Form selesai kemudian kita tinggal menuliskan code program sebagai
berikut :
B. PENULISAN CODE PROGRAM
1) Aktifkan Form dengan mengklik judul form, kemudian pilih
Activate Event pada properties form Klik Dua kali maka akan tampil jendela
tempat penulisan Code program seperti gambar dibawah ini.
select petugas
set filter to
if delete()
pack
endif
thisform.release()
2. FORM ENTRY SUPPLER
Untuk memulai membuat Form Supplaer langkah yang dilakukan sama seperti
membuat Form petugas. Desainglah form hingga seperti gambar dibawah ini :
B. METHODE (PROSEDURE)
Methode (procedure) digunakan untuk mempermudah dalam penulisan code program,
agar tidak terjadi penulisan code secara berulang –ulang
Langkah-langkah dalam membuat procedure yaitu
1) Pilih Menu Form kemudian plih Submenu Methode kemudian akan tampil
windows New Methode seperti gambar dibawah ini
1) Prosedure Matiisian
thisform.txtkdsup.enabled=.f.
thisform.txtnmsup.enabled=.f.
thisform.txtalamat.enabled=.f.
thisform.txttlp.enabled=.f.
2) Prosedure Hidupisian
thisform.txtnmsup.enabled=.t.
thisform.txtalamat.enabled=.t.
thisform.txttlp.enabled=.t.
3) Prosedure Matitombol
thisform.baru.enabled=.f.
thisform.simpan.enabled=.f.
thisform.batal.enabled=.f.
thisform.rubah.enabled=.f.
thisform.hapus.enabled=.f.
thisform.cari.enabled=.f.
thisform.keluar.enabled=.f.
thisform.maju.enabled=.f.
thisform.mundur.enabled=.f.
4) Prosedure Hidupl
thisform.baru.enabled=.t.
thisform.simpan.enabled=.t.
thisform.batal.enabled=.t.
thisform.rubah.enabled=.t.
thisform.hapus.enabled=.t.
thisform.cari.enabled=.t.
thisform.keluar.enabled=.t.
thisform.maju.enabled=.t.
thisform.mundur.enabled=.t.
5) Prosedure Bersihisian
thisform.txtkdsup.value=" "
thisform. txtnmsup.value=" "
thisform.txtalamat.value=" "
thisform. txttlp.value=" "
6) Prosedure ambildata
select suplier
thisform.txtkdsup.value=kdsup
thisform.txtnmsup.value=nmsup
thisform.txtalamat.value=alamat
thisform.txttlp.value=telp
7) Prosedure No
select suplier
set order to kdsup
goto bottom
if kdsup=space(9)
mkdptgs="SPL-00001"
else
mno=val(right(kdsup,5))+1
do case
case mno<10
mkdptgs="SPL-0000"+ltrim(str(mno))
case mno<100
mkdptgs="SPL-000"+ltrim(str(mno))
case mno<1000
mkdptgs="SPL-00"+ltrim(str(mno))
case mno<10000
mkdptgs="SPL-0"+ltrim(str(mno))
case mno<100000
mkdptgs="SPL-"+ltrim(str(mno))
endcase
endif
thisform.tXTKDsup.value=mkdptgs
8) Prosedure Simpandata
replace Kdsup with thisform.txtkdsup.value
replace nmsup with thisform.txtnmsup.value
replace alamat with thisform.txtalamat.value
replace telp with thisform.txttlp.value
6) Prosedure ambildata
thisform.txtkodejns.value=kdjns
thisform.txtjenis.value=jenis
7) Prosedure No
select jenis
set order to kdjns
goto bottom
if kdJNs=space(9)
mkdjns="KYP-00001"
else
mno=val(right(kdjns,5))+1
do case
case mno<10
mkdjns="KYP-0000"+ltrim(str(mno))
case mno<100
mkdjns="KYP-000"+ltrim(str(mno))
case mno<1000
mkdjns="KYP-00"+ltrim(str(mno))
case mno<10000
mkdjns="KYP-0"+ltrim(str(mno))
case mno<100000
mkdjns="KYP-"+ltrim(str(mno))
endcase
endif
thisform.tXTKODEJNS.value=mkdjns
8) Prosedure Simpandata
replace Kdjns with thisform.txtkodejns.value
replace jenis with thisform.txtjenis.value
9) Prosedure Active Form
set delete on
select jenis
set order to kdjns
count to ada
if ada >0
goto top
thisform.ambildata()
thisform.hiduptombol()
thisform.simpan.enabled=.f.
thisform.batal.enabled=.f.
else
thisform.bersihlayar()
thisform.matitombol()
thisform.baru.enabled=.t.
thisform.keluar.enabled=.t.
endif
thisform.matiisian()
thisform.txtcari.visible=.f.
10) Prosedure Tombol Baru Clik
posisi=recno()
thisform.hidupisian()
thisform.bersihlayar()
thisform.matitombol()
thisform.batal.enabled=.t.
thisform.simpan.enabled=.t.
THISFORM.NO()
thisform. txtjenis.setfocus()
11) Prosedure Simpan Clik
set delete off
if empty(thisform. txtkodejns.value)
messagebox("Kode Jenis Barang Harus DiIsi !",0+64,"Informasi")
else
vkdjns=thisform. txtkodejns.value
select jenis
set order to kdjns
set filter to
seek vkdjns
if found()
p=messagebox("Data Sudah Ada,Apakah Mau DiPerbaharui ?",4+64,"Info")
if p=6
recall
thisform.simpandata()
endif
else
append blank
thisform.simpandata()
endif
thisform.hiduptombol()
thisform.simpan.enabled=.f.
thisform.batal.enabled=.f.
set delete on
thisform.matiisian()
thisform. grid1.refresh()
endif
12) Prosedure Batal Clik
thisform.bersihlayar()
select jenis
set order to kodejns
count to ada
if ada > 0
goto posisi
thisform.ambildata()
thisform.hiduptombol()
thisform.simpan.enabled=.f.
thisform.batal.enabled=.f.
else
thisform.bersihlayar()
thisform.matiisian()
thisform.baru.enabled=.t.
thisform.keluar.enabled=.t.
endif
thisform.matiisian()
thisform.simpan.enabled=.f.
thisform.batal.enabled=.f.
thisform.txtcari.visible=.f.
13) Prosedure Rubah Clik
posisi=recno()
thisform.hidupisian()
thisform.matitombol()
thisform.simpan.enabled=.t.
thisform.batal.enabled=.t.
thisform. txtkdjenis.enabled=.f.
thisform. txtjenis.setfocus()
14) Prosedure Hapus Clik
p=messagebox("Benar Mau DI Hapus?",4+32,"Info")
if p=6
delete
if eof()
goto bottom
else
skip
endif
thisform.ambildata()
thisform.grid1.refresh()
thisform.grid1.setfocus()
endif
15) Prosedure Atas Clik
select jenis
goto top
thisform.ambildata()
16) Prosedure Mundur Clik
select jenis
if bof()
messagebox("Posisi sudah di awal file...!",0+64,"Informasi")
goto top
else
skip -1
endif
thisform.ambildata()
17) Prosedure Maju Clik
select jenis
if .not. eof()
skip
else
messagebox("Posisi sudah di akhir file...!",0+64,"Informasi")
goto bottom
endif
thisform.ambildata()
skip -1
endif
thisform.ambildata()
A. PROPERTI OBJECT
Nama Propertis Nilai
Object
Form Caption Transaksi Rinci Barang Masuk
Name Rinci Barang Masuk
Auto Center .T.
MDIForm .T.
ShowWindows 1-In Top-Level
Windowstate 0-Normal
Label1 Caption No Nota Masuk
Combo1 Caption Kode Barang
Label3 Caption Harga
Label4 Caption Jumlah
Text1 Name txtnonmsk
Maxlength 10
Combo1 Name TxtKdbrg
Text2 Name Txthrgmsk
Maxlength 10
Text3 Name Txtjumlah
Maxlength 10
Text4 Name Txtnmbarang
Text5 Name Txtcari
Maxlength 10
Command1 Name Baru
Caption \<Baru
Command2 Name Simpan
Caption \<Simpan
Command3 Name Batal
Caption \<Batal
Command4 Name Rubah
Caption \<Rubah
Command5 Name Hapus
Caption \<Hapus
Command6 Name Atas
Caption |<
Cammand7 Name Mundur
Caption <
Command8 Name Maju
Caption >
Command9 Name Bawah
Caption >|
Command10 Name Cari
Caption \<Cari
Grid1 Name Grid1
ReadOnly .T.
RecordSource rincimsk
B. PENULISAN CODE PROGRAM
Untuk penulisan Code program sama seperti code program form yang lainnya, namun
pada form ini kita menggunakan metode procedure
1) Prosedure Active Form
select barang
thisform.txtnonmsk.value=mnonmsk
thisform.txthrgmsk.value=0
thisform.txtjmlmsk.value=0
2) Prosedure Form Init
public mnonmsk,mhrgmsk,mkdkayu,mqtymsk
balik=0
3) Prosedure Ok Clik
balik=1
mkdbrg=thisform.txtkdbrg.value
mnonmsk=thisform.txtnonmsk.value
mjmlmsk=thisform.txtjmlmsk.value
mhrgmsk=thisform.txthrgmsk.value
select barang
set filter to
seek mkodebrg
if found()
replace jmlstok with jmlstok + mjmlmsk
replace hrgjual with mhrgmsk
endif
select rincimsk
set filter to
set order to nonmsk
locate for nonmsk=mnonmsk .and. kodebrg=mkdbrg
if found()
replace nonmsk with mnonmsk
replace jmlmsk with mjmlmsk
replace kodebrg with mkdbrg
replace hrgmsk with mhrgmsk
else
append blank
replace nonmsk with mnonmsk
replace jmlmsk with mjmlmsk
replace kodebrg with mkdbrg
replace hrgmsk with mhrgmsk
endif
thisform.txthrgmsk.value=0
thisform.txtjmlmsk.value=0
thisform.txtkdbrg.value=""
thisform.txtkdbrg.setfocus()
4) Prosedure keluar Clik
select rincimsk
set filter to
thisform.release()
5) Prosedure txtkodebrg Lost Focus Clik
mkdbrg=thisform.txtkdbrg.value
select barang
set filter to
set order to kodebrg
seek mkdbrg
if found()
thisform.txtnmbarang.value=nmbarang
thisform.txthrgmsk.value=hrgbeli
else
thisform.txtnmbarang.value=""
thisform.txthrgmsk.value=0
endif