SoloCodigo

Programación General => Delphi => Mensaje iniciado por: LAGUNA5 en Martes 10 de Febrero de 2004, 14:01

Título: Suma Total De Un Campo En Un Dbgrid
Publicado por: LAGUNA5 en Martes 10 de Febrero de 2004, 14:01
Hola amigos necesitaria saber que codigo poner en un campo calculado o un tbdedit para que haga la suma total de un campo (precio) en un dbgrid. Muchas gracias.
Título: Re: Suma Total De Un Campo En Un Dbgrid
Publicado por: ushedipe en Miércoles 21 de Noviembre de 2007, 16:39
:comp: la forma más ágil de realizar esa sumatoria es recorrer la consulta en el momento que se hace el draw del DBGrid; para ello se verifica que la consulta no esté vacía:
Código: Text
  1. if not Query.isempty then
  2.  
.
se inicializa en cero la variable que contendrá la sumatoria:
Código: Text
  1. suma:=0;
  2.  
.
luego se vá al principio de la consulta:
Código: Text
  1. Query.first;
  2.  
.
y empieza a recorrer la consulta hasta que llegue al final:
Código: Text
  1. while not Query.EOF do
  2.  
.
una vez dentro del ciclo se va acumulando en una variable el valor requerido:
Código: Text
  1. suma:=suma+Query.FieldbyName('valor').Value;
  2.  
.
se avanza al próximo registro:
Código: Text
  1. Query.next;
  2.  
y... listo con el valor almacenado en suma tienes para procesarlo o mostralo según la necesidad.
Suerte!!! :ph34r:
Título: Re: Suma Total De Un Campo En Un Dbgrid
Publicado por: Eternal Idol en Miércoles 21 de Noviembre de 2007, 16:40
Por favor antes de responder a un hilo mira de cuando es:

Escrito el Febrero 10, 2004 03:01 pm
Título: Re: Suma Total De Un Campo En Un Dbgrid
Publicado por: ushedipe en Lunes 26 de Noviembre de 2007, 22:17
:comp: pese a que la fecha de formulación de la pregunta data desde hace ya 3 años y medio, me pareció prudente dar alguna respuesta, no se sabe si a alguien mas le puede servir!  :ph34r:
Título: Re: Suma Total De Un Campo En Un Dbgrid
Publicado por: floresmikael en Sábado 8 de Diciembre de 2007, 03:46
Hola
Estaba revisando tu información. Gracias por el dato, es excelente.