none
Berichte in Blazor RRS feed

  • Frage

  • Guten Abend Zusammen,

    ich habe lange in Internet nach Reporting-Möglichkeiten für Blazor gesucht, jedoch finde ich nur kostenpflichtige Report. Es gibt ein Video in dem Erklärt wird, wie man RDLC in Blazor integriert, aber das sieht danach aus, als ob der Bericht zuerst auf dem Server als PDF erstellt wird, geladen wird und erst dann angezeigt wird. Es mag sein, dass es bei ein paar User noch klappt, aber wenn es viele sind, denke ich, dass de rserver dann nciht mehr nachkommt. Ausserdem sollte das viel einfacher und unkomplizierter gehen. Video findet man hier https://www.youtube.com/watch?v=JSauWc5rauA

    Kennt jemand eine Möglichkeit (Library/Komponente) womit man ganz normale Tabellarische Berichte in Blazor-Server  generieren kann sodass der Anwender diesen Bericht auch auf Papier ausdrucken kann?

    Was noch eine alternative wäre, wäre ein Bericht auf dem Server in Excel zu generieren und diese Exceldatei dann zum Client zu transferieren. Idealerweise könnte man den Bericht noch auf dem Client öffnen. Kennt jemand ein Tutorial dafür wie man es in Blazor machen könnte?

    Danke

    Daniel

    Dienstag, 6. April 2021 19:24

Alle Antworten

  • Hallo Daniel,

    warum nutzt Du nicht HTML zur Ausgabe und eine Lib wie jsPDF um daraus eine PDF zu erstellen. jsPDF steht unter der MIT Lizenz. Kurz gesagt man kann damit machen was man will.

    Wenn dir Serverauslastungen sorgen machen, dann solltest Du kein Blazor Server verwenden. Denn so gut wie alles wird erst vom Server berechnet und erst dann zum Client geschickt. Eine kleine App mit ca. 1000 gleichzeitigen Besuchern hat bei mir schonmal fast 4GB Ram verbraucht.

    Die Lib ist aber auch nicht wirklich nötig denn der User könnte die Seite auch über den Druckerdialog als PDF speichern/drucken


    Gruß Thomas
    Github



    Dienstag, 6. April 2021 20:26
  • Hallo Daniel,
    beim dort dargestellten package AspNetCore.Reporting würde ich mir zweimal überlegen ob ich das einbinde.
    Die Verweise in Nuget zeigen ins leere(URL existiert nicht bzw. ist http und nicht https)
    Das Github Projekt sagt das vor 2 jahren zum letzten mal aktualisiert wurde. 
    Bei Issues in Github dauert es teileweise sehr lange bis zu einer Antwort.

    Wie Thomas es schreibt, solltest Du hier eine Alternative in Erwägung ziehen.
    Syncfusion hat eine Community Lizenz. Als Privatmann bist Du sicher in der Lage diese Community Lizenz zu nutzen.
    https://www.syncfusion.com/products/communitylicense

    Hier das einfach Beispiel zum erzeugen eines PDFs:
    https://blazor.syncfusion.com/demos/pdf/hello-world?_ga=2.27506236.1613663221.1617780837-374922342.1616739478


    Die Alternative wäre aus meiner Sicht Devexpress. Doch dort sind Lizenzen fällig. Soweit ich sehe wären das $999.
    https://www.devexpress.com/blazor/


    Bei beiden Anbietern hast Du Support und die Möglichkeit eine Frage zu stellen.
    Es gibt Programmbeispiele vom Hersteller und das Produkt wird gepflegt. 

    HTH
    Grüße Alexander




    Mittwoch, 7. April 2021 07:41
  • Schade, 10 Minuten geschrieben und als ich den Beitrag senden wollte, gab es einen Serverfehler!?

    Also fasse ich mich jetzt kürzer und kopiere den Text vor dem Absenden :)

    @Thomas

    Danke. Die Idee hatte ich auch, jedoch wäre der Aufwand zu gross. Ich komme von der Desktop Welt und dort habe ich MicrosoftReportinfViewer benutzt. Damit habe ich sehr komplexe Berichte erstellt. So etwas jetzt mit Eigenmittel umzusetzen würde mehrere Monate Entwicklungszeit kosten!

    @Alexander

    Danke für den Vorschlag. Leider bieten die ein paar Anbieter neben Reporting auch noch viele andere Sachen, die man gar nicht braucht. Dadurch ist der Preis zu hoch. Ausserdem weiss man auch nicht immer was es kosten (z.B. BoldReport von syncfusion).

    Was ich mir zuletzt überlegt habe ist folgendes Vorgehen:

    1. Benutzung von EPPlus 4 (4 ist kostenlos) um eine Excelvorlage programmatisch mit Daten und Formeln zu füllen

    2. Excelvorlage kann man entweder über Excel-Online erstellen und Formatieren (z.B. A4 Ausdruck mit Kopf und Fusszeilen) oder halt LibreOffice auf dem Server installieren (ist auch kostenlos).

    3. Nun erstellt man pro angemeldeten Benutzer eine Exceldatei, die dann als PDF gespeichert wird.

    Einzige Frage, mit der ich mich nicht befasst habe, ist: Wie zeige ich diese PDF Datei dem Benutzer dass es so aussieht, als ob die PDF Datei auf der Razor-Page bereits drin ist? Weil der Dateiname wird sich ständig ändern, damit die erstellte Berichte nicht überschrieben werden, also kann ich sie nicht statisch verlinken, sondern muss dies zur Laufzeit tun, oder?

    Danke

    Daniel

    Mittwoch, 7. April 2021 19:56
  • Wenn man das was Du willst mit Excel darstellen kann, würde mich die Umsetzung vielleicht einen Tag kosten. Ist ja nicht so das Excel visuell viel kann. Excel Dateien kann man auch mit OpenXML erstellen. Ist auch kostenlos und direkt von MS

    Um eine PDF in eine HTML Seite anzuzeigen gibt es auch eine Lib pdf.js. Funktionier sehr gut


    Gruß Thomas
    Github

    Mittwoch, 7. April 2021 23:35
  • Thomas vielen Dank
    Donnerstag, 8. April 2021 14:44