| |||
ireport Hola amigos, tengo un problema, en la consulta que hago para el reporte me devuelve dos columnas una es cantidad (5,8,3,etc...) y en la otra tipo de pago ("efectivo" o "tarjeta") como puedo hacer para que en la variable de sumatoria pueda solamente sumar los que me devuelva con efectivo (no sume los de tarjeta) probe con una condición en la expresión y todavía no me funciona, de antemano les agradezco Última edición por adrajo; 20/05/2014 a las 17:10 |
| |||
Respuesta: ireport Hola. Yo tambien tengo el mismo problema con el ireport. Eh probado con muchas condiocionales, pero ni uno que encontrado por la red me a funcionado.. Alguien que sepa como se deve hacer correctamente una variable con condiocion, ya sea SUM o COUNT. Gracias.. |
| |||
Respuesta: ireport Farfamor eh probado lo que as comentado. Pero igual, no me funciona, el resultado que me arroja es 0. No se por que me arrojara 0 si lo acabo de hacer como tu mencionas.. |
| |||
Respuesta: ireport yo no logro todavia solucionarlo... no se si sera mi ireport que descargue, no lo se.. pero ago todo igual pero simpre me bota como resultado 0.... me podrian dar un link de done puedo descargar un ireport actualizado |
| ||||
Respuesta: ireport Cita: Pega aquí estos datos:
Así como también el tipo y nombre de la variable que quieres sumar y el tipo y nombre de la o las variables que estás usando para la condicional. |
| |||
Respuesta: ireport Name: TOTAL_ACTIVO Variable Class: java.math.BigDecimal Calculation: Sum Reset type: Report Increment Type: None Variable Expression: $F{ESTADO}.equals("ACTIVO") ? $F{IMPORTE} : BigDecimal.ZERO el resultado siempre es 0 |
| ||||
Respuesta: ireport Si retiras la condicional en Variable Expression, es decir si queda así: $F{IMPORTE}. ¿La suma se efectua correctamente? De ser así, debe ser porque el condicional no se cumple nunca. Tienes que centrarte acá: $F{ESTADO}.equals("ACTIVO") ¿Qué tipo de dato es el field $F{ESTADO}? Porque lo que estamos haciendo ahí es utilizar el método equals para comparar dos objetos String. Es decir, se está asumiendo que $F{ESTADO} es de tipo String. Verifica eso. |
| |||
Respuesta: ireport Ya pude solucionarlo. Estoy utilizando postgres y cuando ago una consulta siempre me devuelve el valor String con muchos caracteres en blanco. Asi que tube que aplicar el metodo trim() para que compare correctamente. Me quedo asi: $F{ESTADO}.trim().equals("ACTIVO") ? $F{IMPORTE} : BigDecimal.ZERO |
| ||||
Respuesta: ireport ¿Puedes copiar aquí una fila del resultado de ejecutar la Query en tu base de datos? -- Ah, contestaste justo antes de enviar mi pregunta. Claro, la única opción era que el problema venía de lo que te estaba devolviendo la base de datos. Última edición por farfamorA; 22/05/2014 a las 19:01 Razón: Respuesta anterior editada |
Etiquetas: |