Kelanjutan dari artikel sebelumnya yang sempat tertunda beberapa hari karena situasi yang lumayan repot.hehehe. Saya lanjutkan lagi artikel cara membuat aplikasi penjualan sederhana dengan delphi ini. Setelah sebelumnya selesai membuat menu master maka selanjutnya adalah mebuat menu transaksi yaitu pembelian dan penjualan.
Untuk pertama kita akan membuat form transaksi pembelian. Transaksi pembelian adalah mencatat proses pembelian barang yang akan digunakan untuk menambahkan stok barang berdasarkan barang yang dibeli atau kulakan. karena stok barang tidak dapat diubah menggunakan menu data barang, maka saat mencatat atau memproses pembelian barang harus disertai data yang sesungguhnya dan teliti dalam mengetikkan jumlah pembelian karena akan sangat berpengaruh dengan harga dan stok barang yang disimpan.
1. Form Transaksi Pembelian
Langsung saja untuk membuat form pembelian seperti pada gambar dibawah ini.
1. Form Transaksi Pembelian
Komponen yang digunakan
- Tedit1
- TCombobox
- TLabel
- Tbevel
- TStringgrid
- TBitbtn
- TButton
- TDateTimePicker
2. Form Cari Barang Beli
Komponen yang digunakan
- TEdit
- TLabel
- DBgrid
Langsung saja untuk pengkodean pada form transaksi pembelian.
A. Mebuat procedure reset, procedure creategrid, dan procedure noauto
- procedure reset
procedure TFpembelian.reset;-Procedure NoAuto
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 TFpembelian.NoAuto;- procedure createGrid
var
kode:String;
urut:integer;
begin
with dm.Q1 do
begin
Close;
SQL.Clear;
SQL.Text:='select * from tb_pembelian';
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(kodepembelian,5)) as kode from tb_pembelian';
Open;
end;
urut:=dm.Q1.FieldByName('kode').AsInteger +1;
end;
kode:=inttostr(urut);
kode:=Copy('00000'+kode,length('00000'+kode)-4,5);
Ekodepembelian.Text:='PB.'+kode;
end;
procedure TFpembelian.CreateGrid;- Kode untuk tombol tambah
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 Beli';
Cells[4,0]:='Jumlah Beli';
Cells[5,0]:='Subtotal';
ColWidths[0]:=200;
ColWidths[1]:=300;
ColWidths[2]:=130;
ColWidths[3]:=100;
ColWidths[4]:=100;
ColWidths[5]:=150;
end;
end;
procedure TFpembelian.BitBtn1Click(Sender: TObject);- Kode untuk tombol simpan
begin
reset;
CreateGrid;
NoAuto;
end;
procedure TFpembelian.BitBtn2Click(Sender: TObject);- Kode untuk tombol batal item
var
i:integer;
begin
if Ekodepembelian.Text = '' then
Showmessage('Kode pembelian masih kosong')
else
if Sg.Cells[0,1]='' then
Showmessage('belum melakukan transaksi')
else
if Cbsupplier.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_detailpembelian (kodepembelian,kodebarang,hargabeli,jumlah,subtotal)'+
'values ("'+ekodepembelian.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_pembelian values("'+ekodepembelian.Text+'","'+FormatDatetime('yyyy-mm-dd',now)+'","'+lin.Caption+'","'+kodesupplier+'","'+Fmenuutama.StatusBar1.Panels[1].Text+'")';
ExecSQL;
end;
Reset;
NoAuto;
CreateGrid;
Cbsupplier.Text:='';
end;
end;
procedure TFpembelian.BitBtn3Click(Sender: TObject);- Kode untuk Ehargabeli dan ejumlah
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;
procedure TFpembelian.EhargabeliKeyPress(Sender: TObject; var Key: Char);- Kode untuk form onShow
begin
if not (key in['0'..'9',#8,#10,#13]) then
Key:=#0;
end;
procedure TFpembelian.FormShow(Sender: TObject);- Kode untuk ejumlah event onKeyDown
begin
Reset;
NoAuto;
cbsupplier.Clear;
dm.QdataSupplier.First;
while dm.QdataSupplier.Eof = False do
begin
cbsupplier.Items.Add(dm.QdataSupplier.FieldByName('namasupplier').AsString );
dm.QdataSupplier.Next;
end;
cbsupplier.Text:='';
end;
procedure TFpembelian.EjumlahKeyDown(Sender: TObject; var Key: Word;- Kode untuk tombol cari
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;
Lin.Caption:=inttostr(strtoint(Lin.Caption)+(strtoint(Ejumlah.Text)*strtoint(ehargabeli.Text)));
reset;
if MessageDlg('Apakah ingin menambah barang?',mtConfirmation,[mbyes,mbno],0)=mrYes then
FcariBarangBeli.ShowModal;
end else
Showmessage('Jumlah Belum dimasukan');
end;
end;
procedure TFpembelian.Button1Click(Sender: TObject);
begin
FcariBarangBeli.Showmodal;
end;
B.Kemudian kode pada form cari barang beli
- Pada event Dbgrid klik 2x
procedure TFcariBarangBeli.DBGrid1DblClick(Sender: TObject);- Pada event Ecari onKeyUp
begin
with Fpembelian 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['hargabeli'];
FcaribarangBeli.Close;
Ejumlah.SetFocus;
end;
end;
procedure TFcariBarangBeli.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;
Setelah proses pengkodean sudah selesai untuk kedua form kemudian jalankan aplikasi. Bila proses di ikuti dengan benar aplikasi akan berjalan dengan lancar. Lihat seperti gambar dibawah ini.
Baca Juga :- Membuat Aplikasi Penjualan (POS) dengan Delphi Part6
- Membuat Aplikasi Penjualan (POS) dengan Delphi Part8
Sedot Source Code
Update Contact :
No Wa/Telepon (puat) : 085267792168
No Wa/Telepon (fajar) : 085369237896
Email : Fajarudinsidik@gmail.com
No Wa/Telepon (puat) : 085267792168
No Wa/Telepon (fajar) : 085369237896
Email: Fajarudinsidik@gmail.com
atau Kirimkan Private messanger melalui email dengan klik tombol order dibawah ini :