combit List & Label 30 - .NET Hilfe
Einführung in die Programmierung / Tutorial / Web Reporting Leitfaden / Verwendung des Web Report Viewers
Verwendung des Web Report Viewers

Der Web Report Viewer unterstützt alle gängigen Browsertypen. Dadurch ist er auf Clients mit unterschiedlichen Betriebssystemen einsetzbar. Er erlaubt eine interaktive Eingabe durch Drilldown und Berichtsparameter.

Voraussetzungen

Wichtiger Hinweis

Die im Designer definierten Objekte und deren Einstellungen können nicht immer in jedes beliebige Export-Format vollumfänglich übertragen werden. Der Web Report Viewer verwendet für die Darstellung der Berichte intern das List & Label XHTML/CSS Export-Modul. Aus diesem Grund gelten die Einschränkungen des XHTML/CSS Export-Moduls direkt auch für den Web Report Viewer.

 

Einbindung - Neuen Controller erstellen

Legen Sie anschließend wie üblich einen neuen Controller an - im Folgenden wird als Beispiel der Name MyWebReportViewerController verwendet. Leiten Sie den Controller von der Klasse WebReportViewerController ab:

...
public class MyWebReportViewerController : WebReportViewerController
...

 

Einbindung - Wichtige Methoden überschreiben

Implementieren Sie dann die beiden abstrakten Methoden OnProvideListLabel und OnProvideRepository. Übergeben Sie in den jeweils bereitgestellten Argumenten Ihre List & Label-Instanz mit passender Datenquelle sowie temporären Exportpfad bzw. das zu verwendende Repository.

...
public override void OnProvideListLabel(ProvideListLabelContext provideListLabelContext)
{
    // List & Label Objekt erstellen
    ListLabel ll = new ListLabel();
    ll.LicensingInfo = "<ToDo: insert your license here>";

    // Datenquelle definieren
    var dataSource = GetDataProvider(provideListLabelContext.RepositoryItemId);
    ll.DataSource = dataSource;

    // Der Web Report Viewer benötigt ein Verzeichnis für temporäre Dateien. Diese werden einige Minuten nach Schließen eines Web Report Viewers automatisch gelöscht
    provideListLabelContext.ExportPath = Server.MapPath("~/App_Data/TempFiles");

    // Konfiguriertes List & Label Objekt zurückliefern
    provideListLabelContext.NewInstance = ll;
}

public override void OnProvideRepository(ProvideRepositoryContext provideFileRepositoryContext)
{
    provideFileRepositoryContext.FileRepository = DefaultSettings.GetRepository();
} 
...

 

Für die Weitergabe ist es wichtig, dass zusätzlich unbedingt der List & Label Lizenzschlüssel (siehe auch LicensingInfo) in OnProvideListLabel() für die List & Label-Instanz angegeben wird.

Hinweis: Eine detaillierte Implementierung für DefaultSettings.GetRepository(); in OnProvideRepository() finden Sie in den mitgelieferten ASP.NET Beispielen.

 

Einbindung - .NET Weiche

Die weitere Vorgehensweise unterscheidet sich bei .NET 6/.NET 8/.NET 9 und .NET 4.8.

 

.NET 6/.NET 8/.NET 9:

Wenn Sie die Datei startup.cs vorfinden (ansonsten siehe unten), fügen Sie die folgenden Zeilen am Ende der Configure-Methode hinzu:

...
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // do some other stuff here
    // ...

    app.UseWebReportViewer();
}
...

 

Wenn es die Datei startup.cs nicht gibt, sollten Sie die Datei program.cs in .NET 6 haben. In diesem Fall fügen Sie app.UseWebReportViewer(); direkt nach jedem anderen app.Use...-Aufruf und builder.Services.AddWebReportViewer(); direkt nach jedem anderen builder.Services...-Aufruf hinzu.

 

.NET 4.8:

Fügen Sie in der Datei global.asax.cs/global.asax.vb vor dem RouteConfig.RegisterRoutes()-Aufruf die folgende Zeile ein:

...
WebReportViewerConfig.RegisterRoutes(RouteTable.Routes);
...

 

Web Report Viewer verwenden

Damit ist nun die Konfiguration abgeschlossen. Nun kann im gewünschten View der Web Report Viewer wie folgt eingefügt und verwendet werden:

...
@using combit.Reporting.Web
@{
    Layout = null;
    string repositoryId = Request.QueryString["reportRepositoryID"];
    if (!String.IsNullOrEmpty(repositoryId))
    {
        repositoryId = repositoryId.Replace("repository://{", "").Replace("}", "");
    }

    var optionWRV = new WebReportViewerMVCOptions(repositoryId)
    {
        Title = "Web Report Viewer"
    };
}
<!DOCTYPE html>
@Html.WebReportViewer(optionWRV)
...

 

Ausblick

In der List & Label Installation finden sich entsprechende ASP.NET Beispiele, die die Verwendung des Web Report Viewers im Detail zeigen.