PDA

Ver la Versión Completa : Se puede sumar en QRExpr con Where??


nefy
01-07-2004, 01:51:53
Hola deseo saber si es posible hacer la suma de un campo pero solo aquellos q un campo booleano sea False. Esto no es posible recorriendo el TQuery con el q genero la consulta (eso creo), pues la consulta la agrupo con QRGroups asignandole a su propiedad Expression el campo a agrupar y obviamente el numero de grupos varian asi q puse un GroopFooter para mostrar la suma parcial
con QRExprs de cada grupo de registros q se genere en todo el listado, pero el detalle es q algunos registros q tengan false no deben ser sumados, asi q pense hacer lo siguiente:

QRexpr.Expresion:='SUM(Consulta.Campo) where CampoBooleano=False'

e investigado al respecto pero nunca se habla nada al respecto ni en la ayuda de Delphi ni en la red (al menos yo no he encontrado).

Salu2.

jachguate
01-07-2004, 03:37:02
No se puede usar una clausula where en un TQrExpr, puesto que no hay ningún tipo de condicional para la suma.

Sin embargo, podes añadir un campo calculado al dataset, y asignarle el valor del campo a sumar condicionalmente si esta se cumple y 0 si no se cumple la condicion.

Luego, en el qrExpr usas un Sum(consulta.campocalculado) y te dará el valor que esperas.

Hasta luego.

;)

nefy
01-07-2004, 17:27:21
Muy buena logica la tuya, no lo habia pensado asi. La otra manera q habia pensado es ir sumando los valores antes o despues de imprimir cada QRdBText, tomando el monto de la propiedad Caption del QRDbText (apenas estaba testeando), pero en mis primeras pruebas me generaba excepciones pero lo hare mejor como tu mencionas.

Salu2.