Herramientas de usuario

Herramientas del sitio


bloque4:informes

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

bloque4:informes [2021/01/20 17:11] – [Dependencias] fernandobloque4:informes [2024/09/16 20:55] (actual) – editor externo 127.0.0.1
Línea 201: Línea 201:
  
 Para las versiones 1.0.X, JFreeChart necesita las [[https://mvnrepository.com/artifact/org.jfree/jcommon|librerias JCommon]]. Para las versiones 1.0.X, JFreeChart necesita las [[https://mvnrepository.com/artifact/org.jfree/jcommon|librerias JCommon]].
-  * ''jfreechart-1.X.X.jar'' +  * ''jfreechart-1.0.X.jar'' 
-  * ''jcommon-1.X.X.jar''+  * ''jcommon-1.0.X.jar''
  
 Actualmente se ha distribuido la versión 1.5.X de JFreeChart, la cual no conlleva dependencias para el trabajo que vamos a realizar con ella, aunque sigue siendo recomendable incluir //JCommon//, si vamos a añadir gráficos a nuestros informes //Jasper Report// Actualmente se ha distribuido la versión 1.5.X de JFreeChart, la cual no conlleva dependencias para el trabajo que vamos a realizar con ella, aunque sigue siendo recomendable incluir //JCommon//, si vamos a añadir gráficos a nuestros informes //Jasper Report//
  
  
-//Los siguientes ejemplos están planteados con las versiones: **jfreechart-1.0.19** y **jcommon-1.0.24**//+//Los siguientes ejemplos de código están planteados con las versiones: **jfreechart-1.0.19** y **jcommon-1.0.24**//
 ==== Funcionamiento ==== ==== Funcionamiento ====
  
Línea 390: Línea 390:
  
 ==== Desplegar diagrama ==== ==== Desplegar diagrama ====
-Hemos visto en los ejemplos que cualquier diagrama corresponde a una instancia de la clase ''JFreeChart''. Una vez que tenemos el objeto, tenemos diferentes formas de exportarlo o mostrarlo.+Hemos visto en los ejemplos que cualquier diagrama corresponde a una instancia de la clase ''JFreeChart''. Una vez que tenemos dicho objeto, tenemos diferentes formas de exportarlo o mostrarlo.
  
 {{ :bloque4:plotypanel.png?direct&250|}} {{ :bloque4:plotypanel.png?direct&250|}}
  
-Como detalle, un diagrama JFreeChart esta compuesto dos areas principales: el area del panel contenedor y el area de l diagrama (Plot):+Como detalle, un diagrama JFreeChart esta compuesto dos areas principales: el area del panel contenedor y el area del diagrama (Plot):
  
  
Línea 407: Línea 407:
 </code> </code>
  
-Como hemos visto en ejemplo anteriores, el area del Plotpuede tener orientación vertical u horizontal: ''PlotOrientation.HORIZONTAL / VERTICAL''.+Como hemos visto en ejemplos anteriores, el area del Plot puede tener orientación vertical u horizontal: ''PlotOrientation.HORIZONTAL / VERTICAL''.
  
  
 ===Mediante una ventana JFrame=== ===Mediante una ventana JFrame===
-La clase ''ChartFrame'', que hereda de ''JFrame'', ppermite crear una ventana que contiene únicamente el diagrama. Al constructor debemos pasarle el objeto ''JFreeChart'' con el diagrama:+La clase ''ChartFrame'', que hereda de ''JFrame'', permite crear una ventana que contiene únicamente el diagrama. Al constructor debemos pasarle el objeto ''JFreeChart'' con el diagrama:
 <code java> <code java>
-Chartframe ventana = new ChartFrame("Título de la ventana", diagrama);+Chartframe ventana = new ChartFrame("Titulo de la ventana", diagrama);
  
 +//La sentencia pack() ajusta el JFrame a su contenido
 +//Si queremos dar un tamaño concreto usamos ventana.size(400, 300) en lugar de pack()
 ventana.pack(); ventana.pack();
 +
 ventana.setVisible(true); ventana.setVisible(true);
  
Línea 438: Línea 441:
 También podriamos crear una misma ventana donde mostrar el diagrama deseado pulsando diferentes botones. También podriamos crear una misma ventana donde mostrar el diagrama deseado pulsando diferentes botones.
  
-===Exportado a fichero===+===Exportar a fichero===
 Podemos crear un fichero de imágen //jpg// ó //png// con la gráfica, usando los métodos estáticos de la clase ''ChartUtilities'':  Podemos crear un fichero de imágen //jpg// ó //png// con la gráfica, usando los métodos estáticos de la clase ''ChartUtilities'': 
  
Línea 500: Línea 503:
 Como hemos visto, con el IDE JasperSoft Studio podemos compilar los informes //.jrxml// y obtener directamente el fichero //.jasper//. Pero también podemos compilar el fichero //.jrxml// desde java: Como hemos visto, con el IDE JasperSoft Studio podemos compilar los informes //.jrxml// y obtener directamente el fichero //.jasper//. Pero también podemos compilar el fichero //.jrxml// desde java:
  
-Supongamos que tenemos el informe sin compilar en un //package// llamado "reports":+Supongamos que tenemos el informe sin compilar en un directorio de recursos llamado "reports":
  
 <code java> <code java>
Línea 524: Línea 527:
 HashSet<Vehiculo> vehiculos = obtenerVehiculos(); HashSet<Vehiculo> vehiculos = obtenerVehiculos();
  
-JasperReport report = (JasperReport) JRLoader.loadObject("informes/Vehiculos.jasper");+JasperReport report = (JasperReport) JRLoader.loadObject(new File("informes/Vehiculos.jasper"));
  
 JRBeanCollectionDataSource coleccion = new JRBeanCollectionDataSource(vehiculos); JRBeanCollectionDataSource coleccion = new JRBeanCollectionDataSource(vehiculos);
Línea 590: Línea 593:
  
 {{ vimeo>479592801?medium }} {{ vimeo>479592801?medium }}
 +
 +==== Ejemplo completo con IntelliJ ====
 +En el siguiente video realizado desde la perspectiva del IDE IntelliJ se realiza:
 +
 +  * Diseño de informe
 +  * Creación de librerias de clases desde IntelliJ
 +  * Utilización de esas librerías en JasperSoftStudio
 +  * Crear gráfico JFreeChart en Informe
 +  * Rellenar Informe
 +  * Mostrar informe
 +
 +{{ vimeo>515413350?medium }}
 +
 +==== Subinformes con JasperReport ====
 +Hasta ahora hemos visto como mostrar informes en los que se accede a algún atributo de una clase creada por nosotros. Los subinformes se utilizan cuando dentro de las filas de un informe, deseo incluir una colección indefinida de datos.
 +
 +En el siguiente video se diseña un informe que muestra los datos de una colección de asignaturas, y emplea un subinforme para mostrar también los alumnos matriculados en cada asignatura:
 +
 +
 +{{ vimeo>515937852?medium }}
 +
 ==== Dependencias de JasperReport ==== ==== Dependencias de JasperReport ====
  
Línea 599: Línea 623:
  
   - Apache Commons Logging:  [[https://commons.apache.org/proper/commons-logging/|sitio de Apache]] o [[https://mvnrepository.com/artifact/commons-logging/commons-logging|repositorio de Maven]]. Se utiliza para guardar trazas de log.   - Apache Commons Logging:  [[https://commons.apache.org/proper/commons-logging/|sitio de Apache]] o [[https://mvnrepository.com/artifact/commons-logging/commons-logging|repositorio de Maven]]. Se utiliza para guardar trazas de log.
-  - Apache Commons Digester 2.1: [[https://commons.apache.org/proper/commons-digester/|sitio de Apache]] o [[https://mvnrepository.com/artifact/commons-digester/commons-digester|repositorio de Maven]]. Se usan para leer fichero de configuración XML.+  - Apache Commons Digester 2.1: [[https://commons.apache.org/proper/commons-digester/|sitio de Apache]] o [[https://mvnrepository.com/artifact/commons-digester/commons-digester|repositorio de Maven]]. Se usan para leer ficheros de configuración XML.
   - Apache Commons Collections: [[https://commons.apache.org/proper/commons-collections/|sitio de Apache]] o [[https://mvnrepository.com/artifact/org.apache.commons/commons-collections4|repositorio de Maven]]. Para trabajar con datasources de colecciones. No necesario si genero informes desde una bbdd.   - Apache Commons Collections: [[https://commons.apache.org/proper/commons-collections/|sitio de Apache]] o [[https://mvnrepository.com/artifact/org.apache.commons/commons-collections4|repositorio de Maven]]. Para trabajar con datasources de colecciones. No necesario si genero informes desde una bbdd.
   - Apache Commons BeanUtils: [[http://commons.apache.org/proper/commons-beanutils/|sitio de Apache]] o [[https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils| repositorio de Maven]]. Para acceder dinámicamente a las propiedades de los objetos Java Beans.   - Apache Commons BeanUtils: [[http://commons.apache.org/proper/commons-beanutils/|sitio de Apache]] o [[https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils| repositorio de Maven]]. Para acceder dinámicamente a las propiedades de los objetos Java Beans.
Línea 633: Línea 657:
 <code java> <code java>
  
-//images es un package dentro de src+//images en un package dentro de src
 JLabel lblFoto = new JLabel(); JLabel lblFoto = new JLabel();
 lblFoto.setIcon(new ImageIcon(getClass().getResource("/images/foto.jpg")); lblFoto.setIcon(new ImageIcon(getClass().getResource("/images/foto.jpg"));
bloque4/informes.1611162680.txt.gz · Última modificación: 2024/09/16 20:55 (editor externo)