Table of Contents

Report Document Type

Report Document Types stellen die Verbindung zwischen den Components und den Reports dar. Sie definieren, was für Daten in welchem Report ausgegeben werden. Ein Report Document Type enthält eine Angabe, welche Components ausgedruckt werden sollen und welche Reports dafür zur Verfügung stehen. Diese Report Document Types können später in Forms verwendet werden.

Report Document Types sind an dem rpt-icon– Icon zu erkennen.

Erstellen, bearbeiten und löschen von Report Document Types

Sie erstellen einen neuen Report Document Type, indem Sie in der Registerkarte Namespaces den Namespace auswählen, in welchem der Report Document Type abgelegt werden soll.

Mit dem Button new-button(New) und dem Eintrag ReportDocumentType aus dem Menü wird im markierten Namespace ein neuer Report Document Type angelegt. Dieser wird auch gleichzeitig geöffnet. Direkt nach dem Anlegen des Report Document Types steht der Cursor in dem sich öffnenden Designer auf dem Feld Name, wo Sie den Namen eingeben können.

Es wird empfohlen den Namen mit rpt zu beginnen.

Löschen können Sie einen Report Document Type mit dem Button delete-button (Delete). Sie müssen dazu den gewünschten Report Document Type im Namespace-Baum markiert haben. Es gibt auch im Kontext-Menü den Eintrag Delete.

Registerkarte Data Sources

Unter Data Sources werden die Components angegeben, die in einem Report ausgegeben werden sollen. Es können mehrere Components (Collections) aus unterschiedlichen Namespaces eingebunden werden.

Jede Component wiederum kann für mehrere Reports als Data-Source angegeben werden.

Report Document Type – Registerkarte DataSource

Über das Menü File / New / Data Source bzw. über das Kontextmenü der Tabelle wird ein neuer Data-Source erstellt.

Bei Datatype können Sie durch Eingabe eines Types die Component / Collection auswählen, die verwendet werden soll.

Im Feld Name können Sie dem Data-Source einen Namen geben. Dieser wird anhand des ausgewählten Datentyps mit einem Standardnamen vorbelegt.

Die Data-Sources sind sozusagen die "Properties" des Reports. Diese Properties müssen später beim Druck mit Werten gefüllt werden.

Registerkarte Report Files

Auf der Registerkarte Report Files können dem Report Document Type die eigentlichen Reports zugewiesen werden.

Report Document Type – Report Files

Hinzufügen und Öffnen eines neuen Reports

Über das Menü File / New / Report File oder über das Kontextmenü der Tabelle wird eine neue Report-Datei erstellt.

In einem abgeleiteten Report bzw. im Customizing-Package kann auch ein Report aus der Basis bearbeitet werden. Markieren Sie dazu den entsprechenden grau hinterlegten Report und drücken Sie dann den Button Edit Report. Dadurch wird eine "Überschreibung" des Inhalts des Basis-Reports erzeugt.

Include Base Reports

Mit der Checkbox Include Base Reports legen Sie fest, ob vererbte, nicht geänderte Basisreports später in der Applikation zur Auswahl stehen sollen. Sie hat Einfluss darauf, was die Methode ReportDocument.GetReportEnums() zurückgibt.

Bei gesetzter Checkbox werden die Reports aus der direkten Basis ebenfalls zurückgegeben. Auf jeder weiteren Basis-Ebene (sowohl Vererbung als auch Customizing) wird die Checkbox erneut ausgewertet.

Ist die Checkbox nicht gesetzt, dann werden in der Anwendung nur die neu hinzugefügten und die in dieser Ableitungsebene überschriebenen Reports zurückgegeben. Überschriebene Reports sind am grauen Hintergrund und dem blauen Text zu erkennen.

Note

Um eine Überschreibung zu löschen muss diese über das Kontext-Menü der Tabelle mit Delete Delete gelöscht werden. Dadurch wird der Text wieder Schwarz. Reset File alleine reicht nicht aus.

Allgemeine Einstellungen

Die folgenden Einstellungen beziehen sich auf den in der Tabelle ausgewählten Report:

Im Feld Name kann dem Report ein Name gegeben werden.

Warning

Dieser Name darf keine Leer- und Sonderzeichen enthalten, weil dieser später im Code zum Einsatz kommt.

Mit dem Button Edit Report wird der Report über ein externes Tool bearbeitet.

Für weitere Erklärungen bezüglich der Bearbeitung von DevExpress® Reports siehe FS Report Designer

Der Button Choose File öffnet einen Dateiauswahl-Dialog, in dem Sie eine bestehende Report-Datei zuweisen können.

Mit dem Button New Report wird ein neuer, leerer Report erstellt und zugewiesen.

Mit dem Button Reset File wird der Inhalt eine einzelnen Report-Datei gelöscht. Handelt es sich um eine aus der Basis geerbeten Report-Datei, zieht danach wieder der Inhalt aus der Basis.

Crystal Report (Deprecated)

Diese Box wird angezeigt, wenn das Report-File eine Crystal-Report-Datei besitzt.

Note

Seit der Version 4.8 wird Crystal Reports nicht mehr unterstütz. Die hinterlegte Datei steht in der Anwendung nicht mehr zur Verfügung.

Mit dem Button View Report können Sie den Crystal Report im Designer anzeigen. So können Sie weiterhin eine Konvertierung zum DevExpress®-Report durchführen. Ein Ändern dieser Report-Datei ist nicht mehr möglich.

Mit dem Button Delete File wird die Crystal Report Datei endgültig gelöscht. Dadurch wird die Crytal Report Box ausgeblendet.

Caption

Im Report Document Type können Sie für Report Files lokalisierte Bezeichnungen (Captions) hinterlegen, also die Bezeichnung mehrsprachig pflegen. Diese Captions können zur Laufzeit ausgewertet werden, um z.B. im Druck-Dialog bei der Auswahl der unterschiedlichen Report-Varianten einen sprechenden Text auszugeben.

Report-Verzeichnis

Auf dem Dateisystem werden die Report-Dateien vom Compile-Verzeichnis ausgehend im Ordner /Report/ gespeichert. DevExpress® Reports erhalten einen weiteren Unterordner, nach dem übergeordneten Report Document Type benannt. Der Report CustomerList aus rptCustomerList wäre also unter /Report/NV.ERP.Base.Customer.rptCustomerList/CustomerList.repx zu finden.

Bei jedem Compile-Vorgang werden die DevExpress® Report-Dateien aus dem Repository in das Dateisystem herausgeschrieben, nach folgenden Regeln:

DevExpress®

Alle DevExpress® Reports eines Report Document Types im aktuellen Package werden in den entsprechenden Unterordner unter /Report/ herausgeschrieben.

Basis-Reports werden nur aus der Basis gesucht und ins Verzeichnis geschrieben, solange am Report Document Type die Checkbox "Include Base Reports" gesetzt ist.

Für den Druck relevante Klassen

Browserbasierter Report-Designer zur Laufzeit

Zur Laufzeit steht ein Report Designer dem Benutzer zur Verfügung. Dieser muss vorher in das System integriert und aufgerufen werden.

Weitere Details zum Designer finden Sie unter FS Web Report Designer.

Im folgenden Beispiel wird ein Report Designer geöffnet, auf eine Bestätigung des Benutzers gewartet und anschließend der geänderte Report ausgedruckt.

// Eigenschaft, um sich die Design Session zu merken
private FS.Hosting.Core.Reporting.ReportDesignSession oDesignSession { get; set; }

// Einstiegspunkt; hier bspw. über einen Button Click
protected virtual void btnGrdReportDesigner_OnClick(FrameworkButtonClickEventArgs e)
{
    rptArticles report = new rptArticles(this.Global, rptArticles.Reports.XArticleReport, ExportFormat.PDF);
    this.oDesignSession = report.CreateDesigner();
    this.oDesignSession.ShowDesigner();  // Öffnet den Report Designer in einem Browser-Fenster
    
    throw MsgBox.Exception(FSGeneral.ctMessagesFactory.GetText(this.Global, 10), "", MsgBoxButtons.OK, MsgBoxIcons.None, new MsgBoxEventHandler(OnMsgBoxReportDesignSessionClick));
}

// Ein Klick auf den MessageBox-Button signalisiert, dass die Bearbeitung abgeschlossen ist
protected virtual void OnMsgBoxReportDesignSessionClick(object sender, MsgBoxEventArgs e)
{
    byte[] reportDesign = null;
    if (this.oDesignSession != null && this.oDesignSession.IsModified())
    {
        // Veränderten Report aus der Session herunterladen
        reportDesign = this.oDesignSession.GetBytes();
    }
    this.oDesignSession.Dispose();  // Verwerfen der Design Session nicht vergessen
    this.oDesignSession = null;
    if (reportDesign == null)
    {
        throw new Exception("Kein neuer Report vorhanden."); 
    }

    // Drucken des geänderten Reports
    rptArticles report = new rptArticles(this.Global, rptArticles.Reports.XArticleReport, ExportFormat.PDF);
    report.SelectedReport.ReportBytes = reportDesign;
    report.oArticle = oArticleColl;  // Beim Drucken wird die Datenquelle benötigt
    report.Print();
}

Weitere Information zum Web-Designer finden Sie unter ReportDesignSession.