Einleitung

SQL Server Reporting Services (SSRS) ist ein leistungsstarkes Tool zur Erstellung, Verwaltung und Verteilung von Berichten. Ein häufiges Szenario beim Arbeiten mit SSRS-Berichten ist die Notwendigkeit, Berichte in das CSV-Format zu exportieren. Standardmäßig verwendet SSRS ein Komma (,) als Trennzeichen für CSV-Dateien. Viele Anwendungsfälle, insbesondere in Europa, erfordern jedoch die Verwendung eines Semikolons (;) als Trennzeichen. In diesem Blog-Artikel werden wir verschiedene Methoden untersuchen, um dieses Problem zu lösen, einschließlich der globalen Änderung der Konfiguration, der Anpassung von Links im Bericht und der Erstellung einer benutzerdefinierten Rendering-Extension.

Methode 1: Globale Änderung in der RSReportServer.config

Schritt 1: Öffnen der Konfigurationsdatei

Die RSReportServer.config-Datei befindet sich normalerweise im Verzeichnis C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer. Öffnen Sie diese Datei mit einem Texteditor.

Schritt 2: Hinzufügen der benutzerdefinierten Rendereinstellungen

Fügen Sie die folgenden Zeilen zu den Rendereinstellungen hinzu, um das Trennzeichen global zu ändern:

<Extension Name="CSV" Type="Microsoft.ReportingServices.Rendering.DataRenderer.CsvReport,Microsoft.ReportingServices.DataRendering">
    <Configuration>
        <DeviceInfo>
            <FieldDelimiter>;</FieldDelimiter>
        </DeviceInfo>
    </Configuration>
</Extension>

Schritt 3: Speichern und Neustarten

Speichern Sie die Datei und starten Sie den SQL Server Reporting Services-Dienst neu. Diese Änderung wirkt sich auf alle Berichte aus, die als CSV exportiert werden.

Methode 2: Link im Bericht mit Rendereinstellungen

Problemstellung

Während die globale Änderung in der RSReportServer.config Datei einfach ist, ist sie möglicherweise nicht in allen Szenarien wünschenswert. Manchmal möchten Sie spezifische Berichte mit benutzerdefinierten Einstellungen exportieren, ohne globale Änderungen vorzunehmen. Hier kommt die Methode ins Spiel, bei der spezielle Rendereinstellungen direkt in der Berichts-URL angegeben werden.

Schritt 1: Erstellen des Links

Erstellen Sie im Bericht einen Link, der die gewünschten Rendereinstellungen enthält. Wichtig hierbei sind folgende Dinge:

  • es müssen alle Parameter des Reports auch wenn nicht verwendet werden, sonst kommt es zu einem “sReportParameterValueNotSet” – hierzu kann man IIf(IsNothing …) verwenden
  • Datum muss folgendermaßen übergeben werden: & “&Datum=” & Format(Parameters!Datum.Value, “yyyy-MM-dd”)

Hier ist ein Beispiel:

Schritt 2: Verwendung des Links

Der generierte Link kann in einem Bericht verwendet werden, um den Export mit den angegebenen Einstellungen durchzuführen. Es ist jedoch wichtig zu beachten, dass diese Methode nicht für Abonnements verwendet werden kann, da Abonnements keine benutzerdefinierten URLs unterstützen.

Methode 3: Eigene Rendering-Extension

Einleitung

Wenn Sie mehr Kontrolle über das Exportformat benötigen oder spezielle Anforderungen haben, können Sie eine benutzerdefinierte Rendering-Extension erstellen. Dies erfordert einige Programmierkenntnisse und den Zugriff auf den SSRS-Server.

Schritt 1: Erstellen einer neuen .NET-Klassenbibliothek

Öffnen Sie Visual Studio und erstellen Sie ein neues Klassenbibliotheksprojekt. Implementieren Sie die IRenderingExtension-Schnittstelle aus dem Microsoft.ReportingServices.OnDemandReportRendering-Namespace.

Schritt 2: Implementieren der Rendering-Logik

Hier ist ein einfaches Beispiel für eine benutzerdefinierte CSV-Rendering-Extension:

Schritt 3: Erstellen und Bereitstellen der DLL

Kompilieren Sie die Klassenbibliothek und stellen Sie die resultierende DLL auf dem SSRS-Server bereit.

Schritt 4: Konfigurieren der Rendering-Extension

Bearbeiten Sie die RSReportServer.config-Datei, um die benutzerdefinierte Rendering-Extension hinzuzufügen:

<Extension Name="CUSTOMCSV" Type="Namespace.CustomCsvRenderer, AssemblyName" Visible="true"/>

Schritt 5: Verwendung der benutzerdefinierten Rendering-Extension

Sie können die benutzerdefinierte Rendering-Extension in Ihren Berichten und Abonnements verwenden, indem Sie rs:Format=CUSTOMCSV in der URL angeben:

http://server/ReportServerBI?/Reports/Reportname&Nr=????&rs:Command=Render&rs:Format=CUSTOMCSV

Fazit

Das Rendern von SSRS-Berichten mit benutzerdefinierten CSV-Trennzeichen kann auf verschiedene Weisen erreicht werden, je nach Ihren Anforderungen. Ob durch globale Änderungen in der Konfigurationsdatei, das Hinzufügen von Links im Bericht oder die Implementierung einer benutzerdefinierten Rendering-Extension – jede Methode hat ihre eigenen Vor- und Nachteile. Durch die richtige Wahl der Methode können Sie sicherstellen, dass Ihre Berichte immer im gewünschten Format exportiert werden.

weiterführende Links: