(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).
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).
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).
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).
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"
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).
Im Anschluss wird das Diagramm per Drag&Drop auf die Zielzelle der Tablix gezogen (Abbildung 8).
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 10 zeigt die 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.
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).
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.