2010-07-30 11 views
9

Mi chiedo come vengono calcolate le altezze di riga in una Tablix SSRS.Come vengono calcolate le altezze di riga in una Tablix SSRS?

Ad esempio, ho dati per i quali le colonne visualizzate e raggruppate per colonna sono abbastanza vicine da essere identiche. Tuttavia, alcune righe per qualche motivo sconosciuto hanno un'altezza enorme con un sacco di spazio. Se si ispeziona l'output HTML, è possibile vedere che a queste righe sono stati applicati rowspan e height.

Questo non è un problema di involucro, come posso fare un IIf sulla voce id di quella riga e semplicemente visualizzare "a" invece dei valori effettivi e ancora ottenere altezza anomala. Ho anche disabilitato CanGrow su tutte le caselle di testo/file ecc. E ho impostato le altezze manuali ma il problema persiste.

Quali sono le cause di questo comportamento e in che modo vengono generalmente calcolate le altezze di riga?

+0

Qual è l'esatta versione di SQL Server che si esegue? –

+0

Solo curioso ... Come viene visualizzato nel visualizzatore di report WindowsForms? O come viene visualizzato quando esportato come PDF? Verificare inoltre che non siano stati applicati collegamenti a proprietà diverse da quelle che si intendevano (guarda RDL) i report consentono il binding di molti aspetti del report non solo i valori che si vedono ... – MikeG

+0

Risposte in ritardo scusate ragazzi - @alison - 2008, @MikeG - problema identico, non ho visto nessun altro binding. –

risposta

6

Ci sono un paio di possibilità per ciò che sta accadendo on:

  1. SQL Server 2008 (completamente aggiornato) presenta un bug in tale riempimento ca A volte può essere aggiunto per determinati tipi di dati. Dai un'occhiata a this page per maggiori dettagli. Il collegamento non copre esattamente il tuo problema, ma una persona di supporto di Microsoft afferma che si tratta di un bug e molto probabilmente si estende anche al tuo problema. Apparentemente, l'aggiornamento a SQL Server 2008 R2 risolve il problema.
  2. Supponendo che non si ha intenzione di aggiornare SQL Server, ci sono un paio di cose per voi per controllare:
    • Assicurarsi che l'altezza delle righe non è impostata ad un'altezza inferiore rispetto al valore predefinito. mantenere l'altezza almeno grande come quella predefinita.
    • Regolazione delle impostazioni di riempimento in modo che il riempimento superiore e inferiore sia impostato su zero (come altri hanno già detto) su Riempimento: 2,2, 0, 0
    • Dai uno sguardo allo this page for a more in-depth description. L'articolo ha alcuni anni ma le informazioni probabilmente si applicano ancora.
+0

Sì. Ho visto lo stesso bug che è quello su cui ho basato la mia precedente risposta. –

+0

Questa è la risposta più completa qui. Si spera che dovrebbe aiutare gli altri. Ho scoperto che dopo aver ricreato un sacco di tablix e aver cambiato la natura di raggruppamento che * appare * non ci sono più (anche se i dati potrebbero essere diversi). Tuttavia, non sono ancora sicuro del perché e il rdl non sembra rivelare nulla di chiave. Le soluzioni proposte sono state comunque apprezzate. –

+0

+1 per rimuovere il padding. Pensavo di aver provato tutto ... e ora sembra molto ovvio in retrospettiva. : P –

1

Una cosa da controllare è il tipo di dati. I tipi di dati precedenti hanno aggiunto il riempimento. Più recente (varchar, nvarchar, ecc.) Sarebbe meglio, se è quello che sta succedendo.

+0

Sono tutti varchar ma solo una delle colonne varchars causa il riempimento. Apprezzo comunque il tuo aiuto, quindi grazie! –

4

Provare a impostare le seguenti proprietà per le righe e vedere se aiuta.

  • Imbottitura: 2pt, 2pt, 0pt, 0pt
  • VerticalAlign: Medio
  • Espandibile: False
  • CanShrink: False
+0

Grazie ho provato quelli (sembra essere una risposta comune) ma senza fortuna. Ancora apprezzato comunque. –

+1

Per me la proprietà colpevole è stata che CanGrow si sarebbe avverato. Grazie per la tua risposta! Questo mi stava facendo impazzire. – TWood

1

Questo è difficile. Tutte le risposte finora sono corrette, ma non menzionano l'unica cosa che può indurre uno sviluppatore ad assumere che l'altezza della riga non possa essere regolata. Per ricapitolare ...

  • Evidenziare la riga Tablix su cui si desidera modificare l'altezza.
  • Modificare le proprietà della riga CanGrow = False, CanShrink = True
  • Le modifiche a Padding si riferiscono allo spazio sopra (in alto) e in basso (in basso) i valori della cella all'interno della cella.
  • Ecco la cosa nuova: se il Tablix è adiacente a un altro controllo, si bloccherà sull'altezza dei controlli e non ti permetterà di ridurre la riga con la freccia su/giù dell'intestazione di riga. Quindi è necessario trascinare l'intera Tablix su uno spazio bianco aperto senza altri controlli adiacenti. Quindi l'altezza della fila non si blocca e puoi posizionarla esattamente dove ti serve e rimarrà ferma. Quindi sposta con cautela la Tablix nella sua posizione permanente.

È il blocco dei controlli adiacenti che porta gli sviluppatori a concludere che l'altezza non può essere regolata.

0

Ho trovato un'altra cosa da considerare. Quando si seleziona un campo lungo che si desidera raggruppare e quindi ridurre la dimensione orizzontale, il campo verrà visualizzato verticalmente. Se una lunghezza del campo supera la dimensione impostata per la lunghezza verticale totale del gruppo, l'ultima riga aumenterà per compensare. Il lato sinistro dell'immagine mostra lo spazio aggiuntivo per l'ultima riga. Una volta che ho regolato la lunghezza del campo a meno dell'altezza totale del gruppo, l'ultima riga appare normale. lengths of rows image

0

GOT ENORME problemi con le righe show/hide e CanShrink/CanGrow non funzionano, quindi ho scoperto che c'era un'espressione "Row visibillity", che mostra/nasconde l'intera riga dipendente da un valore Textbox.

(click destro sul tablixrow e scegliere "visibilità Row") Show/Hide row visibility

Acclamazioni

Problemi correlati