Share via


Ottimizzazione del layout del report per l'output HTML (Progettazione report di Visual Studio)

In questo argomento vengono illustrate le procedure di impaginazione e posizionamento di elementi di report HTML visualizzati nel controllo del server Web ReportViewer. Queste informazioni risultano utili se si desidera comprendere tutti gli aspetti della presentazione di un report in formato HTML. L'output HTML viene infatti rigenerato a ogni esecuzione del report. Un'estensione per il rendering incorporata determina il tipo di output HTML, incluso il posizionamento e lo stile degli elementi del report. L'estensione per il rendering HTML incorporata non è personalizzabile. Non è pertanto possibile modificare la codifica HTML da essa prodotta, né sostituire elementi di formattazione esistenti con una diversa implementazione.

Supporto HTML

I report HTML 4.0 sono conformi alle specifiche HTML 4.0 e CSS2 (Cascading Style Sheets livello 2) con alcune eccezioni. Tutto il codice HTML viene generato con la codifica UTF-8.

NoteNota

In questo argomento viene fatto riferimento a elementi di un report. Gli elementi del report fanno parte del linguaggio RDL (Report Definition Language), che offre una descrizione formale della struttura del report. Il linguaggio RDL è illustrato nella documentazione in linea di SQL Server 2005.

Posizionamento degli elementi

Per ottenere l'output di un report in formato HTML, il controllo crea una tabella in HTML nella quale verranno inseriti gli elementi di ciascun set di elementi del report. Gli elementi vengono posizionati nella tabella per mantenere il layout del report. Se il set di elementi del report contiene un solo elemento, il rendering viene eseguito senza generare la tabella. Tutte le posizioni e le dimensioni degli elementi sono espresse in millimetri (mm). Le differenze minori di 0,2 mm vengono equiparate a 0 mm.

In HTML non è supportata la sovrapposizione di elementi. Due elementi di un report sovrapposti vengono disposti in modo che non si sovrappongano. Per questo motivo è possibile che gli elementi vengano visualizzati nella pagina in posizioni diverse rispetto a quelle originali. In alcuni casi gli elementi possono non sembrare sovrapposti in uno strumento di progettazione, mentre in realtà lo sono. L'effettiva posizione degli elementi del report è determinata dalle proprietà relative a dimensioni e posizione. Per determinare la posizione degli elementi sovrapposti, l'estensione per il rendering valuta innanzitutto il valore dell'elemento Top, quindi il valore dell'elemento Left e infine il valore di ZIndex.

Impaginazione

L'estensione per il rendering HTML genera le pagine come pagine HTML distinte, dette anche "sezioni", procedendo come descritto di seguito:

  • Vengono generate interruzioni di pagina quando gli elementi seguenti vengono inseriti in un elenco con un'interruzione di pagina oppure direttamente nel corpo del report:

    • Rettangoli con PageBreakAtEnd o PageBreakAtStart impostata su True.

    • Elenchi o gruppi di elenco con PageBreakAtEnd o PageBreakAtStart impostata su True.

    • Tabelle o gruppi di tabella con PageBreakAtEnd o PageBreakAtStart impostata su True. Almeno una colonna della tabella deve essere visibile. Tutti i gruppi padre di un gruppo di tabella devono essere visibili.

    • Matrici o gruppi di riga con PageBreakAtEnd o PageBreakAtStart impostata su True.

    • Sottoreport con qualsiasi elemento sopra indicato.

  • Gli elementi che iniziano sopra un elemento contenente un'interruzione di pagina verranno visualizzati nella pagina prima dell'interruzione di pagina.

L'estensione per il rendering HTML tenta di generare tutte le interruzioni di pagina negli elementi come descritto in precedenza. È tuttavia possibile che, in presenza di due elementi con interruzioni di pagina posizionati uno accanto all'altro nella pagina, vengano generati risultati imprevisti. Lo stesso vale per gli elementi con interruzioni di pagina incluse in una tabella, una matrice o un rettangolo.

Qualsiasi elemento posizionato accanto a un elemento con un'interruzione di pagina verrà visualizzato nella stessa pagina se la parte superiore dell'elemento si trova più in alto rispetto alla parte inferiore dell'elemento con l'interruzione di pagina. Una casella di testo posizionata ad esempio direttamente a destra di una tabella con un'interruzione di pagina alla fine della tabella verrà visualizzata nella stessa pagina della tabella. Una casella di testo posta a destra della stessa tabella, ma sotto la parte inferiore della tabella, verrà visualizzata nella pagina successiva.

L'estensione per il rendering HTML inserirà, inoltre, interruzioni di pagina in corrispondenza dell'altezza approssimativa della pagina definita nelle proprietà del report. Lo scopo è principalmente quello di evitare che in presenza di un report di grandi dimensioni privo di interruzioni di pagina vengano generate pagine HTML estremamente grandi.

Stile

Gli elementi di stile vengono visualizzati come stili CSS per HTML 4.0. In HTML 4.0 per ogni elemento del report viene visualizzato un solo stile CSS. I nomi degli stili sono univoci nei report e nei sottoreport. Nella tabella seguente viene indicato il mapping tra attributi degli stili RDL e stili HTML.

Stile RDL Descrizione HTML 4.0

BorderColor

Colore del bordo.

border

BorderStyle

Stile del bordo.

border

BorderWidth

Spessore del bordo.

border

BackgroundColor

Colore dello sfondo.

background-color

BackgroundImage

URL dell'immagine di sfondo.

background-image

BackgroundRepeat

Motivo ripetuto dell'immagine di sfondo.

background-repeat

FontStyle

Stile del tipo di carattere (Normale, Corsivo).

font-style

FontSize

Dimensione del tipo di carattere.

font-family

FontWeight

Spessore carattere.

font-weight

TextDecoration

Effetto carattere (Sottolineato, Barrato).

text-decoration

TextAlign

Allineamento orizzontale del testo.

text-align

VerticalAlign

Allineamento verticale del testo.

vertical-align

Color

Colore del testo.

color

PaddingLeft

Dimensione del riempimento tra il bordo sinistro e il testo.

padding-left

PaddingRight

Dimensione del riempimento tra il bordo destro e il testo.

padding-right

PaddingTop

Dimensione del riempimento tra il bordo superiore e il testo.

padding-top

PaddingBottom

Dimensione del riempimento tra il bordo inferiore e il testo.

padding-bottom

LineHeight

Altezza delle righe di testo.

Line-height

Direction

Orientamento del testo da destra a sinistra o da sinistra a destra.

Attributo DIR

Language

Lingua del testo.

Attributo LANG

UnicodeBiDi

Ignora l'algoritmo bidirezionale.

unicode-bidi

NoteNota

Per i bordi con stile Double e spessore minore di 2 pt tramite l'estensione per il rendering HTML viene visualizzata una sola linea. Se lo spessore del bordo con stile Double è di almeno 2 pt, vengono visualizzate entrambe le linee.

Vedere anche

Concetti

Configurazione di ReportViewer per l'elaborazione remota
Creazione di file di definizione del report client (con estensione rdlc)
Controlli del server Web e Windows Form di ReportViewer