2012-05-02 16 views
18

Le mie esigenze mi vincolano ad avere più righe in una singola banda "Dettagli".Stiramento di una riga con overflow di dati con più righe in una singola banda

In questo momento sto avendo un campo di testo statico (che è evidenziato a colori) nella colonna più a sinistra e tre campi di dati di testo accanto ad esso.

Quello che voglio nel mio rapporto è che la banda di testo statica insieme alle tre bande dovrebbe allungarsi in altezza quando i dati in una delle tre bande traboccano, con la riga successiva "correttamente" visualizzata sotto la riga allungata. Con "correttamente" intendo gli elementi della riga successiva dovrebbero avere i loro valori "top" uguali e essere visualizzati nella stessa "riga".

Ho provato a impostare "Estendi con overflow" su "true" e "Position" su "float" ma il problema è che i dati della riga successiva non sono posizionati correttamente.

+1

Ho la risposta con me ma non posso postarla in questa casella di commento, limite di caratteri. Né posso rispondere coz Ho trovato la risposta dopo 8 ore di questa domanda e StackOverflow non mi consente. Qualcuno fa una domanda simile e io sarò in grado di rispondere. – Rachcha

+1

È il contrario: non è possibile rispondere entro le prime 8 ore. Fare un tentativo ora. – mdahlman

risposta

27

Ho trovato la risposta. La chiave della soluzione è raggruppare insieme gli elementi all'interno di una riga.

  1. Rimuovere tutte le etichette di testo statico. Usa invece i campi di testo, con il testo tra virgolette. Possono essere raggruppati con altri campi di testo e campi dati.
  2. Mettere tutti i campi di dati dopo il campo di testo quotato nello stesso gruppo del campo di testo quotato.
  3. Ora, fare lo stesso con tutte le righe che si desidera visualizzare. Gruppo separato per singola riga.

Selezionare tutti gli elementi di un gruppo, o di tutti gli elementi in tutte le gorups e fare questo:

  • Set "Posizione" a "galleggiare"
  • Set "Stretch Type" per "Relativo all'oggetto più alto"
  • Selezionare la casella di controllo "Stampa quando overflow di dettaglio".
  • Seleziona la casella di controllo "Stira con overflow".

Questo è tutto ciò che possiamo fare per far "allungare" le cose insieme.

Ora, la band dovrebbe allungarsi in modo dinamico con questi dettagli allungati. Basta andare sulle proprietà della band, impostare Split type su "Default" e split allowed su true. Questo ha fatto il trucco per me.

+0

Ho lo stesso problema che ho menzionato qui [collegamento] (http://stackoverflow.com/questions/18599795/jasper-reports-align-dynamic-text-fields-and-their-labels-horizontally). Nel mio caso, desidero modellare diversamente le etichette, ad es. etichette in grassetto. Se inserisco il testo statico insieme al campo come "Nome:" + F {nome}, allora come posso formattare l'etichetta separatamente. Inoltre, puoi mostrarci alcuni screenshot di come hai effettivamente raggruppato gli elementi? Grazie – Ali

+1

@Ali, Scusa, amico, non ho accesso a Jasper ora, ma credo che questo possa essere fatto attraverso la finestra delle proprietà. Deve essere molto facile, perché anche nel mio caso fino a qui avevo reso le etichette audaci. Non ho menzionato questo in questi post perché era troppo facile e ovvio. – Rachcha

3

Nel mio caso fare come da lei consigliato non ha funzionato. Ho dovuto modificare un po 'la soluzione: ho creato una "cornice" invece di raggruppare gli oggetti e inserire elementi precedentemente raggruppati in quella cornice. Ho impostato positionType = "Float" e stretchType = "No stretch" in tale frame e impostato stretchType = "RelativeToTallestObject" sui relativi elementi figlio - quindi tutto funziona.

+0

Grazie per la risposta. Se aggiungi la tua versione di JasperServer e altri dettagli importanti, sarebbe meglio per tutti qui. – Rachcha

+0

Naturalmente: Versione prodotto: Jaspersoft iReport Designer 5.5.0; Java: 1.7.0; Java HotSpot (TM) 64-Bit Server VM 21.0-b17; Sistema: Windows 7 ver. 6.1 lavorando su amd64; Cp1250; pl_PL (ireport); Immagino che sia tutto ... – murison

4

Nel caso qualcuno si presenti a questo problema e le risposte di cui sopra non funzionano. Suggerisco di controllare l'elemento radice del tuo xml. Se ha il seguente attributo, rimuovilo:

printOrder="Horizontal" 

Quindi le risposte sopra dovrebbero funzionare.

Spero che salvi qualcuno un giorno a cercare su Google le stesse cose.

Problemi correlati