Rapports Jasper-aligner les champs de texte dynamiques et leurs étiquettes horizontalement
J'utilise Jasper report 5.2, iReport 5.2 et j'exporte le rapport en formats RTF et PDF.
dans mon rapport je veux ajouter quelques champs de texte avec leurs étiquettes (texte statique)alignées horizontalement comme
Name: $F{name}
Age: $F{age}
Date of Birth: $F{dateOfBirth}
mais je suis incapable de les aligner. C'est ce que j'ai essayé
- Type De Position: float (pour l'ensemble du texte statique et les champs)
- Type D'Étirement: pas de stretch (pour tous les textes statiques et les champs)
- Stretch Avec Overflow: Vrai (pour tous les champs de texte dynamique)
l'image montre ce que j'obtiens et ce que je veux. De plus, le contenu de mon champ de texte est dynamique, c'est-à-dire que la taille du contenu peut varier.
j'ai lu beaucoup de forums mais n'ai pas pu trouver de solution, s'il vous plaît suggérer.
Merci
4 réponses
C'est peut-être fait facilement avec l'aide de conteneurs - le Image élément.
Vous devriez mettre Image Type De Position Float et mettre à tous les deux staticText (label) et textField.
textField j'ai mis Type De Position FloatStretch Avec Overlfow true.
le taille de l'échantillon
jrxml fichier:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="textfields_allign" language="groovy" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="d855bf18-5e9b-4060-8caa-3fdd08abce3b">
<parameter name="name" class="java.lang.String"/>
<parameter name="id" class="java.lang.String"/>
<parameter name="date" class="java.lang.String"/>
<title>
<band height="69" splitType="Stretch">
<frame>
<reportElement uuid="314bfd5b-7b0a-42f4-aca3-e61f0283f126" positionType="Float" x="213" y="1" width="243" height="20"/>
<staticText>
<reportElement uuid="e07201bb-a677-4dc9-a332-f94e6eca2722" positionType="Float" x="0" y="0" width="100" height="20" isPrintWhenDetailOverflows="true"/>
<textElement/>
<text><![CDATA[Name]]></text>
</staticText>
<textField isStretchWithOverflow="true">
<reportElement uuid="66c93a44-9015-4ae9-bf05-b68b2420f3ef" positionType="Float" x="121" y="0" width="100" height="20" isPrintWhenDetailOverflows="true"/>
<textElement/>
<textFieldExpression><![CDATA[$P{name}]]></textFieldExpression>
</textField>
</frame>
<frame>
<reportElement uuid="8311a483-955e-4280-a9ac-513d7d34495b" positionType="Float" x="213" y="21" width="243" height="20"/>
<staticText>
<reportElement uuid="da404b4e-7908-40ae-8e1b-38e19d9ddc7f" positionType="Float" x="0" y="0" width="100" height="20" isPrintWhenDetailOverflows="true"/>
<textElement/>
<text><![CDATA[ID]]></text>
</staticText>
<textField isStretchWithOverflow="true">
<reportElement uuid="e0e312e8-cd2f-48af-8ae8-df95c6195488" positionType="Float" x="121" y="0" width="100" height="20" isPrintWhenDetailOverflows="true"/>
<textElement/>
<textFieldExpression><![CDATA[$P{id}]]></textFieldExpression>
</textField>
</frame>
<frame>
<reportElement uuid="8ff2baf9-b0ec-4c8a-b54a-9edd08b200cc" positionType="Float" x="213" y="41" width="243" height="20"/>
<staticText>
<reportElement uuid="b8d97db0-250a-43c8-a2f3-2fa3668c5d15" positionType="Float" x="0" y="0" width="100" height="20" isPrintWhenDetailOverflows="true"/>
<textElement/>
<text><![CDATA[Date]]></text>
</staticText>
<textField isStretchWithOverflow="true">
<reportElement uuid="4daa4d17-28be-4ac8-8e1e-2efbeec5f690" positionType="Float" x="121" y="0" width="100" height="20" isPrintWhenDetailOverflows="true"/>
<textElement/>
<textFieldExpression><![CDATA[$P{date}]]></textFieldExpression>
</textField>
</frame>
</band>
</title>
</jasperReport>
La conception de l'état dans iReport:
Le résultat sera (via iReport aperçu):
pour compléter la solution D'Alex K: avec Jaspersoft Studio, n'oubliez pas de définir la propriété du texte statique "stretch type" à "relative à l'objet le plus haut".
dans les rapports de Jasper 3.6 et suivants (y compris 5.2), il existe une installation qui utilise plusieurs bandes de détails. Vous pouvez mettre les deux premiers blocs de Nom Identification du Patient Date de naissance. Cela vous donnera les résultats que vous voulez.
Ne se réfèrent pas à mon poste ici comme ceci est pour L'ancienne version 3.5 des rapports Jasper. Cette version ne vous permet pas d'utiliser plusieurs bandes et j'ai dû vivre avec une seule bande de détails. Ce n'est pas le cas avec 5.2. Vous pouvez vous amuser avec plusieurs bandes de détails. Profitez-en!
il suffit d'augmenter la largeur de votre volet de détails, que trié les problèmes d'alignement pour moi.