Estoy realizando una personalización del certificado TED1, básicamente lo estoy haciendo de vuelta porque necesito hacerle bastantes cambios.
La dificultad que estoy teniendo es que necesito armar una tablita por cada año que tiene la carrera que cursa el alumno para el que se esta generando el reporte (cada una de estas tablas va a tener el listado de materias correspondiente a ese año). Se como generar una tabla pero el problema esta en que tengo que generarlas dinamicamente dependiendo de la cantidad de años que tenga la carrera. Es posible realizar esto con Jasper o voy a tener que volcar todos los datos dentro de una sola tabla?
Por ahí lo que estás necesitando es algo similar a lo que se hace en una salida Jasper genérica en un reporte donde el cuadro tiene cortes de control. Tal vez puedas organizar una solución armando la vista_jasperreports asociada a tu plantilla siguiendo el ejemplo de la clase php/operaciones/_lib/ci_reporte.php, pero usando los datos obtenidos y agrupados previamente, y definiendo manualmente en esa función la estructura de columnas y cortes (no pidiéndodelo al cuadro como en el ejemplo).
En resumen, la tabla la generarías de manera dinámica desde la construcción en la vista_jasperreports, y cada año sería un “grupo” (que en el ejemplo lo obtiene con los cortes de control del cuadro: $this->cuadro()->get_indice_cortes() )
Hola Fernando , tengo una pregunta ,soy nuevo con ireport y queria saber si se puede hacer un jasper con columnas dinámicas que dependiendo de un parámetro pueda imprimir 4 , 5 o 6 columnas obviando el método genérico que de la clase php/operaciones/_lib/ci_reporte.php.
No hace falta personalizar Jasper con iReport, lo que podés hacer es personalizar la generación del Jasper en PHP, es decir, la vista_jasperreports, para quitar en un paso previo las columnas que no quieras exportar a PDF.
Por ejemplo, si quisiera personalizar el reporte de docentes para que en el PDF no salga ni el legajo ni el documento, haría:
class ci_rep_docentes_unx extends ci_rep_docentes
{
function vista_jasperreports(toba_vista_jasperreports $report)
{
$this->cuadro()->eliminar_columnas(array('legajo', 'documento'));
parent::vista_jasperreports($report);
}
}
?>