Search Results for

    Show / Hide Table of Contents

    Report-, und Engine-Objekte

    Neben den in dem Bericht beinhalteten Objekten sind zwei Variablen im Skript definiert: Report und Engine.

    Die Report-Variable bezieht sich auf den aktuellen Bericht. Die folgende Liste zeigt eine Liste der Objektmethoden:

    Methode Beschreibung
    object Calc(string expression) Ein Ausdruck wird berechnet und der Wert zurückgegeben. Der erste Aufruf dieser Methode ist zeitintensiv, da ein Audruck erstellt werden muss.
    object GetColumnValue(string complexName) Gibt den Wert der Datenspalte zurück. Der Name wird in der Form "DataSource.Column” präsentiert. Hat die Spalte einen Null Wert, wird es standardmäßig in einen Wert (0, leere Zeichenfolge, false) umgewandelt.
    object GetColumnValueNullable(string complexName) Gibt den Wert der Datenspalte zurück. Im Gegensatz zur vorherigen Methode wird dieser nicht in einen Standardwert umgewandelt und kann Nullsein.
    Parameter GetParameter(string complexName) Gibt den Berichsparameter mit dem angegebenen Namen zurück. Der Name kann, wenn zu dem verschachtelten Parameter referenziert wird, verbunden werden: "MainParam.NestedParam".
    object GetParameterValue(string complexName) Gibt den Wert des Berichtsparameters mit dem angegebenen Namen zurück.
    void SetParameterValue(string complexName, object value) Legt den Wert des Berichtsparameters mit dem angegebenen Namen fest.
    object GetVariableValue(string complexName) Gibt den Wert der Systemvariable, z.B. "Date", zurück.
    object GetTotalValue(string name) Gibt den Wert der Summe, definiert im Fenster "Daten", nach seinem Namen zurück.
    DataSourceBase GetDataSource(string alias) Gibt die Datenquelle, definiert im Bericht, nach Namen zurück.

    Das Engine-Objekt ist ein Engine, der die Berichterstellung steuert. Der Prozess der Platzierung von Leisten auf der Seite kann durch die Nutzung der Methoden und Eigenschaften des Engine gesteuert werden. Die folgenden Eigenschaften des Engine-Objektes können genutzt werden:

    Eigenschaft Beschreibung
    float CurX Aktuelle Koordinaten auf der X-Achse. Dieser Eigenschaft kann ein Wert zugeordnet werden, um das gedruckte Objekt zu verschieben.
    float CurY Aktuelle Druckposition auf der Y-Achse. Dieser Eigenschaft kann ein Wert zugeordnet werden, um das gedruckte Objekt zu verschieben.
    int CurColumn Anzahl der aktuellen Spalten in einem mehrspaltigen Bericht. Die erste Spalte hat die Nummer 0.
    int CurPage Nummer auf der gedruckten Seite. Dieser Wert kann aus der Systemvariable "Page" erhalten werden.
    float PageWidth Die Seitenbreite minus der Größe der rechten und linken Seitenränder.
    float PageHeight Die Seitenhöhe minus der Größe der oberen und unteren Seitenränder.
    float PageFooterHeight Die Höhe der Fußzeile (und aller Kind-Leisten).
    float ColumnFooterHeight Die Höhe des Spaltenfußes (und aller Kind-Leisten).
    float FreeSpace Die Größe des freien Platzes auf der Seite.
    bool FirstPass Gibt true zurück, wenn der erste (oder einzige) Berichtsdurchlauf durchgeführt wird. Die Anzahl der Durchläufe kann aus der Eigenschaft Report.DoublePass abgerufen werden.
    bool FinalPass Gibt true zurück, wenn der letzte (oder einzige) Berichtsdurchlauf durchgeführt wird.

    OnIn der folgenden Abbildung lässt sich die Bedeutung einiger oben aufgeführter Eigenschaften einsehen.

    Die Eigenschaften Engine.PageWidth und Engine.PageHeight bestimmen die Größe des Druckbereichs. Diese ist in fast allen Fällen geringer als die aktuelle Seitengröße. Die Größe des Druckbereichs mittels der Seitenränder bestimmt, die in den Seiteneigenschaften LeftMargin, TopMargin, RightMargin und BottomMargin angezeigt sind.

    Die Eigenschaft Engine.FreeSpace bestimmt die Höhe des freien Platzes auf der Seite. Befindet sich die Leiste "Seitenfuß" auf der Seite, wird dessen Höhe bei der Berechnung des freien Platzes in Betracht gezogen. Bitte beachten: Nach dem Druck einer Leiste verringert sich der freie Platz.

    Wie wird eine Seite des erstellen Berichts erstellt? Der Engine von FastReport zeigt Bänder auf der Leiste an, bis der Platz für den Leisten-Output gefüllt ist. Besteht kein weiterer Platz mehr, wird die Leiste "Berichtsfußzeile" gedruckt und eine neue Seite erstellt. Die Anzeige einer Leiste beginnt in der aktuellen Position, die durch die X-, und Y-Koordinaten bestimmt wird. Diese Position wird von den Eigenschaften Engine.CurX und Engine.CurY zurückgegeben. Nach dem Druck eines Bandes vergrößert CurY automatisch die Höhe der gedruckten Leiste. Nach der Erstellung einer neuen Seite wird die Position der CurY auf 0 zurückgesetzt. Die Position der CurX ändert sich beim Druck eines mehrspaltigen Berichts.

    Die Eigenschaften Engine.CurX und Engine.CurY sind nicht nur zum Lesen, sondern auch zum Schreiben zugänglich. Dies bedeutet, dass eine Leiste manuell durch Nutzung eines geeigneten Ereignisses, umgeschaltet werden kann. Beispiele für die Nutzung dieser Eigenschaft können im Abschnitt "Beispiele" eingesehen werden.

    Bei der Arbeit mit Eigenschaften, die die Größe oder Position zurückgeben, ist es wichtig zu beachten, dass diese Eigenschaften in Bildschirmpixeln gemessen werden.

    Im Engine-Objekt werden die folgenden Methoden definiert:

    Methode Beschreibung
    void AddOutline(string text) Fügt der Berichtsgliederung ein neues Element hinzu (lesen Sie hierzu das Kapitel "Interaktive Berichte") und legt die aktuelle Position auf das hinzugefügte Element.
    void OutlineRoot() Setzt die aktuelle Position auf den Stamm der Gliederung.
    void OutlineUp() Ändert die aktuelle Position zu einem Gliederungselement höherer Ebene.
    void AddBookmark(string name) Fügt ein Lesezeichen hinzu (mehr hierzu im Kapitel "Interaktive Berichte").
    int GetBookmarkPage(string name) Gibt die Seitenzahl zurück, auf der das Lesezeichen mit dem angegebenen Namen positioniert ist.
    void StartNewPage() Beginnt eine neue Seite. Ist der Bericht mehrspaltig wird eine neue Spalte begonnen.

    Die Berichtsgliederung kann auch durch Nutzung der Methode AddOutline, OutlineRootm, OutlineUp manuell erstellt werden. Üblicherweise wird dies automatisch, mittels der Eigenschaft OutlineExpression, die sich auf jeder Leiste und Berichtseite befindet, erstellt.

    Die AddOutline Methode fügt das Kindelement zu dem aktuellen Gliederungselement hinzu und macht diese aktuell. Sowohl die aktuelle Berichtsseite, als auch die aktuelle Position, sind mit dem neuen Element assoziiert. Wird die AddOutline Methode mehrere Male aufgerufen, erhält man die folgende Struktur:

    Item1
        Item2
            Item3
    

    Zur Kontrolle des aktuellen Elementes gibt es OutlineUp-, und OutlineRoot-Methoden. Die erste Methode verschiebt den Zeiger auf das Element, dass sich auf der höheren Ebene befindet. Daher resultiert das Skript

    Engine.AddOutline("Item1");
    Engine.AddOutline("Item2");
    Engine.AddOutline("Item3");
    Engine.OutlineUp();
    Engine.AddOutline("Item4");
    

    in der folgenden Gliederung:

    Item1
        Item2
            Item3
            Item4
    

    Die OutlineRoot-Methode bewegt das aktuelle Element zum Stamm der Gliederung. Z.B. erstellt das folgende Skript:

    Engine.AddOutline("Item1");
    Engine.AddOutline("Item2");
    Engine.AddOutline("Item3");
    Engine.OutlineRoot();
    Engine.AddOutline("Item4");
    

    die folgende Gliederung:

    Item1
        Item2
            Item3
    Item4
    

    Zur Arbeit mit Lesezeichen werden die Methoden AddBookmark und GetBookmarkPage des Engine-Objektes genutzt. Üblicherweise werden die Lesezeichen automatisch bei allen im Bericht vorhandenen Objekten im Bericht hinzugefügt.

    Durch Nutzung der Methode Lesezeichen hinzufügen lässt sich ein Lesezeichen programmatisch hinzufügen. Diese Methode erstellt ein Lesezeichen auf der aktuellen Seite in der aktuellen Position.

    Die Methode GetBookmarkPage gibt die Seitenzahl in der das Lesezeichen positioniert ist zurück. Diese Methode wird häufig zur Anzeige von Seitenzahlen bei der Erstellung eines Inhaltsverzeichnisses genutzt. In diesem Fall muss der Bericht einen Double Pass haben.

    Back to top © 1998-2025 Copyright Fast Reports Inc.