Tanpa basa-basi langsung saja saya lanjutkan Tutorial Membuat Aplikasi Penjualan Dengan Delphi. Proses ini adalah membuat transaksi penjualan.
1. Form Transaksi Penjualan
Komponen yang digunakan
- Tedit1
- TCombobox
- TLabel
- Tbevel
- TStringgrid
- TBitbtn
- TButton
- TDateTimePicker
2. Form Cari Barang Jual
Komponen yang digunakan
- TEdit
- TLabel
- DBgrid
A. Mebuat procedure reset, procedure creategrid, dan procedure noauto
Procedure Reset
Procedure Reset
procedure TFpenjualan.reset; var i:integer; begin for i := 0 to ComponentCount -1 do begin if (Components[i] is TEdit) and (TEdit(Components[i]).Tag = 0) then Tedit(Components[i]).Text :='' end; bitbtn1.Caption:='Tambah'; Lrp.Caption:='Rp'; end;
Procedure Noauto
procedure TFpenjualan.NoAuto; var kode:String; urut:integer; begin with dm.Q1 do begin Close; SQL.Clear; SQL.Text:='select * from tb_penjualan'; Open; end; if dm.Q1.RecordCount = 0 then urut :=1 else if dm.Q1.RecordCount > 0 then begin with Dm.Q1 do begin Close; SQL.Clear; SQL.Text:='select max(right(kodepenjualan,5)) as kode from tb_penjualan'; Open; end; urut:=dm.Q1.FieldByName('kode').AsInteger +1; end; kode:=inttostr(urut); kode:=Copy('00000'+kode,length('00000'+kode)-4,5); Enotapenjualan.Text:='PJ.'+kode; end;
procedure TFpenjualan.CreateGrid; var i,j:integer; begin with Sg do begin for i := 0 to colCount-1 do for j := 0 to rowCount-1 do Cells[i,j]:=''; ColCount:=6; RowCount:=2; Cells[0,0]:='Kode Barang'; Cells[1,0]:='Nama Barang'; Cells[2,0]:='Satuan'; Cells[3,0]:='Harga'; Cells[4,0]:='Jumlah'; Cells[5,0]:='Subtotal'; ColWidths[0]:=200; ColWidths[1]:=300; ColWidths[2]:=130; ColWidths[3]:=100; ColWidths[4]:=100; ColWidths[5]:=150; end; end;
- Kode untuk tombol tambahprocedure TFPenjualan.BitBtn1Click(Sender: TObject); begin reset; CreateGrid; NoAuto; end;
procedure TFpenjualan.BitBtn2Click(Sender: TObject); var i:integer; begin if Enotapenjualan.Text = '' then Showmessage('Kode pembelian masih kosong') else if Sg.Cells[0,1]='' then Showmessage('belum melakukan transaksi') else if cbpelanggan.Text ='' then showmessage('supplier belum dimasukan') else begin for i := 1 to sg.RowCount -1 do begin if sg.Cells[0,i]<>'' then begin with dm.Q1 do begin Close; SQL.Clear; SQL.Text:='insert into tb_detailpenjualan (kodepembelian,kodebarang,hargabeli,jumlah,subtotal)'+ 'values ("'+Enotapenjualan.Text+'","'+sg.Cells[0,i]+'","'+sg.Cells[3,i]+'","'+sg.Cells[4,i]+'","'+sg.Cells[5,i]+'")'; ExecSQL; Close; SQL.Clear; SQL.Text:='update tbarang set stok=stok-"'+sg.Cells[4,i]+'" where kodebarang="'+sg.Cells[0,i]+'"'; ExecSQL; end; end; end; with Dm.Q1 do begin Close; SQL.Clear; SQL.Text:='insert into tb_penjualan values("'+Enotapenjualan.Text+'","'+FormatDatetime('yyyy-mm-dd',now)+'","'+lin.Caption+'","'+kodesupplier+'","'+Fmenuutama.StatusBar1.Panels[1].Text+'")'; ExecSQL; end; Reset; NoAuto; CreateGrid; cbpelanggan.Text:=''; end; end;
- Kode untuk tombol batal item
procedure TFpenjualan.BitBtn3Click(Sender: TObject); begin if messageDLg('Yakin item akan dihapus?',mtConfirmation,[Mbyes,MBno],0)=Mryes then begin lin.Caption:=inttostr(strtoint(lin.Caption)-strtoint(sg.Cells [5,sg.Row])); sg.RowCount := sg.RowCount -1; end; end;
Setelah selesai pengkodean jalankan program dengan menekean tombol F9. Maka hasilnya akan seperti dibawah ini.- Kode untuk Ehargabeli dan ejumlahprocedure TFpenjualan.EhargabeliKeyPress(Sender: TObject; var Key: Char); begin if not (key in['0'..'9',#8,#10,#13]) then Key:=#0; end;Kode untuk form onShowprocedure TFpenjualan.FormShow(Sender: TObject); begin Reset; NoAuto; cbpelanggan.Clear; dm.QdataPelanggan.First; while dm.QdataPelanggan.Eof = False do begin cbpelanggan.Items.Add(dm.QdataPelanggan.FieldByName('namapelanggan').AsString ); dm.QdataPelanggan.Next; end; cbpelanggan.Text:=''; end;- Kode untuk ejumlah event onKeyDownprocedure TFpenjualan.EjumlahKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = 13 then begin if (Ejumlah.Text <> '') and (ejumlah.Text <>'0') then begin Sg.Cells[0,sg.RowCount -1]:=Ekodebarang.Text; Sg.Cells[1,sg.RowCount -1]:=Enamabarang.Text; Sg.Cells[2,sg.RowCount -1]:=Esatuan.Text; Sg.Cells[3,sg.RowCount -1]:=Ehargabeli.Text; Sg.Cells[4,sg.RowCount -1]:=Ejumlah.Text; Sg.Cells[5,sg.RowCount -1]:=inttostr(strtoint(Ejumlah.Text)* strtoint(Ehargabeli.Text)); sg.RowCount := sg.RowCount +1; sg.Row := sg.RowCount -1; Lin.Caption:=inttostr(strtoint(Lin.Caption)+(strtoint(Ejumlah.Text)*strtoint(ehargabeli.Text))); Etotalbayar.Text:=Lin.Caption; reset; if MessageDlg('Apakah ingin menambah barang?',mtConfirmation,[mbyes,mbno],0)=mrYes then FcariBarangJual.ShowModal; end else Showmessage('Jumlah Belum dimasukan'); end; end;- Kode untuk tombol cariprocedure TFpenjualan.Button1Click(Sender: TObject); begin Fcaribarangjual.Showmodal; end;B.Kemudian kode pada form cari barang Jual
- Pada event Dbgrid klik 2xprocedure TFcaribarangjual.DBGrid1DblClick(Sender: TObject); begin with Fpenjualan do begin Ekodebarang.Text:=dm.QdataBarang.FieldValues['kodebarang']; Enamabarang.Text:=dm.QdataBarang.FieldValues['namabarang']; Esatuan.Text:=dm.QdataBarang.FieldValues['satuan']; Ehargabeli.Text:=dm.QdataBarang.FieldValues['hargajual']; FcaribarangJual.Close; Ejumlah.SetFocus ; end; end;- Pada event Ecari onKeyUpprocedure TFcaribarangjual.EcariKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin with Dm.QdataBarang do begin Close; SQL.Clear; SQL.Text:='select * from tbbarang where namabarang like"%'+ecari.Text+'%"'; Open; end; end;
Sekian dulu tutorialnya ... Sampai ketemu ditutorial selanjutnya ...
Source Code
15 comments:
d tunngu tutorial selanjutnya bang
hehehe
Ea bang ... baru tahun barunan juga otaknya ... :D
hallo mas joko, mas jika berkenan minta source lengkapnya part 1-9 dalam bentuk text donk, japri aja ke ennojogjaholic@gmail.com soalnya aku pake Delphi XE. makasih ya,,
Bentuk text gmana mas???
Gak nunggu aja sampai selesai tutorial. Ini tgal laporan aja kok mas. Kalo dah selesai nanti sya upload semua projectnya.
view sourcenya mas.. soalnya di delphi xe projectnya gak bisa kebuka :(, saya pake XE masnya pake XE2 rencana mau saya edit buat bikin POS di laundry saya :)
Itu tinggal ngikuting langkah langkahnya mas.
Di buka di xe bisa mas. Download project dari part1 sampai terakhr nanti tinggal add to project mas.
oh udah bisa bro.. soalnya dulu saya pernah bikin project sederhana di XE2 saya buka di XE erorr eh ternyata gara2 komponen Fibplus sama DevExpress.. hehe makasih.. ohya sekalian donk nanti bikin tutorial cara bikin lib sendiri
Bikin lib yang kaya gimana mas??
thank you so much, matur suwun, sukron, terima kasih bang JOko....
ane tunggu kelanjutannya dengan sedikit tidak sabar karena penasaran. wkwkwk
mas, seumpama kalo mau update jumlah di stringgridnya gimana ya
Kalau data stock barang habis trus gmn mas buat pemberitahuannya klw stock barang sdh habis...
Kalau data stock barang habis trus gmn mas buat pemberitahuannya klw stock barang sdh habis...
hallo mas joko, mau nanya data supplier disimpan dimana yah, ngak ada database nya,
trus lanjut tutorialnya kapan? :)
kalau berkenan bisa tidak say dirimkan tutorial fullnya (ifhaszel@gmail.com) buat tugas kuliah saya :)
mantap gan, ini yg ane cari" 2 hari baru ketemu hari ini, mantap ilmunya
Makasih banget
Post a Comment