SIGESA: JASPER: Reporte con grupo

  • Vamos a crear un reporte que este agrupado
  • Para esto vamos a utilizar las siguientes tablas
  • El select que obtiene los datos
SELECT 
        T7.CODIGO AS ENCARGADO_NONITOREO_CODIGO,
        T7.NOMBRE AS ENCARGADO_NONITOREO_NOMBRE,
        T8.NOMBRE AS ETAPA,
        TRIM(T1.CODIGO || '. ' || T1.DESCRIPCION) AS META_ESTRATEGICA,
        
        T2.NOMBRE AS AMBITO_ACCION_UNIVERSITARIA,
        LISTAGG(T5.CODIGO ,CHR(13))WITHIN GROUP(ORDER  BY T5.ID_UNIDAD_EJECUTORA) AS RESPONSABLES_cod,
        LISTAGG( T5.NOMBRE,CHR(13))WITHIN GROUP(ORDER  BY T5.ID_UNIDAD_EJECUTORA) AS RESPONSABLES
        
        
        FROM PPI.META_PMP T1
        INNER JOIN PPI.AMBITO_ACCION_UNIVERSITARIA T2 ON (T2.ID_AMBITO_ACCION_UNIVERSITARIA = T1.AMBITO_ACCION_UNIVERSITARIA)
        INNER JOIN PPI.ACCION_ESTRATEGICA T3 ON (T3.META_PMP = T1.ID_META_PMP)        
        INNER JOIN PPI.PLAN_ACCION_ESTRATEGICA T4 ON (T4.ID_PLAN_ACCION_ESTRATEGICA = T3.PLAN_ACCION_ESTRATEGICA) 
        INNER JOIN EPF.UNIDAD_EJECUTORA T5 ON (T5.ID_UNIDAD_EJECUTORA = T4.UNIDAD_EJECUTORA)
        INNER JOIN PPI.ENCARGADO_MONITOREO T6 ON (T6.ID_ENCARGADO_MONITOREO = T1.ENCARGADO_MONITOREO)
        INNER JOIN EPF.UNIDAD_EJECUTORA T7 ON (T7.ID_UNIDAD_EJECUTORA = T6.UNIDAD_EJECUTORA)
        INNER JOIN PPI.ETAPA_PLAN T8 ON (T8.ID_ETAPA_PLAN = T4.ETAPA_PLAN)
        
        WHERE 
                (T1.ENCARGADO_MONITOREO = 2)
            AND 
                (T4.ETAPA_PLAN = 1)
        GROUP BY  T7.CODIGO, T7.NOMBRE, T8.NOMBRE, T1.CODIGO,T1.DESCRIPCION,T2.NOMBRE;
  • Creamos un nuevo JASPER REPORT
  • Ahora sobre el menú de «Outline» le damos «Create Group»
  • Y le damos un nombre y seleccionamos el campo principal que no se repite
  • Le indicamos que agregue footer y header
  • Ahora solo queda que dentro del área de METAS Group Header se agregan los campos por los que se van a agrupar los registros y acomodar los campos
  • Quedando así