Verweise auf Datasetfeldauflistungen (Berichts-Generator und SSRS)
Jedes Dataset in einem Bericht enthält eine Fields-Sammlung. Bei der Fields-Sammlung handelt es sich um eine Gruppe von Feldern, die von der Datasetabfrage und zusätzlichen berechneten Feldern angegeben werden, die Sie erstellen. Nachdem Sie ein Dataset erstellt haben, wird die Feldauflistung im Berichtsdatenbereich angezeigt.
Ein einfacher Feldverweis in einem Ausdruck wird auf der Entwurfsoberfläche als einfacher Ausdruck angezeigt. Wenn Sie zum Beispiel das Feld Sales
aus dem Bereich Berichtsdaten in eine Tabellenzelle der Entwurfsoberfläche ziehen, wird [Sales]
angezeigt. Dies ist der zugrunde liegende Ausdruck =Fields!Sales.Value
, der in der Value-Eigenschaft des Textfelds festgelegt wird. Wenn der Bericht ausgeführt wird, wertet der Berichtsprozessor diesen Ausdruck aus und zeigt die eigentlichen Daten der Datenquelle in der Tabellenzelle im Textfeld an. Weitere Informationen finden Sie unter Ausdrücke (Berichts-Generator und SSRS) und Datasetfeldauflistung (Berichts-Generator und SSRS).
Hinweis
Sie können Berichtsdefinitionen (RDL) in Berichts-Generator und in Berichts-Designer in SQL Server Data Tools erstellen und ändern. Jede Erstellungsumgebung bietet verschiedene Methoden zum Erstellen, Öffnen und Speichern von Berichten und verwandten Elementen. Weitere Informationen finden Sie unter Entwerfen von Berichten in Berichts-Designer und Berichts-Generator (SSRS) im Web unter microsoft.com.
Anzeigen der Feldauflistung für ein Dataset
Ziehen Sie die Felder einzeln in eine Tabellendetailzeile, um die jeweiligen Werte für eine Feldauflistung anzuzeigen. Die Verweise aus der Detailzeile eines Tabellen- oder Listendatenbereichs zeigen für jede Zeile im Dataset einen Wert an.
Um zusammengefasste Werte für ein Feld anzuzeigen, ziehen Sie die einzelnen numerischen Felder in den Datenbereich einer Matrix. Die Standardaggregatfunktion für die gesamte Zeile ist Sum, zum Beispiel =Sum(Fields!Sales.Value)
. Sie können die Standardfunktion ändern, um andere Gesamtbeträge zu berechnen. Weitere Informationen finden Sie unter Aggregatfunktionsreferenz (Berichts-Generator und SSRS).
Sie müssen den Datasetnamen als Bereich für die Aggregatfunktion angeben, um die zusammengefassten Werte für eine Feldauflistung in einem Textfeld direkt auf der Entwurfsoberfläche anzuzeigen (ist nicht Teil eines Datenbereichs). Für ein Dataset mit dem Namen SalesData
gibt der folgende Ausdruck den Gesamtbetrag aller Werte für das Feld Sales
an: =Sum(Fields!Sales,"SalesData")
.
Wenn Sie das Dialogfeld Ausdruck zum Definieren eines einfachen Feldverweises verwenden, können Sie die Fields-Sammlung im Bereich „Kategorie“ auswählen, um die Liste der verfügbaren Felder im Bereich Feld anzuzeigen. Jedes Feld verfügt über mehrere Eigenschaften, zum Beispiel Value und IsMissing. Bei den restlichen Eigenschaften handelt es sich um vordefinierte erweiterte Feldeigenschaften, die je nach Datenquellentyp für das Dataset verfügbar sind.
Erkennen von Nullen für ein Datasetfeld
Um einen Feldwert zu erkennen, der nullNothing
( in Visual Basic) ist, können Sie die Funktion IsNothing
verwenden. Wenn der folgende Ausdruck in einem Textfeld in eine Tabellendetailzeile eingefügt wird, prüft dieser das Feld MiddleName
und ersetzt den Text "No Middle Name", wenn der Wert NULL ist, und den Feldwert selbst, wenn der Wert nicht NULL ist:
=IIF(IsNothing(Fields!MiddleName.Value),"No Middle Name",Fields!MiddleName.Value)
Erkennen von fehlenden Feldern für dynamische Abfragen zur Laufzeit
Elemente in der Fields-Sammlung besitzen in der Standardeinstellung zwei Eigenschaften: Value und IsMissing. Mit der IsMissing-Eigenschaft wird angegeben, ob ein zur Entwurfszeit für ein Dataset definiertes Feld in den Feldern enthalten ist, die zur Laufzeit abgerufen werden. Ihre Abfrage kann z. B. eine gespeicherte Prozedur aufrufen, in der das Resultset mit einem Eingabeparameter variiert, oder Ihre Abfrage kann eine Tabelle> sein SELECT * FROM
<, in der sich die Tabellendefinition geändert hat.
Hinweis
IsMissing erkennt für alle Datenquellentypen Änderungen des Datasetschemas zwischen Entwurfs- und Laufzeit. IsMissing kann nicht verwendet werden, um leere Elemente in einem multidimensionalen Cube zu erkennen und ist nicht mit den MDX-Abfragesprachenkonzepten von EMPTY
und NON EMPTY
.
Sie können die IsMissing-Eigenschaft in benutzerdefiniertem Code testen, um zu ermitteln, ob ein Feld im Resultset vorhanden ist. Sie können den Anwesenheitsstatus nicht mithilfe eines Ausdrucks mit einem Visual Basic-Funktionsaufruf testen, z IIF
. B. oder SWITCH
, da Visual Basic alle Parameter im Aufruf der Funktion auswertet, was zu einem Fehler führt, wenn der Verweis auf das Fehlende ausgewertet wird.
Beispiel für die Steuerung der Sichtbarkeit einer dynamischen Spalte für ein fehlendes Feld
Um einen Ausdruck festzulegen, der die Sichtbarkeit einer Spalte steuert, die ein Feld in einem Dataset anzeigt, führen Sie Folgendes durch: Sie müssen zuerst eine benutzerdefinierte Codefunktion definieren, die einen booleschen Wert basierend darauf zurückgibt, ob das Feld fehlt. Beispielsweise gibt die folgende benutzerdefinierte Codefunktion true zurück, wenn das Feld fehlt, und false, wenn das Feld vorhanden ist.
Public Function IsFieldMissing(field as Field) as Boolean
If (field.IsMissing) Then
Return True
Else
Return False
End If
End Function
Legen Sie die Hidden-Eigenschaft der Spalte auf den folgenden Ausdruck fest, um diese Funktion zum Steuern der Sichtbarkeit einer Spalte zu verwenden:
=Code.IsFieldMissing(Fields!FieldName)
Die Spalte wird ausgeblendet, wenn das Feld nicht vorhanden ist.
Beispiel für die Steuerung des Textfeldwerts für ein fehlendes Feld
Um Text zu ersetzen, den Sie anstelle des Wertes eines fehlenden Felds schreiben, müssen Sie benutzerdefinierten Code schreiben. Der Code muss Text zurückgeben, den Sie anstelle eines Feldwertes verwenden können, wenn das Feld fehlt. Die folgende benutzerdefinierte Codefunktion gibt den Wert des Felds zurück, wenn das Feld vorhanden ist, und die als zweiten Parameter angegebene Meldung, wenn das Feld nicht vorhanden ist:
Public Function IsFieldMissingThenString(field as Field, strMessage as String) as String
If (field.IsMissing) Then
Return strMessage
Else
Return field.Value
End If
End Function
Fügen Sie den folgenden Ausdruck der Value-Eigenschaft hinzu, um diese Funktion in einem Textfeld zu verwenden:
=Code.IsFieldMissingThenString(Fields!FieldName,"Missing")
Das Textfeld zeigt entweder den Feldwert oder den Text an, den Sie angegeben haben.
Verwenden von erweiterten Feldeigenschaften
Bei den erweiterten Feldeigenschaften handelt es sich um zusätzliche Eigenschaften, die für ein Feld über die Datenverarbeitungserweiterung definiert werden, die vom Datenquellentyp für das Dataset bestimmt wird. Erweiterte Feldeigenschaften sind entweder vordefiniert oder gelten speziell für einen Datenquellentyp. Weitere Informationen finden Sie unter Erweiterte Feldeigenschaften für eine Analysis Services-Datenbank (SSRS).
Wenn Sie eine Eigenschaft angeben, die für dieses Feld nicht unterstützt wird, wird der Ausdruck als null
(Nothing
in Visual Basic) ausgewertet. Wenn ein Datenanbieter erweiterte Feldeigenschaften nicht unterstützt oder wenn das Feld beim Ausführen der Abfrage nicht gefunden wird, lautet null
der Wert für die Eigenschaft (Nothing
in Visual Basic) für Eigenschaften vom Typ String
und Object
null (0) für Eigenschaften des Typs Integer
. Für eine Datenverarbeitungserweiterung können die Vorteile der vordefinierten Eigenschaften genutzt werden, indem die Abfragen optimiert werden, die diese Syntax enthalten.
Weitere Informationen
Beispiele für Ausdrücke (Berichts-Generator und SSRS)
Hinzufügen von Daten zu einem Bericht (Berichts-Generator und SSRS)