Cashier Program
with delphi program
do you want to create
a simple restaurant cashier with
delphi program?
delphi program?
try it this program
ok good luck ....
pingin buat kasir restoran sederhana ? nih di bawah ada source codenya, bisa di coba pakai delphi tentunya.
kalau restoran yg dibutuhkan pasti , no/nama meja, menu makanan/minumannya, iya kan..
nah
untuk program restoran , harus bisa simpan menu makanan/minuman sesuai
mmejanya yg nantinya bisa dipanggil untuk billingnya,
ok selamat mencoba ....
*********************************
unit kasir;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, ExtCtrls, ComCtrls, jpeg, Menus, Buttons;
type
TFkasir = class(TForm)
Label1: TLabel;
StringGrid1: TStringGrid;
clantai: TComboBox;
Panel1: TPanel;
Label9: TLabel;
cmenu: TComboBox;
Label2: TLabel;
DateTimePicker1: TDateTimePicker;
Label3: TLabel;
eno: TEdit;
Label10: TLabel;
Label13: TLabel;
Label19: TLabel;
ejum: TEdit;
eharga: TEdit;
UpDown2: TUpDown;
ediskon: TEdit;
ediskonrp: TEdit;
bok: TButton;
StringGrid2: TStringGrid;
Image1: TImage;
PopupMenu1: TPopupMenu;
PindahMeja1: TMenuItem;
PopupMenu2: TPopupMenu;
Hapus1: TMenuItem;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
etot: TEdit;
ediskon1: TEdit;
ediskonrp1: TEdit;
Label7: TLabel;
Label8: TLabel;
Label11: TLabel;
Label12: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
bclear: TBitBtn;
Label20: TLabel;
cmeja: TComboBox;
Label21: TLabel;
Label22: TLabel;
ltotal: TLabel;
lnourut: TLabel;
brekam: TBitBtn;
bprintbil: TBitBtn;
bpembatalan: TBitBtn;
ckodemenu: TComboBox;
lkodemeja: TLabel;
ljenis: TLabel;
PopupMenu3: TPopupMenu;
Refress1: TMenuItem;
Label23: TLabel;
procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure FormShow(Sender: TObject);
procedure StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure Label12Click(Sender: TObject);
procedure bclearClick(Sender: TObject);
procedure clantaiClick(Sender: TObject);
procedure cmenuKeyPress(Sender: TObject; var Key: Char);
procedure ejumKeyPress(Sender: TObject; var Key: Char);
procedure ehargaKeyPress(Sender: TObject; var Key: Char);
procedure ediskonrpKeyPress(Sender: TObject; var Key: Char);
procedure cmenuClick(Sender: TObject);
procedure hitung (SEnder:Tobject);
procedure bokClick(Sender: TObject);
procedure ejumChange(Sender: TObject);
procedure ediskonChange(Sender: TObject);
procedure ediskon1Change(Sender: TObject);
procedure cmejaKeyPress(Sender: TObject; var Key: Char);
procedure clantaiKeyPress(Sender: TObject; var Key: Char);
procedure cmenuChange(Sender: TObject);
procedure cmenuKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cmejaClick(Sender: TObject);
procedure brekamClick(Sender: TObject);
procedure Refress1Click(Sender: TObject);
procedure StringGrid1Click(Sender: TObject);
procedure cmejaChange(Sender: TObject);
procedure Hapus1Click(Sender: TObject);
procedure clantaiChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Fkasir: TFkasir;
implementation
uses bayar, dn,menu;
{$R *.dfm}
procedure TFkasir.hitung(Sender:TObject);
var harga,jumlah,diskon,subtotal,total,diskon1:Real;
subtotala,totala:real;
a:integer;
grandtotal,tot,diskon2,diskonrp1,subtotal1,total1:real;
begin
if ejum.Text<>'' then
jumlah:=strtofloat(formatnormal(ejum.Text))
else
jumlah:=0;
if eharga.Text<>'' then
harga:=strtofloat(formatnormal(eharga.Text))
else
harga:=0;
if ediskon.Text<>'' then
diskon:=strtofloat(formatnormal(ediskon.Text))
else
diskon:=0;
//hitung total diskon di tabel
subtotal :=(jumlah*harga);
diskon1 :=((subtotal)*diskon)/100;
ediskonrp.Text:=formatcurr('#,##0',diskon1);
total :=subtotal-diskon1;
ltotal.Caption:=formatcurr('#,##0',total);
//hitung grand total
totala:=0;
for a:=1 to stringgrid2.RowCount-1 do
begin
if stringgrid2.Cells[7,a]<>'' then
subtotala:=strtofloat(formatnormal(stringgrid2.Cells[7,a]))
else
subtotala:=0;
totala:=totala+subtotala;
end;
etot.Text:=formatcurr('#,##0',totala);
//hitung total diskon di bawah
if ediskon1.Text<>'' then
diskon2:=strtofloat(formatnormal(ediskon1.Text))
else
diskon2:=0;
tot :=strtofloat(formatnormal(etot.Text));
subtotal1 :=(tot*diskon2)/100;
ediskonrp1.Text :=formatcurr('#,##0',subtotal1);
grandtotal :=tot-subtotal1;
label8.Caption :=formatcurr('#,##',grandtotal);
end;
procedure TFkasir.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
{ if (arow>0) and (arow mod 2=0) then
begin
stringgrid1.canvas.Brush.Color:=$00C6F2FF;
stringgrid1.canvas.Pen.Style:=psclear;
stringgrid1.canvas.Rectangle(rect.left,rect.top,rect.Right,rect.Bottom);
stringgrid1.canvas.Brush.Color:=$00C6F2DD;
stringgrid1.canvas.Pen.Style:=psSolid;
stringgrid1.canvas.Pen.Color:=clBlack;
stringgrid1.Canvas.TextOut(rect.Left+2,rect.top+2,stringgrid1.cells[acol,arow]);
end; }
end;
//setting form , perform the command button clearclick
procedure TFkasir.FormShow(Sender: TObject);
begin
bclearClick(Self);
end;
// setting the tablel line
procedure TFkasir.StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (arow>0) and (arow mod 2=0) then
begin
stringgrid2.canvas.Brush.Color:=$00C6F2FF;
stringgrid2.canvas.Pen.Style:=psclear;
stringgrid2.canvas.Rectangle(rect.left,rect.top,rect.Right,rect.Bottom);
stringgrid2.canvas.Brush.Color:=$00C6F2FF;
stringgrid2.canvas.Pen.Style:=psSolid;
stringgrid2.canvas.Pen.Color:=clBlack; stringgrid2.Canvas.TextOut(rect.Left+2,rect.top+2,stringgrid2.cells[acol,arow]);
end;
end;
//setting button F2 , perform the command button bayar
procedure TFkasir.Label12Click(Sender: TObject);
begin
FBAYAR.SHOW;
end;
procedure TFkasir.bclearClick(Sender: TObject);
var a,b:integer;
kodemeja,namameja,meja,lantai:String;
begin
for a:=1 to stringgrid1.RowCount-1 do
for b:=0 to stringgrid1.ColCount-1 do
stringgrid1.Cells[b,a]:='';
for a:=1 to stringgrid2.RowCount-1 do
for b:=0 to stringgrid2.ColCount-1 do
stringgrid2.Cells[b,a]:='';
for a:=1 to stringgrid2.RowCount-1 do
begin
stringgrid2.Cells[15,a]:='';
stringgrid2.Cells[16,a]:='';
end;
datetimepicker1.Date:=now;
with stringgrid1 do
begin
cells[0,0]:='No.';
cells[1,0]:='Meja';
end;
image1.Picture.LoadFromFile('c:\backgroud.bmp');
lnourut.Caption:='1';
ltotal.Caption:='0';
etot.Text:='0';
ediskon1.Text:='0';
ediskonrp1.Text:='0';
lkodemeja.Caption:='-';
ljenis.Caption:='-';
label8.Caption:='0';
lantai :=clantai.Text;
with stringgrid2 do
begin
cells[0,0]:='No';
cells[1,0]:='Nama Menu';
cells[2,0]:='Jumlah';
cells[3,0]:='Harga@';
cells[4,0]:='Diskon %';
cells[5,0]:='Diskon Rp';
cells[7,0]:='Subtotal';
end;
clantai.SetFocus;
cmeja.Text:='';
cmenu.Text:='';
ejum.Text:='0';
eharga.Text:='0';
ediskon.Text:='0';
ediskonrp.Text:='0';
eno.Text:=generatenokasir;
ckodemenu.Text:='';
lantai:=clantai.Text;
//lantai
with denin.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select distinct lantai from meja group by lantai order by lantai');
open;
first;
clantai.Items.Clear;
while not eof do
begin
clantai.Items.Add(fieldbyname('lantai').AsString);
next;
end;
end;
////////////////filter online restaurant table
//clear first
denin.ADOQuery2.close;
denin.ADOQuery2.sql.Clear;
denin.ADOQuery2.sql.Add('delete from tempmeja');
denin.ADOQuery2.ExecSQL;
with denin.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select nama,kode,lantai from meja order by nama');
open;
first;
while not eof do
begin
meja :=fieldbyname('kode').AsString;
namameja :=fieldbyname('nama').AsString;
lantai :=fieldbyname('lantai').AsString;
denin.ADOQuery2.close;
denin.ADOQuery2.sql.Clear;
denin.ADOQuery2.sql.Add('insert into tempmeja(kode,namameja,lantai) values("'+meja+'","'+namameja+'",'+lantai+')');
denin.ADOQuery2.ExecSQL;
next;
end;
end;
//dibandingkan dengan kasir
with denin.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select distinct meja from kasir where lunas=0 group by meja order by meja');
open;
first;
while not eof do
begin
meja:=fieldbyname('meja').AsString;
denin.ADOQuery2.close;
denin.ADOQuery2.sql.Clear;
denin.ADOQuery2.sql.Add('delete from tempmeja where kode="'+meja+'"');
denin.ADOQuery2.ExecSQL;
next;
end;
end;
//insert to a table column
with denin.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select kode,namameja,lantai from tempmeja where lantai="'+lantai+'" order by namameja');
open;
first;
cmeja.Items.Clear;
while not eof do
begin
meja:=fieldbyname('namameja').AsString;
cmeja.Items.Add(meja);
next;
end;
end;
//MENU
with denin.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select nama,kode from menu order by nama');
open;
first;
cmenu.Items.Clear;
while not eof do
begin
cmenu.Items.Add(fieldbyname('nama').AsString);
ckodemenu.Items.Add(fieldbyname('kode').AsString);
next;
end;
end;
//on the restaurant table
with denin.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select distinct meja from kasir where lunas=0 order by meja');
open;
first;
a:=1;
while not eof do
begin
stringgrid1.Cells[0,a]:=inttostr(a);
kodemeja:=fieldbyname('meja').AsString;
stringgrid1.Cells[1,a]:=carinamameja(kodemeja);
stringgrid1.Cells[2,a]:=kodemeja;
next;
inc(a,1);
end;
end;
stringgrid1.RowCount:=a+1;
end;
procedure TFkasir.clantaiClick(Sender: TObject);
var lantai,meja,namameja:string;
begin
////////////////filter online restaurant table
cmeja.Items.Clear;
denin.ADOQuery2.close;
denin.ADOQuery2.sql.Clear;
denin.ADOQuery2.sql.Add('delete from tempmeja');
denin.ADOQuery2.ExecSQL;
cmeja.Text:='';
with denin.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select nama,kode,lantai from meja order by nama');
open;
first;
while not eof do
begin
meja :=fieldbyname('kode').AsString;
namameja :=fieldbyname('nama').AsString;
lantai :=fieldbyname('lantai').AsString;
denin.ADOQuery2.close;
denin.ADOQuery2.sql.Clear;
denin.ADOQuery2.sql.Add('insert into tempmeja(kode,namameja) values("'+meja+'","'+namameja+'")');
denin.ADOQuery2.ExecSQL;
next;
end;
end;
//dibandingkan dengan kasir
with denin.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select distinct meja from kasir where lunas=0 group by meja order by meja');
open;
first;
while not eof do
begin
meja:=fieldbyname('meja').AsString;
denin.ADOQuery2.close;
denin.ADOQuery2.sql.Clear;
denin.ADOQuery2.sql.Add('delete from tempmeja where kode="'+meja+'"');
denin.ADOQuery2.ExecSQL;
next;
end;
end;
//baru masukkan ke kolom meja
with denin.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select kode,namameja from tempmeja order by namameja');
open;
first;
cmeja.Items.Clear;
while not eof do
begin
meja:=fieldbyname('namameja').AsString;
cmeja.Items.Add(meja);
next;
end;
end;
{ cmeja.Text:='';
lantai:=clantai.Text;
with denin.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select nama,kode from meja where lantai="'+lantai+'" order by nama');
open;
first;
cmeja.Items.Clear;
while not eof do
begin
cmeja.Items.Add(uppercase(fieldbyname('nama').AsString));
next;
end;
end; }
end;
procedure TFkasir.cmenuKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
ejum.SetFocus;
cmenuClick(Self);
end;
end;
procedure TFkasir.ejumKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then eharga.SetFocus;
if key=#27 then cmenu.SetFocus;
end;
procedure TFkasir.ehargaKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then ediskon.SetFocus;
if key=#27 then ejum.SetFocus;
end;
procedure TFkasir.ediskonrpKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then bok.SetFocus;
if key=#27 then ediskon.SetFocus;
end;
procedure TFkasir.cmenuClick(Sender: TObject);
var nama,kode,tipe:String;
begin
nama:=cmenu.Text;
with denin.ADOQuery2 do
begin
close;
sql.Clear;
sql.Add('select kode,tipe from menu where nama="'+nama+'" ');
open;
if recordcount=0 then
begin
ckodemenu.Text:='';
ljenis.Caption:=fieldbyname('tipe').AsString;
end;
if recordcount>0 then
begin
ckodemenu.Text:=fieldbyname('kode').AsString;
ljenis.Caption:=fieldbyname('tipe').AsString;
end;
end;
kode:=ckodemenu.Text;
with denin.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from menu where kode="'+kode+'" ');
open;
if recordcount=0 then
begin
eharga.Text:='0';
end;
if recordcount>0 then
begin
eharga.Text:=formatcurr('#,##0',fieldbyname('harga').AsFloat);
end;
end;
end;
procedure TFkasir.bokClick(Sender: TObject);
var no,a:integer;
kode,kode1,jumlah,harga,diskon,kodemenu,jenis:string;
jumawal,total:real;
kondisi:boolean;
jumstok,jumjual,totawal,totbersama,tot1,totgabung:real;
hargaulang,subtotulang,diskonulang,totalulang,totdiskon:real;
begin
kode :=ckodemenu.Text;
jumlah :=ejum.Text;
harga :=formatnormal(eharga.Text);
diskon :=ediskon.Text;
tot1 :=strtofloat(formatnormal(ltotal.Caption));
jenis :=ljenis.Caption;
kondisi:=false;
for a:=1 to stringgrid2.RowCount-1 do
begin
if (stringgrid2.Cells[15,a]<>'') and (stringgrid2.Cells[16,a]<>'') then
begin
kode1:=stringgrid2.Cells[15,a];
if (kode=kode1) then
begin
kondisi:=true;
//HITUNG JUMLAH lama + jumlah baru
if stringgrid2.Cells[2,a]<>'' then
jumawal:=strtofloat(formatnormal(stringgrid2.Cells[2,a]))
else
jumawal:=0;
total:=jumawal+strtofloat(jumlah);
//hitung jika persentase tidak sama
if stringgrid2.Cells[4,a]<>'' then
totdiskon:=strtofloat(formatnormal(stringgrid2.Cells[4,a]))
else
totdiskon:=0;
subtotulang :=total*strtofloat(harga);
diskonulang :=(subtotulang*strtofloat(diskon))/100;
totalulang :=subtotulang-diskonulang;
stringgrid2.Cells[2,a]:=floattostr(total);
stringgrid2.Cells[3,a]:=eharga.Text;
stringgrid2.Cells[4,a]:=ediskon.Text;
stringgrid2.Cells[5,a]:=floattostr(diskonulang);
stringgrid2.Cells[7,a]:=formatcurr('#,##0',totalulang);
hitung(self);
cmenu.Text:='';
ckodemenu.Text:='';
ejum.Text:='0';
eharga.Text:='0';
ediskon.Text:='0';
ediskonrp.Text:='0';
cmenu.SetFocus;
exit;
end;
end;
end;
if kondisi=false then
begin
no:=strtoint(lnourut.Caption);
stringgrid2.Cells[0,no]:=inttostr(no);
stringgrid2.Cells[15,no]:=kode;
stringgrid2.Cells[16,no]:=jenis;
hitung(self);
stringgrid2.Cells[1,no]:=cmenu.Text;
stringgrid2.Cells[2,no]:=ejum.Text;
stringgrid2.Cells[3,no]:=eharga.Text;
stringgrid2.Cells[4,no]:=ediskon.Text;
stringgrid2.Cells[5,no]:=ediskonrp.Text;
stringgrid2.Cells[7,no]:=ltotal.Caption;
lnourut.Caption:=inttostr(no+1);
stringgrid2.RowCount:=no+2;
cmenu.Text:='';
ckodemenu.Text:='';
ejum.Text:='0';
eharga.Text:='0';
ediskon.Text:='0';
ediskonrp.Text:='0';
cmenu.SetFocus;
end;
end;
procedure TFkasir.ejumChange(Sender: TObject);
begin
hitung(self);
end;
procedure TFkasir.ediskonChange(Sender: TObject);
begin
hitung(self);
end;
procedure TFkasir.ediskon1Change(Sender: TObject);
begin
hitung(self);
end;
procedure TFkasir.cmejaKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then cmenu.SetFocus;
if key=#27 then clantai.SetFocus;
end;
procedure TFkasir.clantaiKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then cmeja.SetFocus;
end;
procedure TFkasir.cmenuChange(Sender: TObject);
begin
cmenuClick(Self);
end;
procedure TFkasir.cmenuKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=116 then
begin
brekamClick(Self);
end;
if key=118 then
begin
fbayar.ltotal.Caption:=label8.Caption;
fbayar.show;
end;
if key=114 then
begin
bclearClick(self);
end;
fbayar.lnota.Caption:=eno.Text;
end;
procedure TFkasir.cmejaClick(Sender: TObject);
var nama:String;
begin
nama:=cmeja.Text;
with denin.ADOQuery2 do
begin
close;
sql.Clear;
sql.Add('select kode from meja where upper(nama)="'+nama+'" ');
open;
if recordcount=0 then
begin
lkodemeja.Caption:='-';
end;
if recordcount>0 then
begin
lkodemeja.Caption :=fieldbyname('kode').AsString;
end;
end;
end;
procedure TFkasir.brekamClick(Sender: TObject);
var tgl,nota,lantai,meja,kode,harga,jenis,jum,diskon1,diskon2,diskonrp1,diskonrp2,total:String;
a:integer;
lunas,isi,isi1,totalx:string;
begin
tgl :=formatdatetime('yyyy/mm/dd',datetimepicker1.Date);
nota :=eno.Text;
lantai :=clantai.Text;
meja :=lkodemeja.Caption;
diskon2 :=ediskon1.Text;
diskonrp2 :=ediskonrp1.Text;
lunas :='0';
isi :='-';
isi1 :='0';
totalx :=formatnormal(label8.Caption);
with denin.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('delete from kasir where nota="'+nota+'" ');
execsql;
close;
sql.Clear;
sql.Add('delete from totalpernota where nota="'+nota+'" ');
execsql;
end;
for a:=1 to stringgrid2.RowCount-1 do
begin
kode :=stringgrid2.Cells[15,a];
jenis :=stringgrid2.Cells[16,a];
harga :=formatnormal(stringgrid2.Cells[3,a]);
jum :=formatnormal(stringgrid2.Cells[2,a]);
diskon1 :=formatnormal(stringgrid2.Cells[4,a]);
diskonrp1 :=formatnormal(stringgrid2.Cells[5,a]);
//simpan1
if (kode<>'') and (harga<>'') and(jum<>'') then
begin
with denin.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('insert into kasir(tgl,nota,carabayar,bank,nokartu,lantai,meja,kode,jenis,harga,jumlah,diskon,diskonrp,jumbayar,jumbayarkartu,lunas) values ("'+
tgl+'","'+nota+'","'+isi+'","'+isi+'",'+isi1+','+lantai+',"'+meja+'","'+kode+'","'+jenis+'",'+harga+','+jum+','+diskon1+','+
diskonrp1+','+isi1+','+isi1+','+lunas+') ');
execsql;
end;
end;
end;
//simpan total penjualan
with denin.ADOQuery2 do
begin
close;
sql.Clear;
sql.Add('insert into totalpernota(tgl,nota,total) values("'+tgl+'","'+nota+'",'+totalx+') ');
execsql;
end;
bclearClick(Self);
end;
procedure TFkasir.Refress1Click(Sender: TObject);
begin
with denin.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select nama,kode from menu order by nama');
open;
first;
cmenu.Items.Clear;
while not eof do
begin
cmenu.Items.Add(fieldbyname('nama').AsString);
ckodemenu.Items.Add(fieldbyname('kode').AsString);
next;
end;
end;
end;
procedure TFkasir.StringGrid1Click(Sender: TObject);
var jumlah,harga,diskon,subtotal,subtotal1,discon,total:real;
kodemeja,meja,kode,nama:string;
a,b:integer;
begin
for a:=1 to stringgrid2.RowCount-1 do
for b:=0 to stringgrid2.ColCount-1 do
stringgrid2.Cells[b,a]:='';
kodemeja:=stringgrid1.Cells[2,stringgrid1.Row];
//diluar tabel
with denin.ADOQuery2 do
begin
close;
sql.Clear;
sql.Add('select distinct tgl,nota,meja,lantai from kasir where meja="'+kodemeja+'" and lunas="0" ');
open;
if recordcount>0 then
begin
datetimepicker1.Date:=fieldbyname('tgl').AsDateTime;
eno.Text:=fieldbyname('nota').AsString;
meja:=fieldbyname('meja').AsString;
lkodemeja.Caption:=meja;
cmeja.Text:=carinamameja(meja);
clantai.Text:=fieldbyname('lantai').AsString;
end;
end;
//tabel
with denin.ADOQuery2 do
begin
close;
sql.Clear;
sql.Add('select * from kasir where meja="'+kodemeja+'" and lunas="0" ');
open;
first;
a:=1;
while not eof do
begin
stringgrid2.Cells[0,a]:=inttostr(a);
kode :=fieldbyname('kode').AsString;
stringgrid2.Cells[15,a]:=kode;
stringgrid2.Cells[16,a]:=fieldbyname('jenis').AsString;
stringgrid2.Cells[1,a]:=carinamamenu(kode);
jumlah :=fieldbyname('jumlah').AsFloat;
harga :=fieldbyname('harga').AsFloat;
diskon :=fieldbyname('diskon').AsFloat;
stringgrid2.Cells[2,a]:=floattostr(jumlah);
stringgrid2.Cells[3,a]:=formatcurr('#,##0',harga);
stringgrid2.Cells[4,a]:=floattostr(diskon);
stringgrid2.Cells[5,a]:=formatcurr('#,##0',fieldbyname('diskonrp').AsFloat);
subtotal:=jumlah*harga;
discon :=(subtotal*diskon)/100;
total :=subtotal-discon;
stringgrid2.Cells[7,a]:=formatcurr('#,##0',total);
next;
inc(a,1);
end;
lnourut.Caption:=inttostr(a);
end;
stringgrid2.RowCount:=a+1;
hitung(self);
end;
procedure TFkasir.cmejaChange(Sender: TObject);
begin
cmejaClick(Self);
end;
procedure TFkasir.Hapus1Click(Sender: TObject);
var a,b:integer;
nomor,countnomor:integer;
begin
a:=strtoint(stringgrid2.Cells[0,stringgrid2.row]);
nomor:=strtoint(lnourut.Caption);
{ for b:=0 to 7 do
begin
stringgrid2.Cells[b,a]:='';
end; }
for b:=a to stringgrid2.RowCount-1 do
begin
stringgrid2.Cells[0,b]:=inttostr(b);
stringgrid2.Cells[1,b]:=stringgrid2.Cells[1,b+1];
stringgrid2.Cells[2,b]:=stringgrid2.Cells[2,b+1];
stringgrid2.Cells[3,b]:=stringgrid2.Cells[3,b+1];
stringgrid2.Cells[4,b]:=stringgrid2.Cells[4,b+1];
stringgrid2.Cells[5,b]:=stringgrid2.Cells[5,b+1];
stringgrid2.Cells[7,b]:=stringgrid2.Cells[7,b+1];
stringgrid2.Cells[15,b]:=stringgrid2.Cells[15,b+1];
end;
hitung(Self);
countnomor:=nomor-1;
lnourut.Caption:=inttostr(countnomor);
end;
procedure TFkasir.clantaiChange(Sender: TObject);
begin
clantaiClick(self);
end;
end.
********************************* GOOD LUCK ****************************