Erweiterte Feldeigenschaften für eine Analysis Services-Datenbank (SSRS)

Die SQL Server Analysis Services-Datenverarbeitungserweiterung unterstützt erweiterte Feldeigenschaften. Erweiterte Feldeigenschaften sind zusätzlich zu den für die Datenquelle verfügbaren und von der Datenverarbeitungserweiterung unterstützten Feldeigenschaften Value und IsMissing vorhanden. Erweiterte Eigenschaften werden im Bereich Berichtsdaten nicht als Teil der Feldauflistung für ein Berichtsdataset angezeigt. Sie können erweiterte Feldeigenschaftswerte in den Bericht einbeziehen, indem Sie Ausdrücke schreiben, die deren Namen in der integrierten Fields-Auflistung angeben.

Erweiterte Eigenschaften umfassen vordefinierte Eigenschaften und benutzerdefinierte Eigenschaften. Vordefinierte Eigenschaften werden für mehrere Datenquellen gemeinsam verwendet und bestimmten Feldeigenschaftsnamen zugeordnet. Sie sind über die integrierte Fields-Auflistung nach Namen verfügbar. Benutzerdefinierte Eigenschaften werden spezifisch für jeden Datenanbieter definiert. Auf diese Eigenschaften kann über die integrierte Fields-Auflistung nur mithilfe von Syntax zugegriffen werden, in der der erweiterte Eigenschaftsname als Zeichenfolge verwendet wird.

Wenn Sie die Abfrage mit dem Analysis Services-MDX-Abfrage-Designer im grafischen Modus definieren, wird der MDX-Abfrage automatisch ein vordefinierter Satz von Zelleneigenschaften und Dimensionseigenschaften hinzugefügt. Sie können nur erweiterte Eigenschaften verwenden, die in der MDX-Abfrage im Bericht explizit aufgeführt werden. Je nach Bericht möchten Sie möglicherweise den MDX-Standardbefehlstext so ändern, dass weitere im Cube definierte Dimensions- oder benutzerdefinierte Eigenschaften aufgenommen werden. Weitere Informationen zu erweiterten Feldern, die in Analysis Services-Datenquellen verfügbar sind, finden Sie unter Erstellen und Verwenden von Eigenschaftswerten (MDX).

Arbeiten mit Feldeigenschaften in einem Bericht

Zu erweiterten Feldeigenschaften zählen vordefinierte Eigenschaften und datenanbieterspezifische Eigenschaften. Feldeigenschaften werden nicht in der Feldliste im Bereich Berichtsdaten angezeigt, obwohl sie in der für ein Dataset erstellten Abfrage vorhanden sind. Deshalb können Sie keine Feldeigenschaften in Ihre Berichtsentwurfsoberfläche ziehen. Stattdessen ziehen Sie das Feld in den Bericht und ändern anschließend die Value-Eigenschaft des Felds in die gewünschte Eigenschaft. Wenn z. B. die Zelldaten aus einem Cube bereits formatiert sind, können Sie die FormattedValue-Feldeigenschaft mithilfe des folgenden Ausdrucks verwenden: =Fields!FieldName.FormattedValue.

Verwenden Sie die folgende Syntax in einem Ausdruck, um auf eine erweiterte Eigenschaft zu verweisen, die nicht vordefiniert ist:

  • Fields!FieldName("PropertyName")

Vordefinierte Feldeigenschaften

Vordefinierte Feldeigenschaften werden in den meisten Fällen auf Measures, Ebenen oder Dimensionen angewendet. Für eine vordefinierte Feldeigenschaft muss ein entsprechender Wert in der Analysis Services-Datenquelle gespeichert sein. Wenn kein Wert vorhanden ist, oder wenn Sie z. B. eine nur Measure-bezogene Feldeigenschaft auf einer Ebene angeben, gibt die Eigenschaft einen NULL-Wert zurück.

Sie können jede der folgenden Syntaxangaben verwenden, um aus einem Ausdruck auf eine vordefinierte Eigenschaft zu verweisen:

  • Fields!FieldName.PropertyName

  • Fields!FieldName("PropertyName")

In der folgenden Tabelle wird eine Liste der zur Verfügung stehenden vordefinierten Feldeigenschaften bereitgestellt.

Eigenschaft

Typ

Beschreibung oder erwarteter Wert

Value

Object

Gibt den Datenwert des Felds an.

IsMissing

Boolean

Gibt an, ob das Feld im resultierenden Dataset gefunden wurde.

UniqueName

String

Gibt den vollqualifizierten Namen einer Ebene zurück. Der UniqueName-Wert für einen Mitarbeiter kann beispielsweise [Employee].[Employee Department].[Department].&[Sales].&[North American Sales Manager].&[272] lauten.

BackgroundColor

String

Gibt die Hintergrundfarbe zurück, die in der Datenbank für das Feld definiert ist.

Color

String

Gibt die Vordergrundfarbe zurück, die in der Datenbank für das Element definiert ist.

FontFamily

String

Gibt den Namen der Schriftart an, die in der Datenbank für das Element definiert ist.

FontSize

String

Gibt den Schriftgrad an, der in der Datenbank für das Element definiert ist.

FontWeight

String

Gibt die Schriftbreite an, die in der Datenbank für das Element definiert ist.

FontStyle

String

Gibt den Schriftschnitt an, der in der Datenbank für das Element definiert ist.

TextDecoration

String

Gibt spezielle Textformatierungen zurück, die in der Datenbank für das Element definiert sind.

FormattedValue

String

Gibt einen formatierten Wert für ein Measure oder eine Kennzahl zurück. Die FormattedValue-Eigenschaft für Verkaufsquote gibt beispielsweise ein Währungsformat wie 1.124.400,00 € zurück.

Key

Object

Gibt den Schlüssel für eine Ebene zurück.

LevelNumber

Integer

Gibt bei Parent-Child-Hierarchien die Nummer der Ebene oder Dimension zurück.

ParentUniqueName

String

Gibt bei Parent-Child-Hierarchien einen vollqualifizierten Namen der übergeordneten Ebene zurück.

HinweisHinweis

Für diese erweiterten Feldeigenschaften sind nur Werte vorhanden, wenn diese Werte beim Ausführen des Berichts und Abrufen der Daten für die Datasets von der Datenquelle (z. B. dem Analysis Services-Cube) bereitgestellt werden. Sie können anschließend von einem beliebigen Ausdruck aus mithilfe der im folgenden Abschnitt erläuterten Syntax auf diese Feldeigenschaftswerte verweisen. Da diese Felder nur für diesen Datenanbieter vorhanden sind, werden jedoch Änderungen, die Sie an diesen Werten vornehmen, nicht mit der Berichtsdefinition gespeichert.

Beispiele für erweiterte Eigenschaften

Zur Veranschaulichung erweiterter Eigenschaften enthalten die folgende MDX-Abfrage und das Resultset mehrere Elementeigenschaften, die von einem für einen Cube definierten Dimensionsattribut verfügbar sind. Dabei handelt es sich um die Elementeigenschaften MEMBER_CAPTION, UNIQUENAME, Properties("Day Name"), MEMBER_VALUE, PARENT_UNIQUE_NAME und MEMBER_KEY.

Diese MDX-Abfrage wird für den AdventureWorks2008R2-Cube in der AdventureWorks2008R2-DW-Datenbank ausgeführt, die mit den AdventureWorks2008R2-Beispieldatenbanken geliefert wurde.

WITH MEMBER [Measures].[DateCaption] 
      AS '[Date].[Date].CURRENTMEMBER.MEMBER_CAPTION' 
   MEMBER [Measures].[DateUniqueName] 
      AS '[Date].[Date].CURRENTMEMBER.UNIQUENAME' 
   MEMBER [Measures].[DateDayName] 
      AS '[Date].[Date].Properties("Day Name")' 
   MEMBER [Measures].[DateValueinOriginalDatatype] 
      AS '[Date].[Date].CURRENTMEMBER.MEMBER_VALUE' 
   MEMBER [Measures].[DateParentUniqueName] 
      AS '[Date].[Date].CURRENTMEMBER.PARENT_UNIQUE_NAME' 
   MEMBER [Measures].[DateMemberKeyinOriginalDatatype] 
      AS '[Date].[Date].CURRENTMEMBER.MEMBER_KEY' 
SELECT {
   [Measures].[DateCaption], 
   [Measures].[DateUniqueName], 
   [Measures].[DateDayName], 
   [Measures].[DateValueinOriginalDatatype],
   [Measures].[DateParentUniqueName],
   [Measures].[DateMemberKeyinOriginalDatatype]
   } ON COLUMNS , [Date].[Date].ALLMEMBERS ON ROWS 
FROM [Adventure Works]

Wenn Sie diese Abfrage in einem MDX-Abfragebereich ausführen, erhalten Sie ein Resultset mit 1158 Zeilen. Die ersten vier Zeilen sind in der nachfolgenden Tabelle angegeben.

DateCaption

DateUniqueName

DateDayName

DateValueinOriginalDatatype

DateParentUniqueName

DateMemberKeyinOriginalDatatype

Alle Zeiträume

[Date].[Date].[All Periods]

(null)

(null)

(null)

0

1-Jul-01

[Date].[Date].&[1]

Sonntag

7/1/2001

[Date].[Date].[All Periods]

1

2-Jul-01

[Date].[Date].&[2]

Montag

7/2/2001

[Date].[Date].[All Periods]

2

3-Jul-01

[Date].[Date].&[3]

Dienstag

7/3/2001

[Date].[Date].[All Periods]

3

Im grafischen Modus des MDX-Abfrage-Designers erstellte MDX-Standardabfragen enthalten nur die Dimensionseigenschaften MEMBER_CAPTION und UNIQUENAME. In der Standardeinstellung sind diese Werte stets vom Datentyp String.

Wenn Sie eine Elementeigenschaft im ursprünglichen Datentyp benötigen, können Sie die zusätzliche Eigenschaft MEMBER_VALUE einbeziehen, indem Sie die MDX-Standardanweisung im textbasierten Abfrage-Designer ändern. In der folgenden einfachen MDX-Anweisung wurde MEMBER_VALUE der Liste der abzurufenden Dimensionseigenschaften hinzugefügt.

SELECT NON EMPTY {[Measures].[Order Count]} ON COLUMNS, 
NON EMPTY { ([Date].[Month of Year].[Month of Year] ) } 
DIMENSION PROPERTIES 
   MEMBER_CAPTION, MEMBER_UNIQUE_NAME, MEMBER_VALUE ON ROWS 
FROM [Adventure Works]
CELL PROPERTIES 
   VALUE, BACK_COLOR, FORE_COLOR, 
   FORMATTED_VALUE, FORMAT_STRING, 
   FONT_NAME, FONT_SIZE, FONT_FLAGS

In der folgenden Tabelle sind die ersten vier Zeilen des Ergebnisses im MDX-Ergebnisbereich angegeben.

Monat

Anzahl Bestellungen

Januar

2,481

Februar

2,684

März

2,749

April

2,739

Obwohl die Eigenschaften Teil der MDX-Select-Anweisung sind, werden sie nicht in den Spalten des Resultsets angezeigt. Die Daten sind jedoch für einen Bericht verfügbar und können mit der Funktion für erweiterte Eigenschaften angezeigt werden. Doppelklicken Sie in einem MDX-Abfrageergebnisbereich in SQL Server Management Studio auf die Zelle, um die Zelleigenschaftswerte anzuzeigen (sofern diese Werte im Cube festgelegt sind). Wenn Sie auf die erste Zelle Anzahl Bestellungen mit dem Wert 1.379 klicken, wird ein Popupfenster mit den folgenden Zelleigenschaften angezeigt:

Eigenschaft

Wert

CellOrdinal

0

VALUE

2481

BACK_COLOR

(null)

FORE_COLOR

(null)

FORMATTED_VALUE

2,481

FORMAT_STRING

#,#

FONT_NAME

(null)

FONT_SIZE

(null)

FONT_FLAGS

(null)

Wenn Sie mit dieser Abfrage ein Berichtsdataset erstellen und dieses an eine Tabelle binden, können Sie die VALUE-Standardeigenschaft für ein Feld anzeigen, z. B. =Fields!Month_of_Year!Value. Wenn Sie diesen Ausdruck als Sortierausdruck für die Tabelle festgelegt haben, wird die Tabelle im Ergebnis alphabetisch nach Monat sortiert, da das Value-Feld den Datentyp String annimmt. Wenn die Tabelle in der Reihenfolge der Monate im Jahr sortiert werden soll, d. h. Januar zuerst und Dezember zuletzt, verwenden Sie den folgenden Ausdruck:

=Fields!Month_of_Year("MEMBER_VALUE")

Mit diesem Ausdruck werden die Werte im Feld entsprechend ihres ursprünglichen Datentyps in der Datenquelle sortiert.