Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-08-2008
Memo6015 Memo6015 is offline
Miembro
 
Registrado: ago 2008
Posts: 35
Poder: 0
Memo6015 Va por buen camino
sumar columna

hola amigos

mi problema es el siguiente, tengo una dbgrid con una columna llamada promedios, necesito sumar todas sus cantidades pero no se como hacerlo, estoy usando una dbgrid por que esta recibe la informacion de una consulta

la columna promedios tiene

promedios
2.5
2.4
7.8
4.5
7.8

necesito sumar todas esas cantidades como le hago en la dbgrid?
algun codigo?
estuve viendo algunas cosillas pero a lo mas que llegue es a que me devolviera solo el primer valor con

DBGrid.Columns[1].Field.text

mi idea es sumarlo en la dbgrid por que despues necesito trabajar con esos datos, que alguien me diga como lo hago
no que me digan lo puedes sumar en la consulta, se puede sumar en la dbgrid???

bueno, espero sus respuestas.

Gracias

Última edición por Memo6015 fecha: 27-08-2008 a las 18:27:07.
Responder Con Cita
  #2  
Antiguo 27-08-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, puedes sumar la columna recorriendo tu DataSet (query) que esta enlazado a tu DBGrid o haciendo otra consulta con SUM, revisa este hilo http://www.clubdelphi.com/foros/showthread.php?t=58376

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.
Responder Con Cita
  #3  
Antiguo 27-08-2008
Memo6015 Memo6015 is offline
Miembro
 
Registrado: ago 2008
Posts: 35
Poder: 0
Memo6015 Va por buen camino
hola caro, gracias por tu respuesta

pero ademas de sumar esos datos necesito extraerlos como hago eso?
Responder Con Cita
  #4  
Antiguo 27-08-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Extraer los datos? Explicate mejor...


Saludos...
Responder Con Cita
  #5  
Antiguo 27-08-2008
Memo6015 Memo6015 is offline
Miembro
 
Registrado: ago 2008
Posts: 35
Poder: 0
Memo6015 Va por buen camino
claro es que ademas de la suma, me gustaria poder acceder a todos los promedios por ejemplo, tengo la columna promedio en la dbgrid

promedio
6.4
5.4
8.7
87.5

y poder sacar de la dbgrid por ejemplo el numero 8,7 y sumarlo con 5,4
o poder sumar 87,5 con 6,4

poder sacar uno o mas numeros de la dbgrid, se que puedo usar otro objeto pero realmente me gusta como se ve en la dbgrid, como puedo hacer eso??
Responder Con Cita
  #6  
Antiguo 27-08-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

El DBGrid es solo un componente que sirve para representar los datos que devuelve un TDataSet, por lo que para tener acceso a los datos puedes usar los métodos de este último:

Código Delphi [-]
ShowMessage(DBGrid1.DataSource.DateSet.FieldByName('Promedio').AsString);

Si quieres recorrerlos uno a uno, puedes usar un ciclo while not DataSet.Eof do:

Código Delphi [-]
with DBGrid1.DataSource.DateSet do
begin
  First;
  while not Eof do
  begin
    ShowMessage(FieldByName('Promedio').AsString);
    Next
  end
end

Espero que esto sea lo que andas buscando...


Saludos...
Responder Con Cita
  #7  
Antiguo 27-08-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 de nuevo Memo, tu DBGrid esta asociado a un DataSet, entonces tu debes obtener de tu DataSet y no de tu DBGrid, si quieres sumar la columna promedio entonces recorres el DataSet que tienes, como en el hilo que te dije que revisaras.

Código Delphi [-]
var  Total : Currency;
Marca : TBookMarkStr;
begin
 Total := 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
   Total := Total + MiTabla.FieldbyName('promedios').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(Total));

Has la prueba de hacer esto en el OnClick de tu DbGrid.

Código Delphi [-]
 showmessage(MiTabla.FieldbyName('promedios').ASString);

Veras que te dara lo que tienes en el campo promedios de la fila seleccionada.

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: 27-08-2008 a las 20:30:58.
Responder Con Cita
  #8  
Antiguo 27-08-2008
Memo6015 Memo6015 is offline
Miembro
 
Registrado: ago 2008
Posts: 35
Poder: 0
Memo6015 Va por buen camino
que grande maestros muchas gracias, creo que con esas respuestas me queda solo probar

muchas gracias era para un trabajo en la universidad

gracias graciassssss
Responder Con Cita
  #9  
Antiguo 09-01-2009
ctrl_attack ctrl_attack is offline
Miembro
 
Registrado: feb 2007
Posts: 49
Poder: 0
ctrl_attack Va por buen camino
Gracias a mi tambien me ah servido
Responder Con Cita
  #10  
Antiguo 26-01-2011
ctrl_attack ctrl_attack is offline
Miembro
 
Registrado: feb 2007
Posts: 49
Poder: 0
ctrl_attack Va por buen camino
por alguna extraña razon ahora no me esta funcionando, hace tiempo tome esta solucion y me funciono a la perfeccion en delphi7 pero ahora que estoy en delphi2010 nomas no me funciona, me salio este error

[DCC Error] Unit1.pas(340): E2010 Incompatible types: 'AnsiString' and 'TBytes'

presisamente en " Marca := adoquery1.Bookmark;" lo comprobe pues lo borre y deje el codigo sin eso, y funciono, claro que me dejo en el ultimo registro.

este es el codigo, sera que en adoquiery no funciona? lo cual dudo, pues en el 2009 lo hice, con el dephi7, como prueba esta mi comentario de arriba, jeje.

Código Delphi [-]
  var
  Total : Currency;
 Marca : TBookMarkStr;
begin
 Total := 0;
 Marca := adoquery1.Bookmark;
 adoquery1.DisableControls;

           adoquery1.First;
 While Not adoquery1.Eof do
  begin
   Total := Total + adoquery1.FieldbyName('cuenta').ASCurrency;
   adoquery1.Next;
  end;

 adoquery1.EnableControls;
 adoquery1.Bookmark := Marca;
label3.Caption:=(CurrToStr(Total ));

Última edición por ctrl_attack fecha: 26-01-2011 a las 07:26:20.
Responder Con Cita
  #11  
Antiguo 26-01-2011
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
Prueba así:
Código Delphi [-]
  var   Total : Currency;  Marca : TBookMark; begin
 Total := 0;
 Marca := adoquery1.GetBookmark();//Almacenamos la posición del registro actual en nuestra marca
 adoquery1.DisableControls;//Deshabilitamos los controles enlazados a nuestro  DataSet
            adoquery1.First;  While Not adoquery1.Eof do
   begin 
   Total := Total + adoquery1.FieldbyName('cuenta').ASCurrency;
   adoquery1.Next;
  end;

 adoquery1.EnableControls;//Habilitamos nuevamente los controles
 adoquery1.GotoBookmark(Marca);//Restauramos a la posición del registro de nuestra marca
 adoquery1.FreeBookMark(Marca);
label3.Caption:=(CurrToStr(Total ));

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.

Última edición por marcoszorrilla fecha: 26-01-2011 a las 07:29:02.
Responder Con Cita
  #12  
Antiguo 27-01-2011
ctrl_attack ctrl_attack is offline
Miembro
 
Registrado: feb 2007
Posts: 49
Poder: 0
ctrl_attack Va por buen camino
Muchas gracias amigo, me funciono a la perfeccion, gracias.
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 una columna en un DBGrid HombreGordo Conexión con bases de datos 6 12-02-2014 21:38:24
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 12:54:25.


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