Untuk membuat program pembelian, hal ini adalah hal yang biasa dan sering banyak dibahas di banyak artikel. Tapi untuk kali ini, tetap membahas pembelian tapi dengan cara yang berbeda.
Pengertian Pembelian :
Pembelian dapat diartikan sebagai urutan kerja atau salah satu proses yang berkaitan dengan pengadaan barang dagangan.
Persiapan untuk membuat program transaksi pembelian sbb :
1. Buat project : PjPembelian
Pengertian Pembelian :
Pembelian dapat diartikan sebagai urutan kerja atau salah satu proses yang berkaitan dengan pengadaan barang dagangan.
Persiapan untuk membuat program transaksi pembelian sbb :
1. Buat project : PjPembelian
2. Dabatase :dbPembelian
3. Buat beberapa tabel, berikut struktur sbb:
Tabel Souvenirkdbrg : Primary key
Isi record pada tabel souvenir sbb :
Tabel Supplier
kdsup : Primary key
Tabel Pembelian
nofak : Primary Key
kdbrg : Foreign Key (Regular)
Tabel dtBeli
nofak : Foreign Key (Regular)
kdbrg : Foreign Key (Regular)
Design Form pembelian :
Keterangan :
1,2,4,5, 11 : textbox
9 : Listbox
6,7,12 : CommandButton
1 : txtNoFak
2 : txtTglFak
3 : Combo1
4 : txtNmSup
5 : txtQty
6 : CInput
7 : cmdFirst, cmdBack, cmdNext, cmdLast
8 : Text1
9 : List1
10 : Grid1
11 : txtTotal, txtUbay, txtKembali
12 : cTambah, cSimpan, cKeluar
Untuk setiap textbox yang menampilkan angka, maka akan diubah tipe datanya menjadi numerik melalui builder
Untuk combobox
Klik kanan pada combo
Pilih Builder, lalu masukkan kdsup ke “selected field”
Untuk ListBox, sama seperti combo
KLik kanan pada List
Pilih Builder, lalu masukkan semua field ke "Selected Field"
:: Listing ::
Form Aktif
thisform.combo1.Enabled= .T.
thisform.txtNmsup.Enabled= .T.
thisform.text1.Enabled= .T.
thisform.list1.Enabled= .T.
thisform.txtQty.Enabled= .T.
thisform.cinput.Enabled= .T.
thisform.cmdfirst.Enabled= .T.
thisform.cmdback.Enabled= .T.
thisform.cmdnext.Enabled= .T.
thisform.cmdlast.Enabled= .T.
Form Aturgrid
SELECT Tmpbeli
thisform.grid1.Enabled= .F.
thisform.grid1.RecordSource='Tmpbeli'
thisform.grid1.RecordSourceType= 1
*Atur Grid
thisform.grid1.column1.Width=85
thisform.grid1.column2.Width=160
thisform.grid1.column3.Width=70
thisform.grid1.column4.Width=50
thisform.grid1.column5.Width=70
thisform.grid1.column1.header1.Caption="Kode Barang"
thisform.grid1.column2.header1.Caption="Nama Barang"
thisform.grid1.column3.header1.Caption="Harga"
thisform.grid1.column4.header1.Caption="Qty"
thisform.grid1.column5.header1.Caption="Subtotal"
Form Auto
SELECT pembelian
IF RECCOUNT() = 0
no="001"
ELSE
GO BOTTOM
urut=VAL(RIGHT(nofak,3))+1
DO CASE
CASE urut > 10
no="00"+(LTRIM(STR(urut,1)))
CASE urut > 100
no="0"+(LTRIM(STR(urut,2)))
OTHERWISE
no=LTRIM(STR(urut,3))
ENDCASE
ENDIF
*Menghitung bulan
bl=LTRIM(STR(MONTH(DATE())))
IF VAL(bl) > 10
bulan="0"+bl
ELSE
bulan=bl
ENDIF
*Menghitung tahun
th=RIGHT(STR(YEAR(DATE())),2)
*menghitung tanggal
tgl=LEFT(DTOC(DATE()),2)
thisform.txtNoFak.Value="NF"+th+bulan+tgl+no
thisform.Refresh()
Form Awal
thisform.combo1.Enabled= .F.
thisform.list1.Enabled= .F.
thisform.txtQty.Enabled= .F.
thisform.cinput.Enabled= .F.
thisform.cmdfirst.Enabled= .F.
thisform.cmdback.Enabled= .F.
thisform.cmdnext.Enabled= .F.
thisform.cmdlast.Enabled= .F.
thisform.SetAll("Enabled",.F.,"TextBox")
thisform.SetAll("Value",0,"TextBox")
thisform.text1.Value=""
thisform.txtnmsup.Value=""
thisform.txttotal.Value=0
thisform.txtNmsup.Value=""
thisform.aturgrid()
thisform.ctambah.Enabled= .T.
thisform.csimpan.Caption="Simpan"
thisform.ckeluar.Caption= "Keluar"
Form Load
CLOSE TABLES ALL
SET DEFAULT TO "C:\Materi_VFP\PraUAS"
USE pembelian EXCLUSIVE IN 0
USE dtbeli EXCLUSIVE IN 0
USE souvenir EXCLUSIVE IN 0
USE supplier EXCLUSIVE IN 0
CREATE TABLE Tmpbeli(kodebrg char(9),namabrg char(20),;
hrg numeric, Tqty byte, Tsubtotal numeric);
SELECT Tmpbeli
USE Tmpbeli
Form Unload
IF USED("pembelian")
USE IN pembelian
ENDIF
IF USED("dtbeli")
USE IN dtbeli
ENDIF
IF USED("souvenir")
USE IN souvenir
ENDIF
IF USED("supplier")
USE IN supplier
ENDIF
DROP TABLE Tmpbeli
Form Activate
thisform.awal()
Ctambah Click
thisform.auto()
thisform.aktif()
thisform.ckeluar.caption= "Batal"
thisform.csimpan.Caption="Hapus Item"
thisform.ctambah.Enabled= .F.
Combo1 Click
SELECT supplier
SET ORDER TO kdsup
IF SEEK(thisform.combo1.Value)
thisform.txtnmsup.Value=nmsup
thisform.text1.SetFocus()
ENDIF
Text1 InterActiveChange
cari=TRIM(thisform.text1.Value) + ' % '
thisform.list1.RowSource=''
SELECT kdbrg,nmbrg,harga,stok ORDER BY kdbrg;
FROM Souvenir WHERE nmbrg LIKE ?cari INTO CURSOR tmpCari
thisform.list1.RowSource='tmpCari'
thisform.Refresh()
List1 dblClick
SELECT Tmpbeli
APPEND BLANK
thisform.grid1.Enabled= .T.
thisform.grid1.RecordSource='Tmpbeli'
thisform.grid1.RecordSourceType= 1
SELECT souvenir
SET ORDER TO TAG kdbrg
SEEK(TRIM(this.Value))
IF FOUND()
thisform.grid1.column1.text1.Value=souvenir-> kdbrg
thisform.grid1.column2.text1.Value=souvenir-> nmbrg
thisform.grid1.column3.text1.Value=souvenir-> harga
thisform.text1.Value=""
thisform.list1.Refresh()
thisform.txtQty.SetFocus()
ENDIF
thisform.list1.RowSource="souvenir"
List1 GotFocus
thisform.list1.ListIndex=1
txtQty Lostfocus
SELECT Tmpbeli
thisform.grid1.RecordSource='Tmpbeli'
thisform.grid1.RecordSourceType= 1
thisform.grid1.column4.text1.Value=thisform.txtqty.Value
thisform.grid1.column5.text1.Value=thisform.grid1.column4.text1.Value*thisform.grid1.column3.text1.Value
thisform.txttotal.Value=thisform.txttotal.Value+ thisform.grid1.column5.text1.Value
*menambah stok barang
SELECT souvenir
SET ORDER TO kdbrg
LOCATE FOR kdbrg=ALLTRIM(thisform.grid1.column1.text1.Value )
IF FOUND()
REPLACE stok WITH stok+thisform.txtQty.Value
thisform.list1.Refresh()
ENDIF
thisform.txtqty.Value =0
Tombol Navigasi
Cmdfirst Click
SELECT Tmpbeli
GO TOP
thisform.grid1.Refresh()
thisform.grid1.SetFocus
cdmback Click
SELECT Tmpbeli
SKIP -1
thisform.grid1.SetFocus
IF BOF()
GO TOP
thisform.grid1.Refresh()
ENDIF
Cmdback click
SELECT Tmpbeli
SKIP -1
thisform.grid1.SetFocus
IF BOF()
GO TOP
thisform.grid1.Refresh()
ENDIF
Cmdnext Click
SELECT Tmpbeli
SKIP 1
thisform.grid1.SetFocus
IF EOF()
GO BOTTOM
thisform.grid1.Refresh()
ENDIF
Cmdlast Click
GO BOTTOM
thisform.grid1.Refresh()
thisform.grid1.SetFocus
cInput Click
thisform.txtubay.Enabled= .T.
thisform.txtubay.SetFocus()
thisform.csimpan.Caption="Simpan"
txtUbay KeyPres
LPARAMETERS nKeyCode, nShiftAltCtrl
IF nkeycode=13
t=thisform.txttotal.Value
b=thisform.txtubay.Value
IF b THEN
MESSAGEBOX("Uang Bayar kurang!!",48,"Kesalahan")
b=""
RETURN
ELSE
thisform.txtkembali.Value=b-t
thisform.csimpan.Caption="Simpan"
ENDIF
ENDIF
Csimpan Click
SELECT pembelian
SET ORDER TO nofak
IF thisform.csimpan.Caption="Hapus Item"
SELECT Tmpbeli
SET DELETED ON
DELETE
PACK
thisform.aturgrid()
ELSE
SELECT Tmpbeli
SCAN
SELECT dtbeli
APPEND BLANK
REPLACE nofak WITH thisform.txtnofak.Value
REPLACE kdbrg WITH Tmpbeli.kodebrg
REPLACE qty WITH Tmpbeli.Tqty
REPLACE subtotal WITH Tmpbeli.Tsubtotal
ENDSCAN
SELECT pembelian
SET ORDER TO nofak
APPEND BLANK
REPLACE nofak WITH thisform.txtnofak.Value
REPLACE tglfak WITH DATE()
REPLACE kdsup WITH thisform.Combo1.Value
REPLACE total WITH thisform.txtTotal.Value
REPLACE ubay WITH thisform.txtUbay.Value
REPLACE kembali WITH thisform.txtKembali.Value
SELECT Tmpbeli
DELETE ALL
PACK
thisform.awal()
thisform.Refresh()
ENDIF
Ckeluar Click
IF thisform.ckeluar.Caption="Batal"
thisform.ckeluar.Caption="Keluar"
SELECT Tmpbeli
IF RECCOUNT() <> 0 THEN
SELECT souvenir
SET ORDER TO kdbrg
LOCATE FOR kdbrg=ALLTRIM(thisform.grid1.column1.text1.Value )
IF FOUND()
REPLACE stok WITH stok-(Tmpbeli.Tqty)
thisform.list1.Refresh()
ENDIF
SELECT Tmpbeli
DELETE ALL
PACK
thisform.awal()
ELSE
thisform.awal()
ENDIF
ELSE
IF thisform.ckeluar.Caption="Keluar"
thisform.Release
ENDIF
ENDIF
Timer1 Timer
*Menghitung tahun
th=LTRIM(STR(YEAR(DATE())))
*Menghitung bulan
bl=CMONTH(DATE())
*menghitung tanggal
tgl=LEFT(DTOC(DATE()),2)
thisform.txttglfak.Value=tgl+" "+bl+" "+th