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 Berichtsdatenbereich 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 -Sammlung 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 -Sammlung nach Namen verfügbar. Benutzerdefinierte Eigenschaften werden spezifisch für jeden Datenanbieter definiert. Auf diese Eigenschaften kann über die integrierte Fields -Sammlung 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 über erweiterte Felder in Analysis Services-Datenquellen 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 Berichtsdatenbereich 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

In den meisten Fällen gelten vordefinierte Feldeigenschaften für Kennzahlen, Ebenen oder Dimensionen. 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.

Property Typ Beschreibung oder erwarteter Wert
Wert Object Gibt den Datenwert des Felds an.
IsMissing Boolescher Wert 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 könnte z.B. wie folgt lauten: [Employee].[Employee Department].[Department].&[Sales].&[North American Sales Manager].&[272]
BackgroundColor String Gibt die Hintergrundfarbe zurück, die in der Datenbank für das Feld definiert ist.
Farbe 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.
Schriftstärke String Gibt die Schriftstärke 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 einen Messwert oder eine Kennzahl zurück. Die FormattedValue -Eigenschaft für Verkaufsquote gibt beispielsweise ein Währungsformat wie 1.124.400,00 € zurück.
Schlüssel Object Gibt den Schlüssel für eine Ebene zurück.
LevelNumber Integer Gibt bei Parent-Child-Hierarchien die Ebenen- oder Dimensionsnummer zurück.
ParentUniqueName String Gibt bei Über-/Unterordnungshierarchien einen vollqualifizierten Namen der übergeordneten Ebene zurück.

Hinweis

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. Die enthaltenen Mitgliedseigenschaften sind MEMBER_CAPTION, UNIQUENAME, Properties("Day Name"), MEMBER_VALUE, PARENT_UNIQUE_NAME und MEMBER_KEY.

Diese MDX-Abfrage wird für den AdventureWorks2025-Cube in der AdventureWorks2025 DW-Datenbank ausgeführt, die in den AdventureWorks2025-Beispieldatenbanken enthalten ist.

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 [Datum]. [Datum]. [Alle Zeiträume] (null) (null) (null) 0
1-Jul-01 [Date].[Date].&[1] Sonntag 7/1/2001 [Datum]. [Datum]. [Alle Zeiträume] 1
2-Jul-01 [Date].[Date].&[2] Montag 7/2/2001 [Datum]. [Datum]. [Alle Zeiträume] 2
3-Jul-01 [Date].[Date].&[3] Dienstag 7/3/2001 [Datum]. [Datum]. [Alle Zeiträume] 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  

Die ersten vier Zeilen des Ergebnisses im MDX-Ergebnisbereich sind in der folgenden Tabelle dargestellt.

Monat des Jahres Anzahl der 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. Dennoch sind die Daten mithilfe der Funktion für erweiterte Eigenschaften für Berichte verfügbar. Doppelklicken Sie in einem MDX-Abfrageergebnisbereich in SQL Server Management Studio auf die Zelle, um die Zelleigenschaftswerte abzurufen (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
WERT 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")  

Dies sortiert den Wert des Feldes in seinem ursprünglichen Ganzzahl-Datentyp aus der Datenquelle.