Erstellen von Berichtsdatasets mit einer relationalen SQL Server-Datenbank (Berichts-Generator 2.0)

Berichts-Generator 2.0 stellt eine Datenverarbeitungserweiterung bereit, die das Abrufen von Berichtsdaten aus relationalen MicrosoftSQL Server-Datenbanken unterstützt. Sie können Berichtsdaten für ein Berichtsdataset aus Datenbanktabellen, Datenbanksichten, gespeicherten Prozeduren und Tabellenwertfunktionen abrufen.

Bevor Sie ein Berichtsdataset erstellen, müssen Sie eine Datenquelle erstellen, die den Datenquellentyp MicrosoftSQL Server hat. Nachdem Sie eine MicrosoftSQL Server-Datenquelle erstellt haben, können Sie wie folgt ein Dataset erstellen:

  • Verwenden Sie den Tabellen- oder Matrixassistenten oder den Diagrammassistenten. Sie können ein vorhandenes Dataset in dem Bericht wählen. Sie können jedoch auch die Assistenten verwenden, um ein anderes Dataset und eine Abfrage zu erstellen.

  • Erstellen Sie ein Dataset und eine Datasetabfrage im Bereich Berichtsdaten.

Angeben einer Berichtsdatasetabfrage

Mit einer Abfrage wird angegeben, welche Daten aus einer MicrosoftSQL Server-Datenbank für ein Berichtsdataset abgerufen werden sollen. Die Spalten in dem Resultset für eine Abfrage füllen die Feldauflistung für ein Dataset auf. In Berichten wird nur das erste Resultset verarbeitet, das von einer beliebigen Abfrage abgerufen wird.

Sie können unter den folgenden Optionen auswählen, um die gewünschten Daten anzugeben:

  • Erstellen Sie eine Abfrage interaktiv. Verwenden Sie den relationalen Abfrage-Designer, der eine hierarchische Ansicht der Tabellen, Sichten, gespeicherten Prozeduren und anderen Datenbankelemente nach Datenbankschema angeordnet anzeigt. Wählen Sie Spalten aus Tabellen oder Sichten aus, oder geben Sie gespeicherte Prozeduren oder Tabellenwertfunktionen an. Begrenzen Sie die Anzahl von abzurufenden Datenzeilen durch Angabe von Filterkriterien. Passen Sie den Filter an, wenn der Bericht ausgeführt wird, indem Sie die Parameteroption festlegen.

  • Geben Sie eine Abfrage ein, oder fügen Sie sie ein. Verwenden Sie den textbasierten Abfrage-Designer, um Transact-SQL-Text direkt einzugeben, Abfragetext aus einer anderen Quelle einzufügen, komplexe Abfragen einzugeben, die mit dem relationalen Abfrage-Designer nicht erstellt werden können, oder um abfragebasierte Ausdrücke einzugeben.

  • Importieren einer vorhandenen Abfrage aus einer Datei oder einem Bericht. Verwenden Sie die Schaltfläche Abfrage importieren in einem Abfrage-Designer, um eine .sql-Datei oder .rdl-Datei zu suchen, und importieren Sie eine Abfrage.

Weitere Informationen finden Sie unter Benutzeroberfläche des relationalen Abfrage-Designers (Berichts-Generator 2.0), Benutzeroberfläche des textbasierten Abfrage-Designers (Berichts-Generator 2.0) und Vorgehensweise: Abrufen von Daten aus einer SQL Server-Datenquelle (Berichts-Generator 2.0).

Verwenden des Abfragetyps 'Text'

Im textbasierten Abfrage-Designer können Sie Transact-SQL-Befehle eingeben, um die Daten in einem Dataset zu definieren. Beispiel: Mit der folgenden Transact-SQL-Abfrage werden die Namen aller Mitarbeiter ausgewählt, die Marketingassistenten sind.

SELECT
  HumanResources.Employee.BusinessEntityID
  ,HumanResources.Employee.JobTitle
  ,Person.Person.FirstName
  ,Person.Person.LastName
FROM
  Person.Person
  INNER JOIN HumanResources.Employee
    ON Person.Person.BusinessEntityID = HumanResources.Employee.BusinessEntityID
WHERE HumanResources.Employee.JobTitle = 'Marketing Assistant' 

Klicken Sie auf der Symbolleiste auf die Schaltfläche Ausführen (!), um die Abfrage auszuführen und ein Resultset anzuzeigen.

Um diese Abfrage zu parametrisieren, fügen Sie einen Abfrageparameter hinzu. Beispiel: Ändern Sie die WHERE-Klausel wie folgt:

WHERE HumanResources.Employee.JobTitle = (@JobTitle)

Bei der Ausführung der Abfrage werden automatisch Berichtsparameter erstellt, die den Abfrageparametern entsprechen. Weitere Informationen finden Sie unter Abfrageparameter weiter unten in diesem Thema.

Verwenden des Abfragetyps 'StoredProcedure'

Mit einer der folgenden Möglichkeiten können Sie eine gespeicherte Prozedur für eine Datasetabfrage angeben:

  • Legen Sie im Dialogfeld Dataseteigenschaften die Option Gespeicherte Prozedur fest. Wählen Sie aus der Dropdownliste mit gespeicherten Prozeduren und Tabellenwertfunktionen aus.

  • Wählen Sie im relationalen Abfrage-Designer im Bereich Datenbanksicht eine gespeicherte Prozedur oder Tabellenwertfunktion aus.

  • Wählen Sie im textbasierten Abfrage-Designer StoredProcedure auf der Symbolleiste aus.

Nachdem Sie eine gespeicherte Prozedur oder Tabellenwertfunktion gewählt haben, können Sie die Abfrage ausführen. Sie werden zur Eingabe von Eingabeparameterwerten aufgefordert. Bei der Ausführung der Abfrage werden automatisch Berichtsparameter erstellt, die den Eingabeparametern entsprechen. Weitere Informationen finden Sie unter Abfrageparameter weiter unten in diesem Thema.

Nur das erste Resultset wird unterstützt, das für eine gespeicherte Prozedur abgerufen wird. Wenn eine gespeicherte Prozedur mehrere Resultsets zurückgibt, wird nur das erste verwendet.

Falls eine gespeicherte Prozedur einen Parameter mit einem Standardwert aufweist, können Sie auf diesen Wert zugreifen, indem Sie das DEFAULT-Schlüsselwort als Wert für den Parameter verwenden. Wenn der Abfrageparameter mit einem Berichtsparameter verknüpft ist, kann der Benutzer das Wort DEFAULT im Eingabefeld für den Berichtsparameter eingeben oder auswählen.

Weitere Informationen über gespeicherte Prozeduren finden Sie unter "Gespeicherte Prozeduren (Datenbankmodul)" in der SQL Server-Onlinedokumentation.

Verwenden von Abfrageparametern

Bei Abfragetext mit Parametern oder bei gespeicherten Prozeduren mit Eingabeparametern werden automatisch die entsprechenden Berichtsparameter erstellt. Bei der Ausführung des Berichts werden die Werte für die Berichtsparameter an die Abfrageparameter übergeben. Durch die folgende SQL-Abfrage wird beispielsweise ein Berichtsparameter mit dem Namen EmpID erstellt:

SELECT FirstName, LastName FROM HumanResources.Employee E INNER JOIN
       Person.Contact C ON  E.ContactID=C.ContactID 
WHERE EmployeeID = @EmpID

Sie können die Beziehung zwischen Berichtsparametern und Abfrageparametern mithilfe von Dataseteigenschaften (Dialogfeld), Parameter (Berichts-Generator 2.0) verwalten. Für Abfragen mit Parametern, die mit Berichtsparametern verknüpft sind, ist keine DECLARE-Anweisung erforderlich.

Obwohl Berichtsparameter automatisch aus Abfrageparametern erstellt werden, verwalten Sie die Berichtsparameter separat im Bereich Berichtsdaten.

HinweisHinweis

Wenn Sie einen Abfrageparameter umbenennen oder löschen, wird der entsprechende Berichtsparameter nicht automatisch geändert bzw. gelöscht. Sie können die Reihenfolge von Berichtsparametern entfernen oder ändern, indem Sie die Schaltflächen auf der Symbolleiste im Bereich Berichtsdaten verwenden. Weitere Informationen finden Sie unter Hinzufügen von Parametern zum Bericht (Berichts-Generator 2.0).

Ändern eines Datasets

Nachdem Sie ein Dataset erstellt haben, können Sie das Dataset und die Feldauflistung im Bereich Berichtsdaten anzeigen. Sie können auch das Dialogfeld Dataseteigenschaften verwenden, um folgende Tasks auszuführen.

  • Bearbeiten Sie die Feldauflistung, indem Sie berechnete Felder hinzufügen. Berechnete Felder haben ausdruckbasierte Werte, die nach Ausführen der Abfrage ausgewertet werden. Die Datentypen der Felder werden einer Teilmenge der CLR-Datentypen (Common Language Runtime) von .NET Framework zugeordnet.

  • Geben Sie Dataseteigenschaften wie Timeout, CaseSensitivity und Collation an.

  • Ändern Sie die Abfrage, und fügen Sie Parameter hinzu, mit denen ein Benutzer oder Berichtsautor die Daten für einen Bericht zur Laufzeit anpassen kann.

In den folgenden Themen wird außerdem beschrieben, wie die Sortierung oder Filterung von Daten in einem Dataset geändert wird: