Selasa, 09 November 2010

Visual Foxpro 6.0

Pengertian, Kemampuan dan Penanganan Visual Foxpro 6.0

Microsoft Visual Foxpro 6.0 for windows adalah sebuah program aplikasi yang memiliki kemampuan untuk membuat, mengolah, dan mengelola suatu database dengan cepat dan mudah. Selain fasilitas seperti kemudahan, kecepatan, dan kemampuannya dalam mengolah data yang relatif besar, salah satu keistemewaan dari program yang dibuat oleh Microsoft ini yang terpenting adalah cara pemrogramannya yang kini tengah menjadi trend di era 90-an yaitu pemrograman visual dan berorientasi objek.
Dengan memakai cara pemrograman ini, kita tidak perlu susah payah mengetikkan kode program, tidak perlu menghafal sintak dan fungsi-fungsi program yang jumlahnya ratusan. Kita hanya tinggal mengklik dan memilih dengan mouse, dan bahkan jika kita tidak memiliki pengetahuan dalam bahasa pemrogramanpun dapat
membuat sebuah program aplikasi yang bergaya windows.

Kemampuan Visual Foxpro 6.0

Ada beberapa kemampuan yang dimiliki visual foxpro 6.0 ini, yang tidak dimiliki versi sebelumnya. Kemampuan baru tersebut diantaranya adalah sebagai berikut :

a. Terdapat Wizard, fasilitas baru yang bisa digunakan untuk mempermudah dalam menciptakan table, query, form, report dan lainnya.


b. Ditambahkannya Objeck Oriented programming dan database schenas, yang tentunya akan mempermudah para programmer dalam menyusun program.


c. Terdapat menu Drop-down yang telah sempurna.


d. Menyediakan tipe data field baru. Didalam visual foxpro 6.0 ini, ada beberapa tipe data field baru yang belum ada pada versi sebelumnya. Hal ini bisa diketahui saat mendefinisikan table, tepatnya dalam menentukaqn strukturnya dibagian tipe field.


e. Istilah database baru. Kalau pada versi sebelumnya satu database hanya terdiri dari satu tabel saja, tetapi didalam visual foxpro 6.0 ini satu database bisa terdiri dari beberapa tabel, dan beberapa objek.



Penanganan Database

Dalam penanganan database visual foxpro lebih canggih atau lebih akurat jika dibandingkan dengan foxbase. Untuk lebih jelasnya dibawah ini dirinci sebagai berikut :

1. Database

Visual foxpro sangat mendukung database. Istilah database dalam visual foxpro berarti kumpulan tabel, relasi, tampilan. Setiap objek tersebut mempunyai property yang disaimpan didalam database.properti tersebut mengandung informasi seperti aturan validasi field, aturan validasi level record, triger ( pemicu ) dan lain-lain. Penanganan database oleh foxbase hampir sama dengan visual foxpro yang membedakannya adalah untuk foxbase tidak ada validasi field, aturan validasi record dan triger ( pemicu ).

2. Tabel

Tabel dalam visual foxpro adalah file DBF. Tabel dapat digunakan diluar database, dan disebut sebagai tabel bebas ( free tabel ). Tabel yang ditambahkan ke DBC disebut sebagai tabel berhubungan ( attached table ). Ketika tabel ditambahkan ke DBC, kita dapat menspesifikasikkan tabel dan file pada filed dan level record. Untuk menunjuk ekspresi validasi pada field, kita dapat menggunakan field pada kotak dialog field properties. Istilah tabel dalam foxbase tidak ada, yang ada hanya file-file yang berekstension DBF yang didalamnya terkandung field-field seperti apa yang terkandung file-file yang berekstension DBC yang ada pada visual foxpro.

3. Relasi

Visual foxpro mendukung persistence relationship dalam DBC.persistance relationship yang digunakan dalam sebuah form, report, view, atau query.

4. SQL Views

View adalah saatu fasilitas pada visual foxpro.View adalah query yang dapat diupdate dan dapat dipelihara seperti sebuah tabel.

5. Tool Visual

Tool visual dalam foxpro disebut designer. Tool-tool itu adalah sebagai berikut :
a. Form Designer

Form designer dirancang untuk membuat tampilan visualisasi. Kemudahan pemakaian graphical User Interface ( GUI ) dengan kontrol petunjuk pada semua kontrol pada form tersebut. Tabel layout digunakan untuk mengontrol sudut garis agar mempunyai sudut kiri, sudut kanan, dan tengah yang sama. Kita juga dapat menjalankan form lebih dari satu kali yang artinya kita dapat mempunyai banyak intance ( copy ).

b. Pageframe

Pageframe adalah sebuah kontrol untuk membuat banyak halaman dalam satu form. Pageframe digunakan untuk membuat layar “ ab “ dengan setiap layar tabnya mempunyai kumpulan kontrol sendiri-sendiri. Fungsi ini tidak ada dalam foxbase.

c. Kontrol Grid

Visual foxpro menggunakan kontrol grid untuk mengkontrol setiap kolom secara terpisah atau sendiri-sendiri. Kita dapat mempunyai hampir semua tipe objek dalam sel individu pada grid. Kita dapat mengkontrol warna sel-sel secara individu misalnya. Fungsi ini tidak adapada foxbase.

d. Kontrol OLE

Visual foxpro mendukung OLE 2, yang berarti kita dapat menambahkan kontrol OCX ( kontrol OLE 2 ) baru ke form kita. Kontrol yang lain mengandung kontrol komunikasi dan dua kontrol untuk aplikasi kita digunakan untuk bekerja dengan Microsoft Mail API ( MAPI ). Visual foxpro mempunyai tambahan kontrol OCX dan OLE lain seperti MS Word dan Exel. Obyek-obyek ini dapat dimanipulasi seperti obyek foxpro. Fungsi ini tidak ada dalam foxbase.

e. Project Manajer

Project Manajer adalah fasilitas terbaru dari visual foxpro dan desain layar ber-tab. Project Manajer juga menyediakan kemudahan untuk mengakses semua file yang digunakan dalam aplikasi.

f. Report Designer

Perbedaan antara Report Designer foxpro versi sebelumnya dengan visual foxpro adalah pada tambahan lingkungan data ( data environtment ) untuk report yang digunakan untuk mendefinisikan tabel, view dan relasi yang digunakan dalam report dan pilihan private dan sesion yang memberikan kumpulan wilayah kerja yang bekerja dengannya. Ini digunakan untuk mencegah perubahan setting dan penggunaan pointer record oleh aplikasi lain.

g. Menu Gambar

Menu designer dalam visual foxpro digunakan untuk membuat menu. Menu designer adalah tool dari foxpro yang mempunyai kemampuan membangun kode. Menu designer ini tidak berubah seperti sebelumnya. Fungsi ini tidak ada dalam foxbase.

h. Object Oriented

Visual foxpro mendukung object. Yang didukung oleh visual foxpro adalah pembuatan visual classes dan non visual serta business
Classes. Model object visual foxpro menambah fasilitas untuk penggunaan kembali guna membangun aplikasi database. Tool perancangan visual foxpro dapat diakses dari project manager dengan sangat mudah. Fasilitas ini digunakan dalam pembuatan tabel, form, query, database dan laporan untuk mengolah data. Fungsi ini tidak ada pada foxbase.


Dari uraian diatas dapat diambil suatu kesimpulan bahwa visual foxpro 6.0 selain sebagai suatu sistem pengolahan data yang handal, juga mempunyai aspek pemrograman. Visual Foxpro juga memiliki fungsi-fungsi yang cukup lengkap sehingga lebih leluasa bagi pemrogram untuk menyusun program aplikasi dari segi pemakaian interaktif memungkinkan pembentukan file dapat dipisahkan dari tubuh pemrograman. 

FoxPro adalah Sebuah Sistem Ddatabase Manajemen (Database Manajemant Sistem/DBMS) elektronik, yang berfungsi untuk mengumpulkan, mengambil, dan menampilkan data. Visual Foxpro Merupakan bahasa pemrograman yang berbasis OOP(object oriented Programing) dan juga sebagai sistem manajement database relational (RDMS/Sistem basis data).
*         Project Manajer : untuk mengatur pengembangan, integrasi dan pembuatan aplikasi.
*         Database : kumpulan dari tabel view dan conection file database berextention DBC.
*         Table : tempat penyimpanan data.
*         view : tabel yang dibentuk dengan mengambil sebagian dari beberapa table.
*         Connection  : penghubung antara table dengan data dari sumber lainnya yang formatnya berbeda 

Mengaktifkan Visual Fox pro
1.        Untuk Versi 6.0   : Start > All Program > Microsoft Visual Studio >Microsoft Visual Fox Pro.
2.       Untuk Versi 9.0 ; Start > All Program > Microsoft Foxpro 9.0.
Kemudian akan tampil layar menu utama Visual Foxpro 6.0 yang terdiri dari.
1.        Baris Judul (Title Bar)
2.       Baris Menu (Menu Bar )
3.  Toolbar
4.   Jendela Command (Command Window)  Jika Jendela Command Window tidak aktif maka qta bisa mengaktifkannya dari  klik window > klik Command Window. atau dengan menekan tombol CTRL + F2.
Jendela command digunakan untuk memasukkan intruksi – intruksi secara langsung.
5.   Baris Status

Mengoperasikan Visual Fox Pro / Menjalankan Perintah –perintah dari command window
Ø       Menampilkan tanggal & waktu:
?Date()
?Time()
Ø       Buat Folder Baru dari Command Window  : MD lokasi drive:/nama_folder.
contoh  : MD C:/Sore/Ady
Ø       Mengaktifkan Folder yang telah di buat : CD lokasi Drive:/nama_folder.
Contoh : CD C:/Sore/ady
Ø       Membuat Tabel Bebas . adalah membuat tabel tanpa terikat dengan database
Sintak : Create nama_table
        contoh : Create siswa
maka akan tampil  isi nama Field, type,  width/size.
ketentuan mengisi nama field :
Max 10 karakter, diawali dengan huruf atau garis bawah, tidak boleh menggunakan Spasi.
Klik OK maka akan tampil pesan  yang berarti : Input data record kedalam tabel ? pilih yes jika mau menginput , No jika tidak.
Klik Yes maka tampil
Masukkan 3 data sebagai recordnya. tekan CTRL+W untuk menyimpan record
Ø       Untuk melihat data di Command window : ketik browse
Ø       Mengaktifkan tabel  : Use nama_tabel  Ex. Use latih1.
Ø       Menampilkan isi Table
·         Browse
·         List        dengan no record
·         List Off        tanpa no record
·         List Fields nama_field       menampilkan record sesuai dengan nama field yang diinginkan.
          misal : List fields nim,nama_mhs
Ø       Modifikasi Field : Modify Structure atau modi stru
Ø       Menambah Record : Append atau Appe
Ø       Menghapus Record : Delete [scope] nomor record.
ket : Scope All            : Menghapus Semua Record.
                  Next        : Menghapus dari record yang aktif sampai record yang ke N.
                  Record     : Record ke N.
                  Rest         : Dari record yang aktif sampai record terakhir.
Contoh : Delete Record 2
Ø       Menyembunyikan record yang sudah di hapus : Set delete on atau Set dele on
Ø       Menampilkan kembali Record yang sudah dihapus: Set delete off atau Set dele off
Ø       Mengaktifpan kembali record yang sudah di hapus : Recall [scope] nomor record
Contoh :  Recall Record 1
Ø       Menghilangkan record/menghapus secara permanen : Pack
Ø       Mengetahui Record yang aktif :
?Recno() 
Dispaly  “untuk menampilkan ke layar”
Ø       Pindah dari record yang aktif ke record berikutnya. :
Go top : pindah ke record pertama.
Go to 2  : Pindah ke record ke 2
Skip : Pindah dari record yg aktif ke record berikutnya.
Skip 2 : Pindah 2 record dari record yg aktif ke record berikutnya.
Ø       Merubah data /isi dari field ,perintahnya : Replace nama_field with ”nama_data_baru”
Contoh : Go to 2
          Replace nama with “Erni Purwanti”
Ø       Menutup Tabel : Close Table
Ø       Keluar dari Visual Fox Pro : Close all
                                 Quit


Memulai Program Microsoft Visual FoxPro 6.0:
Cara Pertama :
• Double klik shortcut MS Visual FoxPro 6.0 yang terdapat pada desktop.
Cara Kedua :
• Klik tombol START _ All Program _ Microsoft Visual Studio 6.0 _ Microsoft Visual
FoxPro 6.0.
Cara Ketiga :
• Double klik file MS Visual FoxPro yang telah dibuat yang disimpan pada media
penyimpanan.
Klik close this screen untuk menutup jendela welcome. Tampil Project Manager
Langkah pertama untuk membuat suatu program database adalah dengan membuat project.
Caranya dengan :
1. Mengklik File_New.
2. Tampil Kotak Dialog New.
3. Lalu pilih Project_Klik New.
4. Beri nama Project tersebut sesuai dengan yang dikehendaki.
Selanjutnya buat database itu sendiri dimana di dalamnya terdapat tabel-tabel yang diperlukan
untuk menyimpan data-data yang ada. Adapun caranya adalah :
1. Pada Project Manager seperti yang tampak pada gambar di atas kita buka menu Data
dengan mengklik tanda + yang terdapat disamping Data, didalamnya terdapat sub menu
Database.
2. Klik pada sub menu Database tersebut lalu klik New.
3. Tampil kotak dialog New Database yang terdapat dua pilihan, yaitu : Databse Wizard
(membuat database secara otomatis) dan New Database (membuat database secara
manual). Pada pembelajaran kali ini kita pilih New Database. Selesai kita membuat
Database kita buat tabel.
Selesai membuat tabel kita buat Relationships
Langkah-langkah membuat Tabel :
1. Pada Project Manager pilih sub menu Data.
2. Klik FreeTables.
3. Klik New _ tampil Kotak Dialog New Table.
4. Klik New Table _ tanpil perintah untuk memberi nama tabel dan menyimpan.
5. Buat Field dan tipe data yang dibutuhkan.
6. Klik OK.

Langkah-langkah membuat Relationship/Queries :
1. Pada Project Manager Pilih sub menu Data
2. Klik Quries
3. Klik New _ Tampil Kotak Dialog New Query
4. Klik New Query _ tampil Query Designer dan Add Table or View
5. Klik tabel yang dikehendaki lalu klik Add
6. Setelah selesai memasukkan semua tabel yang dikehendaki, tutup kotak dialog Add Table or
View dengan mengklik close pada kotak dialog tersebut
7. Atur Posisi tabel yang ada di kotak dialog Query Designer dengan cara mengklik drag (klik tahan
geser pada title tabel-nya).
8. Klik tahan Field yang sama untuk dipasangkan pada Tabel yang lain.
9. Simpan Queries tersebut
Selesai membuat Relationships kita buat form.
Langkah-langkah membuat form untuk menginputkan data :
1. Pastikan kita telah membuat tabel sebagai tempat untuk menampung data.
Misal : kita telah membuat tabel mahasiswa dengan nama tbMahasiswa.dbf dengan fieldfield.
2. Pastikan kita ingat field-field (name, type, width) yang ada pada tabel.
3. Buat Form yang isinya memuat object-object yang sesuai dengan field-field yang terdapat
pada tabel.
4. Object-object yang kita tempatkan pada form di atas, untuk lebih mudah dalam mengingat
maupun menelusuri apabila kita ingin mengedit, namanya diubah sesuai dengan objek untuk
field pengisianya. Misal objek txtbox untuk field “nim” kita beri nama “txtNIM”.
5. Untuk mengganti text pada Option1/Option2 agar sesuai dengan yang kita inginkan, maka
kita klik kanan lalu pilih edit, kemudian kita atur pada properti “Caption”.
6. Untuk mengisi text pada Combo Box, maka kita klik kanan lalu pilih Builder, tampil kotak
dialog Combo Box Builder, pastikan pilihan pada “1. List Item”. Pada Fill the List with:
pilih “Data Entered by hand”, lalu ketikkan pada Column1 pilihan-pilihan yang kita
kehendaki. Klik OK.
7. Atur property Object Grid untuk Delete Mark menjadi False (agar tidak bisa dihapus
melalui Object Grid), Read Only menjadi True (agar Object Grid hanya bisa dibaca) dan
Record Mark menjadi False (agar tidak bisa ditandai melalui Object Grid).
8. Tulis rumus-rumusnya.
Object : Form1 _ Procedure : Activate
public pw as string {karena kita membuat memasukkan object Optiongroup, maka kita
mendeklarasikan pilihannya tersebut dengan nama pw sebagai
string}
pw = "wanita" {dimana apabila pilihan pw tersebut tidak kita klik, maka secara
otomastis pilihan akan jatuh pada “wanita”}
thisform.txtNIM.setfocus {pada waktu form dijalankan, kursor aktif pada txtNIM}
Object : txtNIM _ Procedure : Valid
local xNIM
xNIM = thisform.txtNIM.value
set order to NIM
if len (alltrim(xNIM))>10 {jika pengisian NIM lbh 10 digit,
messagebox ("NIM tdk boleh dari 10 digit",0+16,"check") muncul kotak pesan}
return .f.
else {selain itu jika pengisian NIM krg
if len (alltrim(xNIM))<1 dari 1 maka,
messagebox ("NIM tdk boleh kosong",0+16,"check") {muncul kotak pesan}
return .f.
endif
endif
seek xNIM {mencari NIM}
if found() {jika ditemukan maka,
messagebox ("NIM sudah ada",0+16,"Ganti NIM") {muncul kotak pesan}
set order to
return .f.
else
set order to
return .t.
endif
Object : Option1 _ Procedure : click
Pw = “Pria” {jika Option1 yang terdapat pada Optiongroup kita click, maka akan
terpilih “Pria”}
Object : Option2 _ Procedure : click
Pw = “Wanita” {jika Option1 yang terdapat pada Optiongroup kita click, maka akan
terpilih “Wanita”}
Object : cmdAwal _ Procedure : click
Go Top {menuju ke data awal pada Grid}
Thisform.grdtbMahasiswa.setfocus
Object : cmdBerikutnya _ Procedure : click
Skip {menuju ke data berikutnya dimana kursor aktif
Thisform.grdtbMahasiswa.setfocus berada pada Grid}
Object : cmdSebelumnya _ Procedure : click
Skip -1 {menuju ke data sebelumnya dimana kursor aktif
Thisform.grdtbMahasiswa.setfocus berada pada Grid}
Object : cmdAkhir _ Procedure : click
Go Bottom {menuju ke data terakhir pada Grid}
Thisform.grdtbMahasiswa.setfocus
Object : cmdSimpan _ Procedure : click
local xnim, xNAMA, xAlamat, xTelp, xHp, xJurusan
xNIM = thisform.txtNIM.value {bahwa txtNIM sebagai xNIM}
xNAMA = thisform.txtNAMA.value {bahwa txtNAMA sebagai xNAMA}
xJurusan = thisform.Combo1.value {bahwa Combo1 sebagai xJurusan}
xAlamat = thisform.txtAlamat.value {bahwa txtAlamat sebagai xAlamat}
xTelp = thisform.txtTelp.value {bahwa txtTelp sebagai xTelp}
xHp = thisform.txtHp.value {bahwa txtHP sebagai xHp}
append blank {menginputkan data}
replace tbMahasiswa -> nim with xNIM {memindah ke tbMahasiswa pada Field nim
dengan data yang kita inputkan pada xNIM /
txtNIM}
replace tbMahasiswa -> nama with xNAMA
replace sex with pw
replace tbMahasiswa -> jurusan with xJurusan
replace tbMahasiswa -> alamat with xAlamat
replace tbMahasiswa -> telp with xTelp
replace tbMahasiswa -> hp with xHp
thisform.grdtbMahasiswa.refresh {Grid grdtbMahasiswa refresh}
with thisform {mengosongkan semua field setelah kita
.txtNIM.value="" mengklik tombol cmdSimpan}
.txtNama.value=""
.txtAlamat.value=""
.txtTelp.value=""
.txtHp.value=""
endwith
Object : cmdBatal _ Procedure : click
with thisform {mengosongkan semua field setelah kita
.txtNIM.value="" mengklik tombol cmdBatal}
.txtNama.value=""
.txtAlamat.value=""
.txtTelp.value=""
.txtHp.value=""
endwith
Object : cmdKeluar _ Procedure : click
Thisform.release
Langkah-langkah membuat form untuk mengedit data :
1. Buat Form misal seperti yang tampak pada gambar di atas.
2. Object-object yang kita tempatkan pada form di atas, untuk lebih mudah dalam mengingat
maupun menelusuri apabila kita ingin mengedit, namanya diubah sesuai dengan fungsinya.
3. untuk lebih mudah dan lebih cepat dalam membuat object-object label dan textbox inputan,
langkahnya dengan cara klik kanan pada area form yang kosong lalu pilih Data
Environment.
Klik tahan pada Fields, tarik ke area form yang ingin ditempati, lalu lepaskan.
4. Tambahkan Optiongroup2 (Sex) dan Combo1 (Jurusan) lalu atur property Visible-nya
menjadi False (agar tidak bisa terlihat pada waktu form dijalankan) serta tempatkan seperti
format form di atas.
5. Edit Caption Optiongroup1 (Cari) dan Optiongroup2 (Sex) - Option1 dan Option2 -
sesuai dengan format diatas / yang kita inginkan. (caranya seperti kita membuat pada Form
Inputan di atas).
6. Atur juga Combo Boxnya (caranya seperti kita membuat pada Form Inputan di atas).
7. Atur pula property object Grid seperti pada form inputan.
8. Atur properti Visible untuk tombol Simpan dan Batal menjadi False.
9. Tulis rumus-rumusnya:
Object : Form1 _ Procedure : Activate
public pw as string {karena kita membuat memasukkan object Optiongroup, maka kita
mendeklarasikan pilihannya tersebut dengan nama pw sebagai
string}
pw = "wanita" {dimana apabila pilihan pw tersebut tidak kita klik, maka secara
otomastis pilihan akan jatuh pada “wanita”}
thisform.txtNIM.setfocus {pada waktu form dijalankan, kursor aktif pada txtNIM}
Object : cmdCari _ Procedure : click
if thisform.optiongroup1.value=1 then
set order to nim
set exact on
seek alltrim(thisform.txtCari.value)
if found() then
thisform.txtCari.value=nim
endif
thisform.refresh()
else thisform.optiongroup1.value=2 then
set order to nama
set exact on
seek alltrim(thisform.txtCari.value)
if found() then
thisform.txtCari.value=nama
endif
thisform.refresh()
endif
Object : Grid1 _ Procedure : AfterRowColChange
LPARAMETERS nColIndex
with thisform
.txtNim.refresh
.txtNama.refresh
.txtSex.refresh
.txtJurusan.refresh
.txtAlamat.refresh
.txtTelp.refresh
.txtHp.refresh
endwith
Object : txtNIM _ Procedure : Valid
local xNIM
xNIM = thisform.txtNIM.value
set order to NIM
if len (alltrim(xNIM))>10 {jika pengisian NIM lbh 10 digit,
messagebox ("NIM tdk boleh dari 10 digit",0+16,"check") muncul kotak pesan}
return .f.
else {selain itu jika pengisian NIM krg
if len (alltrim(xNIM))<1 dari 1 maka,
messagebox ("NIM tdk boleh kosong",0+16,"check") {muncul kotak pesan}
return .f.
endif
endif
seek xNIM {mencari NIM}
if found() {jika ditemukan maka,
messagebox ("NIM sudah ada",0+16,"Ganti NIM") {muncul kotak pesan}
set order to
return .f.
else
set order to
return .t.
endif
Object : Option1 (pada Optiongroup2/Sex)_ Procedure : click
Pw = “Pria” {jika Option1 yang terdapat pada Optiongroup kita click, maka akan
terpilih “Pria”}
Object : Option2 (pada Optiongroup2/Sex)_ Procedure : click
Pw = “Wanita” {jika Option1 yang terdapat pada Optiongroup kita click, maka akan
terpilih “Wanita”}
Object : cmdAwal _ Procedure : click
Go Top {menuju ke data awal pada Grid}
Thisform.grdtbMahasiswa.setfocus
Object : cmdBerikutnya _ Procedure : click
Skip {menuju ke data berikutnya dimana kursor aktif
Thisform.Grid1.setfocus berada pada Grid}
Object : cmdSebelumnya _ Procedure : click
Skip -1 {menuju ke data sebelumnya dimana kursor aktif
Thisform.Grid1.setfocus berada pada Grid}
Object : cmdAkhir _ Procedure : click
Go Bottom {menuju ke data terakhir pada Grid}
Thisform.Grid1.setfocus
Object : cmdEdit _ Procedure : click
with thisform
.cmdEdit.visible=.f.
.cmdSimpan.visible=.t.
.cmdBatal.visible=.t.
.txtNim.enabled=.t.
.txtNama.enabled=.t.
.txtSex.visible=.f.
.Optiongroup2.visible=.t.
.txtJurusan.visible=.f.
.combo1.visible=.t.
.txtAlamat.enabled=.t.
.txtTelp.enabled=.t.
.txtHp.enabled=.t.
endwith
Object : cmdSimpan _ Procedure : click
local xnim, xNAMA, xAlamat, xTelp, xHp
local xJurusan
xNIM = thisform.txtNIM.value
xNAMA = thisform.txtNAMA.value
xJurusan = thisform.Combo1.value
xAlamat = thisform.txtAlamat.value
xTelp = thisform.txtTelp.value
xHp = thisform.txtHp.value
{tidak ada append blank karena fungsi dari append blank untuk memasukan data baru}
replace tbMahasiswa -> nim with xNIM
replace tbMahasiswa -> nama with xNAMA
replace sex with pw
replace tbMahasiswa -> jurusan with xJurusan
replace tbMahasiswa -> alamat with xAlamat
replace tbMahasiswa -> telp with xTelp
replace tbMahasiswa -> hp with xHp
thisform.Grid1.refresh
with thisform
.cmdEdit.visible=.t.
.cmdSimpan.visible=.f.
.cmdBatal.visible=.f.
.txtNim.enabled=.f.
.txtNama.enabled=.f.
.txtSex.visible=.t.
.optiongroup2.visible=.f.
.txtJurusan.visible=.t.
.combo1.visible=.f.
.txtAlamat.enabled=.f.
.txtTelp.enabled=.f.
.txtHp.enabled=.f.
endwith
Object : cmdBatal _ Procedure : click
with thisform
.cmdEdit.visible=.t.
.cmdSimpan.visible=.f.
.cmdBatal.visible=.f.
.txtNim.enabled=.f.
.txtNama.enabled=.f.
.txtSex.visible=.t.
.optiongroup2.visible=.f.
.txtJurusan.visible=.t.
.combo1.visible=.f.
.txtAlamat.enabled=.f.
.txtTelp.enabled=.f.
.txtHp.enabled=.f.
endwith
Object : cmdHapus _ Procedure : click
set delete on
dele
skip
thisform.grid1.refresh
thisform.grid1.setfocus
Object : cmdKeluar _ Procedure : click
Thisform.release
Langkah-langkah membuat form untuk menginputkan data sewa (RELASI):
1. Pastikan kita telah membuat tabel sebagai tempat untuk menampung data.
Misal : kita telah membuat tabel mahasiswa dengan nama tbSewa.dbf dengan field-field
seperti tampak pada gambar di bawah.
2. Pastikan kita ingat field-field (name, type, width) yang ada pada tabel.
3. Buat Form yang isinya memuat object-object yang sesuai dengan field-field yang terdapat
pada tabel.
4. Object-object yang kita tempatkan pada form di atas, untuk lebih mudah dalam mengingat
maupun menelusuri apabila kita ingin mengedit, namanya diubah sesuai dengan objek untuk
field pengisianya. Misal objek txtbox untuk field “Kd_Sewa” kita beri nama “txtKdSewa”.
5. Untuk mengatur pada Combo Box NIM dan Kode Buku, maka kita klik kanan lalu pilih
Builder, tampil kotak dialog Combo Box Builder, pastikan pilihan pada “1. List Item”. Pada
Fill the List with: pilih “Fields from a table or view”, lalu pilih table yang kita kehendaki
pada “Database and Tables”, secara otomatis menampilkan field-field-nya pada “Available
fields”. Pilih field yang kita kehendaki. Klik OK.
6. Label-label yang terdapat di bawah Data Peminjam dan Data Buku akan tampil secara
otomatis jika kita memilih NIM atau Kode Buku pada Combo Box-nya.
7. Text Box untuk “Tanggal Kembali (txtTglKembali)” pilihan Enabled pada propertiesnya di
False.
8. Atur property Object Grid untuk Delete Mark menjadi False (agar tidak bisa dihapus
melalui Object Grid), Read Only menjadi True (agar Object Grid hanya bisa dibaca) dan
Record Mark menjadi False (agar tidak bisa ditandai melalui Object Grid).
9. Tulis rumus-rumusnya.
Object : Form1 _ Procedure : Activate
thisform.txtKdSewa.setfocus
thisform.txtTglPinjam.value=date()
thisform.txtTglKembali.value=date()
Object : txtKdSewa _ Procedure : Valid
sele tbSewa
local xKdSewa
xKdSewa = thisform.txtKdSewa.value
set order to Kd_sewa
if len (alltrim(xKdSewa))>10
messagebox ("Kode Sewa tdk boleh dari 10 digit",0+16,"check")
return .f.
else
if len (alltrim(xKdSewa))<1
messagebox ("Kode Sewa tdk boleh kosong",0+16,"check")
return .f.
endif
endif
seek xKdSewa
if found()
messagebox ("Kode Sewa sudah ada",0+16,"Ganti")
set order to
return .f.
else
set order to
return .t.
endif
Object : cmbNIM _ Procedure : InteractiveChange
sele tbmahasiswa
with thisform
.lblNama.caption=nama
.lblSex.caption=sex
.lblJurusan.caption=jurusan
.lblAlamat.caption=alamat
.lblTelp.caption=telp
.lblHp.caption=hp
endwith
Object : cmbBuku _ Procedure : InteractiveChange
sele tbBuku
with thisform
.lblJudul.caption=judul
.lblPengarang.caption=pengarang
.lblPenerbit.caption=penerbit
endwith
Object : txtTglPinjam _ Procedure : InteractiveChange
thisform.txtTglKembali.value=thisform.txtTglPinjam.value+3
Object : cmdSimpan _ Procedure : click
sele tbSewa
local xkdSewa, xNIM, xBuku, xTglPinjam, xTglKembali
xkdSewa = thisform.txtKdSewa.value
xNIM = thisform.cmbNIM.value
xBuku = thisform.cmbBuku.value
xTglPinjam = thisform.txttglPinjam.value
xTglKembali = thisform.txtTglKembali.value
append blank
replace tbSewa -> kd_Sewa with xKdSewa
replace tbSewa -> NIM with xNIM
replace tbSewa -> Kode with xBuku
replace tbSewa -> Tgl_Pinjam with xTglPinjam
replace tbSewa -> Tgl_Kembali1 with xTglKembali
thisform.Grid1.refresh
with thisform
.txtKdSewa.value=""
.cmbNIM.value=""
.cmbBuku.value=""
.txttglPinjam.value=date()
.txtTglKembali.value=date()
endwith
Object : cmdBatal _ Procedure : click
with thisform
.txtKdSewa.value=""
.cmbNIM.value=""
.cmbBuku.value=""
.txttglPinjam.value=date()
.txtTglKembali.value=date()
endwith
Object : cmdKeluar _ Procedure : click
Thisform.release
Object : cmdAwal _ Procedure : click
go top
thisform.grid1.refresh
thisform.grid1.setfocus
Object : cmdSebelumnya _ Procedure : click
skip -1
thisform.grid1.refresh
thisform.grid1.setfocus
Object : cmdSesudah _ Procedure : click
skip
thisform.grid1.refresh
thisform.grid1.setfocus
Object : cmdAkhir _ Procedure : click
go bottom
thisform.grid1.refresh
thisform.grid1.setfocus