Reportes en Java con Jaspersoft Studio. Post 1 de 5

Por qué Jaspersoft Studio? En mi experiencia, los reportes son fundamentales en toda aplicación o software empresarial que creamos. Ellos nos muestran la información ya procesada que es el objetivo de nuestros desarrollo, presentar informes precisos, entendibles que permitan tomar decisiones asertivamente. Es por eso que en esta ocasión les queremos compartir acerca de jasperReports con Jaspersoft Studio, la herramienta de referencia en el mundo java para los reportes.

JasperReports es una biblioteca de creación de informes que tiene la habilidad de entregar contenido enriquecido al monitor, a la impresora o a ficheros PDFHTMLXLSCSV y XML.

Escrito completamente en java, por y para java,  puede ser usado en gran variedad de aplicaciones tanto EE (Enterprise), como SE(Standart), o de escritorio, puede servir reportes fijos y dinámicos.

Requerimientos previos a la instalación en ambiente Windows

Funciona en Windows XP / 7/8 con 32 o 64 bits, Linux (32 o 64 bits), MacOS X en 64 bits.

Procesador de 3GHZ o superior  (32/64). La cantidad de la memoria RAM es completamente  dependiente de la complejidad de los informes, se recomienda un valor de 1 GB dedicado a Jaspersoft de estudio, ya dado que en el sistema hay muchas otras cosas que requieren RAM se sugiere que el equipo tenga un mínimo de 4GB de RAM.


Se requiere una distribución completa de Java. Necesitas descargar el Java Development Kit (JDK) 1.6 o la ultima versión jdk-12.0.1_windows-x64_bin.exe

 

** No olvides el JDBC con el que te conectaras al motor de Base de datos, de otro modo no podrás acceder a los datos. 

 

Instalando Jaspersoft Studio 6.9.0 (windows)

1. Visitar la página https://community.jaspersoft.com/project/jaspersoft-studio/releases para bajarnos la última versión de JasperSoft Studio, en este caso la 6.9.0.

Pagina de descarga de Jaspersoft Studio

la primera vez nos mostrará una página para iniciar sesión o inscribirnos al sitio de la comunidad de Jaspersoft.

 

2. Después de finalizar la descarga del instalador, dar doble clic en el archivo TIB_js-studiocomm_6.9.0_windows_x86_64.exe

3. Clic en “I Agree” (estoy de acuerdo)

4. Seleccionar la carpeta donde deseamos instalar el programa, podemos dejar la ubicación por defecto y hacer clic en instalar.

5. Esperar que se instale el programa

6. Clic en Finish (Finalizar)

 

Descripción de la pantalla de JasperStudio

En este Lote de artículos vamos a utilizar MS SQL Server para nuestro ejercicios, por tanto, el paso posterior a la instalación de JasperSoft Studio 6.9.0  seria  Instalar el driver para Microsoft SQL Server: 

 

El driver que bajemos dependerá de la versión de SQL Server que tengamos instalada en nuestra computadora. Para eso visitaremos la página https://docs.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-2017  

Copiar el archivo sqljdbc4.jar a la carpeta: C:\Program Files\TIBCO\Jaspersoft Studio-6.9.0\features\jre.win32.win32.x86_64.feature_1.8.0.u151\jre\lib\ext\

 

NOTA

Opcionalmente, si queremos usar la autenticación con el usuario de Windows o seguridad integrada con SQL Server: 

Copiar el archivo sqljdbc_auth.dll a la carpeta: C:\Program Files\TIBCO\Jaspersoft Studio-6.9.0\features\jre.win32.win32.x86_64.feature_1.8.0.u151\jre\bin

Para que surtan efectos los cambios debemos cerrar y volver a abrir la aplicación de JasperSoft Studio.

Format Style

Las normas de estilo son fundamentales tanto para crear una identidad como para transmitir correctamente. Desde el momento en que decidimos crear un proyecto, la coherencia visual es importante, UX y UI están de la mano, y en los reportes no puede ser la exception.

Por esta razón aconsejamos crear un estilo propio que se aplique a todos los estilos de los reportes que vamos a crear.

 

Propuesta de normativa para formateo de reportes

 

Elemento de sección

Norma a aplicar

No.

Descripción

Fuente/estilo/bordes

Tamaño

Alineación

Encabezado del reporte

 

1

Nombre de Entidad

Arial + Mayúscula + Negrita

12

Centrado

2

Unidad administrativa de la entidad

Arial + Mayúscula + Negrita

10

Centrado

3

Código del reporte

Arial + Negrita

9

Derecha

4

Título

Arial + Mayúscula + Negrita

11

Centrado

5

Subtítulo

Arial + Mayúscula + Negrita

10

Centrado

6

Periodo de Fecha

Arial + Mayúscula + Negrita

9

Centrado

Agrupaciones

 

7

Encabezado y subtitulo de la agrupación

Arial Narrow + Negrita con borde superior e inferior

8

Izquierda

8

Detalle de la agrupación

Arial Narrow

8

 

9

Sub-total por agrupación

Arial Narrow + Negrita con borde superior

9

 

Detalle

 

10

Etiquetas o nombres de columna

Arial Narrow + Negrita con borde superior e inferior

8

Izquierda

11

Detalle

Arial Narrow

8

 

Pie del reporte

 

12

Versión, módulo, página # de ## páginas, usuario, fecha

Arial Narrow con línea fina (0.6 px) parte superior de las etiquetas

8

 

Sumatoria o suma a nivel de reporte

 

13

Suma

Arial Narrow con borde superior

9

 

Ejemplo de estilos.

 

Elemento

Ejemplo

Ejemplo de Negrita, Cursiva y Subrayado en texto estático

 

Hola Mundo

 

 

Ejemplo de Negrita  y Cursiva y fondo amarillo en texto estático

 

Hola Mundo

 

 

Ejemplo de Negrita y Cursiva y color azul en texto estático

 

Hola Mundo

 
 

textElement

 

 

Ejemplo de Negrita, fondo verde, color de la fuente rojo en campo de texto

+ $F{Campo} +

 

Aplicando formato a números y fechas

Elemento

Ejemplo

Formato para campos numéricos

” (C$ ” + new java.text.DecimalFormat(“#,##0.00”).format($F{Total}) + “)”

Formato para campos de fechas

(new SimpleDateFormat(“dd/MM/yyyy“).format($F{Fecha}))

Mostrar un elemento si el número de página es par

new Boolean($V{PAGE_NUMBER}%2==0 )

Mostrar un elemento si el número de página es 1

new Boolean($V{PAGE_NUMBER}.intValue()==1)

Mostrar un elemento si el valor de un campo de la consulta es 1

new Boolean($F{Campo}.equals(new Integer(1)) ? true  : false)

Condicionales en campos de texto

( $F{Referencia}.intValue() == 1

? “Referencia tiene valor 1”

:    (  $F{Referencia}.intValue() == 3

      ? “Referencia tiene valor 3”

    :”Referencia tiene un valor distinto a 1 ó 3“    )

)

 

 

Please follow and like us: