2012-05-02 45 views
18

Mis requisitos me obligan a tener múltiples filas en una sola banda de "Detalles".Extender una fila con desbordamiento de datos mientras tiene múltiples filas en una sola banda

Ahora tengo un campo de texto estático (que se resalta en color) en la columna más a la izquierda y tres campos de datos de texto junto a él.

Lo que quiero en mi informe es que la banda de texto estática junto con las tres bandas debe estirar en altura cuando los datos en cualquiera de las tres bandas se desbordan, con la siguiente fila "correctamente" debajo de la fila estirada. Con "correctamente" me refiero a que los elementos de la siguiente fila deben tener sus valores "superiores" iguales y se deben mostrar en la misma "fila".

Intenté configurar el indicador "Estirar con desbordamiento" en "verdadero" y "Posición" en "flotar", pero el problema es que los datos de la fila siguiente no están posicionados correctamente.

+1

Tengo la respuesta conmigo pero no puedo publicarla en este cuadro de comentarios, límite de caracteres. Tampoco puedo responderlo porque encontré la respuesta después de 8 horas de hacer esta pregunta y StackOverflow no me lo permite. Alguien haga una pregunta similar y podré responderla. – Rachcha

+1

Es al revés: no puede responder dentro de las primeras 8 horas. Pruébalo ahora. – mdahlman

Respuesta

27

He encontrado la respuesta. La clave de la solución es agrupar los elementos dentro de una fila.

  1. Elimina todas las etiquetas de texto estáticas. Use campos de texto en su lugar, con el texto entre comillas. Se pueden agrupar con otros campos de texto y campos de datos.
  2. Coloque todos los campos de datos después del campo de texto entre comillas en el mismo grupo que el campo de texto entre comillas.
  3. Ahora, haga lo mismo con todas las filas que desea mostrar. Grupo separado para fila individual.

Seleccionar todos los elementos en un grupo, o, todos los elementos en todos los gorups y hacer esto:

  • Set "Posición" a "flotar"
  • Ajuste "Tipo estiramiento" de "Relativo al objeto más alto"
  • Marque la casilla de verificación "Imprimir cuando se desborda el detalle".
  • Marque la casilla "Estirar con desbordamiento".

Eso es todo lo que podemos hacer para que las cosas "se estiren" juntas.

Ahora, la banda tendría que estirar dinámicamente con estos detalles estirados. Simplemente vaya a las propiedades de la banda, establezca el tipo Split en "Predeterminado" y divida permitido en verdadero. Esto hizo el truco para mí.

+0

Tengo el mismo problema que mencioné aquí [enlace] (http://stackoverflow.com/questions/18599795/jasper-reports-align-dynamic-text-fields-and-their-labels-horizontally). En mi caso, quiero darle un estilo diferente a las etiquetas, p. etiquetas en negrita. Si pongo texto estático junto con el campo como "Nombre:" + F {nombre}, ¿cómo puedo formatear la etiqueta por separado? Además, ¿puede mostrarnos algunas capturas de pantalla de cómo se agruparon los elementos? Gracias – Ali

+1

@ Ali, lo siento, amigo, no tengo acceso a Jasper ahora, pero creo que esto se puede hacer a través del cuadro de propiedades. Tiene que ser muy fácil, ya que incluso en mi caso hasta aquí, había hecho las etiquetas en negrita. No mencioné eso en estas publicaciones porque era demasiado fácil y obvio. – Rachcha

3

En mi caso, hacer lo que me aconsejó no funcionó. Tuve que modificar tu solución un poco: hice un "marco" en lugar de agrupar los objetos, y coloqué los elementos previamente agrupados en ese marco. Configuré positionType = "Float" y stretchType = "Sin estirar" en ese marco, y configuré stretchType = "RelativeToTallestObject" en sus elementos secundarios - entonces todo funciona.

+0

Gracias por la respuesta. Si agrega su versión de JasperServer y otros detalles importantes, sería mejor para todos aquí. – Rachcha

+0

Por supuesto: Versión del producto: Jaspersoft iReport Designer 5.5.0; Java: 1.7.0; Java HotSpot (TM) Servidor de 64 bits VM 21.0-b17; Sistema: Windows 7 ver. 6.1 trabajando en amd64; Cp1250; pl_PL (ireport); Supongo que eso es todo ... – murison

4

En caso de que alguien responda a este problema y las respuestas anteriores no funcionen. Sugiero verificar el elemento raíz de tu xml. Si tiene el siguiente atributo, elimínelo:

printOrder="Horizontal" 

Las respuestas anteriores deberían funcionar.

Espero que salve a alguien por googlear las mismas cosas.

Cuestiones relacionadas