Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-08-2011
lisc_dla lisc_dla is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 98
Poder: 13
lisc_dla Va por buen camino
Suma de campos de un dbgrid

estoy trabajando con un mysql para realizar la conexion utilizo ADOConnection-->ADOTable-->DataSource-->DBgrid.

por ejemplo realizo una búsqueda y esta se visualiza en el dbgrid, pero necesito hacer la suma del campo total. es decir tengo el campo total pero solo quiero realizar la suma de los que se muestran en el dbgrid. es decir poner el resultado en un text.
Responder Con Cita
  #2  
Antiguo 01-08-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
mmmmm
se me ocurre 2 cosas
1.- que podrias recorrer todo el dbgrid y mostrar la suma
2.- crear un query que te haga la suma
si es como dices que en el grid muestras los resultados del query
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 01-08-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.474
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por oscarac Ver Mensaje
mmmmm
se me ocurre 2 cosas
1.- que podrias recorrer todo el dbgrid y mostrar la suma
2.- crear un query que te haga la suma
si es como dices que en el grid muestras los resultados del query
Cierto, aunque también podría recorrer el ADOTable que ya tiene los registros que se visualizan y sacar la suma desde ahí.

Saludos
Responder Con Cita
  #4  
Antiguo 01-08-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola lisc_dla.

Creo que es más eficiénte hacerlo con una consulta SQL, pero si te decidis por hacerlo desde el DBGrid podrías hacer algo así :
Código Delphi [-]
function SumarTotales(Grid: TDBGrid; const AFieldName: string): Currency;
var
  BM: TBookMarkStr;
begin
  Result:= 0;
  with Grid.DataSource.DataSet do
  begin
    BM:= Bookmark;
    DisableControls;
    while not Eof do
    begin
      Result:= Result + FieldByName(AFieldName).AsCurrency;
      Next;
    end;
    BookMark:= BM;
    EnableControls;
  end;
end;

Ejemplo de llamada:
Código Delphi [-]
   Edit.Text:= FloatToStr(SumarTotales(DBGrid1,'Total'));

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 01-08-2011
lisc_dla lisc_dla is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 98
Poder: 13
lisc_dla Va por buen camino
Solo un detalle la aplicación que estoy creando es sobre venta de artículos, hago la consulta de las ventas del día y estas se muestran en el dbgrid, pero necesito que en el text solo me muestre la suma de las ventas del día. Estuvo probando el ejemplo pero no se donde colocar la función y me muestra un error

Última edición por lisc_dla fecha: 01-08-2011 a las 22:54:39.
Responder Con Cita
  #6  
Antiguo 01-08-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Si se realiza una busqueda con un adotable me imagino que lo que se hara sera un filtro ?.
Si se hace un filtro se puede usar algo como esto.
Código Delphi [-]
var
Total: Integer;
begin
// siempre que no este abierta la tabla
AdoTable1.Open;
Total := 0;
adotable1.disablecontrols;
try
// este filtro se supone que ya se hizo
adotable1.filter := 'TuCampo = '+ edit1.text;
adotable1.filtered := true;
adotable1.first;
while not adotable1.EOF do
 begin
 Total := Total + adotable1['Total'];
 adotable1.next;
 end;
adotable1.filter := '';
adotable1.filtered := false;
edit1.text := Inttostr(Total);
finally
adotable1.enablecontrols;
end;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 01-08-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por lisc_dla Ver Mensaje
Estuvo probando el ejemplo pero no se donde colocar la función y me muestra un error
Podés colocarla inmediatamente despues de la declaración
Código Delphi [-]
interface

function SumarTotales(Grid: TDBGrid; const AFieldName: string): Currency;
....
y podes utilizarla en esa unidad sin problemas. También en otra unidad y agregarla en la declaración uses de la unit en que desees usarla. No mencionaste el error que te genera pero supongo que será por el alcance de la función.

Una ventaja que tiene la función que te puse, es que podés utilizarla para cualquier TDBGrid y para cualquier campo de la tabla asociada al mismo (de tipo numérico lógicamente).

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 01-08-2011 a las 23:36:05.
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
Suma por campos aanil SQL 45 11-02-2010 02:00:50
suma de campos calculados pabloparra Conexión con bases de datos 0 12-03-2008 22:14:12
Suma de dos Campos en un BDGrid esimon SQL 6 14-09-2005 20:50:12
Suma de campos b3nshi Conexión con bases de datos 1 13-04-2005 03:13:40
suma de campos novato cesarjbf SQL 4 01-09-2004 10:12:33


La franja horaria es GMT +2. Ahora son las 07:29:48.


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