valores tutorial por pasar parametros parametro lista instalar español desde descargar condiciones java jasper-reports

java - pasar - ireport tutorial pdf español



JasperReport: ajuste el texto para mostrar el texto largo en el campo de texto (2)

También puede hacer que el truncamiento sea elegante utilizando las siguientes propiedades establecidas en el campo de texto. Mira esta sample

net.sf.jasperreports.text.truncate.at.char net.sf.jasperreports.text.truncate.suffix net.sf.jasperreports.print.keep.full.text

Estoy utilizando el informe jasper como herramienta de informes en mi aplicación. Y me pregunto cómo puedo ajustar el texto largo expandiendo dinámicamente el elemento de reportElement en dirección vertical (expandiendo el tamaño de la fila, no el ancho de la columna). O ¿Hay alguna manera de lograr esto? Mi enfoque a continuación está truncando el texto largo " Un nombre muy largo ". ¿Puedes por favor darme algunas sugerencias?

Salida:

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>()); } }

Archivo JrXML de Jasper Report - 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>


Encontré la respuesta yo mismo:

Hice una investigación adicional sobre las propiedades de los componentes textField y rectangle . Y encontré que necesito configurar las siguientes propiedades.

Para rectángulo:

<rectangle> <reportElement stretchType="RelativeToBandHeight" ... /> </rectangle>

Para textField:

<textField isStretchWithOverflow="true"> ... </textField>

Salida como se esperaba:

La sección <detail> ...</detail> después de la corrección:

<detail> <band height="21" splitType="Stretch"> <rectangle> <reportElement stretchType="RelativeToBandHeight" x="0" y="0" width="88" height="21"/> </rectangle> <textField isStretchWithOverflow="true"> <reportElement x="2" y="0" width="84" height="21"/> <textElement verticalAlignment="Middle"/> <textFieldExpression><![CDATA[$F{personName}]]></textFieldExpression> </textField> <rectangle> <reportElement stretchType="RelativeToBandHeight" x="88" y="0" width="122" height="21"/> </rectangle> <textField isStretchWithOverflow="true"> <reportElement x="90" y="0" width="118" height="21"/> <textElement verticalAlignment="Middle"/> <textFieldExpression><![CDATA[$F{address}]]></textFieldExpression> </textField> </band> </detail>

ACTUALIZAR

También puede establecer la propiedad net.sf.jasperreports.print.keep.full.text en true para lograrlo en todos sus informes.