ultimate studio jaspersoft jasperreports jasper guide for jasper-reports styles

jasper-reports - jasperreports - jaspersoft studio 6.2 0



Estilos externos en JasperReports (3)

Estoy trabajando en un sistema que incluye una gran cantidad de informes, generados usando JasperReports . Una de las características más nuevas es que puede definir estilos para los informes.

A partir de los documentos disponibles, creo que hay alguna forma de tener un archivo externo que defina los estilos para usar, y puede hacer referencia a eso en los informes de jaspe. Esto permite que un único estilo sea utilizado por múltiples informes.

No puedo encontrar ninguna información concreta sobre si esta es una característica real, y si lo es, cómo usarla. ¿Alguien sabe si es posible tener estilos externos para los informes de jaspe, y si es así, cómo hacerlo?


También puede evitar especificar el nombre del archivo real en el elemento <template> utilizando un parámetro que se pasa a su informe en el tiempo de ejecución

<parameter name="TEMPLATE_FILE" isForPrompting="false" class="java.lang.String"/>

<template><![CDATA[$P{TEMPLATE_FILE}]]></template>

donde $ P {TEMPLATE_FILE} es la ruta completa al recurso de estilo


Me gusta compartir mi aprendizaje sobre el uso de estilos en los informes de Jasper, que considero bastante útil para los diseñadores de informes como yo, de un libro llamado libro de cocina de desarrollo Jasper de Bilal Siddiqui. Me gusta este libro y encontré la demostración de estilos de varias maneras, como:

  • Creando un estilo reutilizable
    Simplemente seleccione "Estilo" mientras crea un nuevo informe y defina el estilo para texto, línea y rectángulos. El archivo de estilo se almacenará como archivo .jrtx.

  • Importar estilo reutilizable en tu informe
    Hay tres fragmentos de información cuando se importan estilos en su informe. Paso 1. Nombre y ubicación de la plantilla de estilo

<template><![CDATA["C:// BigBoldRedTemplate.jrtx"]]></template>

Paso 2. Cada vez que aplica estilo a los elementos del informe utilizando la plantilla de estilo, se crea una etiqueta <reportElement> como se muestra a continuación:

//style applied to a rectangle <rectangle radius="10"> <reportElement style="BigBoldRed" mode="Transparent" x="0" y="0" width="555" height="44"/> </rectangle> //style applied to a the text field <staticText> <reportElement style="BigBoldRed" x="0" y="0" width="555" height="66"/> <textElement textAlignment="Center" verticalAlignment="Middle"/> <text><![CDATA[Monthly Customer Invoices]]></text> </staticText>

  • Mezcla de los estilos internos y reutilizables en el informe
  • Usando el poder de HTML para diseñar tu informe
    Por ejemplo, su campo de texto tiene la siguiente expresión que incluye etiquetas HTML (es decir, <li> ) y desea que las etiquetas HTML funcionen en el diseño de su informe:

"<li>"+"Invoice # "+$F{InvoiceID}+", "+

$ F {CustomerName} + "bought" + $ F {ProductName} + "in" + $ F {InvoicePeriod} + "(Valor de la factura: / $" + $ F {InvoiceValue} + ")" + "

La solución es simple, simplemente ajuste la propiedad "Marcar" del campo de texto en "Estilo" y eso.

Obtuve permiso del autor para copiar el fragmento de código de su libro de recetas JasperReports en esta publicación.


Use las plantillas JasperReport . Una plantilla de JasperReports es aquella que termina en .jrtx , y puede parecer similar a esto ( styles.jrtx ):

<?xml version="1.0"?> <!DOCTYPE jasperTemplate PUBLIC "-//JasperReports//DTD Template//EN" "http://jasperreports.sourceforge.net/dtds/jaspertemplate.dtd"> <jasperTemplate> <style name="Report Title" isDefault="false" hAlign="Center" fontSize="24" isBold="true"/> <style name="Heading 1" isDefault="false" fontSize="18" isBold="true"/> <style name="Heading 2" isDefault="false" fontSize="14" isBold="true"/> </jasperTemplate>

y luego en su archivo .jrxml , .jrxml como plantilla:

... <template>"styles.jrtx"</template> ...

iReport también entiende esto, por lo que sus estilos se importan y se muestran en iReport correctamente (aunque sí noté que a veces no los recogía y era necesario volver a cargarlos o recompilarlos).