bagian i - encepsupriatna.files.wordpress.com · 1 amik al ma’soem bagian i tujuan : 1. membuat...
Post on 18-Mar-2019
220 Views
Preview:
TRANSCRIPT
1
AMIK Al Ma’soem
BAGIAN I Tujuan :
1. Membuat Project File 2. Membuat menu program 3. Menguji Menu Program
A. BAHAN PRAKTEK I 1.1 Membuat Project File INVENTORY
1. Buka Program Microsoft Visual FoxPro 9.0 2. Klik Menu File pada Menu Bar 3. Pilih New pada Sub Menu File
4. Pilih Type File Project 5. Klik Tombol New File
6. Pada kotak dialog Save in Pindahkan folder ke Forder PRG di Folder Anda, Jika belum ada silahkan anda buatkan dulu: O:\FOXPRO\NamaAnda\PRG
7. Isi baris Enter Project File dengan INVENTORY (Nama File Project) 8. Klik tombol Save
1.2 Membuat Menu Program
1. Klik Page Other pada Project File INVENTORY 2. Pilih Menu 3. Klik tombol New
2
AMIK Al Ma’soem
4. Klik Tombol Menu
1.3 Membuat Menu Bar
Ketik Menu Bar di atas seperti berikut ini :
1.4 Sub Menu File
1. Klik pada prompt File 2. Pilih Result Submenu, kemudian Klik tombol Create sebelah kanan Submenu 3. Ketik submenu berikut :
4. Untuk memasukan perintah CTRL+W, klik pada tombol Option, kemudian klik pada textbox (press
the key) tekan CTRL+W. Lalu tekan tombol Ok untuk mengakhiri. 5. Pada prompt Logout, ganti result dengan Procedure, kemudian ketik prosedur berikut :
IF TYPE("FORMLOGIN")#"0"
3
AMIK Al Ma’soem
DO FORM o:\FOXPRO\NAMA\prg\FORMLOGIN.SCX
ENDIF
1.5 Sub Menu Master
1. Pindahkan Menu Level ke Menu Bar 2. Klik Prompt Master 3. Pilih Result Submenu, kemudian klik tombol Create sebelah kanan Submenu 4. Ketik submenu berikut :
1.6 Sub Menu Transaksi Lakukan perintah seperti di atas, untuk membuat submenu dari Transaksi berikut ini :
1.7 Sub Menu Laporan Buatkan lagi submenu Laporan berikut dengan cara seperti membuat submenu Master.
4
AMIK Al Ma’soem
1.8 Sub Menu BackUp
Lakukan perintan yang sama untuk membuat submenu Backup berikut :
1.9 Sub Menu Utility
Lakukan pula perintah seperti di atas untuk membuat submenu Utility berikut :
1.10 Menyimpan Menu Program
1. Klik Menu File pada Menu Bar 2. Pilih Save
3. Pada kotak dialog Save in, pindahkan ke folder PRG di folder Anda 4. Ketik nama file MenuLogin pada baris Save Menu As, kemudian Klik tombol Save
1.11 Menguji Menu Program
1. Klik tanda + di sebelah kiri Menus pada page Other 2. Klik File MenuLogin, kemudian Klik tombol Run
B. LATIHAN I Buatkan Menu Program Beikut, dan simpan dengan nama MenuUser : 1. Sub menu File
5
AMIK Al Ma’soem
2. Sub menu Master
3. Sub menu Transaksi
4. Sub menu Laporan
5. Sub menu BackUp
6
AMIK Al Ma’soem
6. Sub menu Utility
C. TUGASI Buatkan Menu Program berikut, dan simpan dengen nama MenuAdmin: 1. Sub menu File dan BackUp sama dengan MenuUser 2. Sub menu Master adalah sbb :
3. Sub menu Transaksi adalah sbb :
4. Sub menu Laporan adalah sbb :
5. Sub menu Utility adalah sbb :
7
AMIK Al Ma’soem
8
AMIK Al Ma’soem
BAGIAN II
Tujuan :
1. Membuat Database DINVENTORY 2. Membuat Tabel USERS 3. Membuat Free Table TMPUSERS 4. Membuat Form Login 5. Connection File Form 6. Menguji Form dan Menu Program
A. BAHAN PRAKTEK II 2.1 Membuat Database DINVENTORY dan Tabel USERS, serta Free Tabel TMPUSERS 1. Buatkan Databse DINVENTORY pada folder O:\FOXPRO\DATA 2. Buatkan Tabel USERS pada database DINVENTORY dengan struktur sbb :
3. Berikan Primary Key pada field NMID 4. Simpan dengan nama file USERS pada folder O:\FOXPRO\DATA 5. Buatkan lagi Tabel TMPUSERS pada Free Tabel dengan struktur file yang sama dengan Tabel USERS dan
simpan pada folder O:\FOXPRO\NAMA\DATA 2.2 Membuat Form LOGIN 1. Buatkan Form Login sbb :
2. Isikan Procedure berikut pada form Login a. Object Form1 Procedure ACTIVATE
set exact on
SET MULTILOCKS ON
SET EXCLUSIVE OFF
set defa to O:\FOXPRO\DATA
OPEN DATABASE DINVENTORY SHARED
if ! used('users')
9
AMIK Al Ma’soem
use users IN 0 SHARED
endif
if used('tmpusers')
use IN tmpusers
ENDIF
SELECT 10
USE O:\foxpro\ceps\data\tmpusers EXCLUSIVE
set order to tag nmid
set order to tag pswd
thisform.nmid.value=""
thisform.pswd.value=""
RETURN
b. Object Form1 Procedure UNLOAD close data
RETURN
c. Object LOGIN Procedure CLICK
IF EMPTY(thisform.nmid.value)
messagebox("User Id tidak boleh kosong...!",0,"Perhatian...")
thisform.nmid.setfocus
RETURN
ELSE
IF EMPTY(thisform.PSWD.value)
messagebox("Password tidak boleh kosong...!",0,"Perhatian...")
thisform.pswd.setfocus
RETURN
else
SELECT users
set order to tag nmid
LOCATE FOR NMID=TRIM(thisform.nmid.value)
if ! found()
messagebox("Maaf User Id Anda Belum Terdaftar...!",0,"Perhatian...")
thisform.nmid.setfocus
retu
else
set order to tag pswd LOCATE for nmid=TRIM(thisform.nmid.value) .and. pswd=TRIM(thisform.pswd.value)
if ! found()
messagebox("Maaf Password Tidak Dikenal...!",0,"Perhatian...")
thisform.pswd.setfocus()
retu
ELSE
SELECT tmpusers
DELETE ALL
SET DELETED OFF
PACK
APPEND FROM USERS FOR NMID=TRIM(THISFORM.NMID.Value)
IF users.jabat=1
DO e:\foxpro\ceps\prg\MENUUSER.MPR
ELSE
IF users.jabat=2
DO e:\foxpro\ceps\prg\MENUADMIN.MPR
ENDIF
ENDIF
10
AMIK Al Ma’soem
thisform.release
endif
endif
ENDIF
ENDIF
d. Object BATAL Procedure CLICK
thisform.release
retu 2.3 Connection Form LOGIN ke MenuLogin 1. Buka Menu Program MenuLogin 2. Klik Prompt File pada Menu Level MenuBar 3. Pilih Result Submenu, kemudian Klik Edit 4. Klik Prompt Login pada Submenu File 5. Pilih Result Procedure, kemudian klik Create 6. Isikan procedure berikut :
IF TYPE("FORMLOGIN")#"0"
DO FORM o:\FOXPRO\nama\prg\FormLogin.SCX
ENDIF 7. Simpan MenuLogin 8. Klik Tombol RUN, untuk menguji MenuLogin
B. LATIHAN II 1. Buatkan Form Kelola Data USER dengan LayOut sbb :
2. Procedure Form Kelola Data USER : a. Object Form1 Procedure LOAD
SET MULTILOCKS ON
SET EXCLUSIVE OFF
11
AMIK Al Ma’soem
set exact on
CLOSE DATABASES
set defa to O:\FOXPRO\DATA
OPEN DATABASE DINVENTORY SHARED
if ! USED("users")
USE users IN 0 SHARED
endif
if used('tmpusers')
use IN tmpusers
ENDIF
SELECT 10
USE O:\foxpro\ceps\data\tmpusers EXCLUSIVE
RETURN
b. Object Form1 Procedure UNLOAD CLOSE DATABASES
RETURN
c. Object Form1 Procedure NonNmid PARAMETERS x
thisform.namauser.Enabled=x
thisform.pswd.Enabled=x
thisform.jabat.Enabled=x
RETURN
d. Object Form1 Procedure Kendali PARAMETERS y
thisform.pertama.Enabled=y
thisform.sebelumnya.Enabled=y
thisform.berikutnya.Enabled=y
thisform.terakhir.Enabled=y
RETURN
e. Object Form1 Procedure Kosongkan thisform.nmid.value=""
thisform.pswd.value="”
thisform.namauser.value=""
thisform.jabat.value=0
retu f. Object Form1 Procedure Tampilkan
thisform.nmid.value=tmpusers.nmid
thisform.namauser.value=tmpusers.namauser
thisform.pswd.value=tmpusers.pswd
thisform.jabat.value=tmpusers.jabat
retu
g. Object Form1 Procedure Activate SELECT TMPUSERS DELETE ALL SET DELETE ON
12
AMIK Al Ma’soem
APPEND FROM USERS Thisform.refresh
thisform.nmid.enabled=.f.
thisform.nonnmid(.f.)
thisform.kendali(.t.)
thisform.baru.enabled=.t.
thisform.keluar.enabled=.t.
thisform.hapus.enabled=.f.
thisform.simpan.enabled=.f.
thisform.batal.enabled=.f.
thisform.perbaiki.enabled=.f.
thisform.ud.enabled=.f.
thisform.kosongkan
thisform.baru.setfocus
thisform.grid1.readonly=.t.
thisform.grid1.enabled=.t.
return
h. Object NMID Procedure LOSTFOCUS if empty(thisform.nmid.value)
messagebox("Nama Id Harus Diisi !",0,"Perhatian...!")
thisform.nmid.setfocus
return
endif
IF len(trim(thisform.nmid.Value))<4
messagebox("User Id tidak boleh kurang dari 5 digit !",;
0,"Perhatian...")
thisform.nmid.setfocus
RETURN
ENDIF
SELECT users
SET ORDER TO TAG nmid
SET EXACT ON
LOCATE FOR nmid=trim(thisform.nmid.value)
IF FOUND()
thisform.grid1.setfocus
thisform.refresh
MESSAGEBOX("Data tersebut sudah ada..",0+48,"Perhatian...")
else
thisform.perbaiki.enabled=.f.
thisform.ud.enabled=.f.
thisform.batal.enabled=.t.
thisform.baru.enabled=.f.
thisform.simpan.enabled=.t.
thisform.keluar.enabled=.f.
thisform.hapus.enabled=.f.
thisform.nmid.enabled=.f.
thisform.nonnmid(.t.)
thisform.kendali(.f.)
thisform.kosongkan
thisform.pswd.setfocus
thisform.grid1.readonly=.t.
thisform.grid1.enabled=.f.
endif
return
13
AMIK Al Ma’soem
i. Oject PSWD Procedure LOSTFOCUS IF len(trim(thisform.pswd.Value))<4
messagebox("Password tidak boleh kurang dari 4 digit !",;
0,"Perhatian...")
thisform.pswd.setfocus
RETURN
ENDIF
j. Oject CARI Procedure CLICK if empty(thisform.nmid.value)
messagebox("Nama Id Harus Diisi !",0,"Perhatian...!")
thisform.nmid.setfocus
return
endif
SELECT users
SET ORDER TO TAG nmid
SET EXACT OFF
LOCATE FOR nmid=TRIM(thisform.nmid.value)
if FOUND()
thisform.grid1.setfocus
thisform.refresh
ELSE
MESSAGEBOX("Data tidak ditemukan...",0,"Perhatian...")
thisform.perbaiki.enabled=.f.
thisform.ud.enabled=.f.
thisform.batal.enabled=.t.
thisform.baru.enabled=.f.
thisform.simpan.enabled=.f.
thisform.keluar.enabled=.f.
thisform.hapus.enabled=.f.
thisform.nmid.enabled=.f.
thisform.nonnmid(.f.)
thisform.kendali(.f.)
thisform.kosongkan
thisform.pswd.enabled=.t.
thisform.nmid.value=""
thisform.pswd.setfocus
thisform.grid1.readonly=.t.
thisform.grid1.enabled=.f.
endif
return
k. Oject CARI Procedure RIGHTCLICK thisform.nmid.Enabled=.t.
thisform.nmid.setfocus
return
l. Oject TAMBAH Procedure CLICK thisform.nmid.enabled=.t.
thisform.nonnmid(.f.)
thisform.kendali(.f.)
thisform.baru.enabled=.f.
thisform.keluar.enabled=.f.
thisform.hapus.enabled=.f.
14
AMIK Al Ma’soem
thisform.simpan.enabled=.f.
thisform.batal.enabled=.t.
thisform.perbaiki.enabled=.f.
thisform.ud.enabled=.f.
thisform.grid1.readonly=.t.
thisform.grid1.enabled=.f.
thisform.kosongkan
thisform.nmid.setfocus
return
m. Oject SIMPAN Procedure CLICK IF EMPTY(thisform.nmid.value)
messagebox("Isi dulu Nama Id-nya !",0,"Perhatian...")
thisform.nmid.setfocus
RETURN
ELSE
IF EMPTY(thisform.namauser.value)
messagebox("Isi dulu Nama User-nya !",0,"Perhatian...")
thisform.namauser.setfocus
RETURN
ELSE
IF EMPTY(thisform.pswd.value)
messagebox("Isi dulu Password-nya !",0,"Perhatian...")
thisform.pswd.setfocus
RETURN
ELSE
IF EMPTY(thisform.jabat.value)
messagebox("Isi dulu Jabatan-nya !",0,"Perhatian...")
thisform.jabat.setfocus
RETURN
ELSE
IF len(thisform.NMID.value)<4
messagebox("Nama Id minimal 4 Character...!",0,"Perhatian...")
thisform.nmid.setfocus
RETURN
ELSE
IF len(thisform.PSWD.value)<4
messagebox("Password minimal 4 Character...!",0,"Perhatian...")
thisform.pswd.setfocus
RETURN
ELSE
SELECT users
locate for nmid=trim(thisform.nmid.value)
if found()
messagebox("Nama Id ada yang sama !",0,;
"Penyimpanan tidak bisa dilakukan")
thisform.nmid.setfocus
RETURN
endif
locate for pswd=trim(thisform.pswd.value)
15
AMIK Al Ma’soem
if found()
messagebox("Password ada yang sama !",0,;
"Penyimpanan tidak bisa dilakukan")
thisform.pswd.setfocus
return
ENDIF
IF ! EMPTY(thisform.jabat.Value)
locate for nmid=space(14)
if ! found()
append blank
endif
WITH thisform
REPLACE users.nmid with .nmid.value,users.pswd with .pswd.value,;
users.namauser with .namauser.value,users.jabat with .jabat.value
IN [users]
ENDWITH
SELECT TMPUSERS
APPEND BLANK
WITH thisform
REPLACE tmpusers.nmid with .nmid.value,tmpusers.pswd with .pswd.value,;
tmpusers.namauser with .namauser.value,;
tmpusers.jabat with .jabat.value IN [tmpusers]
ENDWITH
thisform.grid1.setfocus
thisform.Refresh
messagebox("Penyimpanan data sudah dilakukan !",0,"Perhatian...")
thisform.perbaiki.enabled=.t.
thisform.ud.enabled=.f.
thisform.batal.enabled=.f.
thisform.baru.enabled=.t.
thisform.simpan.enabled=.f.
thisform.keluar.enabled=.t.
thisform.hapus.enabled=.t.
thisform.nmid.enabled=.f.
thisform.nonnmid(.f.)
thisform.kendali(.t.)
thisform.grid1.readonly=.t.
thisform.grid1.enabled=.t.
return
ELSE
messagebox("Isi dulu Jabatan-nya !",0,"Perhatian...")
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
n. Oject BATAL Procedure CLICK thisform.nmid.enabled=.f.
16
AMIK Al Ma’soem
thisform.nonnmid(.f.)
thisform.kendali(.t.)
thisform.baru.enabled=.t.
thisform.keluar.enabled=.t.
thisform.hapus.enabled=.f.
thisform.simpan.enabled=.f.
thisform.batal.enabled=.f.
thisform.perbaiki.enabled=.f.
thisform.ud.enabled=.f.
thisform.grid1.readonly=.t.
thisform.grid1.enabled=.t.
thisform.kosongkan
thisform.nmid.setfocus
return
o. Oject HAPUS Procedure CLICK SELECT users
LOCATE FOR nmid=TRIM(THISFORM.nmid.Value)
ln=RECNO()
ljawab=messagebox("Anda Yakin ?",4+32+256,"Record ini mau dihapus !")
if ljawab=6
DELETE FOR nmid=TRIM(THISFORM.nmid.Value)
set dele on
ENDIF
goto ln
thisform.grid1.setfocus
thisform.refresh
thisform.perbaiki.enabled=.t.
thisform.ud.enabled=.f.
thisform.batal.enabled=.f.
thisform.baru.enabled=.t.
thisform.simpan.enabled=.f.
thisform.keluar.enabled=.t.
thisform.hapus.enabled=.t.
thisform.nmid.enabled=.f.
thisform.nonnmid(.f.)
thisform.kendali(.t.)
thisform.grid1.readonly=.t.
thisform.grid1.enabled=.t.
return
p. Oject KELUAR Procedure CLICK thisform.release return
q. Oject PERBAIKI Procedure CLICK thisform.perbaiki.enabled=.f.
thisform.ud.enabled=.t.
thisform.batal.enabled=.t.
thisform.baru.enabled=.f.
thisform.simpan.enabled=.f.
17
AMIK Al Ma’soem
thisform.keluar.enabled=.f.
thisform.hapus.enabled=.f.
thisform.nonnmid(.t.)
thisform.kendali(.f.)
thisform.nmid.enabled=.f.
thisform.pswd.setfocus
thisform.grid1.readonly=.t.
thisform.grid1.enabled=.f.
return
r. Oject UD Procedure CLICK IF EMPTY(thisform.nmid.value)
messagebox("Isi dulu Nama Id-nya !",0,"Perhatian...")
thisform.nmid.setfocus
RETURN
ENDIF
IF EMPTY(thisform.namauser.value)
messagebox("Isi dulu Nama User-nya !",0,"Perhatian...")
thisform.namauser.setfocus
RETURN
ENDIF
IF EMPTY(thisform.pswd.value)
messagebox("Isi dulu Password-nya !",0,"Perhatian...")
thisform.pswd.setfocus
RETURN
ENDIF
IF EMPTY(thisform.jabat.value)
messagebox("Isi dulu Jabatan-nya !",0,"Perhatian...")
thisform.jabat.setfocus
RETURN
ENDIF
IF len(thisform.NMID.value)<4
messagebox("Nama Id minimal 4 Character...!",0,"Perhatian...")
thisform.nmid.setfocus
RETURN
ENDIF
IF len(thisform.PSWD.value)<4
messagebox("Password minimal 4 Character...!",0,"Perhatian...")
thisform.pswd.setfocus
RETURN
ENDIF
JAWAB=MESSAGEBOX("Anda yakin mau memperbaiki data sebelumnya?",;
4+32,"Perhatian...")
IF jawab=6
Select users
WITH thisform
REPLACE users.nmid with .nmid.value,users.pswd with .pswd.value,;
users.namauser with .namauser.value,users.jabat with .jabat.value IN [users]
ENDWITH
SELECT TMPUSERS
WITH thisform
18
AMIK Al Ma’soem
REPLACE tmpusers.nmid with .nmid.value,tmpusers.pswd with .pswd.value,;
tmpusers.namauser with .namauser.value,;
tmpusers.jabat with .jabat.value IN [tmpusers]
ENDWITH
thisform.Refresh
ENDIF
thisform.perbaiki.enabled=.t.
thisform.ud.enabled=.f.
thisform.batal.enabled=.f.
thisform.baru.enabled=.t.
thisform.simpan.enabled=.f.
thisform.keluar.enabled=.t.
thisform.hapus.enabled=.t.
thisform.nmid.enabled=.f.
thisform.nonnmid(.f.)
thisform.kendali(.t.)
thisform.grid1.readonly=.t.
thisform.grid1.enabled=.t.
return
s. Oject PERTAMA Procedure CLICK SELECT users
go top
if eof()
messagebox("Tidak ada record...",0,"Perhatian...!")
return
ENDIF
thisform.grid1.setfocus
thisform.refresh
return
t. Oject SEBELUMNYA Procedure CLICK SELECT users
skip -1
if bof()
go top
ENDIF
thisform.grid1.setfocus
thisform.refresh
return
u. Oject BERIKUTNYA Procedure CLICK SELECT users
skip
if bof()
go bottom
ENDIF
thisform.grid1.setfocus
thisform.refresh
return
v. Oject TERAKHIR Procedure CLICK
19
AMIK Al Ma’soem
SELECT users
go bottom
if eof()
messagebox("Tidak ada record...",0,"Perhatian...!")
return
ENDIF
thisform.grid1.setfocus
thisform.refresh
return
w. Oject GRID1 Procedure AfterRowColChange LPARAMETERS nColIndex
thisform.perbaiki.enabled=.t.
thisform.hapus.enabled=.t.
thisform.batal.enabled=.f.
thisform.nmid.enabled=.f.
thisform.nonnmid(.f.)
thisform.kendali(.t.)
thisform.baru.enabled=.t.
thisform.simpan.enabled=.f.
thisform.keluar.enabled=.t.
thisform.grid1.enabled=.t.
thisform.grid1.readonly=.t.
thisform.tampilkan
retu
C. TUGAS II Buatkan Form Mengganti Password dengan LayOut sbb :
20
AMIK Al Ma’soem
BAGIAN III
Tujuan :
1. Membuat Table Barang 2. Membuat Table Supplier 3. Membuat Table Pelanggan 4. Membuat Table Pembelian 5. Membuat Table Faktur Pembelian (FakturB) 6. Membuat Table Penjualan 7. Membuat Table Faktur Penjualan (Faktur) 8. Membuat Form untuk mengelola data Barang
A. BAHAN PRAKTEK III
3.1 Table Barang Nama Table : Barang Primary Key : KodeBrg
3.2 Table Supplier Nama Table : Supplier Primary Key : NoSup
21
AMIK Al Ma’soem
3.3 Table Pelanggan Nama Table : Pelanggan Primary Key : NoPel
3.4 Table Pembelian Nama Table : Pembelian Primary Key : -
3.5 Table Faktur Pembelian Nama Table : FakturB Primary Key : NofakB
3.6 Table Penjualan Nama Table : Penjualan Primary Key : -
22
AMIK Al Ma’soem
3.7 Table Faktur Penjualan Nama Table : Faktur Primary Key : NoFak
3.8 Form Kelola Data Barang Nama Form : OlahBrg
3.9 Procedure Program
*Object FORM1 Procedure LOAD SET MULTILOCKS ON
SET EXCLUSIVE OFF
SET EXACT ON
SET CENTURY ON
CLOSE DATABASES
23
AMIK Al Ma’soem
SET DEFAULT TO E:\FOXPRO\data
* Menutup semua file yang tidak diperlukan
OPEN DATABASE DINVENTORY SHARED
if ! USED("BARANG")
USE BARANG IN 0 SHARED
ENDIF
if ! USED("PENJUALAN")
USE PENJUALAN IN 0 SHARED
ENDIF
if ! USED("PEMBELIAN")
USE PEMBELIAN IN 0 SHARED
ENDIF
if USED("TMPBRGA")
USE IN TMPBRGA
ENDIF
SELECT 10
USE E:\FOXPRO\CEPS\DATA\TMPBRGA EXCLUSIVE
RETURN
*Object FORM1 Procedure NonKode
PARAMETERS keadaan
thisform.namabrg.enabled=keadaan
thisform.stock.enabled=keadaan
thisform.stockmin.enabled=keadaan
thisform.stockmax.enabled=keadaan
thisform.loker.enabled=keadaan
thisform.hargabeli.enabled=keadaan
thisform.hargajual.enabled=keadaan
thisform.disk.enabled=keadaan
RETURN
*Object FORM1 Procedure KENDALI
parameter x
thisform.pertama.enabled=x
thisform.sebelumnya.enabled=x
thisform.berikutnya.enabled=x
thisform.terakhir.enabled=x
RETURN
*Object FORM1 Procedure KOSONGKAN
thisform.namabrg.value=""
thisform.stock.value=0
thisform.stockmin.value=0
thisform.stockmax.value=0
thisform.loker.value=""
thisform.hargabeli.value=0
thisform.hargajual.value=0
thisform.disk.value=0
RETURN
*Object FORM1 Procedure TAMPILKAN
thisform.kodebrg.value=tmpbrga.kodebrg
thisform.namabrg.value=tmpbrga.namabrg
thisform.stock.value=tmpbrga.stock
thisform.stockmin.value=tmpbrga.stockmin
24
AMIK Al Ma’soem
thisform.stockmax.value=tmpbrga.stockmax
thisform.loker.value=tmpbrga.loker
thisform.hargabeli.value=tmpbrga.hargabeli
thisform.hargajual.value=tmpbrga.hargajual
thisform.disk.value=tmpbrga.disk
RETURN
*Object FORM1 Procedure ACTIVATE SELECT TMPBRGA
SET DELETED ON
DELETE ALL
APPEND FROM BARANG
THISFORM.REFRESH
thisform.kodebrg.enabled=.f.
thisform.nonkode(.f.)
thisform.kendali(.t.)
thisform.baru.enabled=.t.
thisform.keluar.enabled=.t.
thisform.hapus.enabled=.f.
thisform.simpan.enabled=.f.
thisform.batal.enabled=.f.
thisform.lihat.enabled=.f.
thisform.perbaiki.enabled=.f.
thisform.ud.enabled=.f.
thisform.kosongkan
thisform.kodebrg.setfocus
thisform.grid1.enabled=.t.
RETURN
*Object KODEBRG Procedure LostFocus
if empty(thisform.kodebrg.value)
messagebox("Kode Barang Harus Diisi !",0,"Perhatian...!")
thisform.kodebrg.setfocus
return
endif
if empty(thisform.KODEBRG.value)
messagebox("Kode Barang Harus Diisi !",0,"Perhatian...!")
thisform.KODEBRG.setfocus
return
endif
if left(thisform.KODEBRG.value,1)#"B" .and.
left(thisform.KODEBRG.value,1)#"S"
messagebox("Kode Barang harus diawali hurup B untuk barang bubutan ";
+CHR(13)+"dan Hurup S untuk barang sparepart !",0,"Perhatian...!")
thisform.KODEBRG.setfocus
return
ENDIF
IF VAL(SUBSTR(TRIM(thisform.KODEBRG.Value),2,5))<1
messagebox("Mulai karakter ke 2 hrs diisi dengan no urut !",;
0+48,"Perhatian...")
thisform.KODEBRG.setfocus
RETURN
ENDIF
IF LEN(TRIM(thisform.KODEBRG.Value))<6
messagebox("Jumlah Kode harus 6 character !",0+32,"Perhatian...")
25
AMIK Al Ma’soem
thisform.KODEBRG.setfocus
RETURN
ENDIF
SELECT BARANG
SET ORDER TO TAG KODEBRG
LOCATE FOR KODEBRG=TRIM(thisform.kodebrg.value)
if FOUND()
SELECT TMPBRGA
SET ORDER TO TAG KODEBRG
LOCATE FOR KODEBRG=TRIM(thisform.kodebrg.value)
thisform.grid1.setfocus
thisform.refresh
messagebox("Data barang tersebut sudah ada !",0,;
"Perhatian...")
return
else
thisform.perbaiki.enabled=.f.
thisform.ud.enabled=.f.
thisform.batal.enabled=.t.
thisform.baru.enabled=.f.
thisform.simpan.enabled=.t.
thisform.keluar.enabled=.f.
thisform.hapus.enabled=.f.
thisform.kodebrg.enabled=.f.
thisform.lihat.enabled=.f.
thisform.nonkode(.t.)
thisform.kendali(.f.)
thisform.kosongkan
thisform.namabrg.setfocus
thisform.grid1.enabled=.f.
endif
RETURN
*Object CARI Procedure RIGHTCLICK
thisform.namabrg.Enabled=.t.
thisform.namabrg.SetFocus
RETURN
*Object CARI Procedure CLICK
if empty(thisform.namabrg.value)
messagebox("Kode Barang Harus Diisi !",0,"Perhatian...!")
thisform.namabrg.setfocus
return
endif
SELECT BARANG
SET EXACT OFF
SET ORDER TO NAMABRG && NAMABRG
LOCATE FOR UPPER(namabrg)=UPPER(TRIM(thisform.namabrg.value))
if FOUND()
SELECT TMPBRGA
SET ORDER TO TAG KODEBRG
26
AMIK Al Ma’soem
LOCATE FOR KODEBRG=TRIM(thisform.kodebrg.value)
thisform.grid1.setfocus
thisform.refresh
thisform.grid1.enabled=.t.
ELSE
messagebox("Data barang yang diminta tidak ditemukan?",;
0,"Perhatian...")
thisform.nonkode(.f.)
thisform.kosongkan
thisform.kodebrg.value=""
thisform.namabrg.enabled=.t.
thisform.namabrg.setfocus
thisform.grid1.enabled=.f.
ENDIF
RETURN
*Object TAMBAH Procedure CLICK
thisform.kodebrg.enabled=.t.
thisform.nonkode(.f.)
thisform.kendali(.f.)
thisform.baru.enabled=.f.
thisform.keluar.enabled=.f.
thisform.hapus.enabled=.f.
thisform.simpan.enabled=.f.
thisform.batal.enabled=.t.
thisform.lihat.enabled=.f.
thisform.perbaiki.enabled=.f.
thisform.ud.enabled=.f.
thisform.grid1.enabled=.f.
thisform.kosongkan
thisform.kodebrg.value=""
thisform.kodebrg.setfocus
RETURN
*Object SIMPAN Procedure CLICK
IF EMPTY(thisform.namabrg.value)
thisform.simpan.Enabled=.f.
messagebox("Nama barang tidak boleh kosong!",0,"Perhatian...")
thisform.namabrg.setfocus
thisform.simpan.Enabled=.t.
RETURN
else
IF EMPTY(thisform.hargabeli.value)
thisform.simpan.Enabled=.f.
messagebox("Harga beli tidak boleh kosong!",0,"Perhatian...")
thisform.hargabeli.setfocus
thisform.simpan.Enabled=.t.
RETURN
else
IF EMPTY(thisform.hargajual.value)
thisform.simpan.Enabled=.f.
27
AMIK Al Ma’soem
messagebox("Harga jual tidak boleh kosong!",0,"Perhatian...")
thisform.hargajual.setfocus
thisform.simpan.Enabled=.t.
RETURN
else
IF thisform.hargajual.Value<thisform.hargabeli.Value
thisform.simpan.Enabled=.f.
MESSAGEBOX("Input harga dengan benar !",0,"Perhatian...")
thisform.hargabeli.SetFocus
thisform.simpan.Enabled=.t.
RETURN
else
SELECT BARANG
locate for namabrg=trim(thisform.namabrg.value)
if found()
messagebox("Nama Barang Ada Yang Sama !",0,;
"Penyimpanan tidak bisa dilakukan")
thisform.namabrg.setfocus
return
else
locate for kodebrg=space(6)
if ! found()
append blank
endif
WITH THISFORM
REPLACE barang.kodebrg with .kodebrg.value,;
barang.namabrg with .namabrg.value,barang.stock with .stock.value,;
barang.stockmin with .stockmin.value,barang.stockmax with .stockmax.value,;
barang.loker with .loker.value,barang.hargabeli with .hargabeli.value,;
barang.hargajual with .hargajual.value,barang.disk with .disk.value IN [BARANG]
ENDWITH
SELECT TMPBRGA
APPEND BLANK
WITH THISFORM
REPLACE tmpbrga.kodebrg with .kodebrg.value,;
tmpbrga.namabrg with .namabrg.value,tmpbrga.stock with .stock.value,;
tmpbrga.stockmin with .stockmin.value,tmpbrga.stockmax with .stockmax.value,;
tmpbrga.loker with .loker.value,tmpbrga.hargabeli with .hargabeli.value,;
tmpbrga.hargajual with .hargajual.value,tmpbrga.disk with .disk.value IN [tmpbrga]
ENDWITH
thisform.simpan.Enabled=.t.
thisform.grid1.setfocus
thisform.Refresh
messagebox("Penyimpanan data sudah dilakukan !",0,"Perhatian...")
thisform.perbaiki.enabled=.t.
thisform.ud.enabled=.f.
thisform.batal.enabled=.f.
thisform.baru.enabled=.t.
thisform.simpan.enabled=.f.
thisform.keluar.enabled=.t.
thisform.hapus.enabled=.t.
thisform.kodebrg.enabled=.f.
thisform.lihat.enabled=.t.
thisform.nonkode(.f.)
28
AMIK Al Ma’soem
thisform.kendali(.t.)
thisform.grid1.enabled=.t.
thisform.baru.setfocus
RETURN
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
*Object BATAL Procedure CLICK
thisform.grid1.SetFocus
thisform.Refresh
SELECT TMPBRGA
LOCATE FOR kodebrg=TRIM(thisform.kodebrg.value)
IF FOUND()
vstock=tmpbrga.stock
vhargabeli=tmpbrga.hargabeli
ELSE
vstock=0
vhargabeli=0
ENDIF
thisform.kodebrg.enabled=.f.
thisform.nonkode(.f.)
thisform.kendali(.t.)
thisform.baru.enabled=.t.
thisform.keluar.enabled=.t.
thisform.hapus.enabled=.f.
thisform.simpan.enabled=.f.
thisform.batal.enabled=.f.
thisform.perbaiki.enabled=.f.
thisform.ud.enabled=.f.
thisform.grid1.enabled=.t.
thisform.kosongkan
thisform.kodebrg.setfocus
RETURN
*Object HAPUS Procedure CLICK
SELECT PENJUALAN
LOCATE FOR KODEBRG=TRIM(THISFORM.kodebrg.Value)
IF FOUND()
messagebox("Maaf Record ini tidak bisa dihapus ?",0,;
"Barang tsb sudah digunakan dalam transaksi... ")
RETURN
ENDIF
SELECT PEMBELIAN
LOCATE FOR KODEBRG=TRIM(THISFORM.kodebrg.Value)
IF FOUND()
messagebox("Maaf Record ini tidak bisa dihapus ?",0,;
"Barang tsb sudah digunakan dalam transaksi... ")
RETURN
29
AMIK Al Ma’soem
ENDIF
ln=RECNO()
ljawab=messagebox("Anda Yakin ?",4+32+512,"Record ini mau dihapus !")
if ljawab=6
SELECT barang
LOCATE FOR KODEBRG=TRIM(THISFORM.kodebrg.Value)
DELETE
set dele on
SELECT TMPBRGA
LOCATE FOR KODEBRG=TRIM(THISFORM.kodebrg.Value)
DELETE
ENDIF
goto ln
thisform.grid1.setfocus
thisform.refresh
RETURN
*Object KELUAR Procedure CLICK SET EXCLUSIVE ON
SET DELETED OFF
SELECT TMPBRGA
DELETE ALL
PACK
SET DELETED ON
SET EXCLUSIVE OFF
thisform.release
RETURN
*Object CETAK Procedure CLICK
REPORT FORM E:\FOXPRO\CEPS\PRG\DAFTARBRG PREVIEW
RETURN
*Object PERBAIKI Procedure CLICK thisform.nonkode(.t.)
thisform.perbaiki.enabled=.f.
thisform.ud.enabled=.t.
thisform.batal.enabled=.t.
thisform.baru.enabled=.f.
thisform.simpan.enabled=.f.
thisform.keluar.enabled=.f.
thisform.hapus.enabled=.f.
thisform.kodebrg.enabled=.f.
thisform.kendali(.f.)
thisform.namabrg.setfocus
thisform.grid1.enabled=.f.
RETURN
*Object UD Procedure CLICK IF EMPTY(thisform.namabrg.value)
thisform.simpan.Enabled=.f.
messagebox("Nama barang tidak boleh kosong!",0,"Perhatian...")
thisform.namabrg.setfocus
thisform.simpan.Enabled=.t.
RETURN
ENDIF
30
AMIK Al Ma’soem
IF EMPTY(thisform.hargabeli.value)
thisform.simpan.Enabled=.f.
messagebox("Harga beli tidak boleh kosong!",0,"Perhatian...")
thisform.hargabeli.setfocus
thisform.simpan.Enabled=.t.
RETURN
ENDIF
IF EMPTY(thisform.hargajual.value)
thisform.simpan.Enabled=.f.
messagebox("Harga jual tidak boleh kosong!",0,"Perhatian...")
thisform.hargajual.setfocus
thisform.simpan.Enabled=.t.
RETURN
ENDIF
IF thisform.hargajual.Value<thisform.hargabeli.Value
thisform.simpan.Enabled=.f.
MESSAGEBOX("Input harga dengan benar !",0,"Perhatian...")
thisform.hargabeli.SetFocus
thisform.simpan.Enabled=.t.
RETURN
ENDIF
jawab=messagebox("Mau Memperbaiki Data Sebelumnya ?",4+32,"Perhatian...!")
if jawab=6
SELECT BARANG
LOCATE FOR kodebrg=TRIM(thisform.kodebrg.value)
IF FOUND()
WITH THISFORM REPLACE BARANG.namabrg with .namabrg.value,;
barang.stock with .stock.value,barang.stockmin with .stockmin.value,;
barang.stockmax with .stockmax.value,barang.loker with .loker.value,;
barang.hargabeli with .hargabeli.value,barang.disk with .disk.value,;
barang.hargajual with .hargajual.value IN [barang]
ENDWITH
WITH THISFORM
REPLACE tmpbrga.kodebrg with .kodebrg.value,; tmpbrga.namabrg with .namabrg.value,tmpbrga.stock with .stock.value,;
tmpbrga.stockmin with .stockmin.value,tmpbrga.stockmax with .stockmax.value,;
tmpbrga.loker with .loker.value,tmpbrga.hargabeli with .hargabeli.value,;
tmpbrga.hargajual with .hargajual.value,tmpbrga.disk with .disk.value IN [tmpbrga]
ENDWITH
ENDIF
ELSE
thisform.grid1.SetFocus
thisform.Refresh
SELECT barang
LOCATE FOR kodebrg=TRIM(thisform.kodebrg.value)
IF FOUND()
vstock=barang.stock
vhargabeli=barang.hargabeli
ENDIF
ENDIF
thisform.perbaiki.enabled=.t.
thisform.ud.enabled=.f.
thisform.batal.enabled=.f.
thisform.baru.enabled=.t.
thisform.simpan.enabled=.f.
thisform.keluar.enabled=.t.
thisform.hapus.enabled=.t.
thisform.kodebrg.enabled=.f.
31
AMIK Al Ma’soem
thisform.nonkode(.f.)
thisform.kendali(.t.)
thisform.kodebrg.setfocus()
thisform.grid1.enabled=.t.
RETURN
*Object PERTAMA Procedure CLICK
SELECT TMPBRGA
set order to
go top
if eof()
messagebox("Tidak ada record...!",0,"Perhatian...!")
thisform.refresh()
return
ENDIF
set order to tag kodebrg
thisform.grid1.setfocus
thisform.refresh
RETURN
*Object SEBELUMNYA Procedure CLICK SELECT TMPBRGA
set order to
skip -1
if bof()
go top
endif
set order to tag kodebrg
thisform.grid1.setfocus
thisform.refresh
RETURN
*Object BERIKUTNYA Procedure CLICK SELECT TMPBRGA
set order to
skip
if bof()
go bottom
endif
set order to tag kodebrg
thisform.grid1.setfocus
thisform.refresh
RETURN
*Object TERAKHIR Procedure CLICK SELECT TMPBRGA
set order to
go bottom
if eof()
messagebox("Tidak ada record...!",0,"Perhatian...!")
thisform.refresh()
return
ENDIF
set order to tag kodebrg
thisform.grid1.setfocus
thisform.refresh
RETURN
32
AMIK Al Ma’soem
*Object GRID1 Procedure AfterRowCollChenge
LPARAMETERS nColIndex
thisform.perbaiki.enabled=.t.
thisform.hapus.enabled=.t.
thisform.batal.enabled=.f.
thisform.kodebrg.enabled=.f.
thisform.nonkode(.f.)
thisform.kendali(.t.)
thisform.baru.enabled=.t.
thisform.simpan.enabled=.f.
thisform.keluar.enabled=.t.
thisform.grid1.enabled=.t.
thisform.lihat.enabled=.t.
thisform.grid1.readonly=.t.
thisform.tampilkan
RETURN
B. TUGAS III : Buatkan Form KELOLA DATA PELANGGAN
33
AMIK Al Ma’soem
BAGIAN IV
Tujuan : 1. Membuat ReportDaftar Persediaan Barang 2. Filter 3. Grouping
A. BAHAN PRAKTEK IV 1. Membuat Report DAFTAR PERSEDIAAN BARANG
2. Simpan Report dengan nama DAFTARBRG 3. Memanggil Report dari Form Kelola Barang a. Buka Form Kelola Data Barang b. Double Click pada tombol Cetak c. Ketik procedure berikut : REPORT FORM E:\FOXPRO\CEPS\PRG\DAFTARBRG PREVIEW
RETURN
34
AMIK Al Ma’soem
B. TUGAS IV Buatkan Form Kelola data Supplier
35
AMIK Al Ma’soem
BAGIAN V
Tujuan :
1. Transaksi Penjualan 2. Link File 3. Relasi File
A. BAHAN PRAKTEK V: 5.1 Free Table Temporary TMPJUALA Nama Free Table : TMPJUALA Primary Key : -
5.2 Free Table Temporary LAPJUALA Copy file Table TMPJUALA ke LAPJUALA, kemudian indeks sesuai table TMPJUALA
5.3 Form Transaksi PENJUALAN
36
AMIK Al Ma’soem
* Object FORM1 Procedure LOAD set date british
set cent on
CLOSE DATABASES
SET MULTILOCKS ON
SET EXCLUSIVE OFF
set defa to E:\FOXPRO\DATA
OPEN DATABASE DINVENTORY SHARED
if ! used("barang")
use barang IN 0 SHARED
endif
if ! used("pelanggan")
use pelanggan IN 0 SHARED
endif
if ! used("faktur")
use faktur IN 0 SHARED
endif
if ! used("penjualan")
use penjualan IN 0 SHARED
endif
if ! used("pembelian")
use pembelian IN 0 SHARED
endif
if used("tmpjuala")
use in tmpjuala
ENDIF
select 9
USE e:\foxpro\ceps\data\tmpjuala EXCLUSIVE
select 10
USE e:\foxpro\ceps\data\tmpusers EXCLUSIVE
RETURN
37
AMIK Al Ma’soem
* Object FORM1 Procedure UNLOAD CLOSE DATABASES
USE IN TMPJUALA
RETURN
* Object FORM1 Procedure AKTIF PARAMETERS x
thisform.nopel.Enabled=x
thisform.namapel.Enabled=x
RETURN
* Object FORM1 Procedure AKTIF1 PARAMETERS y
thisform.nofak.Enabled=y
thisform.tgljual.Enabled=y
RETURN
* Object FORM1 Procedure AKTIF2 PARAMETERS Z
thisform.namabrg.Enabled=z
thisform.kodebrg.Enabled=z
thisform.qty.Enabled=z
thisform.hargajual.Enabled=z
thisform.diskon.Enabled=z
RETURN
* Object FORM1 Procedure AKTIF3 PARAMETERS r
thisform.totdiskon.Enabled=r
thisform.jmlbayar.Enabled=r
thisform.piutang.Enabled=r
RETURN
* Object FORM1 Procedure KENDALI PARAMETERS s
thisform.pertama.Enabled=s
thisform.sebelumnya.Enabled=s
thisform.berikutnya.Enabled=s
thisform.terakhir.Enabled=s
RETURN
* Object FORM1 Procedure KOSONGKAN thisform.namabrg.value=""
thisform.qty.value=0
thisform.kodebrg.value=""
thisform.hargabeli.value=0
thisform.hargajual.value=0
thisform.totjual.value=0
thisform.nopel.value=""
thisform.namapel.value=""
thisform.diskon.value=0
thisform.totdiskon.value=0
thisform.jmlbayar.value=0
thisform.piutang.value=0
thisform.totlaba.value=0
RETURN
38
AMIK Al Ma’soem
* Object FORM1 Procedure TAMPILKAN select faktur
SET ORDER TO TGLTRAN
thisform.nofak.value=faktur.nofak
thisform.tgljual.value=faktur.tgltran
thisform.totjual.value=faktur.totjual
thisform.totdiskon.value=faktur.totdiskon
thisform.jmlbayar.value=faktur.jmlbayar
thisform.piutang.value=faktur.piutang
thisform.nopel.value=faktur.nopel
thisform.totlaba.value=faktur.totlaba
thisform.namauser.value=faktur.namauser
select pelanggan
locate for nopel=thisform.nopel.value
thisform.namapel.value=pelanggan.namapel
select tmpjuala
dele all
set dele on
appe from penjualan for nofak=thisform.nofak.value
go top
do while ! eof()
select barang
locate for kodebrg=tmpjuala.kodebrg
IF FOUND()
vnamabrg=barang.namabrg
vhargabeli=barang.hargabeli
ELSE
vnamabrg=""
vhargabeli=0
endif
select tmpjuala
REPLACE namabrg with vnamabrg
REPLACE hargabeli with vhargabeli
REPLACE hargajual WITH jumlah/qty
skip
enddo
REPLACE ALL NoFak WITH thisform.Nofak.Value
REPLACE ALL tgltran WITH thisform.tgljual.Value
REPLACE ALL Nopel WITH thisform.Nopel.Value
REPLACE ALL namauser with thisform.namauser.value
GO BOTTOM
REPLACE totjual with thisform.totjual.value
REPLACE totdiskon with thisform.totdiskon.value
REPLACE jmlbayar with thisform.jmlbayar.value
REPLACE Piutang with thisform.piutang.value
thisform.kodebrg.value=tmpjuala.kodebrg
thisform.namabrg.value=tmpjuala.namabrg
thisform.hargajual.value=tmpjuala.hargajual
thisform.hargabeli.value=tmpjuala.hargabeli
thisform.qty.value=tmpjuala.qty
GO TOP
thisform.refresh
thisform.kembalian.enabled=.t.
thisform.hitung.enabled=.f.
thisform.batal.enabled=.f.
thisform.simpan.enabled=.f.
thisform.baru.enabled=.t.
thisform.simpan.enabled=.f.
39
AMIK Al Ma’soem
thisform.cetak.enabled=.t.
thisform.keluar.enabled=.t.
thisform.kendali(.t.)
thisform.aktif(.f.)
thisform.aktif1(.f.)
thisform.aktif2(.f.)
thisform.aktif3(.f.)
thisform.cari.enabled=.f.
RETURN
* Object FORM1 Procedure DBLCLICK thisform.keluar.Enabled=.t.
RETURN
* Object FORM1 Procedure ACTIVATE thisform.kembalian.enabled=.f.
thisform.hitung.enabled=.f.
thisform.batal.enabled=.f.
thisform.simpan.enabled=.f.
thisform.baru.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
* Object CARI Procedure CLICK SELECT pelanggan
LOCATE FOR nopel=RTRIM(thisform.nopel.Value)
IF ! FOUND()
MESSAGEBOX("Data tidak ditemukan !",0,"Perhatian...")
thisform.nopel.setFocus
RETURN
endif
thisform.namapel.value=pelanggan.namapel
thisform.aktif2(.t.)
return
* Object NAMAPEL Procedure InteractiveChange SELECT pelanggan
LOCATE FOR namapel=TRIM(thisform.namapel.Value)
thisform.nopel.value=pelanggan.nopel
thisform.aktif2(.t.)
return
* Object NAMAPEL Procedure LostFocus thisform.aktif2(.t.)
* Object KODEBRG Procedure LostFocus IF EMPTY(thisform.kodebrg.value)
thisform.namabrg.value=""
thisform.hargabeli.value=""
thisform.hargajual.value=""
40
AMIK Al Ma’soem
thisform.kodebrg.setfocus
return
ENDIF
SELECT BARANG
LOCATE FOR KODEBRG=TRIM(thisform.kodebrg.value)
IF FOUND()
thisform.namabrg.value=barang.Namabrg
thisform.hargabeli.value=barang.hargabeli
thisform.hargajual.value=barang.hargajual
thisform.diskon.value=barang.hargajual*barang.disk
thisform.qty.value=1
ELSE
thisform.namabrg.value=""
thisform.hargabeli.value=""
thisform.hargajual.value=""
thisform.diskon.value=0
thisform.kodebrg.setfocus
ENDIF
thisform.aktif(.f.)
thisform.cari.Enabled=.f.
thisform.hitung.Enabled=.t.
thisform.simpan.Enabled=.f.
thisform.baru.Enabled=.f.
thisform.batal.Enabled=.f.
thisform.keluar.Enabled=.f.
thisform.cetak.Enabled=.f.
thisform.kendali(.f.)
thisform.hitung.setfocus
return
* Object NAMABRG Procedure InteractiveChange thisform.kodebrg.value=barang.kodebrg
thisform.hargabeli.value=barang.hargabeli
thisform.hargajual.value=barang.hargajual
thisform.diskon.value=barang.hargajual*barang.disk
thisform.qty.value=1
thisform.aktif(.f.)
thisform.cari.Enabled=.f.
thisform.hitung.Enabled=.t.
thisform.simpan.Enabled=.f.
thisform.baru.Enabled=.f.
thisform.batal.Enabled=.f.
thisform.keluar.Enabled=.f.
thisform.cetak.Enabled=.f.
thisform.kendali(.f.)
return
* Object BARU Procedure CLICK public lnofak
thisform.kosongkan
select barang
set order to tag namabrg
hh=LEFT(time(),2)
mm=SUBSTR(time(),4,2)
ss=RIGHT(time(),2)
d=day(date())
m=month(date())
y=year(date())
41
AMIK Al Ma’soem
IF d<10
tgl="0"+STR(d,1)
ELSE
tgl=STR(d,2)
ENDIF
IF m<10
bln="0"+STR(m,1)
ELSE
bln=STR(m,2)
ENDIF
th=RIGHT(STR(y,4),2)
thisform.nofak.value=tgl+bln+th+hh+mm+ss
sele tmpjuala
SET DELETED on
DELETE all
thisform.refresh
thisform.tgljual.value=date()
thisform.kembalian.enabled=.f.
thisform.hitung.enabled=.f.
thisform.batal.enabled=.t.
thisform.simpan.enabled=.f.
thisform.baru.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.cari.enabled=.t.
SELECT pelanggan
LOCATE FOR UPPER(namapel)="KONSUMEN UMUM"
thisform.nopel.Value=pelanggan.nopel
thisform.namapel.Value=pelanggan.namapel
thisform.namapel.setfocus
SELECT tmpusers
thisform.namauser.Value=tmpusers.namauser
RETURN
* Object HITUNG Procedure Click if EMPTY(thisform.nofak.Value)
messagebox("Anda Harus klik dulu tombol tambah [ + ], ;
sebelum memulai transaksi!",0,"Perhatian...")
thisform.hitung.enabled=.f.
thisform.keluar.enabled=.t.
thisform.baru.enabled=.t.
thisform.baru.setfocus
RETURN
ENDIF
if EMPTY(thisform.qty.value) .or. EMPTY(thisform.hargajual.value)
MESSAGEBOX("Ops Sory Quantity Pembelian dan Harga Jual"+CHR(13)+;
"tidak boleh kosong...",0+48,"Perhatian...")
thisform.qty.SetFocus
RETURN
ENDIF
sele barang
locate for namabrg=TRIM(thisform.namabrg.value)
if barang.STOCK<thisform.qty.value
messagebox("Stock Barang Kurang",0+64,"Periksa Stock Barang")
thisform.qty.value=barang.stock
42
AMIK Al Ma’soem
thisform.qty.setfocus()
return
endif
jml=thisform.hargajual.value*thisform.qty.value
thisform.totjual.value=thisform.totjual.value+jml
vselhrg=thisform.hargajual.value-thisform.hargabeli.value-thisform.diskon.value
vlabakotor=vselhrg*thisform.qty.value
thisform.totlaba.value=thisform.totlaba.value+vlabakotor
thisform.totdiskon.value=thisform.totdiskon.value+thisform.diskon.value
thisform.jmlbayar.value=thisform.totjual.value-thisform.totdiskon.value
select tmpjuala
if thisform.qty.value>0 .and. thisform.hargajual.value>0
append blank
REPLACE nofak with thisform.Nofak.value
REPLACE tgltran with thisform.tgljual.value
REPLACE nopel with thisform.nopel.value
REPLACE kodebrg with thisform.kodebrg.value
REPLACE namabrg with thisform.namabrg.value
REPLACE qty with thisform.qty.value
REPLACE hargajual with thisform.hargajual.value
REPLACE diskon with thisform.diskon.value
REPLACE jumlah with jml
REPLACE labakotor with vlabakotor
REPLACE namauser with thisform.namauser.value
SET DELETED on
thisform.refresh
sele penjualan
appe blank
WITH THISFORM
REPLACE penjualan.Nofak with .Nofak.value,penjualan.kodebrg with .kodebrg.value,;
penjualan.qty with .qty.value,penjualan.jumlah with jml,penjualan.diskon with .diskon.value,;
penjualan.labakotor with vlabakotor IN [penjualan]
ENDWITH
SELECT FAKTUR
LOCATE FOR nofak=TRIM(thisform.nofak.value)
IF ! FOUND()
APPEND BLANK
ENDIF
WITH thisform
REPLACE faktur.nofak WITH .nofak.value,faktur.tgltran WITH .tgljual.value,;
faktur.nopel WITH .nopel.value,faktur.totjual WITH .totjual.value,;
faktur.totdiskon WITH .totdiskon.value,faktur.jmlbayar WITH .jmlbayar.value,;
faktur.piutang WITH .piutang.value,faktur.totlaba with .totlaba.value,;
faktur.namauser with .namauser.value IN [faktur]
ENDWITH
sele barang
locate for kodebrg=TRIM(thisform.kodebrg.value)
qty1=barang.stock
qty1=qty1-thisform.qty.value
REPLACE barang.stock with qty1
endif
select tmpjuala
thisform.namabrg.value=""
thisform.kodebrg.value=""
thisform.qty.value=0
thisform.hargajual.value=0
thisform.aktif(.f.)
thisform.aktif3(.t.)
thisform.cari.Enabled=.f.
thisform.hitung.Enabled=.f.
thisform.simpan.Enabled=.t.
thisform.baru.Enabled=.f.
thisform.batal.Enabled=.f.
thisform.keluar.Enabled=.f.
thisform.cetak.Enabled=.f.
thisform.kendali(.f.)
IF TRIM(UPPER(thisform.namapel.value))="KONSUMEN UMUM"
thisform.piutang.enabled= .F.
ELSE
43
AMIK Al Ma’soem
thisform.piutang.enabled= .t.
endif
thisform.kodebrg.setfocus
RETURN
* Object TotDiskon Procedure LostFocus thisform.bayar.value=thisform.totjualsp.value-thisform.diskon.value
thisform.simpan.enabled=.t.
return
* Object TotDiskon Procedure Click thisform.bayar.value=thisform.totjualsp.value-thisform.diskon.value
thisform.simpan.enabled=.t.
return
* Object JmlBayar Procedure LostFocus thisform.piutang.value=thisform.totjualsp.value-thisform.diskon.value-thisform.bayar.value
thisform.simpan.enabled=.t.
thisform.simpan.setfocus
return
* Object JmlBayar Procedure Click thisform.piutang.value=thisform.totjualsp.value-thisform.diskon.value-thisform.bayar.value
thisform.simpan.enabled=.t.
thisform.simpan.setfocus
return
* Object Piutang Procedure LostFocus thisform.bayar.value=thisform.totjualsp.value-thisform.diskon.value-thisform.piutang.value
return
* Object Simpan Procedure Click if thisform.jmlbayar.value>(thisform.totjual.value-thisform.totdiskon.value)
messagebox("Maaf Anda Keliru Memasukan Jumlah Bayar...",0,"Perhatian...")
thisform.jmlbayar.setfocus
retu
ENDIF
IF TRIM(UPPER(thisform.namapel.value))="KONSUMEN UMUM" .and. thisform.piutang.value>0
messagebox("Konsumen Umum harus kontan...",0,"Perhatian...")
thisform.jmlbayar.setfocus
RETURN
ENDIF
if thisform.totjual.value>0
select faktur
locate for nofak=trim(thisform.nofak.value)
if ! found()
append blank
ENDIF
WITH THISFORM REPLACE faktur.nofak with .nofak.value,faktur.totjual with .totjual.value,;
faktur.tgltran with .tgljual.value,faktur.nopel with .nopel.value,;
faktur.totdiskon with .totdiskon.value,faktur.jmlbayar with .jmlbayar.value,;
faktur.piutang with .piutang.value,faktur.totlaba with .totlaba.value,;
faktur.namauser with .namauser.value IN [Faktur]
ENDWITH
select tmpjuala
go bottom
repl nofak with thisform.nofak.value
repl totjual with thisform.totjual.value
repl tgltran with thisform.tgljual.value
repl nopel with thisform.nopel.value
repl totdiskon with thisform.totdiskon.value
repl jmlbayar with thisform.jmlbayar.value
44
AMIK Al Ma’soem
repl piutang with thisform.piutang.value
repl totlaba with thisform.totlaba.value
REPLACE namauser with thisform.namauser.value
IF thisform.piutang.value>0
select pelanggan
locate for nopel=trim(thisform.nopel.value)
if found()
REPLACE pelanggan.saldop with pelanggan.saldop+thisform.piutang.value
ENDIF
ENDIF
ENDIF
thisform.refresh
thisform.kembalian.enabled=.t.
thisform.hitung.enabled=.f.
thisform.batal.enabled=.f.
thisform.simpan.enabled=.f.
thisform.baru.enabled=.t.
thisform.simpan.enabled=.f.
thisform.keluar.enabled=.t.
thisform.kendali(.t.)
thisform.aktif(.f.)
thisform.aktif1(.f.)
thisform.aktif2(.f.)
thisform.aktif3(.f.)
thisform.cari.enabled=.f.
thisform.cetak.enabled=.t.
thisform.baru.setfocus
return
* Object Simpan Procedure RightClick thisform.aktif3(.t.)
retu
* 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
SELECT barang
LOCATE FOR kodebrg=TRIM(thisform.kodebrg.Value)
IF FOUND()
if thisform.qty.value>0
qty1=barang.stock
qty1=qty1+thisform.qty.value
repl barang.stock with qty1
endif
ENDIF
sele penjualan
loca for penjualan.kodebrg=TRIM(thisform.kodebrg.value) .and. ;
nofak=TRIM(thisform.nofak.Value)
IF FOUND()
ljml=thisform.hargajual.value*thisform.qty.value
dele FOR penjualan.kodebrg=TRIM(thisform.kodebrg.value) .and. ;
nofak=TRIM(thisform.nofak.Value)
ELSE
ljml=0
ENDIF
thisform.totjualsp.value=thisform.totjualsp.value-ljml
thisform.bayar.value=thisform.totjualsp.value
sele tmpjuala
SET DELETED ON
DELETE
45
AMIK Al Ma’soem
thisform.refresh
thisform.qty.value=0
ENDIF
IF thisform.totjualsp.Value=0
thisform.aktif(.f.)
thisform.aktif2(.t.)
thisform.aktif3(.f.)
thisform.hitung.Enabled=.f.
thisform.simpan.Enabled=.f.
thisform.baru.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.cari.Enabled=.f.
thisform.hitung.Enabled=.f.
thisform.simpan.Enabled=.t.
thisform.baru.Enabled=.f.
thisform.batal.Enabled=.f.
thisform.keluar.Enabled=.f.
thisform.cetak.Enabled=.f.
thisform.kendali(.f.)
thisform.refresh
endif
RETURN
* Object CETAK Procedure Click SELECT pelanggan
SET ORDER TO TAG NOPEL
select tmpjuala
SET RELATION TO Nopel INTO Pelanggan
REPORT form e:\foxpro\ceps\prg\kw PREVIEW
thisform.kembalian.enabled=.t.
thisform.hitung.enabled=.f.
thisform.batal.enabled=.f.
thisform.simpan.enabled=.f.
thisform.baru.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.)
thisform.cari.enabled=.f.
RETURN
* Object KELUAR Procedure Click SET EXCLUSIVE ON
sele tmpjuala
dele all
set dele off
pack
SET EXCLUSIVE OFF
thisform.release
RETURN
46
AMIK Al Ma’soem
* Object KEMBALIAN Procedure Click do form E:\FOXPRO\CEPS\prg\hitungkembalian.scx
thisform.kembalian.enabled=.f.
thisform.hitung.enabled=.f.
thisform.batal.enabled=.f.
thisform.simpan.enabled=.f.
thisform.baru.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.)
thisform.cari.enabled=.t.
RETURN
* Object PERTAMA Procedure Click select faktur
SET ORDER TO TGLTRAN
go top
if eof()
messagebox("Tidak ada record",0,"Perhatian...!")
thisform.release()
return
endif
thisform.tampilkan
thisform.refresh
RETURN
* Object SEBELUMNYA Procedure Click select faktur
SET ORDER TO TGLTRAN
skip -1
if bof()
go top
endif
thisform.tampilkan
thisform.refresh
RETURN
* Object BERIKUTNYA Procedure Click select faktur
SET ORDER TO TGLTRAN
skip
if eof()
go bottom
endif
thisform.tampilkan
thisform.refresh
RETURN
* Object TERAKHIR Procedure Click select faktur
SET ORDER TO TGLTRAN
go bottom
if eof()
47
AMIK Al Ma’soem
messagebox("Tidak ada record",0,"Perhatian...!")
thisform.release()
return
endif
thisform.tampilkan
thisform.refresh
RETURN
* Object GRID1 Procedure AfterRowCollChenge LPARAMETERS nColIndex
thisform.kodebrg.value=tmpjuala.kodebrg
thisform.namabrg.value=tmpjuala.namabrg
thisform.qty.value=tmpjuala.qty
thisform.hargajual.value=tmpjuala.hargajual
SELECT barang
LOCATE FOR kodebrg=TRIM(thisform.kodebrg.value)
IF FOUND()
thisform.hargabeli.value=barang.hargabeli
ELSE
thisform.hargabeli.value=0
endif
thisform.batal.Enabled=.t.
RETURN
B. TUGAS V: 1. Buatkan Free Table TMPBELIA pada Forder Data Anda
2. Buatkan Free Table LAPBELIA pada Forder Data Anda
48
AMIK Al Ma’soem
3. Buatkan Form Kelola Transaksi PEMBELIAN
49
AMIK Al Ma’soem
BAGIAN VI Tujuan :
1. Membuat Report Faktur Penjualan 2. Grouping
A. BAHAN PRAKTEK VI Membuat Report Faktur Penjualan
B. TUGAS VI Buatkan Report Faktur Pembelian Barang
50
AMIK Al Ma’soem
BAGIAN VII
Tujuan :
1. Membuat Report Penjualan Harian 2. Grouping
A. BAHAN PRAKTEK VII 1. Membuat Report Penjualan Harian
2. Simpan dengan nama LAPJUALHARIAN 3. Buatkan Form Kelola Laporan Harian berikut :
4. Simpan dengan nama LAPJUALHARIAN * Object Form1 Procedure ACTIVATE CLOSE DATABASES
51
AMIK Al Ma’soem
SET EXCLUSIVE OFF SET MULTILOCKS ON
set date british
set cent on
set defa to e:\foxpro\data
OPEN DATABASE DINVENTORY SHARED
if ! used("barang")
use barang IN 0 SHARED
endif
if ! used("faktur")
use faktur IN 0 SHARED
endif
if ! used("penjualan")
use penjualan IN 0 SHARED
endif
if ! used("pelanggan")
use pelanggan IN 0 SHARED
endif
if used("lapjuala")
use in lapjuala
endif
if used("tmpjuala")
use in tmpjuala
endif
select 8
use e:\foxpro\ceps\data\tmpusers EXCLUSIVE
select 9
use e:\foxpro\ceps\data\lapjuala EXCLUSIVE
set order to tag nofak
SELECT 10
use e:\foxpro\ceps\data\tmpjuala EXCLUSIVE
thisform.tgl1.day=DAY(DATE())
thisform.tgl1.month=MONTH(DATE())
thisform.tgl1.year=YEAR(DATE())
thisform.tgl1.setfocus()
return
* Object Form1 Procedure UNLOAD
close data
close index
return * Object CETAK Procedure CLICK
tgl1=thisform.tgl1.day
bln1=thisform.tgl1.month
thn1=thisform.tgl1.year
tgl1a=TRIM(str(tgl1,2))+"/"+TRIM(str(bln1,2))+"/"+str(thn1,4)
tgla=ctod(tgl1a)
select tmpjuala
dele all
set dele off
pack
appe from penjualan
go top
do while ! eof()
select faktur
locate for nofak=tmpjuala.nofak
IF FOUND()
vnopel=faktur.nopel
vtgltran=faktur.tgltran
ELSE
vnopel=""
vtgltran=CTOD(" / / ")
ENDIF
SELECT tmpjuala
REPLACE nopel WITH vnopel
52
AMIK Al Ma’soem
REPLACE tgltran with vtgltran
skip
ENDDO
SELECT lapjuala
DELETE ALL
PACK
APPEND FROM e:\foxpro\ceps\data\tmpjuala FOR tgltran=tgla
SELECT faktur
GO top
do while ! eof()
select LAPJUALA
locate for nofak=FAKTUR.nofak
IF FOUND()
vtotjual=faktur.totjual
vtotdiskon=faktur.totdiskon
vjmlbayar=faktur.jmlbayar
vtotlaba=faktur.totlaba
ELSE
vtotjualsp=0
vtotdiskon=0
vjmlbayar=0
vtotlaba=0
ENDIF
REPLACE totjual WITH vtotjual
REPLACE totdiskon WITH vtotdiskon
REPLACE jmlbayar WITH vjmlbayar
REPLACE totlaba WITH vtotlaba
SELECT FAKTUR
skip
ENDDO
SELECT lAPJUALA
GO top
do while .not. eof()
select barang
locate for kodebrg=lapjuala.kodebrg
IF FOUND()
vnamabrg=barang.namabrg
ELSE
vnamabrg=""
ENDIF
select lapjuala
repl namabrg with vnamabrg
REPLACE hargajual WITH jumlah/qty
skip
enddo
SELECT lapjuala
SET ORDER TO tag tgltran
SELECT pelanggan
SET ORDER TO TAG NOPEL
SELECT LAPJUALA
SET RELATION TO NOPEL INTO PELANGGAN
repo form E:\FOXPRO\CEPS\prg\lapjualharian preview
return
* Object KELUAR Procedure CLICK
thisform.release
return B. TUGAS VII 1. Buatkan Report Laporan Penjualan Bulanan
53
AMIK Al Ma’soem
3. Buatkan Form Kelola Laporan Bulanan
54
AMIK Al Ma’soem
BAGIAN VIII
Tujuan :
1. Report Penjualan Tahunan 2. Grouping 3. Grafik Penjualan
A. BAHAN PRAKTEK VIII 1. Membuat Free Tabel dan Simpan dengan Nama GrafikA pada Folder data Anda
2. Membuat Report Penjualan Tahunan
3. Membuat Form Kelola Penjualan Tahunan
55
AMIK Al Ma’soem
* Object FORM1 Procedure ACTIVATE
SET TALK OFF
close data
SET EXCLUSIVE OFF
SET MULTILOCKS ON
set date british
set cent on
set defa to e:\foxpro\data
OPEN DATABASE DINVENTORY SHARED
if ! used("faktur")
use faktur IN 0 SHARED
endif
if used("GrafikA")
use IN GrafikA
endif
if used("lapjuala")
use in lapjuala
endif
SELECT faktur
set order to tag nofak
set order to tag tgltran
select 8
USE e:\foxpro\ceps\data\tmpusers EXCLUSIVE
select 9
USE e:\foxpro\ceps\data\grafika EXCLUSIVE
select 10
USE e:\foxpro\ceps\data\lapjuala EXCLUSIVE
thisform.tgl.day=DAY(DATE())
thisform.tgl.month=MONTH(DATE())
thisform.tgl.year=YEAR(DATE())
thisform.tgl.setfocus()
return
* Object FORM1 Procedure UNLOAD
close data
close index
return
* Object Cetak Procedure Click
thn=thisform.tgl.year
select lapjuala
dele all
set dele off
pack
appe from faktur for YEAR(tgltran)=thn
SET ORDER to tag TGLTRAN
repo form e:\foxpro\ceps\prg\LapJualThn preview
return
* Object Grafik Procedure Click thn=thisform.tgl.year
select lapjuala
dele all
set dele off
pack
appe from faktur for YEAR(tgltran)=thn
56
AMIK Al Ma’soem
SET ORDER to tag TGLTRAN
SUM totjual FOR MONTH(tgltran)=1 TO tot1
SUM totjual FOR MONTH(tgltran)=2 TO tot2
SUM totjual FOR MONTH(tgltran)=3 TO tot3
SUM totjual FOR MONTH(tgltran)=4 TO tot4
SUM totjual FOR MONTH(tgltran)=5 TO tot5
SUM totjual FOR MONTH(tgltran)=6 TO tot6
SUM totjual FOR MONTH(tgltran)=7 TO tot7
SUM totjual FOR MONTH(tgltran)=8 TO tot8
SUM totjual FOR MONTH(tgltran)=9 TO tot9
SUM totjual FOR MONTH(tgltran)=10 TO tot10
SUM totjual FOR MONTH(tgltran)=11 TO tot11
SUM totjual FOR MONTH(tgltran)=12 TO tot12
SUM totlaba FOR MONTH(tgltran)=1 TO totlb1
SUM totlaba FOR MONTH(tgltran)=2 TO totlb2
SUM totlaba FOR MONTH(tgltran)=3 TO totlb3
SUM totlaba FOR MONTH(tgltran)=4 TO totlb4
SUM totlaba FOR MONTH(tgltran)=5 TO totlb5
SUM totlaba FOR MONTH(tgltran)=6 TO totlb6
SUM totlaba FOR MONTH(tgltran)=7 TO totlb7
SUM totlaba FOR MONTH(tgltran)=8 TO totlb8
SUM totlaba FOR MONTH(tgltran)=9 TO totlb9
SUM totlaba FOR MONTH(tgltran)=10 TO totlb10
SUM totlaba FOR MONTH(tgltran)=11 TO totlb11
SUM totlaba FOR MONTH(tgltran)=12 TO totlb12
SELECT GRAFIKA
DELETE ALL
PACK
bln=1
DO WHILE bln<=12
APPEND blank
DO case
CASE BLN=1
vt=TOT1
vl=totlb1
CASE BLN=2
vt=TOT2
vl=totlb2
CASE BLN=3
vt=TOT3
vl=totlb3
CASE BLN=4
vt=TOT4
vl=totlb4
CASE BLN=5
vt=TOT5
vl=totlb5
CASE BLN=6
vt=TOT6
vl=totlb6
CASE BLN=7
vt=TOT7
vl=totlb7
CASE BLN=8
vt=TOT8
vl=totlb8
CASE BLN=9
vt=TOT9
vl=totlb9
CASE BLN=10
vt=TOT10
vl=totlb10
CASE BLN=11
vt=TOT11
vl=totlb11
CASE BLN=12
vt=TOT12
vl=totlb12
57
AMIK Al Ma’soem
ENDCASe
REPLACE bulan WITH BLN
REPLACE tahun WITH thisform.tgl.year
REPLACE totjual WITH VT
REPLACE totlaba WITH vl
bln=bln+1
enddo
DO FORM e:\foxpro\ceps\prg\grafik.SCX
return
* Object Keluar Procedure Click
thisform.release
return
4. Membuat Grafik Penjualan Tahunan
* Object FORM1 Procedure ACTIVATE SELECT GRAFIKA
GO top
do WHILE ! eof()
thisform.Grafika.row=GRAFIKA.BULAN
thisform.grafika.rowlabel=GRAFIKA.BULAN
thisform.Grafika.column=1
thisform.Grafika.data=grafika.totjual
thisform.Grafika.column=2
thisform.Grafika.data=grafika.totlaba
skip
ENDDO
GO top
thisform.text1.value="TAHUN "+STR(grafika.TAHUN,4)
thisform.command1.setfocus
return
* Object Keluar Procedure Click thisform.release
58
AMIK Al Ma’soem
B. TUGAS VIII 1. Buatkan Laporan Bulanan Pembelian Barang
2. Buatkan Form Kelola Laporan Bulanan Pembelian Barang
59
AMIK Al Ma’soem
BAGIAN IX Tujuan : Membuat Form Transaksi Retur Jual Barang
A. BAHAN PRAKTEK IX: Membuat Form Transaksi Retur Jual dengan LayOut sbb. :
* Object FORM1 Procedure LOAD CLOSE DATABASES
SET DATE BRITISH
SET CENTURY ON
SET MULTILOCKS ON
SET EXCLUSIVE OFF
SET DEFAULT TO e:\foxpro\data
OPEN DATABASE DINVENTORY SHARED
IF ! USED("barang")
USE barang IN 0 SHARED
ENDIF
IF ! USED("pelanggan")
USE pelanggan IN 0 SHARED
ENDIF
IF ! USED("fakturrj")
USE fakturrj IN 0 SHARED
ENDIF
IF ! USED("returjual")
USE returjual IN 0 SHARED
ENDIF
IF ! USED("penjualan")
USE penjualan IN 0 SHARED
ENDIF
60
AMIK Al Ma’soem
IF ! USED("FAKTUR")
USE FAKTUR IN 0 SHARED
ENDIF
IF USED("tmpjuala")
use in tmpjuala
ENDIF
SELECT 10
USE e:\foxpro\ceps\data\tmpjuala EXCLUSIVE
RETURN
* Object FORM1 Procedure UNLOAD CLOSE DATABASES
USE IN TMPJUALA
RETURN
* Object FORM1 Procedure Aktif PARAMETERS x
thisform.nopel.Enabled=x
thisform.namapel.Enabled=x
retu
* Object FORM1 Procedure Aktif1 PARAMETERS y
thisform.nofak.Enabled=y
thisform.tgltran.Enabled=y
RETURN
* Object FORM1 Procedure Aktif2 PARAMETERS Z
thisform.kodebrg.Enabled=z
thisform.namabrg.Enabled=z
thisform.qty.Enabled=z
thisform.hargajual.Enabled=z
RETURN
* Object FORM1 Procedure Kendali PARAMETERS s
thisform.pertama.Enabled=s
thisform.sebelumnya.Enabled=s
thisform.berikutnya.Enabled=s
thisform.terakhir.Enabled=s
retu
* Object FORM1 Procedure Kosongkan thisform.kodebrg.value=""
thisform.namabrg.value=""
thisform.qty.value=0
thisform.hargajual.value=0
thisform.totalrj.value=0
thisform.tgltran.value=CTOD(" / / ")
thisform.nofak.value=""
thisform.nofakrj.value=""
thisform.nopel.value=""
thisform.namapel.value=""
return
61
AMIK Al Ma’soem
* Object FORM1 Procedure Tampilkan select fakturrj
thisform.nofakrj.value=fakturrj.nofakrj
thisform.tgltran.value=fakturrj.tgltran
thisform.totalrj.value=fakturrj.totalrj
thisform.nopel.value=fakturrj.nopel
select pelanggan
locate for nopel=TRIM(thisform.nopel.value)
thisform.namapel.value=pelanggan.namapel
select tmpjuala
dele all
set dele on
appe from returjual for nofakrj=TRIM(thisform.nofakrj.value)
go top
do while ! eof()
select barang
locate for kodebrg=tmpjuala.kodebrg
IF FOUND()
vnamabrg=barang.namabrg
ELSE
vnamabrg=""
endif
select tmpjuala
repl namabrg with vnamabrg
repl hargajual with jumlah/qty
skip
enddo
GO TOP
REPLACE tgltran with thisform.tgltran.value
REPLACE nopel with thisform.nopel.value
thisform.nofak.value=tmpjuala.nofak
thisform.nofakrj.value=tmpjuala.nofakrj
go bottom
REPLACE totalrj with thisform.totalrj.value
thisform.kodebrg.value=tmpjuala.kodebrg
thisform.namabrg.value=tmpjuala.namabrg
thisform.hargajual.value=tmpjuala.hargajual
thisform.qty.value=tmpjuala.qty
GO TOP
thisform.refresh
thisform.hitung.enabled=.f.
thisform.baru.enabled=.t.
thisform.cetak.enabled=.t.
thisform.keluar.enabled=.t.
thisform.kendali(.t.)
thisform.aktif(.f.)
thisform.aktif1(.f.)
thisform.aktif2(.f.)
return
* Object FORM1 Procedure Activate thisform.hitung.enabled=.f.
thisform.baru.enabled=.t.
thisform.cetak.enabled=.f.
62
AMIK Al Ma’soem
thisform.batal.enabled=.f.
thisform.keluar.enabled=.t.
thisform.kendali(.t.)
thisform.aktif(.f.)
thisform.aktif1(.f.)
thisform.aktif2(.f.)
thisform.grid1.readonly= .T.
thisform.pesan.Visible=.f.
SET DELETED ON
return
* Object FORM1 Procedure DblClick thisform.keluar.enabled=.t.
retu
* Object Cari Procedure Click SELECT pelanggan
LOCATE FOR nopel=RTRIM(thisform.nopel.Value)
IF ! FOUND()
MESSAGEBOX("Data tidak ditemukan !",0,"Perhatian...")
thisform.nopel.SetFocus
RETURN
endif
thisform.namapel.value=pelanggan.namapel
thisform.nopel.value=pelanggan.nopel
thisform.aktif2(.t.)
thisform.kodebrg.setfocus
return
* Object Cari Procedure RightClick thisform.keluar.enabled=.t.
retu
* Object NamaPel Procedure InteractiveChange thisform.nopel.value=pelanggan.nopel
thisform.aktif2(.t.)
Return
* Object KodeBrg Procedure LostFocus SELECT tmpjuala
LOCATE FOR kodebrg=TRIM(thisform.kodebrg.Value)
IF FOUND()
thisform.namabrg.value=tmpjuala.namabrg
thisform.hargajual.value=tmpjuala.hargajual
thisform.qty.Value=1
ELSE
thisform.namabrg.value=""
thisform.hargajual.value=0
thisform.qty.Value=0
ENDIF
thisform.aktif(.f.)
thisform.hitung.Enabled=.t.
thisform.baru.Enabled=.f.
thisform.keluar.Enabled=.f.
thisform.cetak.Enabled=.f.
thisform.kendali(.f.)
63
AMIK Al Ma’soem
return
* Object NoFak Procedure LostFocus IF EMPTY(THISFORM.NOFAK.Value)
thisform.aktif(.f.)
MESSAGEBOX("Silahkan anda isi dulu Nomor Faktur Penjualannya",;
0+48,"Perhatian...")
THISFORM.NOFAK.setfocus
RETURN
ENDIF
SELECT faktur
LOCATE FOR NOFAK=TRIM(THISFORM.NOFAK.Value)
IF ! FOUND()
MESSAGEBOX("Sorry Nomor Faktur tersebut tidak ditemukan",;
0+48,"Perhatian...")
RETURN
ENDIF
thisform.nopel.value=faktur.nopel
select pelanggan
locate for nopel=thisform.nopel.value
thisform.namapel.value=pelanggan.namapel
select tmpjuala
dele all
set dele on
APPEND FROM penjualan for nofak=TRIM(thisform.nofak.value)
go top
do while ! eof()
select barang
locate for kodebrg=tmpjuala.kodebrg
IF FOUND()
vnamabrg=barang.namabrg
ELSE
vnamabrg=""
endif
select tmpjuala
repl namabrg with vnamabrg
repl hargajual with tmpjuala.jumlah/tmpjuala.qty
skip
enddo
GO TOP
thisform.refresh
thisform.hitung.enabled=.f.
thisform.baru.enabled=.f.
thisform.cetak.enabled=.f.
thisform.keluar.enabled=.f.
thisform.kendali(.f.)
thisform.aktif(.f.)
thisform.aktif1(.f.)
thisform.aktif2(.f.)
thisform.pesan.Visible=.t.
return
* Object Baru Procedure Click thisform.kosongkan
tgl=day(date())
bln=month(date())
th=year(date())
64
AMIK Al Ma’soem
IF tgl<10
d="0"+STR(tgl,1)
ELSE
d=STR(tgl,2)
ENDIF
IF bln<10
m="0"+STR(bln,1)
ELSE
m=STR(bln,2)
ENDIF
y=RIGHT(STR(th,4),2)
hh=LEFT(TIME(),2)
mm=SUBSTR(TIME(),4,2)
ss=RIGHT(TIME(),2)
thisform.nofakrj.value=d+m+y+hh+mm+ss
sele tmpjuala
SET DELETED on
DELETE all
thisform.refresh
thisform.nofak.value=""
thisform.tgltran.value=date()
thisform.hitung.enabled=.f.
thisform.baru.enabled=.f.
thisform.cetak.enabled=.f.
thisform.keluar.enabled=.t.
thisform.kendali(.F.)
thisform.aktif(.t.)
thisform.aktif1(.t.)
thisform.aktif2(.f.)
thisform.nofak.setfocus
return
* Object Hitung Procedure Click IF EMPTY(thisform.qty.value)
MESSAGEBOX("Ops anda harus mengisi Quantity Retur...",0+48,"perhatian...")
thisform.qty.setfocus
RETURN
ENDIF
IF EMPTY(thisform.nofakrj.value)
MESSAGEBOX("Anda harus meng-klik dulu tombol tambah (+)",0+48,"perhatian...")
thisform.baru.setfocus
RETURN
ENDIF
SELECT returjual
LOCATE FOR kodebrg=TRIM(thisform.kodebrg.value) .and.;
nofak=TRIM(thisform.nofak.Value)
IF FOUND()
MESSAGEBOX("Barang tersebut sudah diretur...",0,"Perhatian...")
thisform.hitung.enabled=.f.
thisform.baru.enabled=.t.
thisform.keluar.enabled=.t.
RETURN
ENDIF
jml=thisform.hargajual.value*thisform.qty.value
thisform.totalrj.value=thisform.totalrj.value+jml
if thisform.qty.value>0 .and. thisform.hargajual.value>0
IF thisform.qty.value>tmpjuala.qty
65
AMIK Al Ma’soem
MESSAGEBOX("Ops anda salah mengisi Quantity Retur...",0+48,"perhatian...")
thisform.qty.setfocus
RETURN
ENDIF
SELECT returjual
APPEND BLANK
WITH THISFORM
REPLACE returjual.nofakrj with .nofakrj.value,;
returjual.Nofak with .Nofak.value,returjual.kodebrg with .kodebrg.value,;
returjual.qty with .qty.value,returjual.jumlah with jml IN [RETURJUAL]
ENDWITH
sele barang
locate for kodebrg=TRIM(thisform.kodebrg.value)
qty1=barang.stock
qty1=qty1-thisform.qty.value
REPLACE barang.stock with qty1
select fakturrj
locate for nofakrj=trim(thisform.nofakrj.value)
IF ! FOUND()
APPEND BLANK
ENDIF
WITH THISFORM
REPLACE fakturrj.nofakrj with .nofakrj.value,;
fakturrj.totalrj with .totalrj.value,fakturrj.tgltran with .tgltran.value,;
fakturrj.nopel with .nopel.value IN [fakturrj]
ENDWITH
ENDIF
select tmpjuala
DELETE FOR kodebrg=TRIM(thisform.kodebrg.value) .and.;
nofak=TRIM(thisform.nofak.Value)
SET DELETED on
GO TOP
thisform.Refresh
thisform.kodebrg.value=""
thisform.namabrg.value=""
thisform.qty.value=0
thisform.hargajual.value=0
thisform.hitung.Enabled=.f.
thisform.baru.Enabled=.f.
thisform.keluar.Enabled=.t.
thisform.cetak.Enabled=.t.
thisform.batal.Enabled=.f.
thisform.kendali(.f.)
thisform.pesan.Visible=.f.
RETURN
* Object Batal Procedure Click jawab=messagebox("Anda mau membatalkan transaksi ?",4+32+256,"Perhatian...")
if jawab=6
SELECT barang
LOCATE FOR kodebrg=TRIM(thisform.kodebrg.Value)
IF FOUND()
if thisform.qty.value>0
qty1=barang.stock
qty1=qty1-thisform.qty.value
repl barang.stock with qty1
66
AMIK Al Ma’soem
endif
ENDIF
sele returjual
loca for returjual.kodebrg=TRIM(thisform.kodebrg.value) .and.
nofakrj=TRIM(thisform.nofakrj.Value)
IF FOUND()
ljml=thisform.qty.value*thisform.hargajual.value
DELETE
ELSE
ljml=0
ENDIF
thisform.totalrj.value=thisform.totalrj.value-ljml
sele tmpjuala
dele
set dele on
thisform.refresh()
thisform.qty.value=0
ENDIF
IF thisform.totalrj.Value=0
SELECT fakturrj
LOCATE FOR nofakrj=TRIM(thisform.nofakrj.Value)
IF FOUND()
DELETE
ENDIF
thisform.aktif(.f.)
thisform.aktif2(.t.)
thisform.hitung.Enabled=.f.
thisform.baru.Enabled=.t.
thisform.batal.Enabled=.f.
thisform.keluar.Enabled=.t.
thisform.cetak.Enabled=.f.
thisform.kendali(.t.)
else
thisform.aktif(.f.)
thisform.aktif2(.t.)
thisform.hitung.Enabled=.f.
thisform.baru.Enabled=.f.
thisform.batal.Enabled=.f.
thisform.keluar.Enabled=.f.
thisform.cetak.Enabled=.f.
thisform.kendali(.f.)
endif
return
* Object Cetak Procedure Click thisform.tampilkan
SELECT pelanggan
SET ORDER TO TAG NOPEL
select tmpjuala
SET RELATION TO Nopel INTO Pelanggan
REPORT form E:\FOXPRO\CEPS\prg\kwrj PREVIEW
thisform.hitung.enabled=.f.
thisform.batal.enabled=.f.
thisform.baru.enabled=.t.
thisform.cetak.enabled=.f.
thisform.keluar.enabled=.t.
thisform.kendali(.t.)
67
AMIK Al Ma’soem
thisform.aktif(.f.)
thisform.aktif1(.f.)
thisform.aktif2(.f.)
return
* Object Keluar Procedure Click SET EXCLUSIVE ON
sele tmpjuala
dele all
set dele off
pack
SET EXCLUSIVE OFF
thisform.release
return
* Object Pertama Procedure Click select fakturrj
set order to
go top
if eof()
messagebox("Tidak ada record",0,"Perhatian...!")
thisform.release()
return
endif
thisform.tampilkan
thisform.refresh
return * Object Sebelumnya Procedure Click select fakturrj
set order to
skip -1
if bof()
go top
endif
thisform.tampilkan
thisform.refresh
return
* Object Berikutnya Procedure Click select fakturrj
set order to
skip
if eof()
go bottom
endif
thisform.tampilkan
thisform.refresh
return
* Object Terakhir Procedure Click select fakturrj
set order to
go bottom
if eof()
messagebox("Tidak ada record",0,"Perhatian...!")
68
AMIK Al Ma’soem
thisform.release()
return
endif
thisform.tampilkan
thisform.refresh
return
* Object Grid1 Procedure AfterRowCollChange LPARAMETERS nColIndex
thisform.kodebrg.value=tmpjuala.kodebrg
thisform.namabrg.value=tmpjuala.namabrg
thisform.qty.value=tmpjuala.qty
thisform.hargajual.value=tmpjuala.hargajual
thisform.qty.Enabled=.t.
thisform.hitung.enabled=.t.
thisform.batal.Enabled=.t.
return
B. TUGAS IX Buatkan Form Kelola Data Retur Pembelian
69
AMIK Al Ma’soem
BAGIAN X
Tujuan :
1. Report Saldo Pitang 2. Grouping 3. Grafik Penjualan
A. BAHAN PRAKTEK X 10.1 Membuat Free Table TMPPELA pada Folder Data Anda
10.2 Membuat Report Saldo Pitang
Simpan Report dengan nama file LAPPIUTANG pada folde PRG anda
70
AMIK Al Ma’soem
10.3 Membuat Procedure untuk menampilkan Saldo Piutang pada menu Program 1. Buka Menu Admin dan atau menu User 2. Pilih Sub Menu Laporan pada Menu Bar 3. Pilih Submenu Laporan Saldo Piutang pada Submenu Laporan 4. Ganti submenu pada result Saldo Piutang menjadi Procedure 5. Click Tombol Create 6. Buatkan Procedure berikut ini :
close data
set date british
set cent on
SET EXCLUSIVE OFF
SET MULTILOCKS ON
set defa to e:\foxpro\data
OPEN DATABASE DINVENTORY SHARED
if ! used("pelanggan")
use pelanggan IN 0 SHARED
endif
if used("tmppela")
use in tmppela
endif
select 10
use e:\foxpro\ceps\data\tmppela EXCLUSIVE
set order to tag nopel
SELECT pelanggan
SET ORDER TO TAG nopel
SELECT tmppela
DELETE ALL
PACK
APPEND FROM pelanggan FOR saldop>0
vn=1
GO top
DO WHILE ! EOF()
REPLACE no with vn
vn=vn+1
SKIP
ENDDO
GO bottom
IF EOF() MESSAGEBOX("Sorry tidak ada data yang dapat ditampilkan !",0,"Perhatian...")
RETURN
ENDIF
SET RELATION TO NOPEL INTO PELANGGAN
repo form e:\foxpro\ceps\prg\lappiutang preview
return
B. TUGAS X Buatkan Report Saldo Utang dan buatkan Procedure untuk menjalankan report Saldo Utang pada Submenu Saldo Utang di MenuAdmin dan atau MenuUser
71
AMIK Al Ma’soem
BAGIAN XI
Tujuan : 1. Membuat Table Bayar Piutang 2. Membuat Form Bayar Piutang
A. BAHAN PRAKTEK XI 11.1 Membuat Table Bayar Piutang dan TMPPIUTANG
1. Nama Table : ByrPiutang
2. Nama Table : TMPPIUTANG
11.2 Membuat Form Bayar Piutang
72
AMIK Al Ma’soem
* Object FORM1 Procedure LOAD SET DEFAULT TO e:\foxpro\data
CLOSE DATABASES
SET EXCLUSIVE OFF
SET MULTILOCKS ON
SET DATE BRITISH
SET CENTURY ON
SET EXACT ON
OPEN DATABASE DINVENTORY SHARED
IF ! USED("Pelanggan")
USE Pelanggan IN 0 SHARED
ENDIF
IF ! USED("ByrPIUtang")
USE ByrPIUtang IN 0 SHARED
ENDIF
IF USED("TmpPIUtang")
USE IN TmpPIUtang
ENDIF
SELECT 7
USE e:\foxpro\ceps\data\TmpPIUtang EXCLUSIVE
RETURN
* Object FORM1 Procedure UNLOAD CLOSE DATABASES
USE IN tmppiutang
RETURN
* Object FORM1 Procedure AKTIFKAN PARAMETERS x
thisform.tglbayar.enabled=x
thisform.nopel.enabled=x
thisform.jmlbayar.enabled=x
thisform.namapel.enabled=x
RETURN
* Object FORM1 Procedure KENDALI PARAMETERS Y
thisform.pertama.Enabled=Y
thisform.berikutnya.Enabled=Y
thisform.sebelumnya.Enabled=Y
thisform.terakhir.Enabled=Y
RETURN
* Object FORM1 Procedure KOSONGKAN thisform.nopel.Value=""
thisform.alamat.Value=""
thisform.jmlbayar.Value=0
thisform.saldop.Value=0
thisform.namapel.Value=""
RETURN
* Object FORM1 Procedure TAMPILKAN
73
AMIK Al Ma’soem
SELECT ByrPIUtang
thisform.nobayar.value=ByrPIUtang.NoBayar
thisform.tglbayar.value=ByrPIUtang.TglBayar
thisform.nopel.value=ByrPIUtang.nopel
thisform.jmlbayar.value=ByrPIUtang.JmlBayar
SELECT pelanggan
LOCATE FOR nopel=TRIM(thisform.nopel.Value)
thisform.namapel.Value=pelanggan.namapel
thisform.alamat.Value=TRIM(pelanggan.alamat)
thisform.saldop.Value=pelanggan.saldop
SELECT tmppiutang
DELETE ALL
SET DELETED ON
APPEND FROM ByrpiUtang FOR Nopel=TRIM(thisform.nopel.Value)
thisform.Refresh
RETURN
* Object FORM1 Procedure ACTIVATE SELECT tmppiutang
SET FILTER TO
thisform.aktifkan(.f.)
thisform.tglbayar.Value=DATE()
thisform.kendali(.t.)
thisform.tambah.enabled=.t.
thisform.simpan.enabled=.f.
thisform.batal.enabled=.f.
thisform.keluar.enabled=.t.
thisform.tambah.setfocus
RETURN
* Object FORM1 Procedure DOUBLECLICK thisform.keluar.Enabled=.t.
* Object NOPEL Procedure LostFocus SELECT Pelanggan
LOCATE FOR nopel=TRIM(thisform.nopel.Value)
thisform.namapel.Value=pelanggan.Namapel
thisform.alamat.Value=TRIM(pelanggan.alamat)
thisform.saldop.Value=pelanggan.saldop
SELECT tmppiutang
DELETE ALL
SET DELETED ON
APPEND FROM BYRPIUTANG FOR nopel=TRIM(thisform.nopel.Value)
IF thisform.saldop.Value=0
DELETE ALL
ENDIF
thisform.refresh
RETURN
* Object NAMAPEL Procedure InteractiveChange SELECT Pelanggan
LOCATE FOR namapel=TRIM(thisform.namapel.Value)
74
AMIK Al Ma’soem
thisform.nopel.Value=pelanggan.Nopel
thisform.alamat.Value=TRIM(pelanggan.alamat)
thisform.saldop.Value=pelanggan.saldop
SELECT tmppiutang
DELETE ALL
SET DELETED ON
APPEND FROM BYRPIUTANG FOR nopel=TRIM(thisform.nopel.Value)
IF thisform.saldop.Value=0
DELETE ALL
ENDIF
thisform.refresh
RETURN
* Object JmlBayar Procedure LostFocus thisform.simpan.setfocus
* Object JmlBayar Procedure InterActiveChange thisform.kendali(.f.)
thisform.tambah.enabled=.f.
thisform.simpan.enabled=.t.
thisform.batal.enabled=.t.
thisform.keluar.enabled=.f.
RETURN
* Object Simpan Procedure Click IF EMPTY(thisform.nopel.value)
MESSAGEBOX("Transaksi Tidak Bisa di Proses"+CHR(13)+CHR(13)+;
"Isi data dengan lengkap !",0,"Perhatian...")
RETURN
ENDIF
IF thisform.jmlbayar.Value>0
SELECT pelanggan
LOCATE FOR Nopel=TRIM(thisform.nopel.value)
IF FOUND()
sisapiutang=pelanggan.saldop - thisform.JmlBayar.Value
REPLACE pelanggan.saldop WITH sisapiutang
ENDIF
SELECT BYRPIUTANG
LOCATE FOR NoBayar=TRIM(thisform.nobayar.value)
IF ! FOUND()
APPEND BLANK
ENDIF
WITH THISFORM REPLACE ByrPIUtang.NoBayar WITH .NoBayar.value,ByrPIUtang.TglBayar WITH .TglBayar.Value,;
ByrPIUtang.nopel WITH .nopel.value,ByrPIUtang.JmlBayar WITH .JmlBayar.value,;
ByrPIUtang.saldop with sisapiutang IN [BYRPIUTANG]
ENDWITH
SELECT tmppiutang
APPEND BLANK
WITH THISFORM REPLACE tmppiutang.NoBayar WITH .NoBayar.value,tmppiutang.TglBayar WITH .TglBayar.Value,; tmppiutang.nopel WITH .nopel.value,tmppiutang.JmlBayar WITH .JmlBayar.value,;
tmppiutang.saldop with sisapiutang IN [tmppiutang]
ENDWITH
thisform.refresh
75
AMIK Al Ma’soem
ENDIF
thisform.kendali(.t.)
thisform.tambah.enabled=.t.
thisform.simpan.enabled=.f.
thisform.batal.enabled=.f.
thisform.keluar.enabled=.t.
thisform.lihat.enabled=.t.
thisform.tambah.setfocus
RETURN
* Object Batal Procedure Click thisform.grid1.setfocus
thisform.refresh
thisform.jmlbayar.Value=0
thisform.kendali(.t.)
thisform.tambah.enabled=.t.
thisform.simpan.enabled=.f.
thisform.batal.enabled=.f.
thisform.keluar.enabled=.t.
thisform.refresh
thisform.tambah.setfocus
RETURN
* Object Tambah Procedure Click thisform.kosongkan
tgl=day(date())
bln=month(date())
th=year(date())
IF tgl<10
d="0"+STR(tgl,1)
ELSE
d=STR(tgl,2)
ENDIF
IF bln<10
m="0"+STR(bln,1)
ELSE
m=STR(tgl,2)
ENDIF
y=RIGHT(STR(th,4),2)
hh=LEFT(TIME(),2)
mm=SUBSTR(TIME(),4,2)
ss=RIGHT(TIME(),2)
thisform.nobayar.value=d+m+y+hh+mm+ss
SELECT tmppiutang
DELETE ALL
SET DELETED ON
thisform.refresh
thisform.tglbayar.Value=DATE()
thisform.kendali(.f.)
thisform.aktifkan(.t.)
thisform.tambah.enabled=.f.
thisform.simpan.enabled=.f.
thisform.batal.enabled=.t.
thisform.keluar.enabled=.f.
thisform.lihat.enabled=.f.
thisform.namapel.setfocus
RETURN
76
AMIK Al Ma’soem
* Object Cetak Procedure Click
SELECT pelanggan
SET ORDER TO tag nopel
SELECT tmppiutang
SET RELATION TO Nopel INTO Pelanggan
SET FILTER TO NoBayar=TRIM(thisform.NoBayar.value)
REPORT FORM e:\foxpro\ceps\prg\kwbp PREVIEW
SET FILTER TO
RETURN
* Object Keluar Procedure Click
SET EXCLUSIVE ON
SELECT tmppiutang
SET DELETED OFF
PACK
SET EXCLUSIVE OFF
thisform.Release
RETURN
* Object Pertama Procedure Click
SELECT ByrPIUtang
GO top
IF EOF()
MESSAGEBOX("Record Kosong...",0,"Perhatian...")
RETURN
ENDIF
thisform.tampilkan
thisform.kendali(.t.)
thisform.tambah.enabled=.t.
thisform.simpan.enabled=.f.
thisform.batal.enabled=.f.
thisform.keluar.enabled=.t.
thisform.grid1.SetFocus()
thisform.Refresh
RETURN
* Object TerAkhir Procedure Click
SELECT ByrPIUtang
GO Bottom
IF EOF()
MESSAGEBOX("Record Kosong...",0,"Perhatian...")
RETURN
ENDIF
thisform.tampilkan
thisform.kendali(.t.)
thisform.tambah.enabled=.t.
thisform.simpan.enabled=.f.
thisform.batal.enabled=.f.
77
AMIK Al Ma’soem
thisform.keluar.enabled=.t.
thisform.grid1.SetFocus()
thisform.Refresh
RETURN
* Object Sebelumnya Procedure Click
SELECT ByrPIUtang
SKIP -1
IF EOF()
GO bottom
ENDIF
thisform.tampilkan
thisform.kendali(.t.)
thisform.tambah.enabled=.t.
thisform.simpan.enabled=.f.
thisform.batal.enabled=.f.
thisform.keluar.enabled=.t.
thisform.grid1.SetFocus()
thisform.Refresh
RETURN
* Object Berikutnya Procedure Click
SELECT ByrPIUtang
SKIP
IF EOF()
GO bottom
ENDIF
thisform.tampilkan
thisform.kendali(.t.)
thisform.tambah.enabled=.t.
thisform.simpan.enabled=.f.
thisform.batal.enabled=.f.
thisform.keluar.enabled=.t.
thisform.grid1.SetFocus()
thisform.Refresh
RETURN
* Object GRID1 Procedure AfterRowCollChange LPARAMETERS nColIndex
LPARAMETERS nColIndex
thisform.nobayar.Value=tmppiutang.nobayar
thisform.tglbayar.Value=tmppiutang.tglbayar
thisform.jmlbayar.Value=tmppiutang.jmlbayar
thisform.saldop.Value=tmppiutang.saldop
thisform.nopel.Value=tmppiutang.nopel
SELECT pelanggan
LOCATE FOR Nopel=TRIM(thisform.nopel.Value)
thisform.namapel.Value=TRIM(pelanggan.namapel)
thisform.alamat.Value=TRIM(pelanggan.alamat)
thisform.lihat.enabled=.t.
78
AMIK Al Ma’soem
B. TUGAS XI Buatkan Form Kelola Utang
79
AMIK Al Ma’soem
BAGIAN XII
Tujuan :
1. Membuat Form Backup Data Master 2. Membuat Form Backup Data Transaksi
A. BAHAN PRAKTEK XII 12.1 Membuat Procedure BackUp Data Master dari Menu Backup Master set defa to e:\foxpro\data
close data
SET EXCLUSIVE OFF
SET MULTILOCKS ON
OPEN DATABASE DINVENTORY SHARED
if ! used("barang")
use barang IN 0 SHARED
endif
if ! used("pelanggan")
use pelanggan IN 0 SHARED
endif
if ! used("supplier")
use supplier IN 0 SHARED
endif
SELECT barang
set order to tag kodebrg
copy to d:\backup\backbrg.dbf
SELECT pelanggan
set order to tag NOPEL
copy to d:\backup\backpel.dbf
SELECT supplier
set order to tag nosup
copy to d:\backup\backsup.dbf
return
12.2 Membuat Form BackUp Data Transaksi
1. Membuat Form BackUp Penjualan
* Object FORM1 Procedure Activate set defa to e:\foxpro\data
close data
set date BRITISH
set cent on
SET EXCLUSIVE OFF
80
AMIK Al Ma’soem
SET MULTILOCKS ON
OPEN DATABASE DINVENTORY SHARED
if ! used("penjualan")
use penjualan IN 0 SHARED
endif
if ! used("faktur")
use faktur IN 0 SHARED
endif
a=date()
B=alltrim(left(cmont(a),3))
T=alltrim(right(str(year(a),4),2))
ext=".DBF"
fj="FJ"
pj="PJ"
tjl=pj +b+T+ext
fjl=fj +b+T+ext
thisform.text1.value=tjl
thisform.text2.value=fjl
retu
* Object Form1 Procedure UnLoad
close data
close inde
retu
* Object Proses Procedure Click ntjl=alltrim(thisform.text1.value)
nfjl=alltrim(thisform.text2.value)
select penjualan
copy to d:\backup\&ntjl
select faktur
copy to d:\backup\&nfjl
thisform.release
retu
* Object Keluar Procedure Click
thisform.release
retu
2. Membuat Form BackUp Retur Penjualan
* Object FORM1 Procedure LOAD set defa to e:\foxpro\data
close data
set date british
81
AMIK Al Ma’soem
set cent on
SET EXCLUSIVE OFF
SET MULTILOCKS ON
OPEN DATABASE DINVENTORY SHARED
if ! used("returjual")
use returjual IN 0 SHARED
endif
if ! used("fakturrj")
use fakturrj IN 0 SHARED
endif
a=date()
b=alltrim(left(cmont(a),3))
t=alltrim(right(str(year(a),4),2))
ext=".DBF"
frj="FRJ"
trj="RJ"
g=trj+b+t+ext
h=frj+b+t+ext
thisform.text1.value=g
thisform.text2.value=h
retu
* Object FORM1 Procedure UNLOAD close data
close inde
retu
* Object PROSES Procedure Click nfp=alltrim(thisform.text1.value)
nff=alltrim(thisform.text2.value)
select returjual
copy to d:\backup\&nfp
select fakturrj
copy to d:\backup\&nff
thisform.release
retu
* Object Keluar Procedure Click
thisform.release
retu
B. TUGAS XII Buatkan BackUp Data Pembelian
82
AMIK Al Ma’soem
BAGIAN XIII Tujuan :
1. Membuat Form Backup Data Master 2. Membuat Form Backup Data Transaksi
A. BAHAN PRAKTEK XIII 13.1 Membuat Procedure Tutup Buku File pada Menu Tutup Buku jawab=messagebox("Anda sudah membackup semua file ?"+CHR(13)+;
"dan pastikan komputer client yang lain dalam keadaan off/mati !",4+32+512,;
"Perhatian...!")
if jawab=6
ljwb=messagebox("Anda yakin mau mengosongkan semua file ?",4+32+256,;
"Perhatian...!")
if ljwb=6
CLOSE DATABASES
CLOSE INDEXES
SET DELETED OFF
if used("penjualan")
use IN penjualan
ENDIF
if used("faktur")
use IN faktur
ENDIF
if used("pembelian")
use IN pembelian
endif
if used("fakturb")
use IN fakturb
endif
if used("returjual")
use IN returjual
endif
if used("fakturrj ")
use IN fakturrj
endif
if used("returbeli")
use IN returbeli
endif
if used("fakturrb")
use IN fakturrb
endif
if used("BYRPIUTANG")
use IN BYRPIUTANG
endif
if used("BYRUTANG")
use IN BYRUTANG
ENDIF
SET DEFAULT TO E:\FOXPRO\data
use penjualan EXCLUSIVE
dele all
PACK
USE
use faktur EXCLUSIVE
dele all
83
AMIK Al Ma’soem
PACK
USE
use pembelian EXCLUSIVE
dele all
PACK
USE
use fakturb EXCLUSIVE
dele all
PACK
USE
use returjual EXCLUSIVE
dele all
PACK
USE
use fakturrj EXCLUSIVE
dele all
PACK
USE
use returbeli EXCLUSIVE
dele all
PACK
USE
use fakturrb EXCLUSIVE
dele all
PACK
USE
use BYRPIUTANG EXCLUSIVE
dele all
PACK
USE
use BYRUTANG EXCLUSIVE
dele all
PACK
USE
endif
endif
retur
13.1 Membuat Procedure Restore File pada Menu Restore File SET DEFAULT TO E:\FOXPRO\data
jawab=messagebox("Anda sudah membackup semua file ?",4+32+512,"Perhatian...!")
if jawab=6
close data
set dele off
if used("penjualan")
use in penjualan
ENDIF
if used("faktur")
use in faktur
endif
if used("pembelian")
use in pembelian
endif
if used("fakturb")
use in fakturb
endif
if used("returjual")
use in returjual
84
AMIK Al Ma’soem
endif
if used("fakturrj ")
use in fakturrj
endif
if used("returbeli")
use in returbeli
endif
if used("fakturrb")
use in fakturrb
endif
if used("BYRPIUTANG")
use in BYRPIUTANG
endif
if used("BYRUTANG")
use in BYRUTANG
ENDIF
use penjualan EXCLUSIVE
dele all
PACK
USE
use faktur EXCLUSIVE
dele all
PACK
USE
use pembelian EXCLUSIVE
dele all
PACK
USE
use fakturb EXCLUSIVE
dele all
PACK
USE
use returjual EXCLUSIVE
dele all
PACK
USE
use fakturrj EXCLUSIVE
dele all
PACK
USE
use returbeli EXCLUSIVE
dele all
PACK
USE
use fakturrb EXCLUSIVE
dele all
PACK
USE
use BYRPIUTANG EXCLUSIVE
dele all
PACK
USE
use BYRUTANG EXCLUSIVE
dele all
PACK
USE
do form e:\foxpro\ceps\prg\restfile.scx
endif
retur
85
AMIK Al Ma’soem
13.2 Membuat Form Restore File
* Object Form1 Procedure Activate set defa to E:\FOXPRO\data
thisform.tgl.day=DAY(DATE())
thisform.tgl.month=MONTH(DATE())
thisform.tgl.year=year(DATE())
* Object Form1 Procedure UnLoad close data
close inde
retu
* Object Proses Procedure Click tgl =thisform.tgl.day
bulan=thisform.tgl.month
tahun=thisform.tgl.year
do case
case bulan=1
bln="Jan"
case bulan=2
bln="Feb"
case bulan=3
bln="Mar"
case bulan=4
bln="Apr"
case bulan=5
bln="May"
case bulan=6
bln="Jun"
case bulan=7
bln="Jul"
case bulan=8
bln="Aug"
case bulan=9
bln="Sep"
case bulan=10
bln="Oct"
case bulan=11
bln="Nov"
othe
bln="Dec"
endc
thn=right(STR(tahun,4),2)
ext=".DBF"
fj="FJ"
86
AMIK Al Ma’soem
pj="PJ"
fjs="FJS"
ts="TS"
fb="FB"
pb="PB"
frj="FRJ"
rj="RJ"
frb="FRB"
rb="RB"
bp="BP"
bu="BU"
fakjl=fj +bln+thn+ext
jual =pj +bln+thn+ext
fakjs=fjs+bln+thn+ext
jasa =ts +bln+thn+ext
fakpb=fb +bln+thn+ext
beli =pb +bln+thn+ext
fakrj=frj+bln+thn+ext
rjual=rj +bln+thn+ext
fakrb=frb+bln+thn+ext
rbeli=rb +bln+thn+ext
bpiut=bp +bln+thn+ext
butng=bu +bln+thn+ext
use faktur EXCLUSIVE
appe from d:\backup\&fakjl
use
use penjualan EXCLUSIVE
appe from d:\backup\&jual
USE
use fakturb EXCLUSIVE
appe from d:\backup\&fakpb
USE
use pembelian EXCLUSIVE
appe from d:\backup\&beli
USE
use fakturrj EXCLUSIVE
appe from d:\backup\&fakrj
USE
USE returjual EXCLUSIVE
appe from d:\backup\&rjual
USE
use fakturrb EXCLUSIVE
appe from d:\backup\&fakrb
use
use returbeli EXCLUSIVE
appe from d:\backup\&rbeli
use
use byrpiutang EXCLUSIVE
appe from d:\backup\&bpiut
use
*use byrutang EXCLUSIVE
*appe from d:\backup\&butng
*use
thisform.release
RETURN
87
AMIK Al Ma’soem
* Object Keluar Procedure Click
thisform.release
retu
B. TUGAS XIII Buatkan Compiler File dari Sistem Informasi Inventory
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
BAGIAN XIV
QUIZ/EVALUASI
88
AMIK Al Ma’soem
DAFTAR PUSTAKA
Adi Nugroho. (2010). Rekayasa Perangkat Lunak Berorientasi Objek dengan Metode USDP. Yogyakarta : C.V. Andi Offset.
Al-Bahra Bin Ladjamudin. (2005). Analisis dan Desain Sistem Informasi. Yogyakarta : Graha Ilmu.
Al Haryono Jusup, Drs., M.B.A., Ak. (1991). Dasar-dasar Akuntansi. Yogyakarta : Liberti.
Aryanto, S.E., Ak. (2003). “Tip dan Trik Pemrograman Profesional Microsoft Visual FoxPro 6.0”. Jakarta : PT. Elex Media Komputindo.
Aryanto, S.E., Ak. (2002). “Pengolahan Database dengan Microsoft Visual FoxPro 6.0”. Jakarta : PT. Elex Media Komputindo.
Bartee, Thomas. (1975). Introduction to Computer. Kogakusha Ltd.: McGraw-Hill.
Fatansyah. (2001). Basis Data. Bandung : Informatika.
Huni Iskandar Pohan, Kusnassriyanto Saiful Bahri. (1997). Pengantar Sistem, Jakarta : Cetakan I, Erlangga.
Inge Martina, Ir. (2001). “Visual FoxPro 6.0 ; 36 Jam Belajar Komputer”. Jakarta : PT. Elex Media Komputindo.
James Martin, Carma McClure. (1985). Structure Techniques : The Basis for CASE. New Jersey : Prentice
Knuth, Donald, E. (1973). The Art of Computer Programmeing Volume 1. Inc. : Addison-Wesley Company.
Rusidi. (1993). Pedoman Penelitian dan Penulisan Ilmiah, Jatinangor: UPT Penerbitan IKOPIN.
Wahana Komputer. (2007). Panduan Praktis Pemrograman Database dengan Visual FoxPro 9.0. Yogyakarta : Andi Offset.
Yogianto HM. (1999). Analisis & Desain Sistem Informasi, Edisi II. Yogyakarta : Andi
Offset.
89
AMIK Al Ma’soem
KATA PENGANTAR
Alhamdulillah. Berkat rahmat Allah SWT. penulis dapat menyelesaikan Buku Panduan Praktek
Visual FoxPro Aplikasi “Inventory Model LIFO Berbasis Client Server”. Buku panduan ini penulis buat dengan
harapan dapat menuntun mahasiswa atau pembanaca dalam pembuatan program aplikasi Inventory model
LIFO dengan menggunakan bahsa pemrograman Visual FoxPro 9.0 secara Client Server.
Isi dari buku panduan ini adalah menuntun mahasiswa/pembaca untuk mengetahui bagaimana
cara membuat program aplikasi tentang pengelolaan data master barang, pelanggan, supplier, transaksi
pembelian, transaksi penjualan model Lifo, laporan pembelian, laporan penjualan, laporan rekomendasi
pembelian, laporan stock barang, backup file dan Restore File dengan menggunakan bahasa pemrograman
Visual FoxPro 9.0 secara Client Server.
Terimakasih penulis sampaikan kepada semua pihak yang telah membantu hingga
terselesaikannya buku panduan ini. Semoga amal baiknya mendapat balasan yang berlipat-lipat dari Allah
SWT. Amin.
Akhir kata semoga buku panduan ini ada guna dan manfaatnya baik untuk penulis sendiri maupun
mahasiswa/pembaca.
Jarinangor, September 2013
Penulis
90
AMIK Al Ma’soem
DAFTAR ISI
KATA PENGANTAR ......................................................................................................... ii
DFTAR ISI ......................................................................................................... iii
I. BAGIAN I
A. BAHAN PRAKTEK I ............................................................................................... 1
B. LATIHAN I ......................................................................................................... 4
C. TUGAS I ......................................................................................................... 6
II. BAGIAN II
A. BAHAN PRAKTEK II .............................................................................................. 8
B. LATIHAN II ......................................................................................................... 10
C. TUGAS II ......................................................................................................... 19
III. BAGIAN III
A. BAHAN PRAKTEK III ............................................................................................. 20
B. TUGAS III ......................................................................................................... 32
IV. BAGIAN IV
A. BAHAN PRAKTEK IV ............................................................................................. 33
B. TUGAS IV ......................................................................................................... 34
V. BAGIAN V
A. BAHAN PRAKTEK V .............................................................................................. 35
B. TUGAS V ......................................................................................................... 47
VI. BAGIAN VI
A. BAHAN PRAKTEK VI ............................................................................................ 49
B. TUGAS VI ......................................................................................................... 49
VII. BAGIAN VII
A. BAHAN PRAKTEK VII ............................................................................................ 50
B. TUGAS VII ......................................................................................................... 52
91
AMIK Al Ma’soem
VIII. BAGIAN VIII
A. BAHAN PRAKTEK VIII ........................................................................................... 54
B. TUGAS VIII ......................................................................................................... 58
IX. BAGIAN IX
A. BAHAN PRAKTEK IX ............................................................................................. 59
B. TUGAS IX ......................................................................................................... 68
X. BAGIAN X
A. BAHAN PRAKTEK X ............................................................................................. 69
B. TUGAS X ......................................................................................................... 70
XI. BAGIAN XI
A. BAHAN PRAKTEK XI ............................................................................................ 71
B. TUGAS XI ......................................................................................................... 78
XII. BAGIAN XII
A. BAHAN PRAKTEK XII ........................................................................................... 79
B. TUGAS XII ......................................................................................................... 81
XIII. BAGIAN XIII
A. BAHAN PRAKTEK XIII .......................................................................................... 82
B. TUGAS XIII ......................................................................................................... 87
XIV. BAGIAN XIV
QUIZ / EVALUASI ......................................................................................................... 87
top related