Style un champ de texte dans JasperReports

je sais comment appliquer le style inline au texte statique dans JasperReports. Peut-on faire la même chose pour les éléments de texte (champs de texte)? Si oui, comment?

18
demandé sur davioooh 2011-11-15 14:55:33

1 réponses

Oui, vous pouvez appliquer un style de textField éléments.

iReport à l'aide de

L'exemple de rapport de modèle:

<jasperReport ..>
    <style name="ColoredField" style="Default" forecolor="#FF0000">
        <conditionalStyle>
            <style/>
        </conditionalStyle>
    </style>
    ...
    <detail>
        <band height="52" splitType="Stretch">
            <!--Using the style declared in this template-->
            <textField>
                <reportElement key="textWithStyle" style="ColoredField" mode="Opaque" x="0" y="10" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{TASKS_SERIES}]]></textFieldExpression>
            </textField>
            <!--Basic formatting (set font and indent) using-->
            <textField>
                <reportElement key="textWithoutStyle" x="100" y="10" width="100" height="20"/>
                <textElement>
                    <font fontName="Arial" size="14" isBold="true" isItalic="true" isUnderline="false"/>
                    <paragraph leftIndent="10"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{TASKS_TASK}]]></textFieldExpression>
            </textField>
            <!--Markup using: styled-->
            <textField>
                <reportElement x="200" y="10" width="590" height="42"/>
                <textElement markup="styled"/>
                <textFieldExpression><![CDATA["The static text without any format.\nThe field's data with bold format<style isBold='true'>:" + $F{TASKS_SUBTASK} + "</style>\n<style isBold='true' isItalic='true' isUnderline='true'>The static underlined text with bold and italic format</style>"]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

La citation de iReport Guide Ultime sur markup l'attribut:

Markup attribut vous permet de formater le texte en utilisant un markup spécifique langue. Ce qui est extrêmement utile lorsque vous devez imprimer du texte c'est pré-formaté, c'est-à-dire en HTML ou RTF. Balises de style HTML simples (comme pour les caractères gras et italiques) peut être utilisé par exemple pour mettez en surbrillance une partie du texte. Les valeurs possibles sont suit:

  • Aucun

    Aucun traitement du texte n'est effectué, et le texte est imprimé exactement comme il est prévu.
  • Style

    Ce markup est capable de formater le texte en utilisant un ensemble de balises HTML-comme et il est assez populaire dans les environnements Java. Il permet de définir une police spécifique pour des morceaux de texte, couleur, fond, style et ainsi de suite. C'est souvent suffisant pour formater le texte de façon programmatique.
  • HTML

    Si vous voulez imprimer du texte HTML dans votre rapport, c'est ce dont vous avez besoin, mais son utilisation principale est de formater du texte, alors ne vous attendez pas à pouvoir imprimer des tableaux ou ajouter image.
  • RTF

    En définissant le markup à cette valeur, le contenu sera interprété comme un code RTF. RTF est un format de document populaire stocké dans le texte pur. Le petit morceau de texte disant "c'est un texte formaté dans RTF" dans L'Illustration 19 a été généré en utilisant la chaîne de caractères:

    {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;} {\f1\fnil\fprq2\fcharset0 Swift;} {*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\f0\fs20 C'est un texte \f1\fs52 formaté \f0\fs20 en RTF\par }

    La chaîne est en fait un fichier RTF créé à l'aide d'un simple traitement de texte.
  • police

    C'est le nom d'une police prédéfinie, à partir de laquelle seront extraites toutes les propriétés des caractères. Cet attribut est déprécié et il n'est là que pour la compatibilité la raison (c'est pourquoi il l'étiquette est strukethrough. Afin de définir un style particulier de texte à utiliser dans tout votre document, utilisez un style.
  • L'échantillon de l'aide markupici.

    Vous pouvez utiliser style pour le réglage de:

  • propriétés Communes
  • propriétés Graphiques
  • propriétés de bordure et de rembourrage
  • propriétés du texte

    l'autre échantillon est ici.

    API DynamicJasper utilisant

    en cas d'utilisation DynamicJasper API, vous pouvez définir le style avec l'aide de ar.com.fdvs.dj.domaine.les constructeurs.ColumnBuilder catégorie:

    AbstractColumn columnState = ColumnBuilder.getNew()
    .addColumnProperty("state", String.class.getName())
    .addTitle("State").addWidth(new Integer(85))
    .addStyle(detailStyle).addHeaderStyle(headerStyle).build(); 
    

    L'échantillon est ici.

    JasperReports de l'API à l'aide de

    en cas d'utilisation de JasperReports API vous pouvez définir le style, par exemple, avec l'aide de net.sf.jasperreports.moteur.base. JRBasePrintText catégorie:

    JRPrintText text = new JRBasePrintText(jasperPrint.getDefaultStyleProvider());
    text.setStyle(boldStyle);
    

    L'échantillon est ici.

  • 36
    répondu Alex K 2012-09-24 07:00:53