Question

Je travaille sur un système comprenant un grand nombre de rapports, généré à l'aide de JasperReports . L’une des nouvelles fonctionnalités est la possibilité de définir des styles pour les rapports.

Parmi les documents disponibles, je pense qu’il est possible d’avoir un fichier externe définissant les styles à utiliser, et vous pouvez le référencer dans vos rapports jasper. Cela permet à un seul style d'être utilisé par plusieurs rapports.

Je ne trouve aucune information concrète indiquant s'il s'agit d'une fonctionnalité réelle et, le cas échéant, comment l'utiliser. Est-ce que quelqu'un sait s'il est possible d'avoir des styles externes pour les rapports jasper, et si oui, comment le faire?

Était-ce utile?

La solution

Utilisez les modèles de JasperReport . Un modèle JasperReports se termine par .jrtx et peut ressembler à ceci (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>

puis dans votre .jrxml fichier, incluez-le en tant que modèle:

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

iReport comprend également cela, donc vos styles sont importés et affichés correctement dans iReport (bien que j’ai remarqué que parfois, il ne serait pas nécessaire de les récupérer, une recharge ou une recompilation était nécessaire).

Autres conseils

Vous pouvez également éviter de spécifier le nom de fichier réel dans l'élément <template> en utilisant un paramètre transmis à votre rapport lors de l'exécution

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

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

où $ P {TEMPLATE_FILE} est le chemin complet de la ressource de style

J'aime partager mon apprentissage de l'utilisation de styles dans les rapports Jasper, ce qui me semble très utile pour les concepteurs de rapports comme moi, à partir d'un livre intitulé JasperReport Development Cookbook de Bilal Siddiqui. J'aime ce livre et j'ai trouvé des styles de démonstration de différentes manières, comme:

  • Création d'un style réutilisable
    Il suffit de sélectionner & # 8220; Style & # 8221; lors de la création d'un nouveau rapport et définir le style du texte, des lignes et des rectangles. Le fichier de style sera stocké en tant que fichier .jrtx.

  • Importez le style réutilisable dans votre rapport
    Trois informations sont disponibles lors de l’importation de styles dans votre rapport. Étape 1. Nom et emplacement du modèle de style

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

Étape2. Chaque fois que vous appliquez un style à vos éléments de rapport à l'aide du modèle de style, une balise <reportElement> est créée comme suit:

//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>
  • Mélange des styles interne et réutilisable dans un rapport
  • Utiliser la puissance du HTML pour styliser votre rapport
    Par exemple, votre champ de texte a l'expression suivante qui inclut les balises HTML (c'est-à-dire <li>) et vous souhaitez que les balises HTML fonctionnent dans la conception de votre rapport:
"<li>"+"Invoice # "+$F{InvoiceID}+", "+
     

$ F {NomClient} + " acheté   " + $ F {ProductName} + " dans   " + $ F {InvoicePeriod} + " (Montant de la facture:   \ $ " + $ F {InvoiceValue} + ") " + "

La solution est simple, il suffit de définir & # 8220; Markup & # 8221; propriété du champ de texte sur & # 8220; Styled & # 8221; et que ça.

J'ai pris la permission de l'auteur pour copier le bloc de code de son livre de recettes JasperReports dans ce message.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top