Xposé sur Jasper Reports
Éléments et expressions
Tous les attributs déclarés doivent être utilisés dans des expressions. Les expression permettent également de réaliser des opérations entre plusieurs variables. Les expressions représentent la valeur que prend un élément. Nous allons voir tout d'adord ce que sont les éléments.Les éléments
Les éléments représentent des zones du rapport avec des contraintes particulières correpondant aux différents types d'éléments. Tous les éléments doivent avoir comme caractéristiques les coordonnées et la taille de la zone. Voici un exemple avec un élément staticText:
<staticText> <reportElement mode="Transparent" x="0" y="2" width="178" height="17" forecolor="#000000" backcolor="#FFFFFF" key="staticText" stretchType="NoStretch" positionType="Float" isPrintRepeatedValues="true" isRemoveLineWhenBlank="false" isPrintInFirstWholeBand="false" isPrintWhenDetailOverflows="false"/> <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/> <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" lineSpacing="Single"> <font fontName="" pdfFontName="Courier" size="12" isBold="false" isItalic="false" isUnderline="false" isPdfEmbedded ="false" pdfEncoding ="Cp1250" isStrikeThrough="false" /> </textElement> <text><![CDATA[NOM]]></text> </staticText>
La balise text contient le texte qui sera affiché dans l'élément, il s'agit d'une expression. On peut également effectuer des opérations sur les variables utilisées. Voici un exemple placé en bas de page permettant d'affichier le numéro de page ainsi que le nombre de pages totales du document:
<textField isStretchWithOverflow="false" pattern="" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" > <reportElement mode="Transparent" x="325" y="4" width="174" height="19" forecolor="#000000" backcolor="#FFFFFF" key="textField" stretchType="NoStretch" positionType="FixRelativeToTop" isPrintRepeatedValues="true" isRemoveLineWhenBlank="false" isPrintInFirstWholeBand="false" isPrintWhenDetailOverflows="false"/> <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/> <textElement textAlignment="Right" verticalAlignment="Top" rotation="None" lineSpacing="Single"> <font fontName="Helvetica" pdfFontName="Helvetica" size="10" isBold="false" isItalic="false" isUnderline="false" isPdfEmbedded ="false" pdfEncoding ="CP1252" isStrikeThrough="false" /> </textElement> <textFieldExpression class="java.lang.String"><![CDATA["Page " + $V{PAGE_NUMBER} + " of "]]></textFieldExpression> </textField> <textField isStretchWithOverflow="false" pattern="" isBlankWhenNull="false" evaluationTime="Report" hyperlinkType="None" hyperlinkTarget="Self" > <reportElement mode="Transparent" x="499" y="4" width="36" height="19" forecolor="#000000" backcolor="#FFFFFF" key="textField" stretchType="NoStretch" positionType="FixRelativeToTop" isPrintRepeatedValues="true" isRemoveLineWhenBlank="false" isPrintInFirstWholeBand="false" isPrintWhenDetailOverflows="false"/> <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/> <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" lineSpacing="Single"> <font fontName="Helvetica" pdfFontName="Helvetica" size="10" isBold="false" isItalic="false" isUnderline="false" isPdfEmbedded ="false" pdfEncoding ="CP1252" isStrikeThrough="false" /> </textElement> <textFieldExpression class="java.lang.String"><![CDATA["" + $V{PAGE_NUMBER}]]></textFieldExpression> </textField>
Remarque: On utilise ici deux champs séparés pour afficher la page courante et le nombre total de pages car la variable utilisée est une variable "built-in" nommée PAGE_NUMBER. La différence entre les deux textField se situe dans le paramètre evaluationTime qui est positionné à Now pour la page courante et à Report pour avoir le numéro de la dernière page.
On peut également utiliser des expression Java dans le contenu des expressions. Par exemple pour afficher la date du jour on peut utiliser:
<textFieldExpression class="java.util.Date"><![CDATA[new Date()]]></textFieldExpression>