Minggu yang sangat cerah kawan.... bingung masu ngasih judul apa ni buat postingan yang ini. ke inget ketika sering aktif di forum - forum delphi, banyak yan gmenanyakan, " bagaimana sih membuat form transaksi penjualan ?", " contoh aplikasi minimarket , dan cara penyimpanan transaksi detail penjualan. Mungkin bagi yang sudah mas master dalam delphi artikel ini tidak berguna sama sekali, tapu artike ini saya tujukan bagi para pemula yang sedang kebingunan bagaimana membuat form transaksi yang sudah suport dengan barcode scaner.
Barcode Scaner berfungsi untuk membaca nilai barcode yang tertera pada suatu produk kemudian mengirimkan pesan pada program POS untuk diteruskan pencarian barang yang sesuai dengan nilai barcode tersebut. Biasanya barcode scaner mengirimkan pesan menekan tombol enter secara otomatis selesai membaca nilai barcode.
Nah munpung lagi fresh ni otak.. saya kasih contoh form transaksi penjualan dengan delphi yang sudah suport dengan barcode scaner . Langsung saja simak project dibawah ini ..
Pertama buat form seperti dibahawah ini ....
procedure TFpenjualan.FormCreate(Sender: TObject); begin sg.ColCount:=7; sg.RowCount:=2; sg.ColWidths[0]:=200; sg.ColWidths[1]:=300; sg.ColWidths[2]:=150; sg.ColWidths[3]:=100; sg.ColWidths[4]:=80; sg.ColWidths[5]:=80; sg.ColWidths[6]:=100; sg.Cells[0,0]:='Kode Barcode'; sg.Cells[1,0]:='Nama Barang'; sg.Cells[2,0]:='Kategori'; sg.Cells[3,0]:='Satuan'; sg.Cells[4,0]:='Harga'; sg.Cells[5,0]:='Jumlah'; sg.Cells[6,0]:='Subtotal'; sg.Col:=0; sg.Row:=sg.RowCount -1; sg.SetFocus; end;
Kemudian pada komponen string grid yang digunakan untk menampung item yang dibeli oleh konsumen ..
Pada event onKeydown ketikan kode dibawah ini ..
procedure TFpenjualan.sgKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var c,r,i:integer; begin if (sg.Col = 0) and (sg.Cells[0,sg.Row]<>'') then begin if key = 13 then begin ExecSQL(dm.Q1,'select * from tb_barang where kodebarcode="'+Sg.Cells[0,sg.Row]+'"',True); if dm.Q1.IsEmpty then MessageBox(handle,'Data Barang tidak ditemukan','Error',MB_ICONERROR) else begin Kodebarcode:=sg.Cells[0,sg.Row-1]; if (sg.Cells[0,sg.Row ] =Kodebarcode)then begin sg.Cells[5,sg.Row-1]:=inttostr(strtoint(sg.cells[5,sg.row-1])+1); sg.Cells[6,sg.Row-1]:=GetRupiah(Floattostr(strtoFloat(sg.Cells[5,sg.row-1])* strtoFloat(getNilai(sg.Cells[4,sg.row-1])))); if (sg.Cells[0,sg.Row+1]<>'') then begin for c:=0 to sg.ColCount -1 do for r:=sg.Row to sg.row do sg.Cells[c,r]:=''; for i := sg.Row to sg.RowCount -1 do begin sg.Cells[0,i]:=sg.Cells[0,i+1]; sg.Cells[1,i]:=sg.Cells[1,i+1]; sg.Cells[2,i]:=sg.Cells[2,i+1]; sg.Cells[3,i]:=sg.Cells[3,i+1]; sg.Cells[4,i]:=sg.Cells[4,i+1]; sg.Cells[5,i]:=sg.Cells[5,i+1]; sg.Cells[6,i]:=sg.Cells[6,i+1]; end; sg.RowCount :=sg.RowCount -1; end else if sg.Cells[0,sg.RowCount -1]='' then begin for c:=0 to sg.ColCount -1 do for r:=sg.Row to sg.row do sg.Cells[c,r]:=''; sg.RowCount :=sg.RowCount -1; end else if sg.Cells[0,sg.Row] = sg.Cells[0,sg.RowCount -1 ] then begin for c:=0 to sg.ColCount -1 do for r:=sg.Row to sg.row do sg.Cells[c,r]:=''; end; sg.Row:=sg.RowCount -1; sg.Col:=0; sg.SetFocus; Lbayar.Caption:=GetRupiah(SumGrid(sg)); end else begin kodebarcode:=dm.Q1.FIeldByName('kodebarcode').AsString; sg.Cells[1,sg.Row]:=dm.Q1.FieldByName('namabarang').AsString; sg.Cells[2,sg.Row]:=dm.Q1.FieldByName('kategori').AsString; sg.Cells[3,sg.Row]:=dm.Q1.FieldbyName('satuan').AsString; sg.Cells[4,sg.Row]:=GetRupiah(dm.Q1.FieldByName('hargajual').AsString); sg.Cells[5,sg.Row]:='1'; sg.Cells[6,sg.Row]:=GetRupiah(dm.Q1.FieldByName('hargajual').AsString); if (sg.Cells[0,sg.RowCount -1]<>'') and (sg.Cells[1,sg.RowCount -1]<>'') and (sg.Cells[2,sg.RowCount -1]<>'') and (sg.Cells[3,sg.RowCount -1]<>'') and (sg.Cells[4,sg.RowCount -1]<>'') and (sg.Cells[5,sg.RowCount -1]<>'') and (sg.Cells[6,sg.RowCount -1]<>'') then begin sg.RowCount:=sg.RowCount+1; end; sg.Row:=sg.RowCount -1; sg.Col:=0; sg.SetFocus; Lbayar.Caption:=GetRupiah(SumGrid(sg)); end; end; etotalbayar.Text:=Lbayar.Caption; Etotal.Text:=etotalbayar.Text; end; end else if (sg.Col =5) or (sg.Col =4) then begin if key = 13 then begin sg.Col:=0; sg.Row:=sg.RowCount -1; sg.SetFocus; end; end; end;
Dan hasilnya ketika pada Sting grid pada kolom kodebarcode ketika ditekan enter atau langsung pake barcode scanner.
Yang ingin Sedot source code silahkan disini
0 comments:
Post a Comment