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,
si alguien sabe como hacerlo...desde ya muchas gracias. |
Hola marilinspi.
¿ Con que base de datos y mediante que componentes, obtenes los datos mostrados en el SMDBGrid ? Saludos :) |
hola, la base de datos es Firebird y obtengo los datos mediante un SqlDataSet, DataSetProvider y CLienteDataSet
Gracias |
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 :) |
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...
|
Hola.
Por este mensaje, Cita:
Saludos :) |
La franja horaria es GMT +2. Ahora son las 10:55:55. |
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