Freigeben über


Optimieren des Berichtslayouts für die HTML-Ausgabe (Visual Studio-Berichts-Designer)

In diesem Thema wird die Paginierung und die Positionierung von Berichtselementen in HTML-Berichten beschrieben, die im ReportViewer-Webserver-Steuerelement angezeigt werden. Diese Informationen dienen zum besseren Verständnis der HTML-Darstellung eines Berichts. Die HTML-Ausgabe wird bei jeder Ausführung des Berichts neu generiert. Eine integrierte Renderingerweiterung bestimmt die HTML-Ausgabe. Dies schließt auch die Positionierung und Formatierung von Berichtselementen ein. Die integrierte HTML-Renderingerweiterung kann nicht angepasst werden. Es ist nicht möglich, die generierten HTML-Tags zu ändern oder vorhandene Formatelemente durch eine andere Implementierung zu ersetzen.

HTML-Unterstützung

HTML 4.0-Berichte entsprechen, von einigen Ausnahmen abgesehen, den Spezifikationen für HTML 4.0 und CSS2 (Cascading Stylesheets, Ebene 2). HTML wird immer mit UTF-8-Codierung erstellt.

NoteHinweis

In diesem Thema wird auf Elemente eines Berichts Bezug genommen. Berichtselemente sind Teil von RDL (Report Definition Language). RDL stellt eine formale Beschreibung der Berichtsstruktur bereit. RDL ist in der SQL Server 2005-Onlinedokumentation dokumentiert.

Positionieren von Elementen

Um einen Bericht in HTML auszugeben, erstellt das Steuerelement eine Tabelle in HTML, die die Elemente in jedem Satz aus Berichtselementen aufnimmt. Die Elemente werden innerhalb der Tabelle positioniert, damit das Layout des Berichts beibehalten wird. Falls der Satz aus Berichtselementen nur ein Berichtselement enthält, wird das Berichtselement ohne die Tabelle gerendert. Alle Positionen und Größen der Elemente werden in Millimetern (mm) angegeben. Abweichungen bei Größe und Position von weniger als 0,2 mm werden als 0 mm gerendert.

Überlappende Elemente werden von HTML nicht unterstützt. Falls sich ein Berichtselement mit einem anderen Element überlappt, werden die Elemente ohne Überlappung angeordnet. Dies kann dazu führen, dass Elemente auf der Seite an einer anderen Position als vorgesehen angezeigt werden. In einigen Fällen überlappen sich Elemente in einem Designtool scheinbar nicht, obwohl dies tatsächlich der Fall ist. Die Größen- und Positionseigenschaften für die Berichtselemente zeigen ihre tatsächliche Position. Um die Position von sich überlappenden Elementen zu bestimmen, verwendet die Renderingerweiterung zuerst den Wert des Top-Elements für die Elemente, danach den Wert des Left-Elements und schließlich den Wert des ZIndex-Elements.

Paginierung

Die HTML-Renderingerweiterung rendert Seiten wie folgt als separate HTML-Seiten, die auch als "Abschnitte" bezeichnet werden:

  • Seitenumbrüche werden gerendert, wenn die folgenden Elemente in einer Liste mit einem Seitenumbruch oder direkt im Hauptteil des Berichts positioniert werden:

    • Rechtecke mit PageBreakAtEnd oder PageBreakAtStart festgelegt auf True.

    • Listen oder Listengruppen mit PageBreakAtEnd oder PageBreakAtStart festgelegt auf True.

    • Tabellen oder Tabellengruppen mit PageBreakAtEnd oder PageBreakAtStart festgelegt auf True. Die Tabelle muss mindestens eine sichtbare Spalte aufweisen. Alle übergeordneten Gruppen für eine Tabellengruppe müssen sichtbar sein.

    • Matrizen oder Zeilengruppen mit PageBreakAtEnd oder PageBreakAtStart festgelegt auf True.

    • Unterberichte mit einem der obigen Elemente.

  • Elemente, die über einem Element beginnen, das einen Seitenumbruch enthält, werden auf der Seite vor dem Seitenumbruch angezeigt.

Die HTML-Renderingerweiterung versucht, alle Seitenumbrüche in Elementen wie zuvor beschrieben zu rendern. Zwei Elemente mit Seitenumbrüchen, die nebeneinander auf der Seite angeordnet sind, können jedoch zu unvorhersehbaren Ergebnissen führen. Elemente mit Seitenumbrüchen, die in einer Tabelle, einer Matrix oder einem Rechteck enthalten sind, können ebenfalls zu unvorhersehbaren Ergebnissen führen.

Ein Element, das sich neben einem Element mit einem Seitenumbruch befindet, wird auf derselben Seite gerendert, wenn sich die obere Kante des Elements über der unteren Kante des Elements mit dem Seitenumbruch befindet. Beispielsweise wird ein Textfeld auf derselben Seite wie die Tabelle angezeigt, wenn das Textfeld direkt rechts von einer Tabelle platziert wird, die einen Seitenumbruch am Ende der Tabelle enthält. Ein Textfeld, das rechts und unterhalb von der unteren Kante derselben Tabelle platziert wird, wird auf der nächsten Seite angezeigt.

Die HTML-Renderingerweiterung fügt außerdem Seitenumbrüche etwa in der Seitenhöhe ein, die in den Berichtseigenschaften definiert ist. Dadurch soll in erster Linie verhindert werden, dass ein umfangreicher Bericht ohne Seitenumbrüche beim Rendern extrem große HTML-Seiten generiert.

Style

Formatelemente werden als CSS-Formate für HTML 4.0 gerendert. Für HTML 4.0 wird für jedes Berichtselement ein einzelnes CSS-Format gerendert. Die Namen der Formate sind für die Berichte und Unterberichte eindeutig. In der folgenden Tabelle ist beschrieben, wie RDL-Formatattribute HTML-Formaten zugeordnet sind.

RDL-Format Beschreibung HTML 4.0

BorderColor

Die Farbe des Rahmens.

border

BorderStyle

Die Rahmenart.

border

BorderWidth

Die Rahmenbreite.

border

BackgroundColor

Die Hintergrundfarbe.

background-color

BackgroundImage

Die URL des Hintergrundbilds.

background-image

BackgroundRepeat

Das Wiederholungsmuster des Hintergrundbilds.

background-repeat

FontStyle

Der Schriftschnitt (normal, kursiv).

font-style

FontSize

Der Schriftgrad.

font-family

FontWeight

Die Schriftbreite.

font-weight

TextDecoration

Textdekoration (unterstrichen, durchgestrichen).

text-decoration

TextAlign

Die horizontale Textausrichtung.

text-align

VerticalAlign

Die vertikale Textausrichtung.

vertical-align

Color

Die Textfarbe.

color

PaddingLeft

Die Größe des Textabstands zwischen dem linken Rahmen und dem Text.

padding-left

PaddingRight

Die Größe des Textabstands zwischen dem rechten Rahmen und dem Text.

padding-right

PaddingTop

Die Größe des Textabstands zwischen dem oberen Rahmen und dem Text.

padding-top

PaddingBottom

Die Größe des Textabstands zwischen dem unteren Rahmen und dem Text.

padding-bottom

LineHeight

Die Höhe der Textzeilen.

Line-height

Direction

Von rechts nach links bzw. von links nach rechts.

DIR-Attribut

Language

Die Sprache des Texts.

LANG-Attribut

UnicodeBiDi

Überschreiben des bidirektionalen Algorithmus.

unicode-bidi

NoteHinweis

Rahmen mit der Rahmenart Double und einer Rahmenbreite von weniger als 2 pt werden von der HTML-Renderingerweiterung als einzelne Linie gerendert. Für einen Rahmen mit der Rahmenart Double ist eine Rahmenbreite von mindestens 2 pt erforderlich, damit beide Linien angezeigt werden.

Siehe auch

Konzepte

Konfigurieren von ReportViewer für die Remoteverarbeitung
Erstellen von Client-Berichtsdefinitionsdateien (RDLC)
ReportViewer-Webserver und -Windows Forms-Steuerelemente