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 CodeUpdate 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 :