jasper reports - tabla - Informes de jaspe: alinea los campos de texto dinámico y sus etiquetas horizontalmente
pasar parametros a ireport desde java (4)
Estoy utilizando el informe 5.2 de Jasper, iReport 5.2 y estoy exportando el informe en formatos RTF y PDF.
En mi informe, quiero agregar algunos campos de texto junto con sus etiquetas (texto estático) alineadas horizontalmente como
Name: $F{name}
Age: $F{age}
Date of Birth: $F{dateOfBirth}
Pero no puedo alinearlos. Esto es lo que intenté
- Tipo de posición: flotante (para todos los campos y texto estático)
- Tipo de estiramiento: sin estirar (para todos los campos y texto estático)
- Estirar con desbordamiento: Verdadero (para todos los campos de texto dinámico)
La imagen muestra lo que obtengo y lo que quiero. Además, el contenido de mi campo de texto es dinámico, es decir, el tamaño del contenido puede variar.
He leído muchos foros pero no pude encontrar una solución, por favor sugerir.
Gracias
En Jasper Reports 3.6 y versiones posteriores (incluido 5.2), existe la posibilidad de usar múltiples bandas de detalles. Puede poner los dos primeros bloques de Nombre y el texto de "Sally Admison ..." en la primera banda. Debajo se encuentra su ID de paciente y el "1234567890Blah ..." y debajo, otra banda de detalles con la Fecha de nacimiento . Esto te dará los resultados que deseas.
No consulte mi publicación here ya que es para la versión 3.5 más antigua de Jasper Reports. Esa versión no le permite usar varias bandas y tuve que vivir con una sola banda de detalles. Este no es el caso con 5.2. Puedes divertirte con múltiples bandas de detalles. ¡Disfrutar!
Para completar la solución de Alex K: con Jaspersoft Studio, no olvide configurar la propiedad del "tipo de extensión" del texto estático en "relativo al objeto más alto".
Se puede hacer fácilmente con la ayuda del contenedor: el elemento Frame .
Debe colocar el Marco con Tipo de Posición como Flotante y colocarles staticText (label) y textField .
Para textField , he establecido el Tipo de posición como Flotante, Estirar con Overlfow como verdadero .
La muestra
El archivo 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="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>
El diseño del informe en iReport :
El resultado será (a través de la vista previa de iReport ):
Solo aumenta el ancho del panel de detalles, que ordenó los problemas de alineación para mí.