Kali ini, kita membuat program sederhana untuk Master Rekening, yaitu akun-akun yang akan dipakai untuk penjurnalan
Sebelumnya buat terlebih dahulu Project dan database.Kemudian buat table dalam database tsb dengan nama TBakun.dbf dengan struktur sbb :
jangan lupa, jadikan koderek sebagai Primary Key
Lalu Design form seperti berikut
Objek yang digunakan dan properties yang di ubah
Ketentuan dan Logika jalannya Program
1. Pada saat form pertama kali tampil, maka semua objek textbox,combo box dan option button nonaktif
tombol simpan nonaktif dan grid hanya bisa dilihat (Read Only)
2. Klik tambah untuk menambah data
maka semua objek textbox, combo dan option menjadi aktif
tombol tambah dan hapus menjadi nonaktif
tombol simpan menjadi aktif
tombol "keluar" berubah menjadi "batal"
a. Pilih ComboBox, maka tampil nama kelompok sesuai dengan kode rekening
b. Masukkan nama rekening
c. Pilih posisi
d. Masukkan Saldo
e. Klik Simpan
Jika kode rekening sudah ada dalam tabel maka tampil pesan bahwa kode sudah ada
Jika kode rekening belum ada dalam tabel maka data tersimpan dan kondisi kembali ke awal
3. Klik tombol Hapus
maka tampil pesan InputBox seperti berikut :
4. Klik tombol Batal, maka akan kembal;i ke kondisi awal
Klik tombol Keluar, maka akan keluar dari program
:: Listing ::
Form Nonaktif
thisform.combo1.Enabled= .F.
thisform.txtkelompok.Enabled= .F.
thisform.txtnamarek.Enabled= .F.
thisform.optiongroup1.Enabled = .F.
thisform.txtsaldo.Enabled= .F.
thisform.cmdsimpan.Enabled= .F.
Form Aktif
thisform.combo1.Enabled= .T.
thisform.txtkelompok.Enabled= .T.
thisform.txtnamarek.Enabled= .T.
thisform.optiongroup1.Enabled = .T.
thisform.txtsaldo.Enabled= .T.
Form bersih
thisform.combo1.value= ""
thisform.txtkelompok.value= ""
thisform.txtnamarek.value=""
thisform.optiongroup1.value= 0
thisform.txtsaldo.value= 0
KET : untuk aktif, nonaktif dan bersih buatkan prosedur dengan cara
Buka jendela code
Menu Form >> New Method
buat untuk aktif, nonaktif, bersih
form Activate
thisform.nonaktif()
thisform.bersih()
FOR a=11101 TO 11106
thisform.combo1.AddItem (ALLTRIM(STR(a)))
ENDFOR
FOR k=21101 TO 21104
thisform.combo1.AddItem (ALLTRIM(STR(k)))
ENDFOR
FOR m=31101 TO 31102
thisform.combo1.AddItem (ALLTRIM(STR(m)))
ENDFOR
FOR p=41101 TO 41102
thisform.combo1.AddItem (ALLTRIM(STR(p)))
ENDFOR
FOR b=51101 TO 51106
thisform.combo1.AddItem (ALLTRIM(STR(b)))
ENDFOR
cmdTambah Click
thisform.aktif()
thisform.bersih()
thisform.cmdsimpan.Enabled= .T.
thisform.cmdtambah.Enabled= .F.
thisform.cmdhapus.Enabled= .F.
thisform.cmdkeluar.Caption="Batal"
thisform.combo1.SetFocus()
cmdSimpan Click
SELECT tbakun
SET ORDER TO koderek
LOCATE FOR koderek=ALLTRIM(thisform.combo1.Value)
IF FOUND()
MESSAGEBOX("Rekening Sudah Ada",48,"Info")
ELSE
APPEND BLANK
REPLACE koderek WITH thisform.combo1.Value
REPLACE kelompok WITH thisform.txtkelompok.Value
REPLACE namarek WITH thisform.txtnamarek.Value
IF thisform.optiongroup1.opD.Value=1
REPLACE posisi WITH "D"
ELSE
IF thisform.optiongroup1.opD.Value=1
REPLACE posisi WITH "K"
ENDIF
ENDIF
REPLACE saldo WITH thisform.txtsaldo.Value
thisform.cmdtambah.Enabled= .T.
thisform.cmdhapus.Enabled= .T.
thisform.cmdkeluar.Caption="Keluar"
thisform.nonaktif()
ENDIF
thisform.grdTbakun.Refresh()
cmdHapus Click
y=INPUTBOX("Kode yang ingin dihapus?","Info","")
LOCATE FOR tbakun.koderek=y
IF FOUND()
DELETE
PACK
PACK
GO TOP
ENDIF
thisform.Refresh()
cmdKeluar click
IF thisform.cmdkeluar.Caption="Batal"
thisform.cmdkeluar.Caption="Keluar"
thisform.nonaktif()
thisform.cmdtambah.Enabled= .T.
thisform.cmdhapus.Enabled= .T.
thisform.bersih()
ELSE
IF thisform.cmdkeluar.Caption="Keluar"
thisform.Release()
ENDIF
ENDIF
Combo1 Click
no=LEFT(thisform.combo1.Value,1)
IF no="1"
thisform.txtKelompok.Value="Aktiva"
ELSE
IF no="2"
thisform.txtKelompok.Value="Kewajiban"
ELSE
IF no="3"
thisform.txtKelompok.Value="Modal"
ELSE
IF no="4"
thisform.txtKelompok.Value="Pendapatan"
ELSE
IF no="5"
thisform.txtKelompok.Value="Beban"
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
thisform.Refresh()
thisform.txtNamarek.SetFocus()
Option1 Click
thisform.txtsaldo.SetFocus()
Option2 Click
thisform.txtsaldo.SetFocus()