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 20-10-2008
Pollo2004 Pollo2004 is offline
Miembro
 
Registrado: sep 2006
Posts: 64
Poder: 18
Pollo2004 Va por buen camino
Thumbs down Suma de una columna de un DBGRID

Hola, nuevamente quisiera q alguien me corrija esto, xq me esta volviendo loco y no logro q haga lo q yo pretendo.
Quiero q al ingresar un producto y se calcule el precio de ese item, lo vaya a acumulando en y sumando en otro campo calculado de mi tabla para luego sacar el total a pagar.

1º codigo es este:

tengo un campo calculado para sacar el precio a pagar por item, entonces lo q hago es acumularlo y lo muestro (cre q el error esta q la acumulacion la hago en el procedimiento oncaculated de la tabla, en el mismo q calculo el precio del item entonces no me lo acumula.)
el codigo seria asi:
var
acum: currency;

procedure TForm4.Table4CalcFields(DataSet: TDataSet);
begin
table4Total.ascurrency:= table4Cantidad.AsInteger * Table4Precio.asCurrency;
acum:= acum + table4Total.ascurrency;
end;

2º creo q esta debe ser la correcta pero no se como hacerlo.
ah medida q se ingreso una fila acumularlo a una varible y mostrar eso.
No se como moverme fila por fila y ingresar al dato ese.
Mi idea es asi lo escribo es pseudocodigo:

cuando pasa a la siguiente fila
acumulador:= dbgrid1.columns[n] + acumulador;

Gracias!!!
Responder Con Cita
  #2  
Antiguo 20-10-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No estoy muy seguro, lo hice hace algun tiempo y no me acuerdo bien, pero creo que el tutorial de facturación hace lo que necesitas, revisalo, tal vez te sirva.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 20-10-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Hola, colocar esto en los eventos AfterDelete y AfterPost de tu dataset, debes adaptarlo a tu manera:

Código Delphi [-]
procedure TFReposicion.cdDetallesAfterDelete(DataSet: TDataSet);
Var
Suma: Double;
Campo: TField;
Begin
     Suma:=0;
     Try
        With cdDetalles Do Begin
             DisableControls;
             Campo := FieldByName('valor');
             First;
             While Not EoF Do Begin
                   Suma := Suma + Campo.AsFloat;
                   Next;
             End;
        End;
     Finally
        cdDetalles.EnableControls;
     End;
     dsCaja.DataSet.FieldByName('total').AsFloat := Suma;
end;

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #4  
Antiguo 21-10-2008
Pollo2004 Pollo2004 is offline
Miembro
 
Registrado: sep 2006
Posts: 64
Poder: 18
Pollo2004 Va por buen camino
hola enecumene, a ver si entiendo ...
campo: tfield; --->esto es la declarion de un acum de tipo tfield?
Campo := FieldByName('valor');---> le asigno a campo el valor q tengo en ese campo..(mi caso total?), y porq pusiste entre literales 'valor'
y donde pusiste cdDetalles y cdCaja te estas refiriendo al nombre de las tablas?
Perdon por todas las preguntas, pero prefiero preguntar y sacarme las dudas antes de decir q si como los locos!
Responder Con Cita
  #5  
Antiguo 21-10-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Hola Pollo2004, TField es una clase tipo campo, Campo := FieldByName('valor'); donde "Valor" es el campo de la columna que vas a sumar y restar, cdDetalles es un dataset (Puede ser TTable o TQuery) y dsCaja es un datasource donde muestro el total (Pero eso es en mi caso, en tu caso puede ser un TTable o TQuery en el mismo Form), recordad colocarlos en los eventos mencionados anteriormente en el dataset asociado al DBGrid.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #6  
Antiguo 22-10-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Hola, ¿te resultó? ¿Conseguiste otro código?

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
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
Hacer que una columna de un DbGrid aparezca distinta según valor Aprendiendo OOP 11 30-11-2018 14:47:20
suma de una columna del Report megaredoxk Impresión 3 04-12-2007 14:05:11
suma de una columna en mysql coletaun MySQL 5 09-01-2006 14:29:38
Suma de elementos de una columna Mathom SQL 4 15-12-2005 18:49:24
Suma de Datos de Columna en paradox gersongelabert Tablas planas 2 14-08-2005 06:20:37


La franja horaria es GMT +2. Ahora son las 06:56:23.


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