Labels
Wichtige Einstellungen für Labels und Text-Shrinking
Labels (und Tabellenzellen) bieten viele verschiedenen Kontrollschrauben für das Verhalten von Text und der Größe des Labels selbst auf Basis dessen an. Die wichtigsten Grundregeln werden hier beschrieben.
CanShrink
CanShrink ist eines der zentralen Properties im control resizing. Wenn es aktiviert ist, passt sich die Größe des Controls beim Druck der Größe des Textes innerhalb des Controls an. Wenn alle Controls über und unter dem schrumpfenden Control ebenfalls CanShrink aktiviert haben, kann ein gesamtes Band drastisch verkleinert werden:
Design:
Preview:
Das funktioniert allerdings nur, solange auch alle betroffenen Controls in die Platzberechnungen des Drucks miteinbezogen werden.
Visible = false entfernt ein Control aber aus dieser Berechnung!
Der im Designer beanspruchte Platz des unsichtbaren Controls wird somit als leerer Platz gewertet und kann Lücken zur Folge haben:
Design:
Preview:
(Die blauen Tabellenzellen schrumpfen immer noch ordnungsgemäß, weshalb nur der Designer-Platz der grauen Zellen mit Visible = false übrig bleibt) Sobald der Platz wieder in Berechnungen einfließt, wird er auch wieder geschrumpft – zum Beispiel, wenn nur eine Zelle in der Zeile unsichtbar ist:
Design:
Preview:
Aus diesem Grund ist es empfehlenswert, bei Feldern, die unter bestimmten Bedingungen nicht angezeigt werden sollen, per Expression den Text zu leeren, statt das Visible-Property zu steuern.
CanGrow
CanGrow funktioniert, wie zu erwarten, als Gegenstück zu CanShrink. Wenn ein Text nicht vollständig ins Control passt, aus Gründen der Textlänge oder Schriftgröße, wächst es vertikal. Controls unter dem Label werden weiter nach unten geschoben.
ProcessNullValues
ProcessNullValues bestimmt, wie ein Label mit null als Textwert umgeht. Standardmäßig steht dies auf „Leave“, was das Control einfach leer stehen lässt, welches dann als Lücke auf dem Report erscheint. Wenn man leere Labels verstecken möchte, muss ProcessNullValues.SuppressAndShrink eingestellt sein, oder über CanShrink und expression-abhängiges Text-Leeren gearbeitet werden.
Multiline
Bestimmt, ob Zeilenumbrüche im Text auch als Zeilenumbrüche interpretiert und angezeigt werden. Bestimmt außerdem, ob WordWrap überhaupt umbrechen darf.
WordWrap
WordWrap setzt automatische Zeilenumbrüche, sobald Text den Rand des Controls erreicht. Es garantiert nicht, dass auch der gesamte Text dargestellt wird – dafür muss die Höhe des Controls zur Darstellung ausreichen.
AutoWidth
Analog zu CanGrow, allerdings für die Breite des Controls. Wenn Text den Rand des Controls erreicht, wird der Text über den Seitenrand des Controls hinaus weitergeschrieben. Andere Controls werden ignoriert und übermalt. Falls AutoWidth und WordWrap gleichzeitig aktiviert sind, gewinnt WordWrap. Ein aktiviertes WordWrap verhindert seitliches Wachsen des Controls.