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.
![]() |
---|
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 |
![]() |
---|
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