Tutorial PB 3
- pbdccindonesia
- Sep 14, 2016
- 3 min read

Sample kali ini adalah membuat modul entry untuk data “siswa”….
Modul ini berupa window dgn beberapa tombol dan datawindow sbg interface datanya.
Datawindow sendiri berfungsi sbg display, serta memungkinkan user untuk memanipulasi, update data dan informasi yg lain.
Window sendiri dalam hal ini berfungsi sbg tempat datawindow tersebut.
Jadi kalo digambarkan akan memiliki urutan sb :
Data – Datawindow – Window
Mari kita mulai…….Klik tombol “New” sampai tampil spt ini…..
Pilih tab “DataWindow”, pilih “Freeform” dan klik tombol OK
Klik tombol “Next >”
Klik table “tblsiswa” dan klik tombol “Add All” serta diikuti tombol OK, sampai tampil modul spt ini……
Klik tombol “Next >”
Untuk mengakhiri klik tombol “Finish” …datawindow anda sudah jadi…
Setup/lihat update properties… datawindow-nya….klik menu “Rows” dan klik menu “Update Propertiesnya”……spt ini
Perhatikan ….setting updatenya sudah benar….klik OK
Note :
Allow Updates–nya sudah di centang
Table to Update–nya sudah benar
Updateable Columns–nya sudah benar
Unique Key Column(s)–nya juga sudah benar sesuai primary key mysql sbg databasenya.
Begitu juga klausa dan key modifikasinya juga sudah benar.
Save datawindow tersebut……dg nama “dw_entri_siswa”……dan klik OK
Tampak di system tree anda ……
Selanjutnya membuat window sbg tempat kontrol datawindow “dw_entri_siswa” tersebut
Tidak perlu saya jelaskan secara rinci langkah2 nya karena di sample sebelumnya telah ada sample membuat window.
Perhatikan di window ini ada 9 tombol spt tampak di gambar atas…..
Perhatikan propertiesnya ….anda buat spt contoh ini..
Klik datawindow “dw_entri_siswa” yg ada di system tree dan drag ke window….spt ini
Rapikan sehingga menjadi spt ini…(atur lebar dan tata letakknya)
Perhatikan properties datawindow “dw_entri_siswa”….
Name control datawindow ini adalah “dw_1” ….nama ini bisa anda ganti sesuai keinginan anda…sementara kita pakai “dw_1” dulu…..
Double click di area kosong window untuk mengaktifkan “open” event nya dan ketik :
dw_1.setTransObject(SQLCA)
Selanjutnya mari kita isi click event dari masing2 tombolnya…..
Kita mulai dari tombol “Retrieve”….. double click tombol tsb….ketik koding ini :
dw_1.retrieve()
Note :
dw_1 adalah nama dari kontrol datawindownya spt yg dijelaskan di atas
setTransObject(SQLCA) berfungsi untuk memberikan sepisifikasi object transaksi yg di pergunakan, dalam hal ini adalah SQLCA.
retrieve() adalah perintah untuk SELECT (table/view) atau EXEC (store procedure).
Double click tombol “Add” dan ketik koding berikut….(untuk menambah)
dw_1.ScrollToRow(dw_1.insertrow(0))
dw_1.setcolumn(1)
dw_1.setfocus()
Note :
insertrow(0) berfungsi untuk menambahkan data baru
scrolltorow() tersendiri berfungsi untuk mengeser pointer ke row baru/kosong tsb.
setcolumn(1) aktifkan kolom 1
setfocus() aktifkan kursor
Double click tombol “Update” dan ketik koding berikut…(untuk menyimpan)
if dw_1.update()=1 then
commit;
messagebox('Info..','Penyimpanan Sukses !',information!,ok!)
else
rollback;
messagebox('Info..','Penyimpanan Gagal !',information!,ok!)
return
end if
Note :
Jka update() sukses, return value =1 maka “commit” jika tidak akan di “rollback” atau di kembalikan spt keadaan sbl proses editing.
Double click tombol “Delete” dan ketik koding berikut…(untuk hapus data)
if messagebox("Hapus Data","Anda Yakin ?",Exclamation!,YesNo!,2)=2 then return -1
if dw_1.rowcount()>0 then
dw_1.deleterow(0)
dw_1.setfocus()
if dw_1.update()=1 then
commit;
messagebox('Info..','Penghapusan Sukses !',information!,ok!)
else
rollback;
messagebox('Info..','Penghapusan Gagal !',information!,ok!)
return -1
end if
else
return -1
end if
Note :
deleterow(0) berfungsi untuk menghapus row aktif.
Double click tombol “Close” dan ketik koding berikut…(untuk close window)
close(parent)
Double click tombol “<<” dan ketik koding berikut…(untuk go top)
if dw_1.getrow() = 1 then
messagebox(":)","Data pertama !",Information!,Ok!)
else
dw_1.scrolltorow(1)
end if
Note :
getrow() berfungsi untuk mengecek row aktif di datawindow ….jika = 1 artinya di row pertama.
scrolltorow(1) artinya mengeser pointer ke record/row 1
Double click tombol “<” dan ketik koding berikut…(untuk ke row sebelumnya)
if dw_1.getrow() = 1 then
messagebox(":)","Data pertama !",Information!,Ok!)
else
dw_1.scrollpriorrow()
end if
Note
scrollpriorrow() untuk menggeser pointer ke row sebelumnya
Double click tombol “>” dan ketik koding berikut…(untuk ke row berikutnya)
if dw_1.getrow() =dw_1.rowcount() then
messagebox(":)","Data terakhir !",Information!,Ok!)
else
dw_1.scrollnextrow()
end if
Note :
rowcount() untuk mengetahui jml row/record yg ada di datawindow
scrollnextrow() untuk ke row berikutnya
Double click tombol “>>” dan ketik koding berikut…(untuk go bottom)
if dw_1.getrow() = dw_1.rowcount() then
messagebox(":)","Data terakhir !",Information!,Ok!)
else
dw_1.scrolltorow(dw_1.rowcount() )
end if
Note :
scrolltorow(jml row datawindow) artinya sama juga ke row terakhir
Ok…..koding sudah selesai …save window anda dg nama “w_entri_siswa”
Selanjutnya double click menu “Entri &Siswa” dan ketik koding untuk memanggil window “w_entri_siswa” spt ini……
Perhatikan koding di m_file.m_entrisiswa :
opensheet(w_entri_siswa,w_utama,2,original!)
Note :
Membuka window “w_entri_siswa” sbg sheet atau lembar kerja yg bernaung di bawah/di dalam window “w_utama”.
Angka 2 menunjukkan nomor menu item yg diasosiasikan dg sheet yg di buka.
original! menandakan window di open sesuai ukuran aslinya.
(anda bisa melihat detail penjelasan di help PB….blok command yg ingin dilihat detail helpnya dan tekan tombol Shift + F1)
Kenapa dipakai opensheet() bukan open(w_utama) spt contoh sebelumnya ?
Kalo anda pakai open(w_utama) maka akan di anggap window terpisah dari window mdi!-nya dan bersifat tdk “always on the top” atau modeless
Save perubahan di menu “mn_siswa” …..
Jalankan aplikasi anda…..klik tombol “Run” klik menu File > Entri Siswa
Begitulah tampilan sheet/window entri anda…..jika data sudah ada klik tombol “Retrieve” untuk menampilkan data yg pernah di entri….
Klik tombol “ADD” isi data spt ini dan klik tombol “Update”…
Yap….data tersimpan dg sukses J klik OK
Ok dengan demikian sample datawindow dan window entri sudah selesai J
Apakah sample di atas sudah maksimal ?! Jelas belum….
Anda masih bisa mempercantik tampilan-nya dan memberikan toolbars sheetnya…
Akan di bahas di sample berikutnya……
Sukses untuk anda !!
Comments