Simpan Di Folder C:\PAGI\FOXPRO
Buat DataBase = penjualan_film.dbc
1. Buat table di bawah ini :
à user
Field Name | Type | Width | Index |
Id | Character | 8 | ↑(Primary/Ascending) |
password | Character | 10 | |
Isi Data User
id | password |
MOVIE | okedech |
Buat Form dengan nama = form_login
Untuk Progressbar :
Name = proses
Untuk Timer:
Interval =10
Enabled =False
LISTING PROGRAM
Form Load
SET DEFAULT TO "C:\PAGI\FOXPRO"
USE user
SET ORDER TO tag id
PUBLIC login
Form Activate
thisform.txtid.value=""
thisform.txtpassword.Value=""
txtid Lostfocus
SET ORDER to tag id
IF SEEK(ALLTRIM(thisform.txtid.value)) then
IF ALLTRIM(thisform.txtid.value)=ALLTRIM(user.id)then
thisform.txtid.forecolor=RGB(0,255,0)
thisform.txtpassword.SetFocus
ELSE
thisform.txtid.forecolor=RGB(255,0,0)
ENDIF
RETURN
ENDIF
txtpassword Lostfocus
SET ORDER to tag id
IF SEEK(ALLTRIM(thisform.txtid.value))then
IFALLTRIM(thisform.txtid.value)=ALLTRIM(user.id)and ALLTRIM(thisform.txtpassword.Value)=ALLTRIM(user.password)then
thisform.txtpassword.forecolor=RGB(0,255,0)
thisform.timer1.Enabled= .T.
ELSE
MESSAGEBOX("Data Salah",16,"Info")
thisform.Activate
ENDIF
RETURN
ENDIF
Timer1 Timer
LOCAL x
x=thisform.proses.value
IF x
thisform.proses.value=1+thisform.proses.value
ELSE
MESSAGEBOX("BERHASIL")
thisform.timer1.Enabled=.f.
thisform.release
DO FORM "form1.scx"
ENDIF
PENJELASAN FORM LOGIN
Form Load
SET DEFAUL TO "Digunakan untuk membaca & menggunakan
tempat penyimpanan suatu form"
USE user "Digunakan untuk membaca tabel tertentu sekaligus
memberi nama lain agar dapat digunakan oleh event& baris
perintah lainnya"
SET ORDER TO TAG "Digunakan untuk membaca dan menggunakan
kunci pengurutan sekaligus kunci pencarian data berdasarkan
field index dalam tabel tertentu"
PUBLIC Berfungsi untuk membuat variabel secara global.
Form Activate
Pada saat form login dijalankan maka, txtid dan txtpassword dalam keadaan bersih.
txtid Lostfocus
Pada saat diinput txtid, pencarian data berdasarkan field id. Jika pencarian txtid, diambil dari tabel user dan field id. Kemudian txtid pada saat diinput warna tulisannya hitam. Kursor fokus di txtpassword, Maka txtid berubah warna menjadi hiaju muda. Akhir jika penuhi syarat yang diatas, akhir jika.
txtpassword Lostfocus
pencarian data berdasarkan field id. Jika pencarian txtid, diambil dari tabel user dan field id DAN txtpassword diambil dari tabel user dan field password. Kemudian txtpassword berubah warna menjadi hiaju muda. Timer1 tidak aktif, Maka Apabila data yang diinput salah maka akan muncul pesan. Akhir jika penuhi syarat yang diatas, akhir jika.
Timer1 Timer
Buat variabel x
X itu adalah progressbar
Jika proses penginputan sudah benar dan x mencapai maksimal kemudian
Progressbar=1+progressbar itu sendiri
Maka
Muncul pesan
Timer1 tidak aktif
Keluar atau menutup jendela form
Langsung menuju form utama
Akhir jika
2. Buat Form_Datafilm dengan menggunakan Form Wizard yang
diambil dari table film
Form Activate
thisform.txtkode.Value=film.kd_film
thisform.txtnama.Value=film.nm_film
thisform.txtjenis.Value=film.jenis
thisform.txtharga.Value=film.harga
Form Load
SET DEFAULT TO C:\PAGI\FOXPRO
USE film
cmdadd click
thisform.txtkode.Value=""
thisform.txtnama.Value=""
thisform.txtjenis.Value=""
thisform.txtharga.Value=0
thisform.Refresh
thisform.txtkode.SetFocus
cmdsave click
APPEND BLANK
replace kd_film with thisform.txtkode.Value
replace nm_film with thisform.txtnama.Value
replace jenis with thisform.txtjenis.Value
replace harga with thisform.txtharga.Value
thisform.Refresh
cmdclose click
thisform.Release
cmdbrowse click
browse
cmdbrowse click
x=MESSAGEBOX("yakin data akan dihapus?",36,"konfirmasi")
IF x=6
DELETE
PACK
ENDIF
GO top
thisform.txtkode.Value=film.kd_film
thisform.txtnama.Value=film.nm_film
thisform.txtjenis.Value=film.jenis
thisform.txtharga.Value=film.harga
thisform.Refresh
cmdtop click
GO top
thisform.txtkode.Value=film.kd_film
thisform.txtnama.Value=film.nm_film
thisform.txtjenis.Value=film.jenis
thisform.txtharga.Value=film.harga
thisform.Refresh
cmdpreview click
SKIP -1
IF BOF()
MESSAGEBOX("sudah diawal record",16,"informasi")
GO top
ENDIF
thisform.txtkode.Value=film.kd_film
thisform.txtnama.Value=film.nm_film
thisform.txtjenis.Value=film.jenis
thisform.txtharga.Value=film.harga
thisform.Refresh
cmdpreview click
SKIP -1
IF BOF()
MESSAGEBOX("sudah diawal record",16,"informasi")
GO top
ENDIF
thisform.txtkode.Value=film.kd_film
thisform.txtnama.Value=film.nm_film
thisform.txtjenis.Value=film.jenis
thisform.txtharga.Value=film.harga
thisform.Refresh
cmdnext click
SKIP 1
IF EOF()
MESSAGEBOX("sudah diakhir record",16,"informasi")
GO bottom
ENDIF
thisform.txtkode.Value=film.kd_film
thisform.txtnama.Value=film.nm_film
thisform.txtjenis.Value=film.jenis
thisform.txtharga.Value=film.harga
thisform.Refresh
cmdbottom click
GO bottom
thisform.txtkode.Value=film.kd_film
thisform.txtnama.Value=film.nm_film
thisform.txtjenis.Value=film.jenis
thisform.txtharga.Value=film.harga
thisform.Refresh
cmdfind click
SET ORDER TO tag kd_film
IF SEEK(alltrim(thisform.txtcari.Value))
thisform.txtkode.Value=film.kd_film
thisform.txtnama.Value=film.nm_film
thisform.txtjenis.Value=film.jenis
thisform.txtharga.Value=film.harga
ELSE
x=messagebox("tiak ada data",16,"warning")
IF x=1
thisform.txtcari.Value=""
thisform.txtcari.SetFocus
ENDIF
ENDIF
3. Buat tabel :
à BARANG
Field Name | Type | Width | Index |
Kd_film | Character | 6 | ↑(Primary/Ascending) |
Nm_film | Character | 35 | |
Jenis | Character | 10 | |
Harga | Numeric | 10 | |
Isi Data Barang
à TRANSAKSI
Field Name | Type | Width | Index |
No_struk | Character | 6 | ↑(Primary/Ascending) |
Tgl | Date | 8 | |
Kasir | Character | 25 | |
Ppn | Numeric | 10 | |
Total | Numeric | 10 | |
Grandtotal | Numeric | 10 | |
Bayar | Numeric | 10 | |
Kembali | Numeric | 10 | |
à RINCIAN
Field Name | Type | Width | Index |
No_srtuk | Character | 5 | ↑(Regular/Ascending) |
Kd_film | Character | 6 | ↑(Regular/Ascending) |
Jml | Numeric | 10 | |
Subtotal | Numeric | 10 | |
àSEMENTARA
Field Name | Type | Width | Index |
Kd_film | Character | 6 | |
Nm_film | Character | 250 | |
Jenis | Numeric | 10 | |
Harga | Numeric | 10 | |
Jml | Numeric | 10 | |
Subtotal | Numeric | 10 | |
Buat Form dengan nama = form_transaksi
PROPERTIES
Untuk Combobox kode film :
Name = cbo_kdfilm
Rowsource = film.kd_film,nm_film,jenis,harga
RowsourceType = 6 – Fields
Buat Method = Bersih, aktif, nonaktif, gridsementara
LISTING PROGRAM
Form bersih
thisform.txtnostruk.Value=""
thisform.txttgl.Value={}
thisform.txtnmkasir.Value=""
thisform.cbo_kdfilm.Value=""
thisform.txtnmfilm.Value=""
thisform.txtjenis.Value=""
thisform.txtharga.Value=0
thisform.txtitem.Value=0
thisform.txtsubtotal.Value=0
thisform.txtppn.Value=0
thisform.txtgrandtotal.Value=0
thisform.txttokes.Value=0
thisform.txtubay.Value=0
thisform.txtukem.Value=0
Form aktif
thisform.txtnmkasir.Enabled= .T.
thisform.cbo_kdfilm.Enabled= .T.
thisform.txtitem.Enabled= .T.
thisform.txtubay.Enabled= .T.
Form nonaktif
thisform.txtnostruk.Enabled= .F.
thisform.txttgl.Enabled= .F.
thisform.txtnmkasir.Enabled= .F.
thisform.cbo_kdfilm.Enabled= .F.
thisform.txtnmfilm.Enabled= .F.
thisform.txtjenis.Enabled= .F.
thisform.txtharga.Enabled= .F.
thisform.txtitem.Enabled= .F.
thisform.txtsubtotal.Enabled= .F.
thisform.txttokes.Enabled= .F.
thisform.txtppn.Enabled= .F.
thisform.txtubay.Enabled= .F.
thisform.txtukem.Enabled= .F.
thisform.grid1.Enabled= .F.
thisform.cmdinput.Enabled= .F.
Form Activate
thisform.bersih
thisform.nonaktif
SELECT 4
DELETE ALL
PACK
thisform.gridsementara
thisform.Refresh
thisform.timer1.Interval=100
Form Load
CLOSE ALL
CLOSE DATABASES
CLOSE INDEXES
SET DEFAULT TO "C:\PAGI\FOXPRO"
SELECT 1
USE film
SET ORDER TO tag kd_film
SELECT 2
USE transaksi
SET ORDER TO tag no_struk
SELECT 3
USE rincian
SELECT 4
USE sementara
SET DATE ITALIAN
Form gridsementara
thisform.grid1.RecordSource="sementara"
thisform.grid1.Column1.Header1.Caption="Kode Film"
thisform.grid1.Column2.Header1.Caption="Nama Film"
thisform.grid1.Column3.Header1.Caption="Jenis"
thisform.grid1.Column4.Header1.Caption="Harga"
thisform.grid1.Column5.Header1.Caption="Item"
thisform.grid1.Column6.Header1.Caption="Subtotal"
thisform.grid1.Column1.Width=100
thisform.grid1.Column2.Width=100
thisform.grid1.Column3.Width=100
thisform.grid1.Column4.Width=100
thisform.grid1.Column5.Width=100
thisform.grid1.Column6.Width=100
thisform.grid1.Refresh
Cbo_kdfilm Click
SELECT 1
thisform.txtnmfilm.Value=film.nm_film
thisform.txtjenis.Value=film.jenis
thisform.txtharga.Value=film.harga
thisform.txtitem.SetFocus
CmdInput Click
SELECT 4
APPEND BLANK
REPLACE kd_film WITH thisform.cbo_kdfilm.Value
REPLACE nm_film WITH thisform.txtnmfilm.Value
REPLACE harga WITH thisform.txtharga.Value
REPLACE jenis WITH thisform.txtjenis.Value
REPLACE jml WITH thisform.txtitem.Value
REPLACE subtotal WITH thisform.txtsubtotal.Value
thisform.txttokes.Value=thisform.txttokes.Value+thisform.txtsubtotal.Value
thisform.txtppn.Value=INT(thisform.txttokes.Value*0.05)
thisform.txtgrandtotal.Value=INT(thisform.txttokes.Value+thisform.txtppn.Value)
GO TOP
thisform.cbo_kdfilm.Value=""
thisform.txtnmfilm.Value=""
thisform.txtharga.Value=0
thisform.txtjenis.Value=""
thisform.txtitem.Value=0
thisform.txtsubtotal.Value=0
thisform.gridsementara
Txtitem InteractiveChange
thisform.txtsubtotal.Value=thisform.txtharga.Value*thisform.txtitem.Value
thisform.cmdinput.Enabled= .T.
thisform.cmdinput.SetFocus
Cmdadd Click
thisform.Activate
thisform.txttgl.Value=DATE()
thisform.aktif
SELECT 2
GO BOTTOM
thisform.txtnostruk.Value=LTRIM(STR(VAL(transaksi.no_struk)+1))
thisform.txtnmkasir.SetFocus
Cmdcancel Click
Thisform.Activate
Cmdsave Click
IF thisform.txtubay.Value=0 THEN
MESSAGEBOX("Belum Bayar Tuch")
thisform.txtubay.SetFocus
RETURN
ENDIF
SELECT 2
APPEND BLANK
REPLACE no_struk WITH thisform.txtnostruk.Value
REPLACE tgl WITH thisform.txttgl.Value
REPLACE kasir WITH thisform.txtnmkasir.Value
REPLACE total WITH thisform.txttokes.Value
REPLACE ppn WITH thisform.txtppn.Value
REPLACE grandtotal WITH thisform.txtgrandtotal.Value
REPLACE bayar WITH thisform.txtubay.Value
REPLACE kembali WITH thisform.txtukem.Value
SELECT 4
SCAN
SELECT 3
APPEND BLANK
replace no_struk WITH thisform.txtnostruk.Value
REPLACE kd_film WITH sementara.kd_film
REPLACE jml WITH sementara.jml
REPLACE subtotal WITH sementara.subtotal
ENDSCAN
MESSAGEBOX("DATA TERSIMPAN")
thisform.Activate
Cmdbrowse Click
thisform.Activate
DO FORM "C:\PAGI\FOXPRO\form_browse.scx"
CmdClose Click
x=MESSAGEBOX("Situ yakiiinn nich mu keluuarrr???",36,"Qta mau nanya niy :")
IF x=6 then
thisform.Release
ENDIF
Txtubay LostFocus
thisform.txtukem.Value=INT(thisform.txtubay.Value-thisform.txt
grandtotal.Value)
IF thisform.txttokes.Value>thisform.txtubay.Value THEN
MESSAGEBOX("Kurang Uangnya!")
thisform.txtukem.Value=0
RETURN
ENDIF
Buatlah form dengan tampilan sebagai berikut :form_browse
CmdClose Click
thisform.Release
PENJELASAN FORM TRANSAKSI
Form bersih
Semua textbox dibuat bersih
Apabila type datanya string = “”
Apabila type datanya Numeric = 0
Form aktif
Tekxtbox nmkasir, cbo_kdfilm txtitem, txtubay dibuat
aktif
Form nonaktif
Semua textbox dibuat tidak aktif
Form Activate
Pada saat dijalankan semua textsbox dalam keadaan bersih dan tidak aktif kecuali jam
Menggunakan dan penyimpanan pada tabel sementara
Hapus semua
Tampilkan subform gridsementara
Dan refresh
Form Load
Tutup semua
Keluar dari DATABASES
Keluar dari INDEXES
Mengaktifkan path folder "C:\PAGI\FOXPRO"
Pilih tabel pertama yang ada dalam objek
form transaksi
Menggunakan dan penyimpanan pada tabel film
Menggunakan key kd_film
Pilih tabel kedua yang ada dalam objek form transaksi
Menggunakan dan penyimpanan pada tabel transaksi
Menggunakan key no_struk
Pilih tabel ketiga yang ada dalam objek form transaksi
Menggunakan dan penyimpanan pada tabel rin
cian
Pilih tabel keempat yang ada dalam objek form transaksi
Menggunakan dan penyimpanan pada tabel sementara
Atur tanggal dengan format dd-mm-yy
Form gridsementara
Tabel sementara yang digunakan
Dan pengaturan nama judul dan lebar pada kolom-kolom yang akan digunakan.
Cbo_kdfilm Click
Ketika combo box kode film diklik maka akan munc
ul banyak pilihan
Txtnmfilm, txtjenis, txtharga akan terisi secara otomatis
Menggunakan dan penyimpanan pada tabel film
Kursor akan fokus di txtitem
CmdInput Click
Menggunakan dan penyimpanan pada tabel sementara
Menambah 1 baris kosong diposisi paling akhir suatu table
Mengubah isi field kd_film, nm_film, harga, jenis, jml dan subtotal dengan isi / data yang baru.
Dengan ketentuan sbb :
Total Seluruhnya = total seluruhnya + subtotal
PPN = total seluruhnya x 5%
Grandtotal = total seluruhnya + ppn
GO TOP
cbo_kdfilm, txtnmfilm, txtharga, txtjenis, txtitem, txtsubtotal bersih
tampilkan gridsementara
Txtitem InteractiveChange
Pada saat diinput item yang akan dibeli subt
otal akan berubah dengan sendiri, dengan ketentuan :
Subtotal=harga x item
Command Input aktif dan fokus
Cmdadd Click
Pada saat klik ADD maka form aktif dan n
o struk dan tanggal struk muncul secara otomatis
Menggunakan dan penyimpanan pada tabel transaksi
Dari yang paling bawah dengan ketentuan no struk diambil dari tebel transaksi dan dari field no_struk+1
Jadi secara otomatis no sruk akan bertambah 1
Kursor fokus di txtnmkasir
Cmdcancel Click
Pada saat di klik CANCEL maka akan Memenuhi perintah activate
Cmdsave Click
Jika belum menginput uang bayar akan muncul pesan
Kursor fokus di txtubay
Penuhi syarat diatas
Akhir jika
Menggunakan dan penyimpanan pada tabel transaksi
Menambah 1 baris kosong diposisi paling akhir suatu table
Mengubah isi field no_struk, tgl, kasir, total, ppn, grandtotal, bayar dan kembali dengan isi / data yang baru.
Menggunakan dan penyimpanan pada tabel tra
nsaksi
SCAN
Menggunakan dan penyimpanan pada tabel rincian
Menambah 1 baris kosong diposisi paling akhir suatu table
Mengubah isi field no_struk, kd_film, jml dan subtota
l dengan isi / data yang baru.
ENDSCAN
Maka muncul pesan
Dan memenuhi perintah activate
Cmdbrowse Click
Penuhi perintah activate
Membuka dan mengaktifkan objek form_browse.scx
CmdClose Click
Buat variabel x
X itu Muncul pesan dan ada 2 Pilihan Yes atau No
Jika x=Ya Maka
Keluar dan menutup jendela form transaksi
Akhir jika
Txtubay LostFocus
Saat diinput uang bayar,dan tekan enter uang kembali ak
an terisi secara otomatis dengan ketentuan :
Uang Kembali = Uang bayar – grandtotal
Jika Total Keseluruhan Lebih besar dari Uang bayar maka
Muncul pesan
Textbox Uang kembali bersih
Penuhi syarat diatas
Akhir Jika
PENJELASAN
Pembuatan Report
à Buat Local View : Klik tombol New, New View, simpan dengan nama V_lap
à Pertama klik table rincian, klik ADD.
à Berikutnya klik table Transaksi, OK.
à Berikutnya klik table film, OK .
à Isikan local view sesuai dibawah ini
Field | Table |
No_struk | Rincian |
Tgl | Transaksi |
Kasir | Transaksi |
Kd_film | Rincian |
Nm_film | Film |
Harga | Film |
Jenis | Film |
Jml | Rincian |
Subtotal | Rincian |
Total | Transaksi |
Ppn | Transaksi |
Grandtotal | Transaksi |
Bayar | Transaksi |
Kembali | Transaksi |
à Buatlah rancangan report dengan menggunakan Wizard simpan dengan nama lap_struk.pjx yang diambil dari v_lap dengan layout sbb:
à Buatlah rancangan report dengan menggunakan
Wizard simpan dengan nama lap_film.pjx yang diambil dari table film dengan layout sbb:
à Buat form cetak laporan transaksi simpan dengan nama form_cetakstruk.frx, sbb:
Cmdcetak Click
IF thisform.optiongroup1.Value=1
REPORT FORM "C:\PAGI\FOXPRO\lap_struk.frx" preview
ELSE
REPORT FORM "C:\PAGI\FOXPRO\lap_struk.frx" TO PRINTER prompt
ENDIF
CmdClose Click
Thisform.Realese
PENJELASAN FORM CETAK STRUK
Cmdcetak Click
Jika memilih salah satu option
Membuka dan mengaktifkan objek report lap_struk.frx berdasarkan path Tampilkan
Selain itu
Membuka dan mengaktifkan objek report lap_struk.frx berdasarkan path
Untuk di Cetak
prompt
Akhir jika
CmdClose Click
Keluar dan menutup jendela form cetak struk
à Buat form cetak laporan transaksi simpan dengan nama form_cetakfilm.frx, sbb:
Cmdcetak Click
IF thisform.optiongroup1.Value=1
REPORT FORM "C:\PAGI\FOXPRO\lap_film.frx" preview
ELSE
REPORT FORM "C:\PAGI\FOXPRO\lap_film.frx" TO PRINTER prompt
ENDIF
CmdClose Click
thisform.Release
PENJELASAN FORM CETAK STRUK
Cmdcetak Click
Jika memilih salah satu option
Membuka dan mengaktifkan objek report lap_film.frx berdasarkan path Tampilkan
Selain itu
Membuka dan mengaktifkan objek report lap_film.frx berdasarkan path
Untuk di Cetak
prompt
Akhir jika
CmdClose Click
Keluar dan menutup jendela form cetak film
Membuat Menu
Sebelum membuat menu utama semua form yang ada di project, pada propertisnya :
Pada Show Window :1-In Top-Level Form
Auto Center= True
1. Pada project penjualan_film.pjx di Tab Other pilih menus ( ), klik tombol new lalu pilih menu.
2. Menu Bar :
Prompt Result
File Submenu
Transaksi Submenu
Laporan Submenu
Exit command quit
3. Lalu klik tombol create untuk mengisi sub menu tiap-tiap menu bar.
Submenu File :
Prompt Result
Data Film command do form C:\pagi\foxpro\form_film.scx
Submenu Transaksi :
Prompt Result
Entry Transaksi command do form C:\pagi\foxpro\form_transaksi.scx
Submenu File :
Prompt Result
Laporan Film command do form C:\pagi\foxpro\form_cetakfilm.scx
Laporan Struk command do form C:\pagi\foxpro\form_cetakstruk.scx
4. Jika semua submenu sudah terisi :
à Klik menu bar view à general option à klik Top-Level Form à OK
à Simpan Menu di folder masing-masing dengan nama menu1.mnx
à Masih aktif di kotak menu1.mnx à klik menu bar menu à generate à klik generate.
WAJIB : Setiap perubahan menu, form, table atau report selalu generate kembali.
5. Buat form kosong untuk menu utamanya :
Listing untuk Menu utama :
Form Load
SET DEFAULT TO "C:\PAGI\FOXPRO"
Form Aktivate
Close all
Form Init
Do menu1.mpr with this,.t.
Form Destroy
Clear events
Properties yang perlu diubah :
Show Window =2-As Top-Level Form
Windowstate =2-Maximized
Simpan dengan nama menu_utama.scx di folder masing-masing
Membuat Executable
1. Buat Code program yang akan dijalankan :
Pada project pilih Tab Code pilih Program, lalu klik tombol New
Listing Program
SET TALK OFF
SET DELETED ON
SET SAFETY OFF
SET SYSMENU OFF
SET STATUS OFF
SET DATE ITALIAN
SET CENTURY ON
_VFP.Visible=.f.
DO FORM C:\PAGI\FOXPRO\form_login.scx
_SCREEN.WindowState= 1
CLEAR EVENTS
READ EVENTS
Simpan dengan nama program1.prg di folder masing-masing
2. Membuat program1.prg menjadi awal :
àKlik tab code
àKlik program1 à modify
àKlik menu bar project à set main
3. Membuat File .exe :
àklik tombol build di project manajer (atau pada menu bar project pilih build).
àOK
untuk program selengkapnya kamu dapat download disini
0 comments:
Post a Comment