Recent Posts

Thursday, January 14, 2010

Foxpro bUat kak aBaay


Buat Project dengan Nama = Penjualan.pjx

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

PROPERTIES

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

SET ORDER TO tag kd_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

angga ADDICTED