PANTHEON™ manual

 Categories
 PANTHEON Hilfe - Willkommen
[Reduzieren]PANTHEON
 [Reduzieren]Leitfäden für PANTHEON
  [Reduzieren]Leitfaden für PANTHEON
   [Reduzieren] Einstellungen
    [Vergrößern]Fächer
    [Vergrößern]Artikel
    [Vergrößern]POS
    [Vergrößern]Herstellung
    [Vergrößern]Personal
     Kalender
    [Vergrößern]Finanzen
    [Vergrößern]Zoll
    [Reduzieren]Programm
     [Vergrößern]Dokumenttypen
     [Reduzieren]Berichte in PANTHEON
       Einstellungen im Administrationspanel
      [Vergrößern]Berichte registrieren
       Druckvorschau
      [Vergrößern]Bericht Designer
      [Reduzieren]Berichte erstellen
        Berichtsobjekte
        "Hallo, Welt!" Bericht Beispiel
        Grundlegende Arbeit mit Objekten
        Das "Text" Objekt
        Ausdrücke mit Hilfe des "Text"-Objekts anzeigen
        Bands
        "Betreffsliste" Bericht: Aliase und Variablen
        "Bild" Objekt
        Dehnen von Objekten, Seitenumbrüche und Verschieben von Objekten
        Daten in Form einer Tabelle anzeigen
        Etiketten drucken
        Kind Bands
        Bericht mit zwei Datenebenen (Master-Detail)
        Header und Fußzeilen eines Datenbands
        Mehrseitiger Bericht
      [Vergrößern]Gruppen und Aggregate
      [Vergrößern]Formatierung und Hervorhebung
       Verschachtelte Berichte (Unterberichte)
      [Vergrößern]Details zu Druckausgaben in PANTHEON
      [Vergrößern]Script
       Bericht Design Überlegungen
      Dokumenttexte
      Liefermöglichkeiten
     [Vergrößern]Kundenkarten
     [Vergrößern]Administrationspanel
     [Vergrößern]Dashboard-Komponenten
      Dashboard-Berichte
      Ad-hoc-Analyse
     [Vergrößern]ARES
      SQL-Editor
    [Vergrößern]Dokumentation
    [Vergrößern]Benutzer ändern
   [Vergrößern]Bestellungen
   [Vergrößern]Waren
   [Vergrößern]Herstellung
   [Vergrößern]POS
   [Vergrößern]Service
   [Vergrößern]Finanzen
   [Vergrößern]Personal
   [Vergrößern]Analytik
   [Vergrößern]Desktop
   [Vergrößern]Hilfe
   [Vergrößern]Nachrichten und Warnungen
   [Vergrößern]Zusätzliche Programme
   [Vergrößern]Alte Produkte
  [Vergrößern]Leitfaden für PANTHEON Einzelhandel
  [Vergrößern]Leitfaden für PANTHEON Vet
  [Vergrößern]Leitfaden für PANTHEON Farming
 [Vergrößern]Benutzerhandbücher für PANTHEON
[Vergrößern]PANTHEON Web
[Vergrößern]PANTHEON Granulate
[Vergrößern]Benutzerseite

Load Time: 753,9359 ms
print   |
Label

Streachable objects

Stretching Objects

Betrachten wir einen Fall, in dem wir mehrzeiligen Text unterschiedlicher Länge haben. Das "Text"-Objekt, das die Informationen aus diesem Feld anzeigt, hat eine feste Größe. Deshalb erscheinen einige Zeilen abgeschnitten. Was kann man dagegen tun?

clip0155

Natürlich könnte entweder die Größe des Objekts erhöht oder die Schriftgröße verringert werden. Dies könnte jedoch zu Platzverschwendung auf der Ausgabeseite führen, da einige Fische lange Beschreibungen haben, während andere kurze haben. FastReport hat einige Eigenschaften, die uns helfen, dieses Problem zu lösen.

Diese Eigenschaften ermöglichen es einem Band oder einem Objekt, seine Höhe automatisch anzupassen, um den notwendigen Platz für einen bestimmten Datensatz (Zeile) zu schaffen. Um dies zu erreichen, müssen wir nur die „Stretch“-Eigenschaft sowohl des Bands als auch des „Text“-Objekts aktivieren. Das ist jedoch noch nicht alles, denn ein „Text“-Objekt mit längerem Text sollte in der Lage sein, sich selbst zu dehnen, daher müssen wir auch einige seiner anderen Eigenschaften einstellen.

Das „Text“-Objekt kann automatisch seine Höhe und Breite anpassen, um Platz für seinen Inhalt zu schaffen. „AutoWidth“ und „StretchMode“ können dafür verwendet werden. „AutoWidth“ ermöglicht es dem „Text“-Objekt, seine Breite zu variieren, sodass alle Zeilen Platz schaffen, ohne Wörter zu trennen. Dieser Modus ist nützlich, wenn ein Objekt eine einzelne Textzeile hat und wenn das Wachstum nach rechts andere Objekte nicht beeinflusst. Die „Stretch“-Eigenschaft ermöglicht es der Höhe des Objekts, zu wachsen, um den Text unterzubringen, ohne die Breite des Objekts zu ändern. "Stretch" hat mehrere Modi, die im Objektinspektor ausgewählt werden können:

smDontStretch – das Objekt nicht dehnen (der Standard)

smActualHeight – das Objekt dehnen, sodass Platz für den gesamten Text geschaffen wird

smMaxHeight – das Objekt dehnen, sodass sein Boden den Boden des Bands erreicht, in dem es platziert ist - wir werden uns diesen Modus später ansehen

Hier sind wir an der „Stretch“-Eigenschaft des „Text“-Objekts interessiert. Aktivieren Sie es über das Kontextmenü des Objekts oder indem Sie "StretchMode" auf smActualHeight setzen. Aktivieren Sie auch die „Stretch“-Eigenschaft des Bands. Vorschau des Berichts und stellen Sie sicher, dass jetzt alles wie erwartet ist.

Um Text in eine neue Zeile zu fließen, verwenden wir die Eigenschaft "Word Wrap", die aktiviert sein muss, was bereits der Standardwert ist. Diese Eigenschaft ist sinnvoll, wenn die "AutoWidth"-Eigenschaft aktiviert ist.  

Wie Sie sehen können, füllt FastReport beim Erstellen des Berichts Objekte mit Daten und dehnt sie, wenn „Stretch“ aktiviert ist. Es berechnet dann die Höhe des Bands, sodass jedes Objekt genügend Platz hat. Wenn die „Stretch“-Eigenschaft des Bands deaktiviert ist, wird diese Höhenanpassung nicht durchgeführt und das Band wird in der im Design festgelegten Höhe angezeigt. In diesem Fall würden wir sehen, dass die Objekte mit längerem Text weiterhin gedehnt werden, das Band jedoch nicht, was zu Überlagerungen von Text führt, da das folgende Band sofort nach dem vorherigen angezeigt wird.

Seitenumbrüche

Wenn ein Bericht erstellt wird, füllt die FastReport-Engine den weißen Raum der Seite mit den Bändern. Nach der Anzeige jedes Bands verschiebt sich die aktuelle Position nach unten. Wenn FastReport feststellt, dass nicht genügend weißer Raum vorhanden ist, um das nächste Band anzuzeigen (seine Höhe ist größer als der verbleibende weiße Raum auf der Seite), erstellt FastReport eine neue Seite und fährt von dort mit der Anzeige des Bands fort. Diese Sequenz wiederholt sich so oft, wie es Datensätze im Datensatz gibt.

Unser Bericht enthält ein Objekt mit großem Text, weshalb die Bandhöhe ziemlich groß ist. Darüber hinaus wird, wenn ein großes Band nicht genügend Platz auf einer Seite hat, es auf die nächste verschoben, wobei am unteren Rand der Seite viel ungenutzter Platz bleibt, wie hier gezeigt:

_img94

Um Papierverschwendung zu begrenzen, nutzen wir eine FastReport-Funktion, die Absätze aus dem Inhalt eines Bands erstellt. Alles, was wir tun müssen, ist, die „AllowSplit“-Eigenschaft des „First level data“-Bands zu aktivieren. Sie werden sehen, dass jetzt weniger weißer Raum am unteren Rand der Berichtseiten vorhanden ist:

_img95

Wie funktioniert diese Bandteilung? Es gibt einige Objekte in FastReport, die diese Funktion unterstützen. Sie sind die „Text“, „Line“ und „RichEdit“-Objekte. Sie können „geteilt“ werden, während andere Objekte dies nicht können. Wenn FastReport ein Band teilen muss, geschieht dies auf folgende Weise:

- zeigt die nicht teilbaren Objekte an, die Platz im weißen Raum haben

- zeigt teilweise teilbare Objekte an („Text“-Objekte werden so angezeigt, dass alle Zeilen Platz im Objekt haben)

- erstellt eine neue Seite und fährt mit der Anzeige der Objekte im Band fort

- wenn ein nicht teilbares Objekt keinen Platz im weißen Raum hat, wird es auf die nächste Seite verschoben; gleichzeitig werden alle Objekte, die sich darunter befinden, nach Bedarf verschoben

- der Prozess wird fortgesetzt, bis alle Bandobjekte vollständig angezeigt werden.

Der Teilungsalgorithmus wird klarer, wenn wir uns dieses Beispiel ansehen:

_img96

Es sollte beachtet werden, dass der Teilungsalgorithmus nicht perfekt ist und die endgültige Ausgabe möglicherweise nicht ganz wie erwartet ist. Sie sollten diese Option sehr vorsichtig verwenden, wenn Objekte im geteilten Band auf komplizierte Weise gruppiert sind und/oder ihre Schriftgrößen unterschiedlich sind. Hier ist ein Beispiel dafür, was generiert werden könnte:

clip0020

Shifting Objects

Schauen wir uns die verschiedenen Modi des Verschiebens an. Zu diesem Zweck verwenden wir die „ShiftMode“-Eigenschaft. Schauen wir uns den 'smWhenOverlapped'​ Verschiebemodus an. In diesem Modus erfolgt die Objektverschiebung, wenn das Objekt darüber sich dehnt und das Objekt darunter überlappt. Hier sind zwei Szenarien:

1: Die drei oberen Objekte haben „Stretch“ aktiviert und die drei unteren Objekte haben „ShiftMode“ auf 'smAlways' gesetzt. Die unteren Objekte verschieben sich nur so weit, dass Platz für das darüber gestreckte Objekt geschaffen wird:

_img115

2: Die drei oberen Objekte haben „Stretch“ aktiviert und die drei unteren Objekte haben „ShiftMode“ auf 'smWhenOverlapped' gesetzt. Die unteren Objekte verschieben sich, um Platz für das gestreckte Objekt zu schaffen und auch, um die geplante Trennung der beiden Objekte aufrechtzuerhalten:

_img116

Dies ermöglicht die Erstellung komplizierter Berichte, insbesondere wenn ein Objekt mehrere andere Objekte darüber gleichzeitig überlappen könnte. Im folgenden Beispiel enthalten alle oberen Objekte dehnbaren Text und alle unteren befinden sich im 'smWhenOverlapped'-Modus. Die unteren Objekte werden immer in der Nähe des Objekts darüber angezeigt, unabhängig von der Textlänge in den Objekten darüber:

_img117



Rate this topic
Was this topic usefull?
Comments
Comment will also bo visible in forum!