Group by ou SUM ?? como fazer esse código?
Olá novamente, tenho um problema que surgiu de ultima hora e não consigo resolver.
Estou usando o comando Writeln para imprimir um cupom(comanda) para um restaurante, do jeito que estou fazendo está saindo da seguinte maneira
Produto : Chopp
Quantidade : 1
Valor : R$ 2,70
Produto : Chopp
Quantidade : 1
Valor : R$ 2,70
Produto : Chopp
Quantidade : 1
Valor : R$ 2,70
O que eu queria fazer é Agrupar esses pedidos iguais para que ficasse assim ( seguindo o exemplo acima)
Produto : Chopp
Quantidade : 3
Valor : R$ 8,70
Estou usando ADO e access, segue abaixo o código :
procedure TForm23.Button1Click(Sender: TObject);
var valor:real;
valor3 : real;
valor2 : real;
F: textfile;
I : Integer;
begin
With ADoDataSet1 do Begin
Close;
CommandText := ´Select Mesa,Descricao,qtd,valor´
+ ´ From Tabvendas, Produtos´
+ ´ where mesa = :pMesa and statusmesa=´´Aberta´´ and codprodvendas = codigoprod´;
Parameters.paramByName(´pMesa´).Value := Edit1.text;
Open;
End;
With ADoDataSet2 do Begin
Close;
CommandText := ´SELECT Sum(QTD) AS QTD1,SUM(VALOR * qtd) AS CUSTOTOT´
+ ´ From Tabvendas, Produtos´
+ ´ where mesa = :pMesa and statusmesa=´´Aberta´´ and codprodvendas = codigoprod´;
Parameters.paramByName(´pMesa´).Value := Edit1.text;
Open;
end;
AssignFile(F,´LPT1´);
Rewrite (F);
I := 0;
Adodataset1.First;
Writeln (F,´ ´,´Planet Beer Sports´);
Writeln (F,´´);
Writeln (F,´ ´,´Comanda Nro:´,´ ´,adodataset1Mesa.AsString);
Writeln (F,´´);
Writeln (F,´´);
While not adodataset1.Eof do
begin
Writeln (F,´ ´,´Produto :´, ´ ´,adodataset1Descricao.AsString);
Writeln (F,´ ´,´Quantidade :´,´ ´,adodataset1Qtd.AsString);
valor3 := strtofloat(dbedit4.text);
dbedit4.Text:=FormatCurr(´0.00´,valor3);
Writeln (F,´ ´,´Valor R$ :´,´ ´,dbedit4.text);
Writeln (F,´´);
adodataset1.Next;
end;
valor2 := strtofloat(dbedit6.text);
dbedit6.Text:=FormatCurr(´0.00´,valor2);
Writeln (F,´´);
Writeln (F,´ ´,´,Total R$´, dbedit6.text );
Closefile (F);
end;
[]´s
Estou usando o comando Writeln para imprimir um cupom(comanda) para um restaurante, do jeito que estou fazendo está saindo da seguinte maneira
Produto : Chopp
Quantidade : 1
Valor : R$ 2,70
Produto : Chopp
Quantidade : 1
Valor : R$ 2,70
Produto : Chopp
Quantidade : 1
Valor : R$ 2,70
O que eu queria fazer é Agrupar esses pedidos iguais para que ficasse assim ( seguindo o exemplo acima)
Produto : Chopp
Quantidade : 3
Valor : R$ 8,70
Estou usando ADO e access, segue abaixo o código :
procedure TForm23.Button1Click(Sender: TObject);
var valor:real;
valor3 : real;
valor2 : real;
F: textfile;
I : Integer;
begin
With ADoDataSet1 do Begin
Close;
CommandText := ´Select Mesa,Descricao,qtd,valor´
+ ´ From Tabvendas, Produtos´
+ ´ where mesa = :pMesa and statusmesa=´´Aberta´´ and codprodvendas = codigoprod´;
Parameters.paramByName(´pMesa´).Value := Edit1.text;
Open;
End;
With ADoDataSet2 do Begin
Close;
CommandText := ´SELECT Sum(QTD) AS QTD1,SUM(VALOR * qtd) AS CUSTOTOT´
+ ´ From Tabvendas, Produtos´
+ ´ where mesa = :pMesa and statusmesa=´´Aberta´´ and codprodvendas = codigoprod´;
Parameters.paramByName(´pMesa´).Value := Edit1.text;
Open;
end;
AssignFile(F,´LPT1´);
Rewrite (F);
I := 0;
Adodataset1.First;
Writeln (F,´ ´,´Planet Beer Sports´);
Writeln (F,´´);
Writeln (F,´ ´,´Comanda Nro:´,´ ´,adodataset1Mesa.AsString);
Writeln (F,´´);
Writeln (F,´´);
While not adodataset1.Eof do
begin
Writeln (F,´ ´,´Produto :´, ´ ´,adodataset1Descricao.AsString);
Writeln (F,´ ´,´Quantidade :´,´ ´,adodataset1Qtd.AsString);
valor3 := strtofloat(dbedit4.text);
dbedit4.Text:=FormatCurr(´0.00´,valor3);
Writeln (F,´ ´,´Valor R$ :´,´ ´,dbedit4.text);
Writeln (F,´´);
adodataset1.Next;
end;
valor2 := strtofloat(dbedit6.text);
dbedit6.Text:=FormatCurr(´0.00´,valor2);
Writeln (F,´´);
Writeln (F,´ ´,´,Total R$´, dbedit6.text );
Closefile (F);
end;
[]´s
Shuljenko
Curtidas 0
Respostas
Koplin
16/09/2003
Tente assim:
CommandText := ´Select distinct Descricao,Mesa,sum(qtd),sum(valor)´
+ ´ From Tabvendas, Produtos´
+ ´ where mesa = :pMesa and statusmesa=´´Aberta´´ and codprodvendas = codigoprod group by Descricao,Mesa´;
CommandText := ´Select distinct Descricao,Mesa,sum(qtd),sum(valor)´
+ ´ From Tabvendas, Produtos´
+ ´ where mesa = :pMesa and statusmesa=´´Aberta´´ and codprodvendas = codigoprod group by Descricao,Mesa´;
GOSTEI 0