1. Buatkan Form Kelola Data Pembelian dengan
disain seperti pada Gambar 9.2.1:
Listing
Program Transaksi Pembelian
a. Object Form1 Procedure LOAD
close
index
close
data
set
date british
set
cent on
set
defa to d:\sipbfifo\data
if
used("barang")
use in barang
endif
if
used("pemasok")
use in pemasok
endif
if
used("detailbeli")
endif
if
used("pembelian")
use in pembelian
endif
SELECT
1
use
barang
set
order to namabrg
SELECT
2
use
pemasok
set
order to nopem
SELECT
3
use
pembelian EXCLUSIVE
set
order to nofakbeli
SELECT
4
use
detailbeli EXCLUSIVE
set
order to nofakbeli
return
b. Object Form1 Procedure UNLOAD
close index
close data
return
c. Object Form1 Procedure AKTIF
PARAMETERS
x
thisform.nopem.Enabled=x
thisform.perusahaan.Enabled=x
retu
d. Object Form1 Procedure AKTIF1
PARAMETERS
y
thisform.nofakbeli.Enabled=y
thisform.tglbeli.Enabled=y
RETURN
e. Object Form1 Procedure AKTIF2
PARAMETERS
Z
thisform.kodebrg.Enabled=z
thisform.hargabeli.Enabled=z
thisform.qty.Enabled=z
thisform.namabrg.Enabled=z
RETURN
f. Object Form1 Procedure AKTIF3
PARAMETERS
r
thisform.diskon.Enabled=r
thisform.totalbayar.Enabled=r
thisform.utang.Enabled=r
RETURN
g. Object Form1 Procedure KENDALI
PARAMETERS s
thisform.pertama.Enabled=s
thisform.sebelumnya.Enabled=s
thisform.berikutnya.Enabled=s
thisform.terakhir.Enabled=s
RETURN
h. Object Form1 Procedure KOSONGKAN
thisform.namabrg.value=""
thisform.nopem.value=""
thisform.perusahaan.value=""
thisform.qty.value=0
thisform.kodebrg.value=""
thisform.hargabeli.value=0
thisform.totalbeli.value=0
thisform.diskon.value=0
thisform.totalbayar.value=0
thisform.utang.value=0
return
i. Object Form1 Procedure TAMPILKAN
select
pembelian
thisform.nofakbeli.value=pembelian.nofakbeli
thisform.nopem.value=pembelian.nopem
thisform.totalbeli.value=pembelian.totalbeli
thisform.diskon.value=pembelian.diskon
thisform.Totalbayar.value=pembelian.Totalbayar
thisform.utang.value=pembelian.utang
select
pemasok
locate
for nopem=thisform.nopem.value
thisform.perusahaan.value=pemasok.perusahaan
SELECT
DETAILBELI
SET
FILTER TO NOFAKBELI=TRIM(thisform.Nofakbeli.Value)
GO
top
thisform.tglbeli.value=detailbeli.tglbeli
thisform.Qty.value=detailbeli.qtyb
thisform.Hargabeli.value=detailbeli.HargaBeli
SELECT
BARANG
LOCATE
FOR KODEBRG=TRIM(thisform.kodebrg.Value)
thisform.NamaBrg.value=Barang.NamaBrg
thisform.refresh()
thisform.proses.enabled=.f.
thisform.batal.enabled=.f.
thisform.simpan.enabled=.f.
thisform.tambah.enabled=.t.
thisform.simpan.enabled=.f.
thisform.cetak.enabled=.t.
thisform.keluar.enabled=.t.
thisform.kendali(.t.)
thisform.aktif(.f.)
thisform.aktif1(.f.)
thisform.aktif2(.f.)
thisform.aktif3(.f.)
return
j. Object Form1 Procedure ACTIVATE
thisform.proses.enabled=.f.
thisform.batal.enabled=.f.
thisform.simpan.enabled=.f.
thisform.tambah.enabled=.t.
thisform.simpan.enabled=.f.
thisform.cetak.enabled=.f.
thisform.keluar.enabled=.t.
thisform.kendali(.t.)
thisform.aktif(.f.)
thisform.aktif1(.f.)
thisform.aktif2(.f.)
thisform.aktif3(.f.)
return
k. Object TAMBAH Procedure CLICK
thisform.kosongkan
select
barang
set
order to tag namabrg
thisform.refresh
thisform.tglbeli.value=date()
thisform.proses.enabled=.f.
thisform.batal.enabled=.t.
thisform.simpan.enabled=.f.
thisform.tambah.enabled=.f.
thisform.simpan.enabled=.f.
thisform.cetak.enabled=.f.
thisform.keluar.enabled=.f.
thisform.kendali(.F.)
thisform.aktif(.t.)
thisform.aktif1(.t.)
thisform.aktif2(.f.)
thisform.aktif3(.f.)
THISFORM.NOFAKBELI.value=""
THISFORM.NOFAKBELI.SETFOCUS
return
l. Object NOPEM Procedure LOSTFOCUS
SELECT Pemasok
LOCATE FOR nopem=RTRIM(thisform.nopem.Value)
IF ! FOUND()
MESSAGEBOX("Data
tidak ditemukan !",0,"Perhatian...")
thisform.nopem.setFocus
RETURN
endif
thisform.perusahaan.value=pemasok.perusahaan
thisform.aktif2(.t.)
thisform.kodebrg.setFocus
return
m. Object PERUSAHAAN Procedure InteractiveChange
thisform.nopem.value=pemasok.nopem
thisform.aktif2(.t.)
return
n. Object KODEBRG Procedure LOSTFOCUS
IF
EMPTY(thisform.kodebrg.Value)
thisform.kodebrg.value=""
thisform.qty.Value=0
thisform.kodebrg.setfocus
return
ENDIF
SELECT BARANG
LOCATE
FOR KODEBRG=TRIM(thisform.kodebrg.Value)
IF
FOUND()
thisform.namabrg.value=barang.NamaBrg
thisform.qty.Value=1
thisform.Proses.setfocus
ELSE
thisform.kodebrg.value=""
thisform.qty.Value=0
thisform.kodebrg.setfocus
ENDIF
thisform.aktif(.f.)
thisform.proses.Enabled=.t.
thisform.simpan.Enabled=.f.
thisform.tambah.Enabled=.f.
thisform.batal.Enabled=.f.
thisform.keluar.Enabled=.f.
thisform.cetak.Enabled=.f.
thisform.kendali(.f.)
return
o. Object NAMABRG Procedure INTERACTIVECHANGE
SELECT
barang
LOCATE
FOR namabrg=TRIM(thisform.namabrg.Value)
IF
found()
thisform.kodebrg.value=barang.kodebrg
thisform.qty.Value=1
ELSE
thisform.kodebrg.value=""
thisform.qty.Value=0
ENDIF
thisform.aktif(.f.)
thisform.Proses.Enabled=.t.
thisform.simpan.Enabled=.f.
thisform.tambah.Enabled=.f.
thisform.batal.Enabled=.f.
thisform.keluar.Enabled=.f.
thisform.cetak.Enabled=.f.
thisform.kendali(.f.)
return
p. Object PROSES Procedure CLICK
jml=thisform.hargabeli.value*thisform.qty.value
thisform.totalbeli.value=thisform.totalbeli.value+jml
if
thisform.qty.value>0 .and. thisform.hargabeli.value>0
sele
detailbeli
appe
blank
REPLACE
Nofakbeli with thisform.Nofakbeli.value
REPLACE
TglBeli with thisform.TglBeli.value
REPLACE
kodebrg with thisform.kodebrg.value
REPLACE
qtyb with thisform.qty.value
REPLACE
Hargabeli with thisform.Hargabeli.value
REPLACE
jmlbeli with jml
REPLACE
Stock with thisform.qty.value
SELECT
pembelian
LOCATE
FOR nofakbeli=TRIM(thisform.nofakbeli.Value)
IF
! FOUND()
APPEND BLANK
ENDIF
REPLACE
Nofakbeli with thisform.Nofakbeli.value
REPLACE
nopem with thisform.nopem.value
REPLACE
totalbeli with thisform.totalbeli.value
REPLACE
diskon with thisform.diskon.value
REPLACE
totalbayar with thisform.totalbayar.value
REPLACE
utang with thisform.utang.value
ENDIF
thisform.Refresh
thisform.Totalbayar.value=thisform.totalbeli.value
thisform.namabrg.value=""
thisform.qty.value=0
thisform.kodebrg.value=""
thisform.hargabeli.value=0
thisform.aktif3(.t.)
thisform.proses.Enabled=.f.
thisform.simpan.Enabled=.t.
thisform.tambah.Enabled=.f.
thisform.batal.Enabled=.f.
thisform.keluar.Enabled=.f.
thisform.cetak.Enabled=.f.
thisform.kendali(.f.)
thisform.kodebrg.setfocus
return
q. Object BATAL Procedure CLICK
IF
EMPTY(THISFORM.kodebrg.Value)
.OR. EMPTY(THISFORM.namabrg.Value)
.OR. ;
EMPTY(THISFORM.QTY.Value)
MESSAGEBOX("Click
dulu Record di Grid yang akan dibatalkan",0,"Perhatian...")
thisform.grid1.SetFocus
RETURN
ENDIF
jawab=messagebox("Anda
mau membatalkan transaksi ?",4+32+256,"Perhatian...")
if
jawab=6
sele detailbeli
loca
for detailbeli.kodebrg=TRIM(thisform.kodebrg.value) .and. ;
nofakbeli=TRIM(thisform.nofakbeli.Value)
SET DELETED ON
thisform.Refresh
IF FOUND()
ljml=thisform.hargabeli.value*thisform.qty.value
dele FOR detailbeli.kodebrg=TRIM(thisform.kodebrg.value)
.and. ;
nofakbeli=TRIM(thisform.nofakbeli.Value)
ELSE
ljml=0
ENDIF
thisform.totalbeli.value=thisform.totalbeli.value-ljml
thisform.totalbayar.value=thisform.totalbeli.value
thisform.refresh
thisform.qty.value=0
ENDIF
IF
thisform.totalbeli.Value=0
SELECT pembelian
LOCATE for nofakbeli=TRIM(thisform.nofakbeli.Value)
DELETE
thisform.aktif(.f.)
thisform.aktif2(.t.)
thisform.aktif3(.f.)
thisform.proses.Enabled=.f.
thisform.simpan.Enabled=.f.
thisform.tambah.Enabled=.t.
thisform.batal.Enabled=.f.
thisform.keluar.Enabled=.t.
thisform.cetak.Enabled=.f.
thisform.kendali(.t.)
thisform.refresh
else
thisform.aktif(.f.)
thisform.aktif2(.t.)
thisform.aktif3(.t.)
thisform.proses.Enabled=.f.
thisform.simpan.Enabled=.t.
thisform.tambah.Enabled=.f.
thisform.batal.Enabled=.f.
thisform.keluar.Enabled=.f.
thisform.cetak.Enabled=.f.
thisform.kendali(.f.)
thisform.refresh
endif
RETURN
r. Object BATAL Procedure RIGHTCLICK
thisform.keluar.enabled=.t.
s. Object SIMPAN Procedure CLICK
if
thisform.Totalbayar.value>thisform.totalbeli.value
messagebox("Maaf
Anda Keliru Memasukan Jumlah Bayar...",0,"Perhatian...")
thisform.Totalbayar.setfocus
retu
ENDIF
if
EMPTY(thisform.nopem.value)
messagebox("Data
pemasok/supplier harus diisi dulu !",0,"Perhatian...")
thisform.nopem.setfocus
retu
ENDIF
if thisform.totalbeli.value>0
select pembelian
locate for nofakbeli=trim(thisform.nofakbeli.value)
if ! found()
append blank
endif
repl nofakbeli
with thisform.nofakbeli.value
repl
Totalbeli with thisform.totalbeli.value
repl
nopem with thisform.nopem.value
repl diskon with
thisform.diskon.value
repl Totalbayar
with thisform.Totalbayar.value
repl utang with
thisform.utang.value
ENDIF
thisform.proses.enabled=.f.
thisform.batal.enabled=.f.
thisform.simpan.enabled=.f.
thisform.tambah.enabled=.t.
thisform.simpan.enabled=.f.
thisform.cetak.enabled=.t.
thisform.keluar.enabled=.t.
thisform.kendali(.t.)
thisform.aktif(.f.)
thisform.aktif1(.f.)
thisform.aktif2(.f.)
thisform.aktif3(.f.)
return
t. Object CETAK Procedure CLICK
SELECT
pemasok
SET
ORDER TO TAG NOPEM
SELECT
barang
SET
ORDER TO kodebrg
SELECT
detailbeli
SET
RELATION TO KodeBrg INTO BARANG,
Nofakbeli INTO PEMBELIAN, Pembelian.nopem INTO
PEMASOK
REPORT
form d:\sipbfifo\prg\kuitansib PREVIEW
thisform.proses.enabled=.f.
thisform.batal.enabled=.f.
thisform.simpan.enabled=.f.
thisform.tambah.enabled=.t.
thisform.simpan.enabled=.f.
thisform.cetak.enabled=.f.
thisform.keluar.enabled=.t.
thisform.kendali(.t.)
thisform.aktif(.f.)
thisform.aktif1(.f.)
thisform.aktif2(.f.)
thisform.aktif3(.f.)
return
u. Object KELUAR Procedure CLICK
sele
pembelian
set
dele off
PACK
SELECT
detailbeli
PACK
thisform.release
RETURN
v. Object GRID1
Procedure AfterRowColChange
LPARAMETERS
nColIndex
thisform.nofakbeli.value=detailbeli.nofakbeli
thisform.tglbeli.value=detailbeli.tglbeli
thisform.kodebrg.value=detailbeli.kodebrg
thisform.hargabeli.value=detailbeli.hargabeli
thisform.qty.value=detailbeli.qtyb
thisform.hargabeli.value=detailbeli.hargabeli
SELECT
barang
LOCATE
FOR kodebrg=TRIM(thisform.kodebrg.Value)
thisform.namabrg.value=barang.namabrg
SELECT
pembelian
LOCATE
FOR nofakbeli=TRIM(thisform.nofakbeli.Value)
thisform.nopem.value=pembelian.nopem
thisform.totalbeli.value=pembelian.totalbeli
thisform.totalbayar.value=pembelian.totalbayar
thisform.diskon.value=pembelian.diskon
thisform.utang.value=pembelian.utang
SELECT
pemasok
LOCATE
FOR nopem=TRIM(thisform.nopem.Value)
thisform.perusahaan.value=pemasok.perusahaan
IF
thisform.simpan.Enabled=.t.
thisform.batal.Enabled=.t.
ELSE
thisform.batal.Enabled=.f.
ENDIF
return
w. Object PERTAMA Procedure CLICK
select
pembelian
set
order to
go
top
if
bof()
messagebox("Tidak
ada record",0,"Perhatian...!")
thisform.release()
return
endif
thisform.tampilkan
thisform.refresh
return
x. Object SEBELUMNYA Procedure CLICK
select
pembelian
set
order to
skip
-1
if
bof()
go top
endif
thisform.tampilkan
thisform.refresh
return
y. Object BERIKUTNYA Procedure CLICK
select
pembelian
set
order to
skip
if
eof()
go bottom
endif
thisform.tampilkan
thisform.refresh
return
z. Object TERAKHIR Procedure CLICK
select
pembelian
set
order to
go
bottom
if
eof()
messagebox("Tidak
ada record",0,"Perhatian...!")
thisform.release
return
endif
thisform.tampilkan
thisform.refresh
return
No comments:
Post a Comment