Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-10-2016
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 136
Poder: 18
marilinspi Va por buen camino
SMDBGrid recorrerla y sumar los chequed=true

hola, tengo un SMDBGrid con una columna en la que puedo Chequear True o false, quiero que a medida que voy Chequeando recorra la grilla y sume los monto de los registros que Chequed=True.... probé en varios eventos de la grilla, pero con ninguno lo logro,
Código Delphi [-]
  Monto:=0;
    RxmComprobantes.First;
    while not RxmComprobantes.Eof do
    begin
      if RxmComprobantesGenerar.Value=True then
        Monto:=Monto+RxmComprobantesNeto.AsCurrency;
      RxmComprobantes.Next;
    end;

si alguien sabe como hacerlo...desde ya muchas gracias.
Responder Con Cita
  #2  
Antiguo 07-10-2016
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 marilinspi.

¿ Con que base de datos y mediante que componentes, obtenes los datos mostrados en el SMDBGrid ?

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 07-10-2016
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 136
Poder: 18
marilinspi Va por buen camino
hola, la base de datos es Firebird y obtengo los datos mediante un SqlDataSet, DataSetProvider y CLienteDataSet
Gracias
Responder Con Cita
  #4  
Antiguo 07-10-2016
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.

Como te conectas mediante un TClientDataSet y tomando en cuenta que generalmente por convención en Firebird se se usan los valores 0 y 1 (SMALLINT) como falso y verdradero respectivamente, se me ocurre que podrías lograr lo que buscas mediante un campo agregado (siempre que así tengas definida la columna).

Supongamos que los campos a tomar en cuenta se llaman SUBTOTAL y BOOLEAN, siendo SUBTOTAL el valor a sumar y BOOLEAN que puede tomar los valores 0 y 1 (false/true).

Una opción sería fijar en el TAggregateField la cadena de la propiedad Expresion en : "SUM(SUBTOTAL * BOOLEAN)" eso hará que sólo se sumen los valores de las filas cuya columna BOOLEAN sea igual a 1. Y luego ya podes mostrarlo mediante un TDBEdit por ejemplo.

Para generar un campo calculado en diseño o ejecución revisa este artículo: ClientDataSet Aggregates and GroupState

Te muestro con un ejemplo a que me refiero:



(Usé un TDBGrid y andaba algo haragán así que te debo el detalle del checkbox )

Saludos
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 08-10-2016 a las 01:36:12. Razón: corregir etiqueta
Responder Con Cita
  #5  
Antiguo 17-10-2016
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 136
Poder: 18
marilinspi Va por buen camino
hola, gracias por tu respuesta.... intentado hacer lo que me sugerís me surge que no puedo porque si bien yo me conecto a la base de datos como te comente, los campos que quiero sumar los tengo cargados en un RXMemoryData y este no tiene la opción Aggregate... no hay un evento en el smdbgrid que al tildar o destildar la recorra y haga la sumatoria de los tildados...
Responder Con Cita
  #6  
Antiguo 17-10-2016
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.

Por este mensaje,
Cita:
Empezado por marilinspi Ver Mensaje
hola, la base de datos es Firebird y obtengo los datos mediante un SqlDataSet, DataSetProvider y CLienteDataSet
Gracias
había entendido que usabas un ClientDataSet que es donde deberías usar los aggregates.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Problemas con el smdbgrid nickolas Varios 1 04-09-2012 12:08:04
cambiar Chequed de Item determinado en CheckListBox lmpadron C++ Builder 3 02-12-2011 20:55:29
Recorrer SMDbgrid ingel Varios 4 06-07-2007 01:41:27
Columna de SMDbgrid ingel Varios 1 06-06-2006 18:54:36
problema con smdbgrid el_barto OOP 2 18-07-2005 18:26:08


La franja horaria es GMT +2. Ahora son las 01:01:57.


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