Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Varios
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Coloboración Paypal con ClubDelphi

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 09/06/2016
Belen12 Belen12 is offline
Miembro
NULL
 
Join Date: May 2016
Posts: 29
Poder: 0
Belen12 Va por buen camino
¿Cómo mostrar la suma de un dbgrid en un tedit?

Hola buenas tardes. tengo un pequeño programa que realizo ventas el cual esta asociado a una base de datos en el formulario de venta tengo un dbgrid asociado a un datasource que el mismo se asocia a la tabla detalle venta. En el dbgrid muesto los siguientes campos (productos,cantidad,precio,subtotal)
bien atravez de un boton buscar ingreso al formulario de productos y por medio de un tedit seleciono la cantidad hasta este punto todo me funciona bien.

El tema es el siguiente cuando necesito guardar el total que este se almacena en una tabla llamada venta de la base de datos (que es la suma de los subtotales que estan cargados en el dbgrid) no me realiza dicha operacion y a la vez necesito que este resultado se muestre en un tedit(eTotal) en el formulario de ventas y se sume o se reste a medida que agregue o quite productos en el dbgrid... Bien espero haber sido clara les dejo el codigo y las tabla de la base de datos

Código SQL [-]
tabla venta
idventa
total

Código SQL [-]
detalle_venta
iddetalle
idproducto
idventa
subtotal
precio
cantidad

Aqui el codigo del boton selecionar que se encuentra en el formulario de productos

Código Delphi [-]
  
 fmodulo.tDetalle.Insert;
 fmodulo.tDetalle['idventa']:= fmodulo.tVentas['idventa'];
 fmodulo.tDetalle['idproducto'] := fmodulo.qProductos['idproducto'] ;
 fmodulo.tDetalle['cantidad'] := StrToInt(self.eCantidad.Text);
 fmodulo.tDetalle['precio'] :=  fmodulo.qProductos['precio_unit']  ;
 fmodulo.tDetalle['subtotal']  := fmodulo.tDetalle['precio']*StrToInt(eCantidad.Text)  ;
  fmodulo.tDetalle.Post;
 fmodulo.tVentas.Edit;
 fmodulo.tVentas['total']:= fmodulo.tVentas['total'] +   fmodulo.tDetalle['subtotal'];
 fmodulo.tVentas.Post;


desde ya muchas gracias espero que puedan ayudarme
Reply With Quote
  #2  
Old 09/06/2016
ecfisa's Avatar
ecfisa ecfisa is offline
Moderador
 
Join Date: Dec 2005
Location: Tres Arroyos, Argentina
Posts: 10,508
Poder: 38
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 Belen12.

No logro que me que me quede claro el planteo de tu consulta, pero basándome en el título de tu mensaje creo entender que deseas mostrar la sumatoria de los datos ingresados en una columna de una tabla.

Como desconozco el gestor de BD y componente con que te estas conectando, debo partir del DBGrid; entonces para obtener la sumatoria del campo SUBTOTAL podrías hacer:
Código Delphi [-]
function GetTotal(DS: TDataSet): Currency;
var
  BM: Pointer;
begin
  Result := 0;
  BM := DS.GetBookmark;
  DS.DisableControls;
  try
    DS.First;
    while not DS.Eof do
    begin
      Result := Result + DS.FieldByName('SUBTOTAL').AsCurrency;
      DS.Next;
    end;
  finally
    DS.EnableControls;
    DS.GotoBookmark(BM);
    DS.FreeBookmark(BM);
  end;
end;
Ejemplo de uso:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  eTotal.Text := FormatFloat('0.00', GetTotal(DBGrid1.DataSource.DataSet));
  ...
Contando con mas información tal vez exista otra opción o forma mas eficiente de realizarlo, cualquier cosa nos comentas.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Reply With Quote
  #3  
Old 10/06/2016
Belen12 Belen12 is offline
Miembro
NULL
 
Join Date: May 2016
Posts: 29
Poder: 0
Belen12 Va por buen camino
Gracias Por responder

Quote:
Originally Posted by ecfisa View Post
Hola Belen12.

No logro que me que me quede claro el planteo de tu consulta, pero basándome en el título de tu mensaje creo entender que deseas mostrar la sumatoria de los datos ingresados en una columna de una tabla.

Como desconozco el gestor de BD y componente con que te estas conectando, debo partir del DBGrid; entonces para obtener la sumatoria del campo SUBTOTAL podrías hacer:
Código Delphi [-]
function GetTotal(DS: TDataSet): Currency;
var
  BM: Pointer;
begin
  Result := 0;
  BM := DS.GetBookmark;
  DS.DisableControls;
  try
    DS.First;
    while not DS.Eof do
    begin
      Result := Result + DS.FieldByName('SUBTOTAL').AsCurrency;
      DS.Next;
    end;
  finally
    DS.EnableControls;
    DS.GotoBookmark(BM);
    DS.FreeBookmark(BM);
  end;
end;
Ejemplo de uso:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  eTotal.Text := FormatFloat('0.00', GetTotal(DBGrid1.DataSource.DataSet));
  ...
Contando con mas información tal vez exista otra opción o forma mas eficiente de realizarlo, cualquier cosa nos comentas.

Saludos
Disculpa si no fui tan clara me exprese lo mejor que pude haber. Utilizo los componentes zeos para conectarme a la base de datos la cual la cree usando mysql. Si basicamente eso es lo que quiero la idea es realizarlo desde el boton "selecionar" que esta en el formulario productos y a medida que valla cargando productos estos se vallan sumando y mostrando en el Tedit en el formulario venta. E probado tu codigo y no logro hacer que funcione
Reply With Quote
  #4  
Old 10/06/2016
ecfisa's Avatar
ecfisa ecfisa is offline
Moderador
 
Join Date: Dec 2005
Location: Tres Arroyos, Argentina
Posts: 10,508
Poder: 38
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 Belen12.
Quote:
Originally Posted by Belen12 View Post
...
E probado tu codigo y no logro hacer que funcione
El código me funciona perfectamente, como te muestro en esta imágen:


Y en tu caso que sucede, ¿ te dá un error ? ¿ no muestra correctamente el resultado ? ¿ no lo muestra en absoluto ? ¿ ... ?

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Reply With Quote
  #5  
Old 11/06/2016
rastafarey's Avatar
rastafarey rastafarey is offline
Miembro
 
Join Date: Nov 2003
Posts: 927
Poder: 23
rastafarey Va por buen camino
No se si el componente tenga la opcion de crear un campo de suma o calculado como el tclientdataset. Si no tienes eso tambien tienes el txquery o simplemente recorrerás el dataset y vas sumando o recorrer el buffer si lo posee para que afectes la parte visual. Aunque de verdad ahorita me cuesta ayudar con dbaware ya que ahorita solo programa modelo vista controlador. Espero eso te pueda ayudar.

Enviado desde mi SM-G900H mediante Tapatalk
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Reply With Quote
  #6  
Old 13/06/2016
Belen12 Belen12 is offline
Miembro
NULL
 
Join Date: May 2016
Posts: 29
Poder: 0
Belen12 Va por buen camino
Gracias

Hola disculpa la tardanza al contestar. Ya solucione el prolema tu codigo funciona perfecto fui yo la que adapte mal el codigo a mi programa muchas gracias
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
TDBAdvGrid mostrar suma columnas Jose Manuel Varios 2 14/09/2014 19:25
¿Cómo pasar varios datos de un TEdit a un DbGrid? day_eli Conexión con bases de datos 3 29/05/2007 22:22
como hacer que una columna del dbgrid contenga un valor de un TEdit en cada celda Shidalis OOP 2 02/08/2005 12:05
mostrar suma alachaise PHP 1 14/04/2005 15:57
mostrar la suma de un campo ebeltete SQL 2 04/09/2004 01:43


All times are GMT +2. The time now is 08:51.


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