Alternative zum Berichts-Viewer für SQL Reporting Services

9

Wir suchen nach einem Upgrade für unsere bestehende ASP.NET-Anwendung in MVC3. Unsere aktuelle App basiert nur auf IE und das Upgrade wird browserneutral sein, d. H. Es muss in IE8 +, Firefox, Chrome und Safari funktionieren.

Das Hauptproblem besteht darin, dass wir eine Reihe von Berichten basierend auf SQL Reporting Services 2008 R2 haben und das Report Viewer 2010-Steuerelement verwenden.

Wir wollen das nicht wirklich weiter verwenden, weil:

  • Es ist fehlerhaft (wir können beispielsweise die SP1-Version nicht als HTML rendern verwenden manchmal bricht das unsere Seite)
  • Es gibt Probleme mit nicht IE-Browsern (z. B. die IterationId fehlt auf URL-Fehler)
  • Es basiert auf Viewstate
  • Es ist schwierig, etwas von der gerenderten Ausgabe des Steuerelements zu lokalisieren

Ich würde es wirklich gerne durch eine Alternative ersetzen (selbst wenn es auf ViewState basiert und wir müssen eine Lösung mit MVC hacken), aber ich konnte keine finden. Gibt es eine alternative Kontrolle, die Berichte von Reporting Services darstellt? Es ist der Betrachter, den wir ersetzen wollen, nicht RS.

    
GrahamB 07.11.2011, 19:50
quelle

3 Antworten

1

Wir wollten SSRS mit der bestehenden Website integrieren, wollten aber nicht die SSRS-Benutzeroberfläche verwenden (da es sich um eine eigene Website handelt), und wir wollten die Berichtsansichts-Steuerelemente nicht verwenden (obwohl wir einen ASP haben). NET-Website haben die Steuerelemente des Berichts-Viewers nur eingeschränkte Möglichkeiten, um das zu tun, was Sie wollen. Die Lösung, die für uns funktionierte, war:

  1. Rufen Sie den SSRS-Webdienst auf, um eine Liste der Berichte zurückzugeben, und legen Sie die Werte in einer Dropdown-Liste ab.

  2. Lesen Sie den Berichtspfad aus der Dropdown-Liste und rufen Sie den SSRS-Webdienst ab, der die Parameter des ausgewählten Berichts zurückgibt.

  3. Erstellen Sie Eingabesteuerelemente basierend auf dem, was in # 2 zurückkam.

  4. Benutzer geben die Eingabewerte an und senden das Formular ab.

  5. Die Seite übergibt die Werte an den SSRS-Webdienst und ruft ein PDF-, Excel-, Word-Dokument basierend auf den Anforderungen des Benutzers ab.

Das war nicht so schwer (es dauerte & lt; 40-Stunden Code & amp; Test) und funktioniert wirklich gut. Das größte Problem, das wir haben, ist die Unterstützung verschiedener Versionen des SSRS-Webdienstes, während Sie von einer Version von SSRS zu einer anderen wechseln.

Ich nehme an, wenn Sie die Berichte als HTML ausgeben und diese zur Benutzeroberfläche pumpen wollten, könnten Sie das auch tun.

Wenn Sie möchten, dass alle Benutzer Berichtseigenschaften bearbeiten, Abonnements erstellen usw., müssen Sie natürlich zusätzliche Arbeit erledigen.

    
Robert Paulsen 12.02.2016, 20:04
quelle
0

Ich stimme dir zu. Es ist wirklich eine fehlerhafte Kontrolle. Ich spielte mit meinen DOCTYPE-Einstellungen, um meine HTML-Ausgabe zu optimieren.

Wenn Sie kommerzielle Anwendungen ausprobieren können, sehen Sie sich die Telerik-Steuerung an.

Sehen Sie sich auch diese Diskussion an:

Ссылка

    
Rohith Nair 24.11.2011 19:14
quelle
0

Sie können möglicherweise nur die HTML-Version anzeigen und stattdessen festlegen, dass die Steuerelemente vom Dienst in einer REST-URI gebunden werden. ZB:

%Vor%

Ich habe noch nie etwas anderes versucht, als dieses in einem "Form" -Html-Objekt zu hosten, aber ich würde mich wundern, wenn Sie nur ein Standard-HTML-Browser-Objekt verwenden und den REST-URI zwingen könnten, Bedingungen zu haben.

Sie können auch, wenn Sie wirklich in VB.NET oder C # .NET in Ihrem ASP.NET-Code tauchen wollen. Vielleicht können Sie das Byte-Array von Reporting Services einfach in einen PDF- oder HTML-Typ rendern und es dann auch in einem Viewer darstellen. Dies ist möglicherweise keine brauchbare Lösung, da ich nicht sicher bin, ob Sie versuchen möchten, ein binäres Objekt in einem proprietären Format zu präsentieren, im Gegensatz zu einem Web-Teil eines bestehenden Anrufs. Dies könnte mehr Arbeit sein und wäre eher auf ein Rendering von genau diesem Typ zugeschnitten, den Sie aus PDF, Excel, HTML usw. wählen. Aber es kann gemacht werden. Ich machte im Grunde ein Bibliotheksprojekt mit der Logik, die Anrufe auszuführen, nachdem ich eine Proxy-Klasse aus dem SSRS-Dienst gemacht hatte. Mehr dazu hier: Programmgesteuertes Exportieren des SSRS-Berichts vom Sharepoint mithilfe von ReportService2010.asmx

    
djangojazz 19.11.2013 18:19
quelle