PDA

Ver la Versión Completa : Suma el dBgrid vertical


gianfranco_tont
21-02-2012, 06:20:46
Ya logre que me hiciera la suma en un dbgrid horizontal ahora solo me falta hacerlo vertical: quiero que me sume todas la columna del total y que me lo refleje en un edit.text. Alguien puede indicarme como hacerlo? Olvide comentarle, que tengo un dbgrid atado a un dataste atravez de un datasource y un datasetprovider a un adoquery.

olbeup
21-02-2012, 08:56:24
Hola gianfranco_tont

Lo puedes hacer de dos formas.

1.) Registro a registro
...
var
ImporteTotal: Extended;
begin
with adoquery do
while (not eof) do
begin
ImporteTotal := ImporteTotal + FieldByName('TOTAL').AsFloat;

Edit1.Text := FormatFloat('#,#0.00', ImporteTotal);

Next;
end;
end;

2.) Por SQL
...
var
ImporteTotal: Extended;
begin
with adoQry do
begin
SQL.Clear;

SQL.Add('SELECT');
SQL.Add(' SUM(TOTAL) AS IMPORTETOTAL');
SQL.Add(' FROM Pedido');
SQL.Add(' WHERE IDPEDIDO = 45');

Open;

ImporteTotal := FieldByName('IMPORTETOTAL').AsFloat;

Edit1.Text := FormatFloat('#,#0.00', ImporteTotal);

Close;
end;
end;


Espero que te sirva o te oriente.

Un saludo.

gianfranco_tont
21-02-2012, 18:12:11
Lo hice con la primera pero cuando paso al próximo registro no me hace la suma simplemente me muestra el valor de total del registro donde estoy ubicado.

olbeup
01-03-2012, 09:01:59
No debería de darte problemas, Prueba esto otro:
...
var
ImporteTotal: Extended;
begin
ImporteTotal := 0;
with adoquery do
while (not eof) do
begin
ImporteTotal := ImporteTotal + FieldByName('TOTAL').AsFloat;

Next;
end;

Edit1.Text := FormatFloat('#,#0.00', ImporteTotal);
end;

Un saludo.

Casimiro Notevi
01-03-2012, 10:11:25
Recuerda ;)

http://neftali.clubdelphi.com/images/UtilizarTAGs.png


.

olbeup
06-03-2012, 08:42:25
Tienes toda la santa razón,

Antes de presentar la respuesta, la realizo en el procesador de texto y cuando me di cuenta ya era demasiado tarde.

Perdón, Sorry, Désolé, Traurig

Un saludo :o

Casimiro Notevi
06-03-2012, 10:02:25
Tampoco es necesario que te hagas el harakiri (http://es.wikipedia.org/wiki/Harakiri) :)