(dynamic height and dynamic width for all)

Die Eigenschaften Width und Height von Berichtselementen der MS Reporting Services können, anders als viele andere Eigenschaften, nicht durch einen Ausdruck manipuliert ,sondern nur statisch angegeben werden. Nur ein einziges Berichtselement, das Diagramm, besitzt die Eigenschaften DynamicHeight und DynamicWidth.

Sollte Sie beim Erstellen Ihres Berichtes diese Eigenschaften bei anderen Berichtselementen vermissen, aus Designgründen zum Beispiel, können Sie sich trotzdem der Eigenschaften DynamicHeight und DynamicWidth des Diagramms bedienen.

Im folgend Beispiel wird gezeigt, wie mit Hilfe der Eigenschaft DynamicHeight des Diagrammelementes, die Höhe einer Tabellenzeile parametergesteuert verändert wird.

Ausgang dieses Beispiels ist ein leerer Bericht mit einem Tablix-Element, das genau eine Zelle enthält (Abbildung 1).

Abbildung 1: Leerer Bericht mit Tablix-Element

Abbildung 1: Leerer Bericht mit Tablix-Element

Im nächsten Schritt werden diesem Tablix-Element auf der rechten Seite eine weitere Spalte hinzugefügt, die später ein Diagramm aufnimmt, und auf dem Detailbereich des Berichts ein neues Diagramm erstellt (Abbildung 2).

Abbildung 2: Bericht mit erweiterter Tablix und neuem Diagramm

Abbildung 2: Bericht mit erweiterter Tablix und neuem Diagramm

Die Diagrammelemente Titel, Legende und die Achsen werden aus dem Diagramm entfernt. Die Standard-Kategoriegruppe wird ebenfalls gelöscht und eine neuer Wert (Ausdruck: =1) erstellt (Abbildung 3).

Abbildung 3: bereinigtes Diagramm mit statischem Wert

Abbildung 3: bereinigtes Diagramm mit statischem Wert

In diesem Beispiel soll die Zeilenhöhe über einen Parameterwert gesteuert werden. Es muss also ein neuer Berichtsparameter erzeugt werden. Als Standartwert wird 20 (es ist natürlich jeder Wert ab 2,25pt möglich) vom Datentyp Float verwendet (Abbildungen 4f).

Abbildung 4: neuer Berichtsparameter

Abbildung 4: neuer Berichtsparameter

Abbildung 5: Standardwert 20

Abbildung 5: Standardwert 20

Jetzt muss der Diagrammeigenschaft DynamicHeight noch der Wert des neuen Parameters zugewiesen werden (Abbildung 6). Dazu wird folgender Ausdruck verwendet:

=CStr(Parameters!varHeight.Value) & "pt"
Abbildung 6: Diagrammeigenschaft DynamicHeight mit Ausdruck

Abbildung 6: Diagrammeigenschaft DynamicHeight mit Ausdruck

Bevor das Diagramm in die Tablix verschoben wird, sollten alle Rahmenformatierungen des Diagramms entfernt und die Sichtbarkeitseigenschaft der Diagrammfläche auf Ausblenden gesetzt werden (Abbildung 7).

Abbildung 7: Diagrammflächeneigenschaften: Sichtbarkeit: Ausblenden

Abbildung 7: Diagrammflächeneigenschaften: Sichtbarkeit: Ausblenden

Im Anschluss  wird das Diagramm per Drag&Drop auf die Zielzelle der Tablix gezogen (Abbildung 8).

Abbildung 8: Diagramm auf die Tablix ziehen

Abbildung 8: Diagramm auf die Tablix ziehen

Der Rahmen des Diagramms wird oben, unten und rechts genauso formatiert wie der Rahmen der linken Nachbarzelle. Die rechte Seite des Rahmens der linken Nachbarzelle wird entfernt. Die Breite des Diagramms wird auf den kleinsten Wert (2.25pt) eingestellt. Die Eigenschaft Padding/Right der linken Zelle wird auf 0pt gesetzt oder, wenn ein  größeres Padding gewollt ist, um 2.25pt reduziert (Abbildung 9).

Abbildung 9: Padding-Eigenschaft der Textbox

Abbildung 9: Padding-Eigenschaft der Textbox

Abbildung 10 zeigt die vollständige Anpassung der Tablix.

Abbildung 10: vollständige Anpassung der Tablix

Abbildung 10: vollständige Anpassung der Tablix

Der Bericht kann ausgeführt und die Höhe der Zeile in der Tablix via Parameter individuell eingestellt werden. Die folgende Abbildung zeigt den Bericht mit unterschiedlichen Zeilenhöhen.

Abbildung 11: Tablix mit initialer Zeilenhöhe 20pt, Zeilenhöhe 50pt und Zeilenhöhe 100pt

Abbildung 11: Tablix mit initialer Zeilenhöhe 20pt, Zeilenhöhe 50pt und Zeilenhöhe 100pt

Stellt man die Textboxeigenschaft Height auch auf den kleinsten Wert (2.25pt) und setzt die Eigenschaft CanGrow auf den Wert False, so ist auch das Verringern der Zeilenhöhe möglich (Abbildung 12).

Abbildung 12: Zeilenhöhe 13.5pt

Abbildung 12: Zeilenhöhe 13.5pt

Die Breite von Berichtselementen kann äquivalent angepasst werden. Und auch die Dynamisierung des Abstandes zwischen Berichtselementen ist so möglich. Denkbar wäre auch, ein Berichtselement neben einer Tablix zu positionieren und die Höhe des Elementes abhängig von der Zeilenzahl der Tablix einzustellen.