Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services SQL Server 2005 Reporting Services Whitepaper Autoren: Hitachi Consulting Mitwirkende: Michael W. Baker, Hitachi Consulting; Eric Winton, Hitachi Consulting Erschienen: April 2006 Geltungsbereich: Microsoft® SQL Server™ 2005 Reporting Services Zusammenfassung: Dieses Dokument unterstützt Crystal Reports Designer in einer schrittweisen Strategie bei der Migration auf die Microsoft® SQL Server™2005 Reporting Services. Urheberrecht Dies ist ein Entwurf, welcher bis zur endgültigen, kommerziellen Freigabe der darin beschriebenen Software womöglich wesentliche Veränderungen erfahren wird. Die Informationen in diesem Dokument vertreten die momentane Darstellung der Microsoft Corporation der darin besprochenen Themen zum Zeitpunkt der Publikation. Weil Microsoft den sich verändernden Marktbedingungen entsprechen muss, dürfen sie für Microsoft nicht als bindend aufgefasst werden. Zudem kann Microsoft für die Genauigkeit von Informationen jeglicher Art welche nach dem Publikationsdatum bekannt werden keine Gewähr übernehmen. Dieser Entwurf dient ausschließlich informativen Zwecken. MICROSOFT ÜBERNIMMT KEINE GARANTIEN, WEDER AUSDRÜCKLICH, STILLSCHWEIGEND ODER STATUARISCH, BEZÜGLICH DER INFORMATIONEN IN DIESEM DOKUMENT. Es ist Sache des Anwenders, allen anwendbaren Urheberrechtsgesetzen zu entsprechen. Kein Teil dieses Dokuments kann reproduziert werden, in einem Verteilersystem gespeichert oder in ein Verteilersystem eingespeist werden, oder in irgendeiner Form auf irgendeine Art übertragen werden (elektronisch, mechanisch, durch Fotokopieren, Aufnehmen oder Ähnlichem), ohne Urheberrechte zu verletzten und darf nur geschehen mit einer ausdrücklichen schriftlichen Genehmigung der Microsoft Corporation. Microsoft kann Patente, Patentanmeldungen, Schutzmarken, Urheberrechte oder andere Rechte geistigen Eigentums haben, die in diesem Dokument behandelte Gegenstände betreffen. Soweit nicht eine ausdrückliche schriftliche Lizenzgenehmigung seitens Microsoft vorliegt, gibt die Ausstattung dieses Dokuments Ihnen keinerlei Lizenz über Patente, Schutzmarken, Urheberrechte oder andere geistige Eigentümer. So lange nicht anders erwähnt sind die hier als Beispiel gewählten Unternehmen, Organisationen, Produkte, Domänen, EMail-Adressen, Logos, Menschen, Orte und Begebenheiten fiktiv, und jede Ähnlichkeit mit realen Unternehmen, Organisationen, Produkte, Domänen, E-Mail-Adressen, Logos, Menschen, Orte und Begebenheiten ist weder beabsichtigt, noch soll sie angedeutet werden. 2005 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft und Visual Studio sind entweder eingetragene Warenzeichen oder Warenzeichen der Microsoft Corporation in den Vereinigten Staaten und/oder anderen Ländern. Alle anderen Warenzeichen sind Eigentum der jeweiligen Inhaber. Inhaltsverzeichnis Einleitung ......................................................................................................... 4 Vergleich von Business Objects Crystal Reports 8.5+ bis SQL Server 2005 Reporting Services ........................................................................................... 5 Strategische Vorteile einer Migration auf SSRS.................................................... 5 Weitere SSRS Vorteile ..................................................................................... 6 Crystal Reports & SSRS - ein Vergleich .............................................................. 7 Vorbereitung zur Konvertierung auf die SQL Server 2005 Reporting Services .. 9 Analysieren Sie Ihre gegenwärtige Berichtlösung ................................................ 9 Identifikation der Konsolidierungs- und Standardisierungsmöglichkeiten .............. 11 Planung der Migration .................................................................................... 11 Migration einzelner Crystal Reports Abschnitte auf die SQL Server 2005 Reporting Services ......................................................................................... 11 Verbindung, Datenquelle und Parameter .......................................................... 14 Berichtkopf und Berichtfuß ............................................................................. 19 Seitenkopf und Seitenfuß ............................................................................... 23 Zeilendetails, Gruppierungen und Zwischentotale .............................................. 24 Formeln und maßgeschneiderte Funktionen ...................................................... 32 Weitere Crystal Reports Eigenschaften auf SQL Server 2005 Reporting Services migrieren ......................................................................................... 35 Matrix Berichte ............................................................................................. 35 Diagramme .................................................................................................. 39 Mehrfache Datenquellen und Unterberichte ...................................................... 40 Verknüpfte Berichte ....................................................................................... 42 URL Zugriff ..................................................................................................... 44 Verwendung von alternativen Migrationstechniken ....................................... 45 SQL Server 2005 Reporting Services Bericht Wizard .......................................... 45 Anwendungen von Drittanbietern .................................................................... 45 Zusammenfassung ......................................................................................... 46 Nützliche Links für SQL Server 2005 Reporting Services ................................ 47 Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 4 Einleitung Alle Unternehmen brauchen eine zuverlässige und effiziente Berichtlösung. Einige Organisationen entwickeln ihre eigenen Lösungen im Haus, während andere Organisationen Lösungen umsetzen, welche auf dem Markt erhältlich sind. Während vieler Jahre waren die Business Objects Crystal Reports die etablierte Option für Berichtslösungen in der Geschäftswelt, wie die Bündelung von Crystal Reports mit anderen Anwendungen, inklusive dem Microsoft Visual Studio, zeigt. Während sich Crystal Reports während vielen Jahren für viele Firmen bewährt hat, halten Firmen heute nach einer vereinheitlichteren und kosteneffizienteren Berichtslösung, wie z.B. den kürzlich veröffentlichten SQL Server Reporting Services, Ausschau. Microsoft SQL Server 2005 Reporting Services (SSRS) ist die aufkommende Lösung erster Wahl für Firmen, welche Unternehmensweite Berichtsresourcen benötigen und konkurriert direkt mit höchstrangigen Berichtslösungen wie Crystal Reports. Weil SSRS zusammen mit dem SQL Server 2005 ausgeliefert wird, können Firmen ihre Investitionen in den SQL-Server wirksam einsetzen und von tief greifenden Integrationen mit den anderen Bereichen des Produktes profitieren. Einige der jüngsten Erweiterungen der Reporting Services, inklusive eines ad hoc Berichtdesigners, Report Builder genannt, setzen Microsoft an die Spitze des Berichtslösungsmarktes. Weil heute so viele Firmen, welche ebenfalls SQL-Server besitzen und mit der Verwendung von SSRS als kostengünstigere Alternative beginnen möchten, Crystal Reports verwenden, besteht ein Bedarf für eine Begleitung von Crystal Reports Designer bei der Migration von ihrer gegenwärtigen Crystal Reports Lösung hinüber zu den SSRS. Dieses Dokument wird sich auf die manuellen Migrationsanstrengungen für Crystal Reports 8.5 und spätere Versionen konzentrieren und es beinhaltet einen abschnittsweisen Vergleich der Berichtsinformationen der Crystal Reports gegenüber jenen der SSRS. Dieser Ansatz wird zudem Crystal Reports Anwender in die SSRS einführen und die Ähnlichkeiten beider Systeme demonstrieren. Im Studium der eigentlichen Migrationsbemühungen haben wir beobachtet, dass eine große Anzahl migrierter Berichte tabellarisch sind und Eigenschaften wie Formeln, Gruppierungen und Parameter verwenden. Während ein Großteil der Funktionalitäten von Crystal Reports auch in SSRS zur Verfügung stehen, ist der Umfang dieses Dokumentes auf die migrationsspezifischen Abschnitte begrenzt, welche in der Tabelle 1 aufgeführt sind. Tabelle 1 – Crystal Reports Sparten im Visier dieses Dokuments und deren entsprechende SSRS-Berichtsparten Crystal Reports Sparten Verbindung, Datenquelle, Parameter Berichtkopf und Berichtfuß Seitenkopf und Seitenfuß Zeilendetails, Gruppierungen, Sub-Totale Formeln und massgefertigte Funktionen SSRS Sparten Datenset Seitenkopf und Seitenfuß Seitenkopf und Seitenfuß Tabellensteuerung Ausdrücke, inline Code, massgefertigte DLLs Bitte beachten Sie, dass semantische Ebenen (Univers und Business View) in jüngeren Versionen von Crystal Reports in diesem Dokument nicht berücksichtigt werden, obwohl SSRS in der Tat ähnliche Funktionalitäten beinhaltet, welche die geschäftlichen Anwender von der Komplexität relationaler und OLAP-Datenquellen isolieren. Durch den Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 5 Report Builder von SSRS können Endanwender ad hoc Berichte mittels vordefinierter Berichtsmodelle erstellen, um damit direkt auf relationale Datenquellen einzuwirken. Zudem führen SQL Server 2005 und SSRS ein neues Konzept ein, Unified Dimensional Model (UDM, z.dt.: Vereinheitlichtes Dimensionsmodel), welches schon wie die Business Objects Universe Ansicht, eine Metadaten-Schicht ist, die auf der physischen Datenbank obendrauf sitzt. Zu den wesentlichsten Vorteilen des UDM gegenüber der Business Objects Universe Ansicht gehören Folgende: eine Methode um Key Performance Indicators (KPIs, z.dt.: zentrale Leistungsindikatoren) auszudrücken und zu verwalten; eine transparente Aggregatdefinition, Verwaltung und Navigationsmaschine; eine fortgeschrittene Calculationssprache (MDX) welche ausdrucksvoller als SQL ist und multidimensionale Daten versteht; unterstützt, zusätzlich zu den unregelmäßigen Hierarchien, Eltern-Kind / unsymmetrische Hierarchien; ermöglicht die Definition von Teilmengen (Perspektiven) der allgemeinen semantischen Ebenen, weg von der Abhängigkeit von mehrfachen Universen mit Kopien der gemeinen Klassen und Objekte, um die Präsentation gegenüber dem Anwender zu vereinfachen; transparente Verwaltung von Abfragezusammenhängen, wobei jene Komplexität vom Design Ihrer semantischen Ebenen entfällt; ermöglicht die serverseitige Integration von Daten aus heterogenen Systemen ohne ETL (Extrahierung, Transformation und Laden); Übersetzungen von Metadaten, was es den Anwendern ermöglicht, Metadaten während der Erstellung der Berichte in ihrer eigenen, gesprochenen Sprache zu betrachten und zu konsumieren. Um mehr über die Fähigkeiten des SSRS Report Builder und des SQL Server 2005 UDM (vereinheitlichtes Dimensionsmodel) zu erfahren, verweisen wir Sie auf die nachstehenden Literaturhinweise der online Bücherei. Report Builder online Bücher Vereinheitlichtes Dimensionsmodel online Bücher Schließlich ein grundlegendes Wissen über SSRS notwendig, um Crystal Reports nach SSRS zu migrieren. Um Sie in Ihrer Lesearbeit noch mehr zu unterstützen, sind verschiedene SSRS-Themen in diesem Dokument mit SSRS online Büchern verknüpft. Vergleich von Business Objects Crystal Reports 8.5+ bis SQL Server 2005 Reporting Services Strategische Vorteile einer Migration auf SSRS Für die Entscheidung der Migration Ihrer bestehenden Crystal Reports auf SSRS ist ein eingehender Vergleich der beiden Produkte notwendig, um zu bestimmen, welches für Ihr Geschäft das Beste ist. Einige der zentralen, strategischen Fragen, welche während dieser Evaluation zusätzlich zur bloßen Betrachtung von Eigenschaften und Funktionen gestellt werden müssen sind: "Wie gut integriert sich meine Berichtslösung in den Rest Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 6 meiner Business Intelligence (BI, z.dt.: Geschäftsintelligenz) Technologien?", "Wie gut integriert sich meine Berichtslösung in meine Datenbanken und Datenquellen?", "Wie einfach oder kompliziert wird es für meine Entwickler sein, die Erstellung und Anwendung der Unternehmensberichte zu lernen?", "Verhindert die Komplexität meiner gegenwärtigen Berichtslösung deren Einsatz und Verwendung für eine verbesserte Entscheidungsfindung?", "Wie hoch sind die Unterhalts- und Administrationskosten meiner gegenwärtigen Berichtslösung?", und natürlich, "Was wird diese Berichtslösung meine Firma kosten?" Tiefe Integration mit Microsoft Business Intelligence Mit der Herausgabe des SQL Server 2005 hat Microsoft außergewöhnliche Schritte unternommen, um eine vollständige Business Intelligence Plattform für Unternehmen auf den Markt zu bringen, welche alle Aspekte der Business Intelligence in einer leicht bedienbaren Architektur integriert. Nebst einer inbegriffenen neuen und leistungsverbesserten Datenbankmaschine beinhaltet der SQL-Server 2005 auch die Analysis Services (Analysendienste) um OLAP Würfel zu erstellen und für die Datengewinnung (Data Mining), leistungsfähige Integration Services für die Ausführung von Extract, Transform und Load Aufgaben (ETL, z.dt.: gewinnen, verändern und laden) von verschiedenen Datenquellen und Reporting Services für Operational Reporting (operationelle Berichte). Vereinheitlichtes und konsistentes Entwicklungsmodel Weil die im SQL Server Business Intelligence Development Studio integrierten Werkzeuge wie z.B. der Report Designer den Vorteil des Visual Studio Systems nutzen, profitieren die Entwickler von einer konsistenten Entwicklungsmethodik und von einem einfacheren Lernprozess bei der Entwicklung von Anwendungen, welche sowohl Visual Studio als auch Reporting Services erfordern. Im Gegensatz zu den Reporting Services für SQL Server 2000, welche eine Microsoft Visual Studio .NET 2003 Lizenz erforderte, besitzt SQL Server 2005 zudem eine Reihe von Entwicklungswerkzeugen für Berichtgestaltung, Entwicklung und Einsatz die im "SQL Server Business Intelligence Development Studio" inbegriffen sind. SSRS hat dem Visual Studio 2005 und dem Visual Web Developer Express weitere Bedienungselemente, wie z.B. die "ReportViewer" Bedienung hinzugefügt, damit Sie Berichte in Ihre .NET Anwendungen oder ASP.NET Websites einbetten können. Einschließliche Preisgestaltung und mehr Wert für Ihr Geld Schließlich, mit den Advanced Services wurden dem SQL Server 2005 Express grundlegende Reporting Services Funktionalitäten hinzugefügt, sodass Sie ohne weitere Kosten anzuhäufen vom elementaren lokalen Berichtswesen profitieren können. Wenn Sie zurzeit also einen SQL Server 2005 Exemplar haben, oder wenn Sie darüber nachdenken eines zu realisieren, überlegen Sie, ob Sie Ihrer Investition durch den Einsatz von SSRS für Ihre Berichtsbedürfnisse mehr Gewicht verleihen wollen, statt womöglich hunderttausende von Dollars für Berichtlösungsprodukte von Drittfirmen auszugeben. Weitere SSRS Vorteile SSRS hat einige weitere Vorteile, die es zu berücksichtigen gilt. Eines der zentralen Konzepte des Produktes ist sein Einsatz von XML zur Darstellung von Berichten, Datenquellen, Berichtsmodellen und sogar der Servicekonfiguration. Microsofts Report Definition Language (RDL, z.dt.: Berichtgestaltungssprache) ist eine XML-Tabelle, welche zur Darstellung von Berichten verwendet wird, welche mithilfe des Reporting Services Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 7 Report Designer oder des Report Builder erstellt wurden. RDL-Dokumente fördern ein ausbaubares und offenes Berichtsdokumentformat, welches von verschiedenen Anwendungen leicht gemeinsam genutzt werden kann. Eine weitere Eigenschaft von SSRS ist deren Ausbaufähigkeit. Durch die Erweiterung von den SSRS können Anwendungsentwickler neue Datenquellen nach eigenen Bedürfnissen, neue Zustellmöglichkeiten, neue Wiedergabeoptionen oder neue Sicherheitsaspekte erstellen. Zudem können die Web Services als Datenquellen verwendet werden und eigene Bedienungselemente lassen sich in Berichten einfach kreieren und verwenden. Und zu guter Letzt haben die SSRS den Report Builder eingeführt, mit welchem sich im Report Manager ad hoc Berichte erstellen und zur späteren Verwendung abspeichern lassen. Für zusätzliche Informationen über neue Eigenschaften und Erweiterungen in den SSRS verweisen wir Sie auf die Microsoft SQL Server 2005 Reporting Services Website unter http://www.microsoft.com/technet/prodtechnol/sql/2005/2005ssrs.mspx. Crystal Reports & SSRS - ein Vergleich Tabelle 2 zeigt eine kurze Gegenüberstellung der Eigenschaften des Business Objects Crystal Reports Servers und der Microsoft SQL Server 2005 Reporting Services. Tabelle 2 – Vergleich des Crystal Reports Server mit den SSRSProdukteigenschaften Eigenschaft Berichtservereigenschaften Veröffentlichung Crystal Reports Server InfoView und Windows Client SSRS Berichtdesigner auf der Grundlage von Visual Studio, Berichtverwalter auf Webgrundlage (HauptBenutzerschnittstelle), SharePoint, ReportViewerBedienungselemente Gemeinsam genutzte Zeitpläne können von verschiedenen Berichten genutzt werden. Zeitplan-Kalender Zeitplanvorlagen können von verschiedenen Berichten verwendet werden. Exportformate Word, Excel, PDF Excel, Text, XML, PDF, TIFF, MHTML (oder benutzerdefinierte Wiedergabeerweiterungen) Auslieferungskanäle MAPI, File, FTP, Email Abonnements auf Datenbasis erhältlich (nur durch semantische Ebenen der Business View) E-Mail, gemeinsam genutzte Dateien (oder benutzerdefinierte Auslieferungserweiterungen) dynamische Abonnements auf Abfragebasis Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services Warnhinweise Events Berichthistorie verbundene Berichte Berichttypen Drill Down Berichte Berichte mit Unterberichten Kreuztabellenberichte OLAP-Berichte Mehrspaltenberichte Beschriftungen (Labels) BerichtobjektEigenschaften Karten Formeln SQL-Ausdrücke Parameter Parameterstufen (Cascading Parameters) Bilder, Linien, Abbildungen spezifische und erhältlich benutzerdefiniert, per Datei, und geplant Berichtinstanzen erhältlich, durch die Kodierung von Hyperlinks, nur wenn Crystal Reports Server oder BusinessObjects Enterprise verwendet wird. erhältlich via Web Services API anpassbar Momentaufnahme (snapshots) einfacher Dialog um Verknüpfungen zu einem gemeinsam genutzten Bericht zu erstellen, mit der Option Eigenschaften des verknüpften Berichtes zu anzupassen. beliebige Anzahl von Ebenen nur eine Ebene von Unterberichten erhältlich erhältlich In Details und Gruppen standard oder benutzerdefiniert beliebige Anzahl von Ebenen MapInfo (ActiveX Steuerung) Crystal oder BasicSyntax, Formeln können im ServerRepository wiederverwendet werden. erhältlich Sätze werden von der SQL-Maschine verarbeitet (Formeln werden vom CrystalModul verarbeitet) dynamische Parameter erhältlich (nur wenn Business View oder Universe verwendet wird) erhältlich nur in Businessansichten Wird nicht benötigt, weil es eine direkte Schnittstelle zum inhärenten Dialekt der SQLDatenbank gibt. konditionale Formatierung nicht möglich Funktionen eines vollständig anpassbar beliebige Anzahl Ebenen erhältlich erhältlich In Details und Gruppen benutzerdefiniert VB.NET-Ausdrücke oder eingebettete .NET-Assembly Objekte dynamische Parameter erhältlich erhältlich. Werte können für einen Parameter auf der Grundlage eines anderen Parameters definiert werden. .NET-Komponenten 8 Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services benutzerdefinierte Funktionen Berichts können in ein globales Repository exportiert werden. verwenden Datenfelder man muss mehrere Detailbereiche, Unterberichte und Benutzerfunktionen verwenden. Datenbankfeld gibt den ersten Datensatz zur Anzeige zurück. Datenfeld steuert die Anzeige mehrerer Datensätze. gemeinsam genutzte Datenquellen Funktionalität der Businessansicht Mehrfach-Datenfelder in einem Bericht (Tafeln, Matrizen, Diagramme, etc.) Gruppierungs- und Sortierungseigenschaften begrenzte Anzahl von Ergebnissen (erste-N, letzte-N, erste-%, letzte%) Export nicht erhältlich gemeinsame Nutzung zwischen mehreren Berichten möglich erhältlich Ansichtseigenschaften Formate Navigation in Teilen Gruppennavigation Drill Down auf derselben Seite erhältlich, enthält Wizards erhältlich Export durch die Ansichten Export durch Ansicht oder Abonnements mittels Wiedergabeerweiterungen Crystal-eigenes, Excel, PDF, RTF, Word kann definiert werden HTML 3.2/4.0, PDF, Excel, XML, CSV, TIFF, MHTML mittels Lesezeichen auf einzelne Berichtobjekte erhältlich als Document Map erhältlich als Gruppenbaum nicht erhältlich 9 erhältlich Vorbereitung zur Konvertierung auf die SQL Server 2005 Reporting Services Analysieren Sie Ihre gegenwärtige Berichtlösung Nachdem Sie die Entscheidung getroffen haben, Ihre bestehenden Crystal Reports Berichte auf SSRS zu migrieren, wird der erste Schritt sein zu bestimmen, wie Ihre Berichtlösung in einer Reporting Services Lösung dupliziert werden soll. Bedenken Sie zu Beginn die Benutzer Ihrer Berichtslösung. Wie Abbildung 1 zeigt, gibt es in einer Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 10 Organisation generell drei Arten von Benutzern, die mit Berichten zu tun haben: Informationsdesigner, Informationsanalysten, Informationsarbeiter. Crystal Reports Komponenten Crystal Reports (Windowsclient) Universe Designer Business View Designer BusinessObjects Enterprise und Crystal Reports Server (Administrationskonsole) Crystal Reports (Windowsclient) Crystal Reports Explorer InfoView Crystal Reports ansehen durch InfoView (BusinessObjects Enterprise und Crystal Reports Server Portal) und Portalen von Fremdherstellern z.B. SharePoint SQL Server 2005 Reporting Services Komponenten Informations designer Informations analysten Informations arbeiter Visual Studio 2005 Report Designer Report Manager Model Builder Report Builder Report Viewer Report Builder Report Manager Report Viewer Report Manager Abbildung 1: Bericht-Benutzertypen Informationsdesigner – Aktivitäten wie Berichte entwerfen und einsetzen, Berichtsmodelle\semantische Ebenen erstellen und die allgemeinen Berichtslösungen verwalten. Informationsanalysten – Aktivitäten, wie Berichte von den Informationsdesignern betrachten und analysieren und zusätzliche Berichte erstellen. Information Workers – Aktivitäten wie Daten aus Berichten von den Informationsdesignern und Informationsanalysten verwenden, um Geschäftsentscheidungen zu treffen. Anmerkung: Verteilerkanäle wie z.B. Microsoft Office und Email sind oben zwar nicht aufgelistet, werden aber von beiden Produkten unterstützt. Nachdem Sie entschieden haben wie die unterschiedlichen Benutzertypen mit SSRS umgehen werden, müssen Sie als Nächstes die Berichte in der gegenwärtigen Crystal Reports Lösung studieren. Erstellen Sie eine Liste aller Berichte und notieren Sie die jeweils relevanten Informationen wie z.B.: Wird der Bericht in der Organisation immer noch verwendet? Welche Benutzer und Gruppen verwenden den Bericht? Wie oft wird der Bericht aufgerufen? Wie wird der Bericht aufgerufen? Wird der Bericht in anderen Berichten verwendet? Was ist die Datenquelle? Gibt es verschiedene Produkte welche auf verschiedene Datenquellen zugreifen (Crystal Reports, Web-Informationen und OLAP-Informationen)? Welche Informationen werden angezeigt? Welche Geschäftsentscheidungen werden aufgrund des Berichtes gefällt? Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 11 Durch das Einfangen und Organisieren wichtiger Informationen über Ihre Berichtkonsumenten werden Sie deren gemeinsame Eigenschaften besser verstehen. Nachdem Sie diese Liste präpariert haben, können Sie mit der Definition Ihrer SSRSLösung beginnen. Identifikation der Konsolidierungs- und Standardisierungsmöglichkeiten In den meisten Fällen bereitet die Umsetzung einer neuen Berichtslösung eine Gelegenheit zur Konsolidierung vieler über die Jahre erstellter Berichte. Durch die signifikante Verminderung der Anzahl Berichte wird deren Unterstützung vereinfacht und die Organisation und Sichtbarkeit der Daten verbessert. So können Sie zum Beispiel Berichte konsolidieren, welche Informationen duplizieren oder welche zu keinem Zweck mehr dienen. Zudem sollten Sie diese Gelegenheit dazu nutzen, sich Wege der besseren Standardisierung der Berichte zu überlegen. Zum einen könnten Sie die Realisierung von gespeicherten Prozeduren als Ersatz für SQL-Anweisungen erwägen. Durch den Einsatz von gespeicherten Prozeduren können Sie Ihre Berichte vor bösartigen Attacken, wie zum Beispiel SQL-Injektionen, schützen und möglicherweise auch das Leistungsverhalten Ihrer Abfragen verbessern. Planung der Migration Wenn Sie die Analyse Ihrer gegenwärtigen Crystal Reports Berichtslösung abgeschlossen und etwelche Konsolidierungs- und Standardisierungsmöglichkeiten identifiziert haben, wäre der nächste Schritt die Planung der Migrationsdetails von Crystal Reports auf die SSRS. Diese Planung verwendet Ihre Analyseresultate, um zu identifizieren, welche Berichtsarten und -benutzer zuerst auf SSRS zu migrieren sind. In der Regel ist eine stufenweise Migration die beste Herangehensweise sowohl für die Endbenutzer als auch für das Designteam. Jede Phase sollte einen formellen Kommunikationsprozess zwischen Entwicklern und allen Benutzern haben. Im Minimum sollten das Datum der Migration, mögliche Systemausfallzeiten und die Anlaufstelle für Supportprobleme nach Abschluss der Migration kommuniziert werden. Wenn alle Phasen erst einmal definiert wurden, kann ein Solltermin für die Stilllegung der Crystal Reports Server gesetzt werden. Vergessen Sie nicht, auch für die Ausbildung Ihrer Endbenutzer auf dem Report Manager und Report Builder einzuplanen. Im Verlaufe dieser Ausbildung können Sie auch für Rückmeldungen über das neue System Werbung betreiben sowie neue Berichtsmodelle für die ad hoc Abfragen des Report Builders definieren. Migration einzelner Crystal Reports Abschnitte auf die SQL Server 2005 Reporting Services Nun, da Sie die Analyse Ihrer Berichtslösung abgeschlossen und die Liste aller zu konvertierenden Berichte bereitgestellt haben, sind Sie bereit, für jeden Bericht einen schrittweisen Migrationsprozess durchzuführen. Schauen wir uns zu Beginn einen Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 12 typischen Crystal Reports Bericht an. In diesem Bericht werden Verkaufsdaten für jedes Verkaufsgebiet angezeigt. Die Daten werden nach Region und darauf nach Verkäufer gruppiert. Abbildung 2: Beispiel einer Crystal Reports Design Schnittstelle Abbildung 3: Beispiel einer Crystal Reports Vorschau Dieser Crystal Reports Bericht nimmt mit der AdventureWorks Datenbank Verbindung auf und berichtet über die Verkäufe in den Regionen. Daten werden über zwei Befehle an den Report zurückgegeben, Command und Command_1. Command gibt die Verkaufsdaten für jeden Angestellten jeder Region zurück. Command_1 gibt eine eindeutige Liste aller Gebiete zurück. Es wurde auch ein Parameter “Terr” definiert, Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 13 welcher die unterschiedlichen Gebiete die bei der Ansicht für die Selektion zur Verfügung stehen vertritt. Und letztlich wurden auch Formeln verwendet um die Anzeige des Seitenkopfes für die Textanzeige “Gebietsverkäufe, Forts.” ein- und auszuschalten. Wenn die Seitenzahl 1 ist, ist die Anzeige unterdrückt, ansonsten wird sie angezeigt. Als Nächstes möchten wir die Schritte in Abbildung 2 und 3, welche für die Migration des Berichtes auf SSRS notwendig sind, nochmals zusammenfassen: Erstellen Sie ein neues Berichtprojekt im SQL Server Business Intelligence Studio; Registerkarte Daten - Neues Datenset erstellen und konfigurieren Sie die Verbindungsinformation zur Datenquelle; Registerkarte Daten – Abfrageinformationen im Datenset erstellen, um die erforderlichen Felder im Bericht zu abzurufen; Registerkarte Daten – etwelche Parameter für die Datenset Abfrage erstellen und die Abfrage testen; Registerkarte Entwurf – Bericht- Kopf- und Fußzeilen erstellen; Registerkarte Entwurf – Seiten-Kopf- und Fußzeilen erstellen; Registerkarte Entwurf – Zeilendetails, Gruppierungen, und Zwischentotale festlegen; Registerkarte Entwurf - Formeln und massgefertigte Funktionen erstellen; Registerkarte Entwurf – zusätzliche Eigenschaften erstellen wie zum Beispiel Matrizen, Diagramme, Mehrfach Datenquellen, Unterberichte, und verknüpfte Berichte. Öffnen Sie zuerst das SQL Server Business Intelligence Development Studio und erstellen Sie ein neues Bericht Server Projekt. Nachdem das Projekt erstellt wurde, sehen Sie eine Standard Berichtvorlage ähnlich wie das in Abbildung 4, unten. Eine Berichtvorlage enthält drei Registerkarten: Daten, Entwurf und Vorschau. Die Registerkarte Daten ermöglicht Ihnen die Konfiguration von Datensets für den Bericht. Ein Bericht kann mehrere Datensets von mehreren heterogenen Quellen haben. Die Registerkarte Entwurf ist der Ort, wo Sie den Bericht entwerfen. In der Registerkarte Vorschau können Sie Ihren Bericht mit aktuellen Daten aus den Berichtdatensets kontrollieren. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 14 Abbildung 4: Standard Berichtvorlage des Visual Studio .Net 2005 Verbindung, Datenquelle und Parameter Die erste Aufgabe einer Migration eines Berichtes ist die Einrichtung der Verbindungsinformation zur Datenquelle. Gemäß dem Crystal Reports Migrationsbeispiel in Abbildung 5a wird die Datenquelle der SQL-Server sein. In SSRS wird diese Verbindungsinformation die Datenquelle genannt. Ein Datenset beinhaltet nebst der Abfrageinformation einen Bezug zur Datenquelle. Sie können eine Datenquelle in einem separaten Schritt hinzufügen oder auch dann, wenn Sie ein neues Datenset hinzufügen. Um für Ihren Bericht ein neues Datenset einzurichten, klicken Sie auf das Datenset-Listenfeld in der Registerkarte Daten Ihres Berichts und wählen Sie Neues Datenset. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 15 Abbildung 5a: OLE DB Verbindung zur Datenbank des AdventureWorks SQL Servers Abbildung 5b: Konfigurationsseite für die Datenquelle eines Datenset Das Dialogfenster Datenquelle erscheint (Abbildung 5b). Geben Sie einen Namen für Ihre Datenquelle ein und wählen Sie den Typ. Klicken Sie dann auf die Schalfläche Bearbeiten um die Verbindungseigenschaften für die Datenquelle zu definieren. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 16 Abbildung 6: Verbindungseigenschaften für eine Datenquelle Nachdem Sie die Verbindungseigenschaften bestimmt und die Verbindung getestet haben klicken Sie OK, um zum Dialogfenster Datenquelle zurückzukehren. Klicken Sie wiederum OK um die Datenquelleninformation zu speichern und zur Registerkarte Daten des Berichtes zurück zu kehren. Sie sollten jetzt feststellen, dass jetzt das VerkaufsgebietSales Datenset im Datensetfenster verfügbar ist. Was hat sich jetzt also zugetragen? Im Wesentlichen haben wir jetzt ein Gefäß geschaffen, in welchem die Resultate Ihrer Abfrage dereinst gespeichert werden, wenn ein Bericht ausgeführt wird. Das Datenset verkörpert einen Speicher für die Resultate der Abfrage. Um mehr über Datensets und Datenquelle in SSRS zu erfahren besuchen Sie die Thematik in Reporting Services mit Daten arbeiten in den online Büchern. Der nächste Schritt ist die Erzeugung einer Abfrage, mit welcher wir eine Liste von Feldern aus dieser Datenquelle zurückgeben können, um damit für die Verwendung im Bericht das vorhin kreierte Datenset zu besiedeln. Weil die Datenquelle für den Beispielbericht im Crystal Reports die AdventureWorks Datenbank auf einem SQL-Server ist, können wir die SQL-Abfrage vom Crystal Reports Berichtbeispiel kopieren und direkt in den Abfragebereich des Registerblattes Daten einfügen. (Abbildung 7a und 7b) Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 17 Abbildung 7a: Befehlsabfrage vom Crystal Reports Berichtbeispiel Abbildung 7b: Kopierte Befehlsabfrage vom Crystal Reports Berichtbeispiel nach Einfügen in die Datenabfrage im SSRS-Bericht Sie könnten hier genauso gut eine gespeicherte Prozedur aufrufen, indem Sie den Wert im Befehlstyp-Listenfeld ändern. (Siehe online Bücher: “Abfragen von relationalen Daten in einer SQL-Server Datenbank” für weitere Informationen). Sie müssen zusätzlich noch ein weiteres Datenset mit der Liste der möglichen Verkaufsgebiete in der AdventureWorks-Datenbank erstellen. Dieses Datenset wird als Parameterquelle im nächsten Abschnitt gebraucht werden. Wiederholen Sie die vorherigen Schritte, um mit der AdventureWorks Datenquelle ein weiteres Datenset zu kreieren, welches Sie Verkaufsgebiete nennen. Verwenden Sie dieselbe Abfrage vom Command_1 im Crystal Reports Beispiel: Select distinct(Name) from Sales.SalesVerkaufsgebiet Und schließlich beinhaltet das Crystal Reports Berichtbeispiel einen Parameter "Terr," mit welchem die Benutzer die gewünschten Verkaufsgebiete auswählen können, wenn der Bericht aufgerufen wird (siehe Abbildung 8a). Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 18 Abbildung 8a: Crystal Reports Parameterbeispiel und Parameter Standardwerte von Command_1 Datenabfragen können in SSRS ohne weiteres überarbeitet werden. So kann man zum Beispiel eine "Where"-Klausel einzufügen, mit welcher der Bericht automatisch so konfiguriert werden kann, dass fakultative Parameter angezeigt werden. In Abbildung 8b wurde die Datenabfrage mit der folgenden Where-Klausel überarbeitet: Where st.name IN (@terr) Dieser Ausdruck wird aus der Datenquelle all jene Verkaufsgebiete zurückgeben, deren Namen sich in einer vom Benutzer angegeben Gebietsliste befinden. Abbildung 8b: Überarbeitete Datenset Abfrage mit Parameter Ein SSRS-Bericht enthält zudem eine Berichtparameter-Eigenschaftseite, wo der Designer an einem Ort alle Parameter der Datenabfrage anschauen kann. Um auf die Berichtparameterseite zuzugreifen, wählen Sie im Bericht-Menü den Eintrag Berichtparameter. Sobald die Berichtparameterseite geöffnet wird, wird der "terr"-Parameter von den SSRS automatisch entdeckt und der Parameterliste hinzugefügt. Zu den grundlegenden Eigenschaften eines Parameters gehören Name, Datentyp und Aufforderung (Prompt). Zudem können Sie Wertmodi (Nullwerte zulassen, Mehrfachwert, etc.), verfügbare Werte, die für den Parameter angezeigt werden sollen, sowie auch Standardwert(e) zur Anzeige beim ersten Aufruf des Berichtes auswählen. Setzen Sie zur Konfiguration der zusätzlichen Parameterinformation der Abfrage von Abbildung 8b die Aufforderung für den "terr"-Parameter auf Verkaufsgebiet. Als Nächstes setzen Sie den Wertmodus auf Mehrfachwert und lassen leere Werte zu. Beim Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 19 Setzen der möglichen Werte können die Designer entweder statische Werte, die nicht abgefragt werden, oder ein Datenset eingeben. Verwenden Sie für die Migration dieses Berichtbeispiels das Verkaufsgebiete-Datenset um die Parameterliste zu besiedeln. Verwenden Sie das Namenfeld Verkaufsgebiete sowohl als Wert sowie auch als Beschreibungsfeld. Weil der Parameter ein Mehrfachwert Parameter ist, können die Benutzer wählen, ob Sie ein, zwei oder gar alle Verkaufsgebiete auf einmal sehen wollen. Und schließlich lässt der Standard Wertbereich auch die Definition von statischen, variablen (abgefragten) oder Nullwerten zu. Wählen Sie die Option "aus der Abfrage" und verwenden Sie nochmals das Verkaufsgebiete-Datenset mit dem Namensfeld des Datensets als dem Wertfeld. Wenn Sie damit fertig sind, sollte der "terr"-Parameter etwa so wie in Abbildung 9 aussehen. Abbildung 9: Konfigurationsfenster Berichtparameter Wenn die Eingabe aller Parameter abgeschlossen ist, wählen Sie OK, um zur Registerkarte Daten zurückzukehren. Da Sie nun einen Berichtsparameter haben, können sie die Abfrage aktualisieren um den Parameter zu verwenden. Beim Hinzufügen eines Parameters zu einer Abfrage oder zu einer gespeicherten Prozedur wird dessen Name, wie bei jeder anderen SQL-Variable auch, ein @-Symbol vorangesetzt. Dieser Abfrageparameter dient als Platzhalter, der zur Laufzeit mit dem Parameterwert ersetzt wird, welcher im Bericht ausgewählt wurde. Für weitere Informationen über Berichtparameter besuchen Sie die Thematik Parameter in einem Bericht verwenden in den online Büchern für SSRS. Abschließend, um das Datenset zu testen können Sie die Abfrage durch einen Klick auf das rote Ausrufezeichen in der Symbolleiste über dem Abfragebereich ausführen und die Resultatsmenge betrachten. Die Resultate werden unterhalb des Abfragebereichs angezeigt. Berichtkopf und Berichtfuß Der Berichtkopf und der Berichtfuß sind in der Regel Bereiche, die auf der ersten Seite, respektive auf der letzten Seite, des Reports angezeigt werden. Im Gegensatz zu den Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 20 Crystal Reports haben die SSRS jedoch keinen expliziten Berichtkopf oder -Fuß Bereich. Sie können stattdessen die Seitenkopf- und -Fuß Bereiche verwenden. Schauen wir uns die Berichtkopf- und -Fuß Bereiche vom obigen Crystal Reports Beispiel in Abbildung 3 einmal an. Abbildung 10a: Berichtkopf- und Berichtfußbereiche aus dem Crystal Reports Berichtbeispiel In Abbildung 10a, beinhaltet der Berichtkopf des Crystal Reports Beispiels ein Logo, ein Textfeldobjekt mit der Berichtsüberschrift und einen Datumsstempel um anzuzeigen, wann der Bericht erstellt wurde. Der Berichtfuß beinhaltet ein Textfeldobjekt, welches das Ende des Berichtes anzeigt. Um diese Bereiche in die SSRS zu migrieren, klicken Sie in der Reportvorlage zuerst die Registerkarte Entwurf an, um den Berichtsentwurf anzusehen. Den Seitenkopf fügen Sie hinzu, indem Sie im Berichtmenü den Eintrag Seitenkopf auswählen. Nun steht dieser Bereich im Berichtentwurfsformular zur Verfügung. Als Nächstes verwenden Sie ein Rechteck als Behälter für ein Bild oder ein Textfeld welche den Berichtskopf umfassen. Ziehen Sie das Rechteck Steuerelement vom Werkzeugfenster in den Seitenkopfbereich. Spätestens jetzt sollten Ihnen die WYSIWYG-Gemeinsamkeiten zwischen dem SSRSund dem Crystal Reports Berichtdesign, sowie die pixelperfekte Berichtserzeugung auffallen (das heißt, Steuerelemente können ohne weiteres und mit großer Flexibilität auf die Entwurfsfläche gezogen und auf der gewünschten Pixelposition positioniert werden). Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 21 Seitenkopfregion Seitenfussregion Abbildung 10b: Typischer Berichtsentwurf mit hinzugefügten Seitenkopfund -Fußregionen. Als Nächstes fügen wir dem Rechteck Bild- und Textfeldsteuerelemente hinzu und passen die Größe des Rechtecks den Bedürfnissen entsprechend an. Da diese Steuerelemente nur auf der ersten Berichtseite angezeigt werden sollten, müssen Sie die Sichtbarkeitseigenschaften des Rechtecksteuerelementes anpassen. Rechtsklicken Sie das Rechtecksteuerelement und wählen Sie Eigenschaften. Finden und erweitern Sie im Fenster Eigenschaften die Sichtbarkeit. Klicken Sie das Listenfeld für die Eigenschaft „Versteckt" an und wählen Sie Ausdruck. Ein Ausdruck ist sehr ähnlich wie eine Formel in Crystal Reports, mit dem Unterschied, dass es den Visual Basic .NET-Syntax verwendet. Durch die Verwendung eines Ausdrucks kann ein Designer wie ein Programmierer einer Eigenschaft einen Wert zuweisen. Um die Sichtbarkeit des Rechtecksteuerelementes ein- und auszuschalten können Sie einen Ausdruck mittels einer globalen Variablen – Seitennummer - kreieren (für zusätzliche Informationen, siehe „In Reporting Services mit Ausdrücken arbeiten"). Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 22 Abbildung 11: Mit Bild und Textfeld überarbeitetes Steuerelement Seitenkopfrechteck. Abbildung 12: Rechtecksteuerelement mithilfe des Ausdruckseditors aufgrund der Seitenzahl anzeigen\verbergen. Klicken Sie OK, um das das Ausdruckseditor-Dialogfenster zu schließen. Sie haben nun Ihren Berichtkopf fertig gestellt. Wenn Sie Informationen in einem Rechteck gruppieren, können Sie auch diesen Rechteckinhalt aufgrund der Berichtseitenzahl anzeigen oder verbergen. Dieselbe Methode gilt auch für den Berichtsfuß. Gehen Sie nach demselben Muster vor, außer dass Sie die Steuerelemente im Berichtsfuß platzieren. Ändern Sie den Ausdruck für das Seitenfußrechteck nach diesem Beispiel: =IIF(Globals!PageNumber = Globals!TotalPages,False, True) Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 23 Seitenkopf und Seitenfuß Seitenkopf und Seitenfuß sind gewöhnlich Bereiche, welche am Berichtanfang, resp. ende, jeder Seite angezeigt werden. Wie wir im vorherigen Abschnitt gelernt haben wählen Sie, um einen Seitenkopf oder -Fuß in einem Bericht einzubinden, im BerichtMenü den Eintrag Seitenkopf oder Seitenfuß. Schauen wir uns den Seitenkopf und -Fuß des Crystal Reports genauer an. Abbildung 13: Seitenkopf und Seitenfuß Bereiche des Crystal Reports Beispiels In diesem Fall enthält der Seitenkopf die Spalten- oder Feldüberschriften des Reports, sowie das Textfeld, welches bedingt unterdrückt wird. Wenn Seite 1 die aktuelle Seite ist, wird das Textfeld unterdrückt, aber wenn die aktuelle Seite nicht Seite 1 ist, wird es angezeigt. Wie SSRS die Spaltenüberschriften in der Tabellensteuerung einsetzt, werden wir im nächsten Abschnitt erklären. Fürs Erste können Sie die Kontrollfelder Datumstempel und das Textfeld "Gebietsverkäufe, Forts." in den Seitenkopf von SSRS migrieren, da dies statische Texte sind. Weil der Datumsstempel in der rechten oberen Ecke jeder Seite angezeigt wird, können Sie dazu den Seitenkopf verwenden. Ziehen Sie ein Textfeld in den Seitenkopf und positionieren Sie es in der rechten oberen Ecke. Markieren Sie das Textfeld, finden Sie die Wert Eigenschaft im Dialogfenster Eigenschaften und wählen Sie dann die Ausdrucksoption im Listenfeld um folgenden Ausdruck zu erstellen. =Replace(DateString(),"-","/") Dieser Ausdruck formatiert einfach die Datumszeichenfolge um damit sie so aussieht wie in Crystal Reports. Statt einer Funktion einzutippen, können Sie im Ausdruckseditor aus einer Liste jede beliebige Funktion auswählen. In dieser Liste sind die Funktionen nach ihrer Art organisiert. Die Replace-Funktion ist in der Textgruppe, während die DateString-Funktion in der Datum & Zeit Gruppe untergebracht ist. Als Alternative können Sie auch die Formateigenschaft des Textfeldes verwenden um das Datumsformat (tt/MM/jjjj) einzustellen. Den Wert des Textfeldes können Sie für dieses Beispiel =Now setzen. Als Nächstes ziehen Sie ein weiteres Textfeld in den Seitenkopf und schreiben "Gebietsverkäufe, Forts." hinein. Da diese Überschrift auf jeder Seite außer der Ersten angezeigt werden soll, erstellen wir mit der Sichtbarkeitseigenschaft des Textfeldes einen Ausdruck, welcher dieses Kontrollfeld je nachdem anzeigt, oder verbirgt. Um den Seitenfuß zu migrieren, ziehen Sie ein Text-Kontrollfeld, in den Seitenfuß Bereich. Dann stellen Sie den Sichtbarkeitsausdruck so ein, dass die Seitenfußinformation auf allen außer der ersten Seite angezeigt wird. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 24 Abbildung 14: Überarbeitete Seitenkopf- und Seitenfußinformation in SSRS Um mehr über Berichtsentwürfe in SSRS zu lernen, besuchen Sie die Thematik Berichtentwürfe und -wiedergabe verstehen in den online Büchern für SSRS. Zeilendetails, Gruppierungen und Zwischentotale Im Herzen der meisten Berichte sind die Zeilendetails aus den Datenquellen. Zeilendetails werden oft nach allgemeinen Feldern gruppiert. Ein Bericht kann auch Zwischentotale für jede Gruppe beinhalten. Schauen wir uns die vorhandenen Zeilendetails, Gruppierungen und Zwischentotale unseres Migrationsberichtsbeispiels genauer an. Abbildung 15: Berichtdetails, Gruppierungen und Zwischentotale vom Beispiel Crystal Report In Abbildung 15 gibt es zwei Gruppen von Zeilendetails: Verkaufsgebiet und Nachname. In diesem Beispiel sind die Daten zum Zweck des vereinfachten Drill-downs in die einzelnen Gruppen zudem in einem tabellarischen Format dargestellt. Schließlich zeigt der Bericht die Summendaten (Zwischentotale) der gesamten Verkäufe nach Verkaufsgebiet und Verkäufer an. Wie im vorangegangenen Abschnitt bereits erwähnt wurde, verfügen SSRS über eine Tabellensteuerung um Spaltenüberschriften in einem tabellarischen Bericht anzuzeigen. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 25 In der nachfolgenden Tabelle 3 zeigen wir Ihnen eine Liste der in SSRS als Datenbereichen bekannten Steuerobjekte, und die entsprechenden Steuerelemente in Crystal Report, wenn vorhanden, die Sie in einem Bericht verwenden können: Tabelle 3 – Vergleich von Crystal Reports und SSRS-Steuerelementen Crystal Report Steuerelement Textobjekt, Beschriftung, Feld SSRS Steuerelement Textfeld Linie Linie N/V Tabelle Kreuztabelle Matrix Box Rechteck SSRS Beschreibung Anzeige der Textdaten eines Berichtes. Eine Tabellen- oder Matrixzelle ist in der Tat ein Textfeld. Sie können ein Textfeld irgendwo im Bericht platzieren um Beschriftungen, Felder oder berechnete Daten anzuzeigen. Ein grafisches Element, das Sie an jedem beliebigen Ort des Berichtes platzieren können. Sie definieren eine Linie mit einem Anfang-und Endpunkt und bestimmen den Stil, wie z.B. Gewicht oder Farbe. Linien haben keine Datenassoziationen. Mit einem Tabellen Datenbereich können Sie Daten in Zeilen und Spalten arrangieren. Tabellen haben eine festgelegte Anzahl Spalten aber je nach der Datenmenge im Datenset eine variable Anzahl Zeilen. Die Anzahl der Spalten einer Tabelle ist nicht begrenzt. Sie können die Darstellung einer Tabellenzelle so ändern, dass sie mehrere Spalten überspannt. Ebenso können Sie Gruppierungen und Sortierungen hinzufügen um die Daten innerhalb einer Tabellenstruktur zu arrangieren. Mit einem Matrix Datenbereich können Sie Daten, ähnlich der Kreuzoder Pivottabellen, in Zeilen und Spalten arrangieren. Im Gegensatz zu einer Tabelle, welche eine statische Menge von Spalten hat, ist die Anzahl von Matrixspalten variabel. Verwenden Sie Rechtecke als grafische Elemente oder als Behälter für andere Berichtelemente. Wenn sie Berichtelemente in Rechtecken unterbringen, können Sie diese mit dem Rechteck verschieben. Das kann nützlich sein, um zahlreiche Textfelder und andere Elemente beisammenzuhalten. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services Gruppenbereich Liste Bild Bild Unterbericht Unterbericht Diagramm Diagramm 26 Listen wiederholen die Steuerfunktionen, die sie enthalten, für jede Gruppe im Datenset. Listen können für Freiformberichte oder zusammen mit anderen Datenbereichen verwendet werden. Listen können ineinander geschachtelt sein, um mehrere Datengruppierungen bereitzustellen. Ein Bild zeigt im Bericht binäre Bilddaten an. Sie können auch Bilder auf einem Web-Server mittels derer URL anzeigen, Bilder direkt in den Bericht einbetten oder Bilder aus einer Datenbank anzeigen. SSRS unterstützen BMP-, JPEG-, GIF- und PNG-Formate. Ein Unterbericht ist ein Berichtelement, welches auf einen anderen Bericht auf dem Berichtserver zeigt. Dies kann ein eigenständiger Bericht sein oder ein Bericht, welcher ausschließlich als Unterbericht erstellt wurde. In einem Unterbericht können Sie zudem eigene Parameter definieren um Daten im Unterbericht zu filtern. Ein Diagramm ist ein Datenbereich, der eine grafische Darstellung der Daten in einem Bericht anzeigt. Sie können aus vielen verschiedenen Diagrammtypen auswählen. Sie können auch den Stil des Diagramms ändern, um unterschiedliche Farben, Symbole und 3D-Effekte zu verwenden. Um die Details, Gruppierungen und Zwischentotale des Crystal Reports Beispiels in Abbildung 15 zu reproduzieren, ziehen Sie einfach die Tabellensteuerung aus der Werkzeugkiste in den Hauptbereich des Berichts. Standardmäßig besteht eine neue Tabelle aus Kopfbereich-, Detail- und Fußbereichinformationen. Zusätzliche Informationen über die Tabellensteuerung sehen Sie nachfolgend in Abbildung 16. Beachten Sie im Speziellen, dass in der Tabellensteuerung der Tabellenkopf die Spaltenüberschriften anzeigt, während Crystal Reports den Seitenkopf verwendet. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 27 Abbildung 16: Übersicht SSRS Tabellensteuerung Zuerst weisen Sie der Tabellensteuerung ein Datenset zu. Klicken Sie die Tabelle und dann die Eckgreifpunkte an, um die Tabelleneigenschaften im Dialogfenster Eigenschaften anzuzeigen. Finden Sie die DatensetName-Eigenschaft und weisen Sie ihr das entsprechende Datenset zu. Dann konfigurieren Sie die Gruppierungen für die Tabelle. Klicken Sie die Tabelle an um die Zeilen- und Spaltengreifer sichtbar zu machen. Rechtsklicken Sie einen der Zeilengreifer an und klicken Sie dann auf Gruppe einfügen um das Dialogfenster Gruppierungs- und Sortierungs-Optionen anzuzeigen. Die Registerkarte Allgemein in diesem Dialogfenster gibt Ihnen die Möglichkeit, die Felder zu bestimmen, nach welchen Sie das Datenset gruppieren werden. Geben Sie der Gruppierung zuerst einen Namen. Dann wählen Sie einen Ausdruck für Gruppe Ein. Da die erste Gruppierung auf dem Verkaufsgebietsnamen beruht, wählen Sie das Namenfeld aus dem Datenset. Behalten Sie für alles andere die Standardwerte bei und klicken Sie dann auf OK, um zur Tabelle zurückzukehren. Ihre Tabelle hat jetzt, wie Abbildung 17 zeigt, eine neue Gruppierung. Group 1 Header Row Group 1 Footer Row Abbildung 17: Einer Tabellensteuerung eine neue Gruppe hinzufügen Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 28 Fügen Sie der Tabelle als Nächstes eine weitere Gruppierung für die Verkäufer hinzu. Wiederholen Sie die Schritte von vornhin, um der Tabelle auf der Basis von SalesPersonID eine zweite Gruppe hinzuzufügen. Ihre Tabelle sollte nun ähnlich wie jene in Abbildung 18 aussehen. Group 2 Header Row Group 2 Footer Row Abbildung 18: Einer Tabellensteuerung eine 2. Gruppierung hinzufügen Jetzt, da Ihre Tabelle Gruppierungen enthält, können Sie damit beginnen, Ihrer Tabelle Daten hinzuzufügen. Ziehen die Felder aus dem Datenset einfach auf die Tabelle. In Fortsetzung unseres Crystal Reports Beispiels ziehen Sie das Feld Name in die erste Zelle des Gruppierungskopfes. Sobald das Feld dem Gruppierungskopf hinzugefügt wurde, wird auch der Tabellenkopf mit der Feldbeschriftung aktualisiert. Als Alternative können Sie Tabellenköpfe, genau so wie in Crystal Reports, auch manuell verändern. Beachten Sie zudem den Ausdruck im ersten Gruppierungskopf, welcher sich auf den Wert im Datensetfeld in Abbildung 19 bezieht. Abbildung 19: Datensetfelder in die Tabelle einfügen Nun können Sie SalesPersonID der zweiten Zelle der zweiten Gruppierungszeile hinzufügen, was die Datendarstellung staffeln wird. Weil die zweite Gruppierung den Vor- und Nachnamen eines Verkäufers anzeigen sollte, müssen Sie einen Ausdruck erstellen um die entsprechenden Felder des Datensets aneinander zu reihen. Wählen Sie das Textfeld und finden Sie dann die Werteigenschaft im Eigenschaften Fenster. Wählen Sie <Ausdruck> im Listenfeld der Eigenschaft (Sie können das Textfeld auch Rechtsklicken und Ausdruck aus dem Kontextmenü wählen) und erstellen Sie darauf einen Ausdruck wie diesen (siehe Abbildung 20 neuer Textfeldwert): Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 29 =Fields!FirstName.Value + " " + Fields!LastName.Value Abbildung 20: mit einem Ausdruck erstellter Textfeldwert Die SSRS-Tabelle enthält nun alle Gruppierungsinformationen. Die nächste Detailebene im Crystal Reports Beispiel zeigt die Bestellnummern und deren Gesamtwert. Bevor wir der Tabelle weitere Felder hinzufügen, brauchen wir eine weitere Spalte. Rechtsklicken Sie die letzte Tabellenspalte Tabelle und wählen Sie aus dem Kontextmenü Spalte rechts einfügen. Passen Sie die Spaltenbreite so an, dass die Tabelle auf die Seite passt. Dann ziehen Sie die Bestellnummer- (SalesOrderNumber) und Gesamtwert (TotalDue)-Felder in die dritte, respektive die vierte Spalte der Detailzeile. Die Tabelle sollte nun der Abbildung 21 ähnlich sehen. Abbildung 21: Einfügen von Feldern in die Detailzeilen der Tabelle Und wiederum können Sie feststellen, wie der Feldname automatisch in den Tabellenkopf eingefügt wurde. Vergessen Sie nicht die Spaltenüberschriften denjenigen des Crystal Reports anzupassen. Mit der Berichtformat-Werkzeugleiste, oder auch durch Veränderung der Eigenschaften im Eigenschaften Fenster, können Sie formatieren. Nun sind wir bereit, die Zwischensummen nach Verkäufer und Verkaufsgebiet hinzuzufügen. Der erste Gruppenkopf für das Verkaufstotal wird die Zwischensumme für jedes Verkaufsgebiet anzeigen. Um diese Zwischensumme zu berechnen, ziehen Sie den Gesamtwert (TotalDue) in die vierte Spalte des ersten Gruppenkopfes. SSRS fügt die Summenaggregatsfunktion den numerischen Feldern automatisch hinzu. Wiederholen Sie diesen Schritt um die Zwischensummen nach Verkäufern in den zweiten Gruppenkopf unterhalb der Verkaufstotal-Spalte hinzuzufügen. Inzwischen sollte Ihre Tabelle etwa so wie in Abbildung 22 aussehen. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 30 Abbildung 22: Gruppenzwischensummen berechnen Der letzte Schritt in diesem Abschnitt ist die Aufwertung der Tabelle durch das Entfernen unbenutzter Zeilen und durch das Formatieren. Als Sie der Tabelle neue Gruppen hinzufügten, entstanden automatisch Gruppenfußzeilen. Da wir diese Zeilen in diesem Beispiel nicht brauchen, können Sie diese entfernen. Klicken Sie die Tabelle an und rechtsklicken Sie auf den jeweiligen Zeilengreifer und wählen Sie im Kontextmenü Zeile entfernen. Wiederholen Sie dieses Vorgehen um die verbleibende Gruppenfußzeile, sowie auch die Tabellenfußzeile, zu entfernen. Der Vergleich zwischen Abbildung 22, oben und Abbildung 23, unten zeigt, dass die Tabellensteuerung nun formatiert geworden ist. Abbildung 23: Bericht formatieren In der Vorschau des Crystal Reports Beispiels in Abbildung 3, oben, verbirgt der Bericht die zweite Gruppierung und die Berichtsdetails, bis ein Benutzer ein Verkaufsgebiet oder einen Verkäufer anklickt. Um diese Interaktivität zu migrieren, können sie den Zeilen einer Tabellensteuerung eine interaktive Eigenschaft, wie dem Verbergen von Berichtelementen hinzufügen. Durch Verwenden der Sichtbarkeit Eigenschaft der Tabellendetailzeile und der zweiten Gruppenzeile können Sie diese Zeilen anzeigen oder verbergen, wenn Sie ein Textfeld einer anderen Zeile anklicken. Um die gesamte zweite Gruppenzeile auszuwählen, klicken Sie die Tabelle und dann den entsprechenden Zeilengreifer an. Die zweite Gruppenzeile ist jetzt markiert und die Eigenschaften dieser Zeile sind im Eigenschaft-Fenster zugänglich. Orten Sie die Sichtbarkeit-Eigenschaft und ändern Sie die Verborgen-Eigenschaft auf Wahr. Als Nächstes ändern Sie die ToggleItem (Element ein/aus-) Eigenschaft auf den Namen des Textfeldes, welches das Gruppierungsfeld für das Verkaufsgebiet enthält. ToggleItem-Eigenschaft verändert den Wert der Verborgen-Eigenschaft von Wahr auf Falsch sobald Sie das entsprechende Textfeld anklicken. Abbildung 24 zeigt einerseits die markierte zweite Gruppenreihe und andererseits das Eigenschaften-Fenster wo die ToggleItem-Eigenschaft auf txbVerkaufsgebietName, welches der Name resp. die ID des Textfeldes in der ersten Gruppenreihe ist, gesetzt ist. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 31 Abbildung 24: Drill-down Fähigkeit mittels der ToggleItem Eigenschaft hinzufügen Wiederholen Sie den vorherigen Schritt um die ToggleItem Eigenschaft für die Tabellendetailzeile festzulegen. In diesem Fall ist der ToggleItem Eigenschaftswert das Textfeld mit der zweiten Gruppierung für die Verkäufer. Zum Schluss setzen wir das Format der Verkaufstotal Spalte auf Währung. Dazu wählen Sie den Greifer der Verkaufstotal Spalte um die gesamte Spalte zu markieren und setzen die Formateigenschaft für die Spalte auf C (Currency). Klicken Sie die Vorschau Registerkarte an, um zu sehen, wie sich der Bericht, gemäß Abbildung 25, entwickelt hat. Abbildung 25: Vorschau Bericht Migration Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 32 Formeln und maßgeschneiderte Funktionen In den meisten Berichtsfällen bieten die Datenbankfelder nicht immer die benötigten Daten für bestimmte Berichtsaspekte. Berichtlösungen erfordern daher oft alternative Wege, um die Daten zu erzeugen. Crystal Reports bietet für diese Datenerzeugung Formeln und maßgeschneiderte Funktionen an. In einem Bericht verwendet eine Formel Ausdrücke (Formeln-Workshop) um Berichtelemente wie Textfeldobjekte zu füllen. Einige Beispiele von Formeln sind die Erzeugung von berechneten Feldern, Textformatierung und die Verwendung von maßgeschneiderten Funktionen. Maßgeschneiderte Funktionen gehören zu den komplexeren Vorgehen um in Crystal Reports Berichten Daten zu evaluieren, zu berechnen oder umzuwandeln. Anders als Formeln, wo die Reichweite der Formel innerhalb des Berichtes lokal ist, können maßgeschneiderte Funktionen übergreifend zur Verwendung in mehreren Berichten gespeichert werden. In SSRS wurden wir mit dem Ausdruckseditor bekannt gemacht. Mit ihm können wir Berechnungen vornehmen oder Zeichenfolgen einer SSRS-Steuerung bearbeiten. Diese Eigenschaft ist dem Formelworkshop in Crystal Reports sehr ähnlich, mit dem Unterschied, dass ihre Reichweite sich nur auf das Steuerelement bezieht, in welchem der Ausdruck definiert ist. Um einen globaleren Ausdruck zu erzeugen, ermöglichen die SSRS das Schreiben von maßgeschneiderten VB.Net-Funktionen, auf welche der Ausdrucksgenerator des Berichtes Zugriff hat. Maßgeschneiderte Funktionen werden mittels den Berichteigenschaften erstellt, welche ihrerseits im Menü Berichteigenschaften des Berichte Menüs zu Hause sind. Hier lassen sich die diversen Eigenschaften für den gesamten Bericht bestimmen. In diesem Abschnitt konzentrieren wir uns auf die Registerblätter Code und Referenzen im Dialogfenster Berichteigenschaften. Funktionen, auf welche innerhalb des Berichtes mühelos Bezug genommen werden kann, werden im Registerblatt Code mit Visual Basic .NET (VB.NET)-Funktionen erzeugt. Sie können hier mehrere Funktionen hinzufügen. Zurzeit ist VB.NET die einzige Sprache, die unterstützt wird. Zu Vorführungszwecken fügen wir dem Code eine einfache VB.NetFunktion hinzu (siehe Abbildung 26), welche den Vordergrund rot einfärbt, sobald die Gesamtverkaufssumme eines Verkaufsgebietes $10'000'000.00 übersteigt. Abbildung 26: VB.Net Code um die Vordergrundfarbe aufgrund der Gesamtverkaufssumme einzustellen. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 33 Um diese Funktion zu verwenden, wählen Sie das Textfeld mit dem Verkaufstotal für das Verkaufsgebiet (die erste Gruppierung) und fügen der Farbeigenschaft folgenden Ausdruck zu: =Code.setColor(Sum(Fields!TotalDue.Value)) Beachten Sie das Schlüsselwort "Code" im Ausdruck. Dieses verhält sich in SSRS wie ein Namensraum, um dem Ausdruck mitzuteilen, wo die Funktion zu Hause ist. Schauen Sie sich den Bericht an, um zu bestätigen, dass alle Verkaufsgebiete mit Verkaufssummen von mehr als $10 Millionen eine rote Schrift haben. Diese Gestaltungstechnik kann in einem Bericht eine erhöhte Aufmerksamkeit gewinnen. Mittels der Codeseite des Dialogfensters Berichteigenschaften und dem ExpressionBuilder können die Entwickler ihren Berichten schnell und mühelos mehr Funktionalität einhauchen. Abbildung 27: Vorschau auf die Veränderungen der Vordergrundfarbe der Zwischensumme der Gebietsverkäufe mit dem VB.Net Code. Es kann nicht genug betont werden, dass Formeln und eigener Code bei der Migration von einem Crystal Reports Bericht in die Code Registerkarte der Berichteigenschaften unbedingt in eine VB.Net-Funktion konvertiert werden muss. Um in den SSRS, wie in Crystal Reports, eigenen und wiederverwendbaren Code zu kreieren, wird die Referenz-Registerkarte der Berichteigenschaften verwendet. Die Referenz-Registerkarte ermöglicht es dem Designer, im Bericht auf eine Assembly zu verweisen. Assemblies sind vorkompilierter Code, der von Anwendungen untereinander ausgetauscht werden kann. Assemblies sind dazu geeignet, Bibliotheken von allgemeinen Aufgaben an einem zentralen Ort zu verwalten. Nehmen wir unser Berichtbeispiel in, welchem Gebietsverkäufe von AdventureWorks angezeigt werden. Wenn ein Projekt mehrere Berichte zum Thema Verkauf und Finanzdaten erfordert könnten Sie ohne weiteres eine Assembly schreiben um allgemein benötigte Funktionen Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 34 zu definieren. Auf diese könnten Sie dann in allen Berichten Bezug nehmen. Sollten zudem Änderungen in einer Assembly nötig werden, würden diese automatisch in allen Berichten des Projekts wirksam. Weil es eine .NET-Assembly ist, können Sie diese in jeder beliebigen .Net-Anwendung verwenden. Und schließlich können Sie die Limitationen umgehen, dass Berichtroutinen in VB.NET geschrieben werden muss, weil Assemblies in jeder .NET-Sprache Ihrer Wahl verfasst werden können. Zur Demonstration von eigenen Assemblies in einem Bericht können Sie das eingebettete Codebeispiel von Abbildung 26 nachbilden. Erstellen Sie im Visual Studio .NET eine Klassenbibliothek-Datei mit C#.NET statt mit VB.NET. Abbildung 28: Assembly zur Anzeige eines farbigen Zeichenkette aufgrund eines Eingabewertes. Sobald Sie die Klassenbibliothek-Datei als eine Assembly kompiliert haben, kopieren Sie die Assembly in die Anwendungsordner für den Berichtserver und Berichtdesigner. Der Standard Standort für den bin Ordner des Berichtservers ist C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin. Der Standard Standort für den Report Designer ist C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies. Bitte besuchen Sie die Reporting Services online Hilfe für weitere Informationen über den Einsatz einer eigenen Assembly in einem Bericht. Als Nächstes stellen Sie in der Registerkarte Bezüge im Dialogfenster Berichteigenschaften einen Bezug auf diese Assembly her. Im Bereich Bezug klicken Sie die Schaltfläche Ellipse an und blättern bis zur Assembly im Anwendungsordner Report Designer. Wählen Sie die Assembly und klicken Sie Hinzufügen. Schlussendlich klicken Sie OK, um zu den Berichteigenschaften zurückzukehren.Weil die setColor-Funktion in der Assembly eine statische Methode ist, müssen Sie Klasseninformation für diese Assembly nicht füllen. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 35 Abbildung 29: Bezug auf die eigene Assembly in den Berichteigenschaften Klicken Sie OK um das Dialogfenster Berichteigenschaften zu schließen. Jetzt können Sie den Ausdruck für die Farbe des Textfeldes des Verkaufstotals pro Verkaufsgebiet überarbeiten um diese eigene Assembly zu verwenden. Verändern Sie dazu den Ausdruck um die statische Methode in der Assembly aufzurufen, und zwar so: =RSLibrary.MyReportFunctions.setColor(Sum(Fields!TotalDue.Value)) Testen Sie den Bericht, um zu sehen, ob die Verkaufsgebiete mit Verkaufssummen von mehr als $10 Millionen wiederum in einer roten Schrift dargestellt sind. Weitere Crystal Reports Eigenschaften auf SQL Server 2005 Reporting Services migrieren Matrix Berichte In einem Matrixbericht arrangieren Sie die Daten in Spalten und Zeilen ähnlich einer Kreuz- oder Pivottabelle. Im Gegensatz zu einer Tabelle, welche eine statische Anzahl Spalten hat, kann die Anzahl der Matrixspalten dynamisch sein. SSRS haben, wie Crystal Reports, eine Matrixsteuerung (oder Kreuztabellensteuerung) um diese Art von Bericht zu generieren. Allerdings ermöglichen die SSRS, anders als die Crystal Reports Matrixsteuerung, in ihrer Matrixsteuerung ein Ein-\Ausklapp- oder Kipphebel-Verhalten. Zudem kann ein SSRS-Bericht in ein und demselben Bericht auch eine Mischung von Matrizen und anderen Datenbereichen wie Tabellen und Diagrammen vereinen. Das verleiht dem Design eine viel größere Flexibilität. Weitere Informationen zum Thema SSRS Matrixsteuerung finden Sie unten in Abbildung 30. Um einen Matrixbericht zu erstellen, eröffnen Sie im SQL Server Business Intelligence Studio zuerst einen neuen Bericht, dann ein Datenset für den Bericht und ziehen dann ein Matrixsteuerelement in den Berichtentwurf hinein. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 36 Abbildung 30: Übersicht Matrixsteuerung Abbildung 31: Leere Matrixansicht Beachten Sie in der Steuerung in Abbildung 31 die Beschriftungen der Zeilen, Spalten und Datenbereiche. Die erste Aufgabe bei der Migration eines Crystal Reports Matrixberichts in einen SSRS-Bericht ist die Kreation eines neuen Datensets mit der Datenquelle und den Abfrageinformationen vom Crystal Report. Mit dem neuen Datenset können Sie die Felder auf die SSRS-Matrix ziehen. Das Datenset für den Beispiel Matrixbericht in Abbildung 32 nimmt mit der AdventureWorks Datenquelle Verbindung auf und gibt die Verkaufsinformationen für jedes Departement während den Jahren 2002 und 2003 zurück. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 37 Abbildung 32: Matrix mit gruppierten Datensetfeldern Nachdem die Felder vom Datenset auf die Matrix platziert wurden, kann diese nun formatiert werden. Die Spalten und Zeilen einer Matrix können wie in der SSRSTabellensteuerung aufgrund von Benutzereingaben im Bericht angezeigt oder verborgen werden jedoch ist das Vorgehen um diese Funktionalität hinzuzufügen geringfügig anders. Im folgenden Beispiel werden Sie die Sichtbarkeit der Unterkategorie und der Informationen zu den Quartalsbestellungen wenn der Benutzer die Kategorie, respektive die Jahresbestellungen, anklickt hin- und herschalten. Klicken Sie dazu die Matrix an und rechtsklicken Sie dann auf den Eckgreifer und wählen Sie im Kontextmenü Eigenschaften. Als Nächstes klicken Sie die Registerkarte Gruppen um die in der Matrix definierten Gruppierungen zu sehen (Abbildung 33). Wählen Sie die <Matrix name>_SubCat Gruppe und klicken Sie auf Bearbeiten um das Dialogfenster Gruppierung und Sortierung für diese Gruppe zu sehen. Klicken Sie die Registerkarte Sichtbarkeit, setzen Sie die Standard Sichtbarkeit der Gruppe und geben Sie das Berichtselement an, welches die Umschaltung der Sichtbarkeit steuert (Abbildung 34). Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 38 Abbildung 33: Matrixgruppen bearbeiten Abbildung 34: Sichtbarkeit der Matrix1_SubCat-Gruppe bearbeiten Klicken Sie auf die Registerkarte Sortieren, bevor Sie OK klicken, um die Änderungen zu speichern. Sie können die Gruppe an dieser Stelle nach jedem Feld im Datenset sortieren. Nach der Definition der Sortierreihenfolge klicken Sie OK, um zum Dialogfenster Matrixeigenschaften zurückzukehren. Wiederholen Sie diese Schritte für die Sichtbarkeit und Sortierreihenfolge der Gruppe Quartalsbestellungen. Darauf geben Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 39 Sie noch die Sortierreihenfolge für die verbleibenden Gruppen in der Matrix an: Produktkategorie und Bestelljahr. Wenn Sie fertig sind, klicken Sie OK. Zum Schluss formatieren Sie die Matrix nach Ihren Wünschen um deren Erscheinungsbild aufzuwerten (Abbildung 35). Abbildung 35: Vorschau des Matrixberichtes mit überarbeiteter Sichtbarkeit und Sortierung Für weitere Informationen zum Matrix-Datenbereich in SSRS, besuchen Sie bitte die Thematik Arbeiten mit dem Matrix-Datenbereich in den online Büchern. Diagramme Ein Diagramm ist eine gute Art, um Daten in einer Weise anzuzeigen, welche unmittelbare Aufmerksamkeit weckt. Bei der Migration von Diagrammen aus Crystal Reports verwenden Sie die bestehende Datenquelle, Abfrage und Parameter von der Crystal Reports Diagrammdefinition um in SSRS ein neues Datenset zu kreieren. Sobald das Datenset kreiert ist, klicken Sie die Registerkarte Entwurf und ziehen eine Diagrammsteuerung in den Hauptbereich des Berichtes (Abbildung 36). Um das Diagramm anzupassen, rechtsklicken Sie darauf und wählen Eigenschaften aus dem Kontextmenü. Mit dem Dialogfenster Diagrammeigenschaften können Sie jeden Aspekt des Diagramms konfigurieren und Ihren Wünschen anpassen. Ob Sie den Diagrammtyp und den Datensetnamen bestimmen, Werte für die X- und Y- Achsen angeben oder visuelle Effekte hinzufügen müssen, das Dialogfenster Diagrammeigenschaften ist Ihr Supermarkt für den Diagrammbedarf. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 40 Abbildung 36: Standard Liniendiagrammtyp in SSRS Eine weitere interessante Angelegenheit bei der Migration von Diagrammen von Crystal Reports auf SSRS ist die Art und Weise wie SSRS mehrfache Diagramme und Aggregate wiedergibt. In Crystal Reports stellen viele Berichtdesigner Diagramme und Tabellen mit Aggregatdaten in den Berichtfuß, weil der Bericht zuerst alle Detaildaten einlesen muss, bevor er irgendwelche Aggregatdaten berichten kann. Diese Einschränkung ist das Produkt der Multipass-Rechenmaschine in Crystal Reports. SSRS andererseits überwindet diese Einschränkung durch eine Freiformfläche, in welcher Berichte frei entworfen werden können. Darin eingeschlossen ist auch die Möglichkeit, Tabellen mit Aggregaten und nebeneinander liegenden Diagrammen an einer beliebigen Stelle im Bericht zu platzieren. Schließlich, weil SSRS ein erweiterbares Gerüst ist, können Sie bei Drittanbietern zusätzliche Diagrammtypen und Anzeigeinstrumente kaufen. Ein solcher Anbieter, der sich auf SSRS Diagrammsteuerungen spezialisiert hat, ist Dundas (http://www.dundas.com). Um mehr über Diagramme zu erfahren, besuchen Sie Arbeiten mit Diagrammdatenbereichen in den online Büchern. Mehrfache Datenquellen und Unterberichte Crystal Reports und SSRS haben beide die Fähigkeit, mit einer großen Auswahl von Datenquellen anzukoppeln, wobei Crystal Reports bekanntlich Leistungsprobleme hatte, wenn in einem einzigen Bericht mit mehreren Datenquellen gearbeitet wurde. Diese Leistungsschwäche ist eine unmittelbare Folge davon, dass für jede einzelne Datenzeile der primären SQL-Abfrage eine sekundäre SQL-Abfrage ausgeführt wird. Dies kann dazu führen, dass hunderte von einzelnen Abfragen ausgelöst werden. Um dieses Problem zu umgehen, verwenden Crystal Reports Designers mehrere Unterberichte auf einem Hauptbericht um die Daten aus verschiedenen Datenquellen aufzuteilen. Auf der anderen Seite lassen die SSRS in einem Bericht mehrere Datenquellen zu, welche in einem Freiformentwurf in verschiedenen Datenbereichen verwendet werden können. So können Sie ohne Leistungskompromisse und krampfhaftem Ringen nach obskuren Hilfskonstruktionen nach Herzenslust jeden Bericht erstellen. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 41 Um zu demonstrieren, wie man in SSRS an mehrere Datenquellen ankoppeln kann öffnen Sie den tabellarischen Bericht, den wir vorhin erstellt haben und fügen ein neues Datenset hinzu. Mithilfe des Dialogfensters Datenset können Sie eine neue Datenquelle eröffnen um eine neue Verbindung zu definieren. Um diesem Beispiel zu folgen, verbinden Sie sich mit den Microsoft SQL 2005 Analysis Services. Jetzt sollten im Bericht drei Datensets definiert sein. VerkaufsgebietSales und Verkaufsgebiet verwenden die AdventureWorks Datenbank während OLAPDataSource die AdventureWorks OLAP Datenbank verwendet. (Abbildung 37) Abbildung 37: Berichtbeispiel mit heterogenen Datenquellen in einem einzigen Bericht In SSRS ist ein Unterbericht ein Berichtelement, welches zu einem anderen Bericht auf dem Berichtserver eine Beziehung hat. Der Bezugsbericht kann ein vollständiger und eigenständiger Bericht oder ein speziell zum Zweck der Einbettung in einen anderen Bericht erstellter Bericht sein. Auch bei der Kreation eines Unterberichts können Sie Parameter definieren, um darin Daten zu filtern. Um einem Bericht einen Unterbericht hinzuzufügen, Rechtsklicken Sie das entsprechende Steuerelement um zu dessen Eigenschaften zu gelangen. Hier beschreiben Sie den Bezugsbericht mit seinen Parametern. Vielleicht möchten Sie, statt eines Unterberichts, eher eine Lösung mit einem Datenbereich in Betracht ziehen. Die Leistungsfähigkeit des Berichtservers könnte nachteilig beeinflusst werden, weil er jede Instanz eines Unterberichts als einen eigenständigen Bericht behandelt. Datenbereiche bieten ziemlich dieselbe Funktionalität und Flexibilität wie Unterberichte, aber mit wesentlich besserer Leistung. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 42 Verknüpfte Berichte Um in Crystal Reports eine Verknüpfung zu einem anderen Bericht zu erstellen, muss ein Designer, um die Berichtumleitung zu handhaben, auf dem jeweiligen Feld eine openDocument Verknüpfung erstellen. Die openDocument-Funktion braucht für den Zugriff auf ein Bericht-Repository allerdings eine Business Objects Enterprise Installation. In SSRS funktioniert die Verknüpfung mit und die Weitergabe von Parametern an andere Berichte ziemlich einfach durch die Einstellung der Navigationseigenschaft des betreffenden Objektes. Mit der URL-Zugriffsfähigkeit von SSRS, die wir später erklären werden, können Sie sogar auf Berichte verknüpfen die auf andern Berichtserver residieren. Zur Demonstration der Navigationseigenschaft eines Textfeldes verwendet das folgende Beispiel die Verkäufer Spalte unseres Beispielberichtes, um zum Mitarbeiter-Verkaufsübersicht-Bericht (eines der Beispiele im SSRS-Paket) zu navigieren. Als Erstes greifen Sie auf die Eigenschaften des Verkäufertextfeldes in der zweiten Gruppierung der Tabelle zu. Rechtsklicken Sie auf dieses Textfeld und wählen Sie dann, wie in Abbildung 38 gezeigt, Eigenschaften. Abbildung 38: Auf die Eigenschaften eines Textfeldes zugreifen Klicken Sie die Registerkarte Navigation des Dialogfensters Eigenschaften. Im Hyperlink Bereich wählen Sie zuerst „zum Bericht springen“ und dann aus dem Listenfeld den Zielbericht. Klicken Sie die Schaltfläche Parameter um die Parameter einzustellen, die an den Zielbericht weitergegeben werden sollen. SSRS erstellt eine Liste von Parametern im Zielbericht. Sie können, wie in Abbildung 39 demonstriert, mit den gewählten Parametern sowohl statische, als auch Datensetwerte assoziieren. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 43 Abbildung 39: Bearbeiten der Parameter im Befehl “zum Bericht springen” unter Verwendung von sowohl statischen als auch Datensetfeld-Werten. Klicken Sie solange OK, bis Sie wieder beim Berichtdesigner angelangt sind. Erweitern Sie in der Berichtsvorschau die Gruppierung Verkaufsgebiet, damit Sie mit dem Cursor auf den Namen des Verkäufers zeigen können, wo sich der Mauszeiger in eine Hand verwandelt. Abbildung 40: Vorschau der Berichtverknüpfungsfunktionalität Klicken Sie auf einen Verkäufernamen um, mittels den in der Definition „zum Bericht springen" der Textfeldeigenschaften angegebenen Parametern, zum verknüpften Bericht zu navigieren. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 44 Abbildung 41: Bericht eines Zielverkäufers aus dem Verkaufsgebiet Umsatzbericht Verwenden Sie die Navigationsleiste oben im Bericht (Abbildung 42) um durch den aktuellen Bericht zu blättern oder um zum übergeordneten Bericht zurückzukehren. Abbildung 42: Navigationsleiste Berichtverknüpfung URL Zugriff In SSRS können Sie Berichte auch mittels einem Berichtserver-URL verknüpfen. Eine URL-Anfrage gibt Ihnen Zugang zu Berichten, Ressourcen und anderen Objekten auf einem bestimmten Berichtserver. Mit einem URL-Zugriff können Sie für Ihre Benutzer selbst das Aussehen und das Navigationsverhalten beeinflussen. Die Abfragekette des URLs beinhaltet die Geräteinformationseinstellungen und die Berichtparameterwerte sowie das spezifische Wiedergabeformat (Abbildung 43). Sie können URL-Zugriff auch verwenden, um in Berichten Hyperlinks und andere Berichtserverobjekte von jeder beliebigen Windows- oder Webapplikation die Sie entwickeln, einzubetten. Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 45 Abbildung 43: Mögliche Methoden, um mit einem Berichtserver zu kommunizieren Für weitere Informationen über das Verknüpfen von Berichten in SSRS, besuchen Sie die interaktive Thematik Berichtverknüpfungen hinzufügen in den online Büchern. Verwendung von alternativen Migrationstechniken SQL Server 2005 Reporting Services Bericht Wizard Schon wie die Reporting Services v1.0, enthalten auch die SQL Server 2005 Reporting Services einen Bericht Wizard um die Gestaltung eines Berichts in Gang zu setzen. Der Bericht Wizard führt Sie schrittweise durch die Definition einer Datenquelle, den Aufbau einer Abfrage, die Auswahl eines Berichtstyps, die Gruppierung von Berichtsdaten und die Auswahl eines Berichtsstils. Den Bericht Wizard finden Sie mit einem Rechtsklick auf den Berichte Ordner im Solution Explorer des SQL Server Business Intelligence Development Studios, und dort durch die Auswahl „Neuen Bericht hinzufügen" im Kontextmenü. Für weitere Informationen zum Thema Bericht Wizard besuchen Sie bitte die online Bücher. Anwendungen von Drittanbietern Wenn die Migrationsanstrengungen hunderte oder tausende von Berichten umfassen, sind Sie gut beraten, den Migrationsprozess so weit wie möglich zu automatisieren. Einige Drittanbieter haben den Bedarf an Hilfsmitteln zur Beschleunigung des Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services 46 Migrationsprozesses auf Reporting Services erkannt und haben innerhalb eines Beratungsengagements Anwendungen und Methoden entwickelt, welches es den Firmen ermöglicht, ihre Ziele schneller zu erreichen. Zu einer kurzen Liste von einigen Drittanbieterlösungen gehören: Name des Partners Hitachi Consulting TCS Sonata Software Ltd. KTL Solutions 90DegreeSoftware Jeff-Net Neudesic PLUS-IT URL http://www.hitachiconsulting.com/page.cfm?ID=bi http://www.tcs.com/Microsoft2005Launch/download/Microsoft_Recast.pdf http://microsoftcc.sonata-software.com/html/mcc_bi.htm http://www.ktlsolutions.com/t-crystalconverter.aspx http://www.90degreesoftware.com/ http://www.rpttosql.com/index.html http://www.neudesic.com http://www.plus-it.de Für weitere Informationen besuchen Sie bitte die Reporting Services Partner Seite (http://www.microsoft.com/sql/reporting/partners/default.asp). Zusammenfassung In diesem Dokument haben wir verschiedene Aspekte der Migration von Crystal Reports auf SSRS (SQL Server 2005 Reporting Services) erklärt. Zuerst haben wir einen hochgradigen Vergleich zwischen den Crystal Reports- und SSRS-Eigenschaften sowie eine Übersicht über einige der strategischen Vorteile einer Migration von Crystal Reports auf SSRS präsentiert, um Ihnen bei der Entscheidung zu helfen, ob Sie migrieren sollen. Als Nächstes haben wir Sie bei der Migration unterstützt, als wir Methoden beschrieben, mit denen Sie Ihre aktuellen Berichtslösungen analysieren, Konsolidierungs- und Standardisierungsmöglichkeiten identifizieren und eine schrittweise Migration umsetzen können. Dann, als Hilfe bei der eigentlichen Umsetzung der Migration, haben wir einen schrittweisen Migrationsprozess demonstriert, welcher jeden einzelnen Abschnitt eines fiktiven Crystal Reports dem jeweilig entsprechenden SSRS-Abschnitt zuordnete. Dann haben wir Ihnen am Beispiel zusätzlicher Funktionen, wie Matrizen und Diagramme, die große Reichweite der Fähigkeiten der SSRS vor Augen geführt. Und schließlich haben wir erklärt, wie Sie viele der Migrationsschritte automatisieren können, um den Zeitaufwand der Migration zu reduzieren. Die hier vorgestellten Informationen und Techniken werden Ihren Migrationsprozess erleichtern und beschleunigen . Migration von Business Objects Crystal Reports auf die SQL Server 2005 Reporting Services Nützliche Links für SQL Server 2005 Reporting Services Reporting Services Anleitungen: http://msdn2.microsoft.com/en-us/library/ms170246.aspx Skalierbarkeit und Leistung: http://download.microsoft.com/download/1/3/4/134644fd-05ad-4ee8-8b5a0aed1c18a31e/rs_scalability.doc Optimale Designverfahren: http://www.microsoft.com/technet/prodtechnol/sql/2005/rsdesign.mspx Microsoft SQL Server Entwickler Zentrum – Reporting Services http://msdn.microsoft.com/sql/bi/reporting/default.aspx Microsoft.com Reporting Services Hauptseite http://www.microsoft.com/sql/technologies/reporting/default.mspx SQL Server online Bücher – Reporting Services http://msdn2.microsoft.com/en-us/library/ms159106(SQL.90).aspx 47