14. Program Penjualan Sederhana
UNDER CONSTRUCTION , THANK YOU FOR YOUR PATIENCE
Tujuan
1. Membuat database tabel dan alias
2. Membuat dan menggunakan index, menggunakan sorting
- Table Fields, Calculated Fields, Lookup
- Table Searching, Filtering, Range
- Tabel Relations
- Bookmark
- Komponen dan bahasa SQL dinamik
- Fungsi agregat
- Report master detail
Video Tutorial
[video]
Membuat Database
| No | Action | ||
| 1 | Buka Database Desktop | Start -> Program -> Borland Delphi 7 -> Database Desktop | |
| 2 | Buat Table baru | File->New->Table->Paradox 7 | Faktur A 10 *
Tanggal D Total N Sales_id A 10 Save as JUAL.DB |
| File->New->Table->Paradox 7 | Faktur A 10 *
Barang_ID A 10 * Jumlah N Save as JUALDETAIL.DB |
||
| File->New->Table->Paradox 7 | Id A 10 *
Barang A 10 Harga N Save As BARANG.DB |
||
| 3 | Isi Data Barang | File->Open->Table->BARANG.DB | MK010001 Indomie Kari Ayam 2,000.00
MK010002 Salam Mi 14,000.00 MK020001 Kacang Atom 3,400.00 MK020002 Kacang Asin 3,500.00 MN010001 Coffee Mix 5,000.00 MN010002 Fruit Tea 4,500.00 MN010003 Teh Botol 1,500.00 MN010004 Coca Cola 1,500.00 MN010005 Fanta 1,500.00 |
1.1.3. Membuat Window Menu Utama
| No | Action | ||
| 1 | New Project | File-> New -> Application | |
| 2 | Save All | Unit Filename: menu.pas
Project: jual Caption: Aplikasi Penjualan |
|
| 3 | Komponen BitBtn1 | Tab Additional | Caption: Penjualan |
| 4 | Komponen BitBtn2 | Tab Additional | Caption: Data Barang |
| 5 | Komponen BitBtn3 | Tab Additional | Caption: Laporan |
| 6 | Komponen BitBtn4 | Tab Additional | Caption: Keluar
Kind: btClose |
| 7 | Komponen Form1 | Name: frmMenuUtama | |
| 8 | Event OnClick BitBtn1 | FrmTransaksi.ShowModal |
1.1.4. Membuat Window Transaksi Penjualan
| No | Action | ||
| 1 | New Form | File-> New -> Form | Save All
Unit Filename: transaksi.pas Properti Name: frmTransaksi Caption: Transaksi Penjualan |
| 2 | Komponen Table1 | Tab BDE | Name: tbJual
DatabaseName: c:\e-learning\toko TableName: jual.db Active: true |
| 3 | Komponen Table2 | Tab BDE | Name: tbBarang
DatabaseName: c:\e-learning\toko TableName: barang.db Active: true |
| 4 | Komponen Table2 | Tab BDE | Name: tbJualDetail
DatabaseName: c:\e-learning\toko TableName: jualdetail.db Active: true |
| 5 | Komponen DataSource1 | Tab DataAccess | Name: dsJual
DataSet: tbJual |
| 6 | Komponen DataSource2 | Tab DataAccess | Name: dsJualDetail
DataSet: tbJualDetail |
| 6 | Komponen Panel1 | Tab Standard | Aling: Bottom
Caption: ” |
| 7 | Komponen DBGrid1 | Tab DataControl | Name: gridJualDetail
DataSource: dsJualDetail Align: Bottom |
| 8 | Komponen DBEdit1 | Tab DataControl | Name: edFaktur
DataSource: dsJual DataField: Faktur |
| 9 | Komponen DBEdit2 | Tab DataControl | Name: edTanggal
DataSource: dsJual DataField: Tanggal |
| 10 | Komponen DBEdit3 | Tab DataControl | Name: edSales_id
DataSource: dsJual DataField: Sales_id |
| 11 | Komponen DBEdit4
di atas Panel1 |
Tab DataControl | Name: edTotal
DataSource: dsJual DataField: Total |
| 12 | Komponen Label1 | Standard | Faktur |
| 13 | Komponen Label2 | Standard | Tanggal |
| 14 | Komponen Label3 | Standard | Sales ID |
| 15 | Komponen Label4
di atas Panel1 |
Standard | Total |
| 16 | Navigator | Tab DataCOntrol | DataSource: dsJual
Align: top |
| 17 | Set FieldDefs tbJual | Double click tbJual | Add all Fields |
| 17 | Properti tbJualDetail | Supaya jualdetail hanya menampilkan faktur yang dipilih pada tbJual | MasterSource: dsJual
MasterField: klik [...] Faktur->Faktur , Add |
| 18 | Set FieldDefs tbJualDetail | Double click tbJualDetail | Add all Fields
Field faktur: visible=false |
| 19 | Tambah field lookup Nama Barang | Double click tbJualDetail
New Field |
Name: NamaBarang
Type: String Field Type: Lookup Key Field: Barang_id DataSet: tbBarang Lookup Key: Id result Field: Barang DisplayWidth: 30 nama variable: tbJualDetailNamaBarang |
| 20 | Tambah field lookup Harga Barang | Double click tbJualDetail
New Field |
Name: HargaBarang
Type: Float Field Type: Lookup Key Field: Barang_id DataSet: tbBarang Lookup Key: Id result Field: Harga nama variable: tbJualDetailHargaBarang |
| 20 | Tambah field calculated Total Harga Barang | Double click tbJualDetail
New Field |
Name: Total
Type: Float Field Type: Calculated nama variable: tbJualDetailTotal |
| Susun Field tbDetail | Double click tbJualDetail
susun field |
||
| Aktifkan semua table | Pilih semua table | Active: true | |
| Coba jalankan | Klik tombol [+] untuk
Insert F001 Klik tombol [v] untuk mensave record |
Insert beberapa items
perhatikan total – total belum berfungsi |
1.1.5. Menghitung Sub Total dan Total
| No | Action | ||
| 1 | Handler event onCalcField
tbJualDetail |
click tbJualDetail
click event onCalcField |
procedure TfrmTransaksi.tbJualDetailCalcFields(DataSet: TDataSet);
begin tbJualDetailTotal.Value := tbJualDetailHargaBarang.Value * tbJualDetailJumlah.AsInteger; end; |
| 2 | Menghitung Total | Buat method
TfrmTransaksi. HitungTotal() |
…
published procedure HitungTotal; … |
| procedure TfrmTransaksi.HitungTotal;
var TempTotal: Extended; PrevRecord: TBookmark; begin PrevRecord := tbJualDetail.GetBookmark; { returns nil if table is empty } try tbJualDetail.DisableControls; tbJualDetail.First; TempTotal := 0;{ use temp for efficiency } while not tbJualDetail.EOF do begin TempTotal := TempTotal + tbJualDetailTotal.Value; tbJualDetail.Next; end; tbJualTotal.Value := TempTotal; finally tbJualDetail.EnableControls; if PrevRecord <> nil then begin tbJualDetail.GoToBookmark(PrevRecord); tbJualDetail.FreeBookmark(PrevRecord); end; end; end; |
|||
| Bind HitungTotal ke event tbJualDetail | AfterDelete | HitungTotal | |
| AfterPost | HitungTotal |
1.1.6. Membuat Window Data Barang
| No | Action | ||
| 1 | Membuat form dengan wizard | Database-> Form Wizard | Tabel barang |
| Format: Grid | |||
| 2 | Save Form | Barang.pas
Name: frmBarang |
|
| 3 | Bind ke menu utama | OnClick | FrmBarang.ShowModal |
1.1.7. Membuat Laporan Master Detail
| No | Action | ||
| 1 | Membuat form dengan wizard | Database-> Form Wizard | Tabel jual master
tabel jualdetail detail posisi: grid |
| 2 | Tambah Rave Component | RaveProject | |
| RaveTableConn1 | Dataset: tbJual | ||
| RaveTableConn2 | Dataset: tbJualDetail | ||
| 3 | Buat project RAV | Double click RvProject1 | |
| DataView1 | RaveTableConn1 | ||
| DataView2 | RaveTableConn2 | ||
| Region | |||
| DataBand1 | DataView: DataView1 | ||
| DataBand2 | DataView: DataView2
ControllerBand: DataBand1 DetailKey: Faktur MasterDataView: DataView1 MasterKey: Faktur BandStyle: detail |
||
| DataText di DataBand1 | Faktur
Sales Tanggal Total |
||
| DataText di DataBand2 | BarangID
Lookup nama Barang Faktur Jumlah |
||
| Hias dengan garis/ warna border | |||
| Preview | |||
| Binding dengan tombol | RvProject.Execute(‘Report1′) |
1.1.8. Menggunakan Data Module



Recent Comments