Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-07-2008
Avatar de HombreGordo
HombreGordo HombreGordo is offline
Miembro
 
Registrado: jul 2008
Posts: 41
Poder: 0
HombreGordo Va por buen camino
Question Sumar una columna en un DBGrid

Buenas. Quisiera por favor que me aconsejaran y me ayudaran un poquito a sumar columnas en un DBGrid, por ejemplo: Tengo una columna llamada "GANANCIAS" y quisiera sumar el valor de todas las filas correspondientes a esa columna. Un poquito de código y algo de explicación estilo tutorial no vendría mal.

Estoy usando BDE, con una tabla Paradox 7.

NOTA: No tengo experiencia previa con bases de datos, y estoy comenzando con programación, y elegí Delphi 7 como inicio. También hice una extensiva búsqueda en Google y los temas de este forum acerca de esto, pero sinceramente no entendí mucho, por eso hice este hilo.

Gracias de antemano.
__________________
Aprendiz de Embarcadero RAD Studio...

Última edición por HombreGordo fecha: 18-07-2008 a las 09:25:20.
Responder Con Cita
  #2  
Antiguo 18-07-2008
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Depende de como estés mostrando esas filas, desde una tabla o desde una consulta.

Si es una tabla, tendrías que recorrer los registros sumando y acumulando en una variable.
Código Delphi [-]
var
Totalesouble;
begin
Totales:=0;

MiTabla.First;
While Not MiTabla.Eof Do
begin
Totales:=Totales + MiTablaMiCampoASumar.Value);
MiTabla.Next;
end:

end;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 18-07-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Otra opción puede ser lanzando una consulta SQL que te haga la suma (TQUERY).
Código Delphi [-]
  Select SUM(campo) as SUMA from Tabla

Esta consulta deberías lanzarla de forma independiente al Grid y cada vez que se cambian los datos lanzar también esta consulta.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 18-07-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola HombreGordo, si lo haces como te indica marcoszorrilla, también deberías tomar encuenta los procedimientos EnableControl, DisableControl, para no ver el movimiento por los registros de tu DBGrid y los demas que esten enlazados a tu DataSet mientras se ejecuta tu While. Otra cosita, como recorres hasta el ultimo, el puntero del registro estara en el ultimo, para ello puedes utilizar un BookMark para tener una marca que te guardara la posicion del registro actual y luego de recorrer regresar a la posición de dicho registro.

Código Delphi [-]
var
  TotalGanancias : Currency;
  Marca : TBookMarkStr;
begin
 TotalGanancias := 0;

 Marca := MiTabla.Bookmark;//Almacenamos la posición del registro actual en nuestra marca
 MiTabla.DisableControls;//Deshabilitamos los controles enlazados a nuestro  DataSet

 MiTabla.First;
 While Not MiTabla.Eof do
  begin
   TotalGanancias := TotalGanancias + MiTabla.FieldbyName('ganancias').ASCurrency;
   MiTabla.Next;
  end;

 MiTabla.EnableControls;//Habilitamos nuevamente los controles 
 MiTabla.Bookmark := Marca;//Restauramos a la posición del registro de nuestra marca
 Showmessage(CurrToStr(TotalGanancias));

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.

Última edición por Caro fecha: 18-07-2008 a las 13:08:05.
Responder Con Cita
  #5  
Antiguo 19-07-2008
Avatar de HombreGordo
HombreGordo HombreGordo is offline
Miembro
 
Registrado: jul 2008
Posts: 41
Poder: 0
HombreGordo Va por buen camino
Muchas gracias chicos, la respuesta de Caro funcionó a la perfección. De verdad se los agradezco, su tiempo y atención. Una pequeña cosa a acotar para cuando los demás lean este hilo: Para usar la solución de marcoszorrilla (y perfeccionada por [Caro]), la columna debe ser de tipo "$ (Money)" o si no el método no funcionará. Ya sé que dije algo evidente, pero es un detallito que se os puede escapar.

Gracias de nuevo. Ayudaré a la comunidad en lo que pueda.
__________________
Aprendiz de Embarcadero RAD Studio...
Responder Con Cita
  #6  
Antiguo 18-12-2008
petete2008 petete2008 is offline
Miembro
 
Registrado: oct 2008
Posts: 109
Poder: 16
petete2008 Va por buen camino
Yo quiero algo similar.
Lo que busco es calcular las celdas de una columna en base a las otras.
Responder Con Cita
  #7  
Antiguo 12-02-2014
Avatar de macedo_mx
macedo_mx macedo_mx is offline
Registrado
 
Registrado: ene 2008
Ubicación: Mexico
Posts: 5
Poder: 0
macedo_mx Va por buen camino
muy bien me hecho mas sabio el dia de hoy
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
sumar la columna de un dbgrid pharaonhx Varios 3 12-06-2008 15:27:27
sumar una columna DBGrid cancerbero Conexión con bases de datos 5 11-08-2006 18:49:37
Sumar columna de un dbgrid Choclito Varios 0 24-07-2006 07:47:08
Sumar una columna en QReport rjsitruiz Impresión 2 28-06-2004 22:38:15
sumar columna de un dbgrid jpcancino Conexión con bases de datos 4 11-03-2004 16:33:37


La franja horaria es GMT +2. Ahora son las 17:12:14.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi