Pregunta

Tengo un informe en BIRT y quiero agregar un resumen al final.

El informe es de 3 tablas que tienen su propio conjunto de datos. Quiero mostrar una cuarta tabla con la información resumida y un gran total. Tengo problemas para calcular el total general.

ex:

DataSet #1
col1 | col 2 | Total
   x |     x |     x
   x |     x |     x
                  xx


DataSet #2
col1 | col 2 | Total
   x |     x |     x
   x |     x |     x
                  xx

DataSet #3
col1 | col 2 | Total
   x |     x |     x
   x |     x |     x
                  xx


Summary
Total DataSet #1 |  xx
Total DataSet #2 |  xx
Total DataSet #3 |  xx
Grand Total      | xxx
¿Fue útil?

Solución

Ya está creando los subtotales necesarios en cada una de las tres primeras tablas (supongo que a través de un grupo). En el evento de creación de scripts para la celda de la tabla con su Gran Total, establezca una Variable Global Persistente para rastrear cada subtotal. Luego puede acceder a cada valor dentro de la cuarta y última tabla.

Para establecer la variable:

var totalValue = this.getDataRowData().getColumnValue("totalColumnName");
reportContext.setPersistentGlbalVariable("DataSet1Total", totalValue.toString());

NOTA: Deberá enviar el total general a una "Cadena" escriba para garantizar la serialización. Puede volver a convertirlo en un número cuando renderice la tabla de resumen final.

Para usar la variable, agregue un control de texto a su informe (en una celda en la tabla de resumen). En el evento de scripting onCreate para el control de texto, ingrese lo siguiente:

this.text = reportContext.getPersistentGlobalVariable("DataSet1Total");

Haría esto para cada campo de resumen que retuvo anteriormente. Luego, para el Gran total, puede hacer esto:

this.text = parseInt(reportContext.getPersistentGlobalVariable("DataSet1Total")) + parseInt(reportContext.getPersistentGlobalVariable("DataSet2Total")) + parseInt(reportContext.getPersistentGlobalVariable("DataSet3Total"));

Una variable global persistente es simplemente un valor serializable al que se puede acceder a través de los límites de los componentes dentro de un informe. Puede ser muy útil para requisitos como el suyo.

¡Buena suerte!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top