Heute werden wir erkunden, wie man den React-Viewer verwendet, um Berichte in ASP.NET Core-Webanwendungen anzuzeigen. Der Report-Viewer ist eine spezialisierte Komponente zur Dokumentenanzeige. Er ist vollständig anpassbar, schnell und benutzerfreundlich und bietet eine Vielzahl von Funktionen. Um eine nahtlose Integration in Projekte zu gewährleisten, bieten wir mehrere Anpassungsmöglichkeiten sowohl für das Aussehen als auch für die Funktionalität der Anwendung.

Erste Schritte

Schritt-für-Schritt-Anleitung:
  • öffnen Sie Visual Studio;
  • gehen zum File-Menü;
  • wählen New, danach Project aus;
  • wählen ASP.NET Core Web Application und klicken auf Next;
  • geben Sie den Namen des Projektes, Speicherort, und den Namen der Lösung (zum Beispiel, ReactViewer) an und klicken auf Create;
  • gehen Sie zur Auswahl der Plattform: wählen Sie .NET 8 oder eine spätere Version aus. Stellen Sie sicher, dass die Option Configure for HTTPS deaktiviert ist, und klicken Sie auf Create.

Installation vom NuGet-Paket

Der nächste Schritt – die Installation vom NuGet-Paket Stimulsoft.Report.React:
  • im Kontextmenü des Projektes wählen Sie Manage NuGet Packages aus;
  • wählen Sie das Paket aus und geben die Version an;
  • klicken auf Install.

Danach fügen Sie ViewerController in Controllers-Ordner hinzu:
  • öffnen Sie das Kontextmenü des Controllers-Ordners und wählen Add item aus;
  • wählen Sie Controller... und setzen den Kontroller-Typen als MVC Controller – Empty;
  • klicken Sie auf Add und geben den Namen des Kontrollers ein, zum Beispiel, ViewerController;
  • klicken Sie auf Add erneut.

ViewerController.cs konfigurieren

Erstellen Sie den Ordner Reports im Projekt und fügen Sie eine Berichtsvorlage hinzu, zum Beispiel, MasterDetail.mrt. Dann fügen Sie den folgenden Code in ViewerController.cs ein:
using Microsoft.AspNetCore.Mvc;
using Stimulsoft.Report;
using Stimulsoft.Report.React;

namespace ReactViewer.Controllers
{
    [Controller]
    public class ViewerController : Controller
    {
        static ViewerController()
        {
            // How to Activate
            //Stimulsoft.Base.StiLicense.Key = "6vJhGtLLLz2GNviWmUTrhSqnO...";
            //Stimulsoft.Base.StiLicense.LoadFromFile("license.key");
        }

        [HttpPost]
        public IActionResult InitViewer()
        {
            var requestParams = StiReactViewer.GetRequestParams(this);
            var options = new StiReactViewerOptions();
            options.Actions.GetReport = "GetReport";
            options.Actions.ViewerEvent = "ViewerEvent";
            options.Appearance.ScrollbarsMode = true;
            return StiReactViewer.ViewerDataResult(requestParams, options);
        }

        [HttpPost]
        public IActionResult GetReport()
        {
            var report = StiReport.CreateNewReport();
            var path = StiReactHelper.MapPath(this, "Reports/MasterDetail.mrt");
            report.Load(path);
            return StiReactViewer.GetReportResult(this, report);
        }

        [HttpPost]
        public IActionResult ViewerEvent()
        {
            return StiReactViewer.ViewerEventResult(this);
        }
    }
}

.NET Server konfigurieren

Stellen Sie den .NET-Server, aktivieren die Unterstützung für CORS und statische Dateien. Das muss man in der Datei Startup.cs erfüllen:
public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseDefaultFiles();
    app.UseStaticFiles();
    app.UseRouting();
    app.UseCors(builder =>
        builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod());
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller}/{action=Index}/{id?}");
    });
}

Installation vom npm-Paket für React

Öffnen Sie den Ordner des Projektes im Datei-Explorer und erstellen den Ordner ClientApp. Öffnen Sie eine Konsole darin und führen Sie den folgenden Code aus:
npx create-react-app . --template typescript
Danach installieren Sie das Paket Stimulsoft React Viewer aus npm:
npm install stimulsoft-viewer-react
Beachten Sie!

Das Paket stimulsoft-viewer-react ist auf npm veröffentlicht und enthält vollständige TypeScript-Typisierungen (.d.ts-Dateien) für die Autovervollständigung in der Entwicklungsumgebung.

Integration vom Viewer in App.tsx

Öffnen Sie die Datei App.tsx imsrc-Ordner und ersetzen Sie seinen Inhalt durch den folgenden Code:
import React from 'react';
import { StimulsoftViewer } from 'stimulsoft-viewer-react';

export const App: React.FC = () => {
    return (
        <StimulsoftViewer
            requestUrl="/Viewer/{action}"
            action="InitViewer"
            height="100vh"
        />
    );
};
BBeachten Sie, dass requestUrl einen relativen Pfad /Viewer/{action} verwendet. Dies funktioniert korrekt, da sowohl das React-Frontend als auch das ASP.NET-Backend in der Produktionsumgebung auf demselben Server-Port ausgeführt werden. Der Platzhalter {action} wird automatisch vom Viewer durch den entsprechenden Aktionsnamen (InitViewer, GetReport, ViewerEvent usw.) ersetzt.

Erstellen und Ausführen der Anwendung

Um den React-Client zu erstellen und das Ergebnis in den wwwroot-Ordner zu kopieren, öffnen Sie eine Konsole im Verzeichnis ClientApp und führen Sie die folgenden Befehle aus:
npm install
npx react-scripts build
xcopy /E /Y build\* ..\wwwroot\
Für die Bequemlichkeit können Sie diese Befehle als Datei build-react.cmd im Projektstammverzeichnis speichern, sodass der Build mit einem einzigen Klick wiederholt werden kann.

Nachdem der Build abgeschlossen ist, führen Sie das Projekt in Visual Studio aus. Sie werden sehen, dass der Report-Viewer mit dem angegebenen Bericht im Browser geladen wird. Beachten Sie!

Der React-Client wird einmal erstellt und als statische Dateien aus dem wwwroot-Ordner bereitgestellt. In der Produktionsumgebung ist kein separater Node.js-Server erforderlich.

Die Eigenschaften der Komponente StimulsoftViewer

Die StimulsoftViewer-Komponente akzeptiert die folgenden Eigenschaften:

Eigenschaft Typ Beschreibung
requestUrl string Backend-URL mit {action}-Platzhalter
action string Erste aufzurufende Aktion. Standard: ‚InitViewer‘
width string Breite des Viewers. Standard: ‚100%‘
height string Höhe des Viewers. Standard: ‚650px‘
onLoaded () => void Wird aufgerufen, wenn der Viewer das Laden abgeschlossen hat
onError (error) => void Wird bei einem Viewer-Fehler aufgerufen
onExport (data) => void Wird nach dem Export des Berichts aufgerufen
onPrint (data) => void Wird nach dem Drucken des Berichts aufgerufen

Verwenden von API-Methoden

Die StimulsoftViewer-Komponente bietet eine imperative API über ein ref-Handle. Dadurch können Sie Viewer-Aktionen programmgesteuert aus Ihrer Anwendung heraus auslösen:
import React, { useRef } from 'react';
import { StimulsoftViewer, StimulsoftViewerHandle } from 'stimulsoft-viewer-react';

export const App: React.FC = () => {
    const viewerRef = useRef<StimulsoftViewerHandle>(null);

    return (
        <div>
            <button onClick={() => viewerRef.current?.export('Pdf')}>
                Export PDF
            </button>
            <button onClick={() => viewerRef.current?.print()}>
                Print
            </button>
            <StimulsoftViewer
                ref={viewerRef}
                requestUrl="/Viewer/{action}"
                action="InitViewer"
                height="calc(100vh - 50px)"
            />
        </div>
    );
};

Möchten Sie mehr über die Verwendung von Stimulsoft React-Komponenten erfahren? Kontaktieren Sie uns – wir helfen Ihnen gerne!
By using this website, you agree to the use of cookies for analytics and personalized content. Cookies store useful information on your computer to help us improve efficiency and usability. For more information, please read the privacy policy and cookie policy.