JasperReport - Text umbrechen, um Langtext im Textfeld anzuzeigen

Ich verwende Jasper Report als Berichterstellungstool in meiner Anwendung. Und ich frage mich, wie ich den langen Text umbrechen kann, indem ich ihn erweiterereportElement dynamisch in vertikaler Richtung (Erweiterung der Zeilengröße, nicht der Spaltenbreite). Oder gibt es eine Möglichkeit, dies zu erreichen? Mein Ansatz unten ist das Abschneiden des Langtextes "Ein sehr langer Name". Kannst du mir bitte ein paar Vorschläge geben?

Ausgabe :

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;

public class JrUtils {
    public static void showJrReport(List objectList, String fileName, String title, Map parameters) {
        try {

            File f = new File(fileName);
            JasperDesign jasperDesign = JRXmlLoader.load(f.getAbsolutePath());
            JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(objectList);
            JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, ds);
            JasperViewer jv = new JasperViewer(jasperPrint, false);
            jv.setTitle(title);
            jv.setVisible(true);

        } catch (Exception e) {
            e.printStackTrace();

        }
    }

    public static void main(String[] args) {
        List<Person> pList = new ArrayList<Person>();

        Person p1 = new Person();
        p1.setPersonName("Some Name ");
        p1.setAddress("Nepal - Address Fits Here");

        Person p2 = new Person();
        p2.setPersonName("Some very long name");
        p2.setAddress("Nepal - Address Fits Here");

        pList.add(p1);
        pList.add(p2);

        showJrReport(pList, "testReport.jrxml", "Test Report", new HashMap<Object, Object>());
    }

}

Jasper Report JrXML-Datei - testReport.jrxml:

<?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="report name" pageWidth="250" pageHeight="400" columnWidth="210" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
    <property name="ireport.zoom" value="2.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <field name="personName" class="java.lang.String"/>
    <field name="address" class="java.lang.String"/>
    <columnHeader>
        <band height="23" splitType="Stretch">
            <rectangle>
                <reportElement x="0" y="0" width="88" height="23"/>
            </rectangle>
            <rectangle>
                <reportElement x="88" y="0" width="122" height="23"/>
            </rectangle>
            <staticText>
                <reportElement x="0" y="0" width="88" height="23"/>
                <textElement textAlignment="Center" verticalAlignment="Middle"/>
                <text><![CDATA[Name]]></text>
            </staticText>
            <staticText>
                <reportElement x="88" y="0" width="122" height="23"/>
                <textElement textAlignment="Center" verticalAlignment="Middle"/>
                <text><![CDATA[Address]]></text>
            </staticText>
        </band>
    </columnHeader>
    <detail>
        <band height="21" splitType="Stretch">
            <rectangle>
                <reportElement x="0" y="0" width="88" height="21"/>
            </rectangle>
            <textField>
                <reportElement x="0" y="0" width="88" height="21"/>
                <textElement verticalAlignment="Middle"/>
                <textFieldExpression><![CDATA[$F{personName}]]></textFieldExpression>
            </textField>
            <rectangle>
                <reportElement x="88" y="0" width="122" height="21"/>
            </rectangle>
            <textField>
                <reportElement x="88" y="0" width="122" height="21"/>
                <textElement verticalAlignment="Middle"/>
                <textFieldExpression><![CDATA[$F{address}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage