Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Sumar Columnas de Un DBGRIB (https://www.clubdelphi.com/foros/showthread.php?t=34084)

cancerbero 26-07-2006 16:29:46

Sumar Columnas de Un DBGRIB
 
Bueno Amigos del Club os vuelvo a molestar con una pregunta

tengo un gridb el cual mantiene el detalle de un pedido pero necesito sumar el campo de precio total del producto, la cual se encuentra en una columna del dbgrib, quisiera q me guiaran de como puedo sumar las columnas del grid y como puedo hacer para que cuando el usuario desee quitar un producto de la lista se vuelva a calcular el precio a pagar.

muchas gracias de antemano


cancerbero

vtdeleon 26-07-2006 16:36:03

Saludos

Chequea a ver si este hilo, puede ayudarte (campos calculados)

cancerbero 26-07-2006 20:47:47

sumar columnas
 
bueno lei el hilo pero te cuento q no entendi mucho, solo necesito saber como hacer para sumar una columna del dbgrib en la cual tengo el costo del producto y se hace una lista la cual deseo sumar, y veo q despues restar no sera muy dificil para mi, ya cree un dato calculado en la consulta que estoy utilizando aqui les copio el codigo.

with dm.qrydetalle do begin
if active then Close; //Agregué aquí
sql.Clear; // y aquí
SQL.Add('SELECT * FROM detalle');
SQL.Add('WHERE detalle.idproforma ='+dbedit1.Text);
Open;
if not IsEmpty then begin
dbgrid4.SetFocus;

end else begin
application.MessageBox('NO SE ENCUENTRAN PRODUCTOS EN EL DETALLE', 'MENSAJE DE INFORMACION', MB_OK);

end; //if cliente is not empty (aquí te sobraba un "end"
end;

esta la relaciono a un DBGRIB en la cual la columna detalle.preciototal es la q debo sumar, para luego colocar el resultado en un edit, como te dije ya cree en la consulta un campo calculado de nombre SUMATOTALDET pero nose donde realizar la operacion para poder sumar la columna q me intereza del dbgrib.

cancerbero

vtdeleon 26-07-2006 21:45:43

Saludos

Cita:

pero nose donde realizar la operacion para poder sumar la columna q me intereza del dbgrib.
En el evento OnCalcField del Query.

Aunque lo mejor es que hicieras una sentencia con los campos sumados.
Código SQL [-]
Select campo1, campo2, campo1+campo2 as Campototal
from tabla

cancerbero 27-07-2006 15:09:12

Solo debo sumar un campo
 
Saludos vtdeleon

Bueno si intente eso de sumar el campo directamente pero he aqui el dilema como hago para sumar solo un campo de la tabla, el cual guarda la suma total del detalle de compra.

bueno ese es el problema q tengo y luego este dato bueno lo tengo q presentar en un componente Edit pero eso si necesito sumar el dato y a la vez q el usuario quite un producto del detalle este resultado se vuelva a calcular, gracias de antemano por la ayuda

AGAG4 27-07-2006 16:25:03

Checa Esto....
 
Bajate los RxLib, alli viene un componente que se llama MemoryData, este funciona igual que una Table de la paleta BDE, pero con la diferencia que es en memoría, en primer lugar tienes que declarar la estructura del rxMemoryData igual que tu detalle, y cada vez de que vayas INSERTANDO (OnBeforeInsert) , MODIFICANDO(OnBeforePost) Y BORRANDO
(OnAfterDelete) que espero estes usando un DadaSet ó ClientDataset, llamas un procedimiento donde barres dicho rxMemoryData para sacar el Total de algún campo y mostrarlo ya sea añadiendo el TOTAL en un campo Calculado ó pasandolo directamente en algun Edit.

Espero me haya explicado, cualquier duda estamos en contacto....:)

cancerbero 27-07-2006 22:10:37

me olvidaba
 
Bueno escuche algo de las Librerias Rx pero estoy trabajando con una base de datos MSACCESS la cual la conecto por medio de los componentes ado, es el problema q no se si las LIbRx trabajan con ADO igual q con los componentes DBE.

:confused: gracias de antemano

PepeLolo 01-08-2006 13:33:27

Cita:

Empezado por cancerbero
Saludos vtdeleon

Bueno si intente eso de sumar el campo directamente pero he aqui el dilema como hago para sumar solo un campo de la tabla, el cual guarda la suma total del detalle de compra.

bueno ese es el problema q tengo y luego este dato bueno lo tengo q presentar en un componente Edit pero eso si necesito sumar el dato y a la vez q el usuario quite un producto del detalle este resultado se vuelva a calcular, gracias de antemano por la ayuda

Tienes dos problemas y por tanto tienes que aplicar una solución para cada caso:
a) Campo calculado para el DBGrid
b) Suma total (Suma de los campos calculados)

Soluciones:
S1) Lo que te han indicado para el campo calculado
S2) Una nueva consulta que te devuelva el acumulado de todos los campos calculados. Como no se pueden usar campos calculados en una Query, lo que tienes que hacer es lanzar una SQL que te devuelva el total
En el evento AfterScroll de tu tabla algo parecido a esto
Código Delphi [-]
  With QTotal do
    begin
       QTotal.sql.Add('SELECT SUM(Precio * Cantidad) Total FROM VentasClientes');
       QTotal.Sql.Add(' WHERE Cliente = '  + Quoted(CodCliente.Txt) );
       QTotal.Open;
       miTEdit.text := FormatFloat('#,###,##0.00', QTotal.Fields[0].AsFloat);
       QTotal.Close;
    end;

Cada vez que ocurra una actualización en el detalle, llamas a este evento y te refrescará el total.

un saludo.


La franja horaria es GMT +2. Ahora son las 10:38:13.

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