Utilisation de propriétés de champ étendues pour une base de données Analysis Services (SSRS)

L'extension pour le traitement des données SQL Server Analysis Services prend en charge les propriétés de champ étendues. Les propriétés de champs étendues sont des propriétés complémentaires aux propriétés Value et IsMissing qui sont disponibles sur la source de données et prises en charge par l'extension pour le traitement des données. Les propriétés étendues ne figurent pas dans le volet Données du rapport dans le cadre de la collection de champs pour un dataset de rapport. Vous pouvez inclure des valeurs de propriété de champ étendues dans votre rapport en écrivant des expressions qui en spécifient le nom à l'aide de la collection Fields intégrée.

Les propriétés étendues incluent des propriétés prédéfinies et des propriétés personnalisées. Les propriétés prédéfinies sont des propriétés communes à plusieurs sources de données qui sont mappées à des noms de propriétés de champs spécifiques. Elles sont accessibles par nom par l'intermédiaire de la collection Fields intégrée. Les propriétés personnalisées sont spécifiques à chaque fournisseur de données et sont accessibles par l'intermédiaire de la collection Fields intégrée uniquement par la syntaxe utilisant le nom de la propriété étendue comme chaîne.

Lorsque vous utilisez le Concepteur de requêtes MDX Analysis Services en mode graphique pour définir votre requête, un jeu prédéfini de propriétés de cellule et de propriétés de dimension est ajouté automatiquement à la requête MDX. Vous pouvez uniquement utiliser des propriétés étendues qui sont répertoriées spécifiquement dans la requête MDX de votre rapport. Selon votre rapport, vous souhaiterez peut-être modifier le texte de la commande MDX par défaut pour inclure d'autres propriétés personnalisées ou de dimension définies dans le cube. Pour plus d'informations sur les champs étendus disponibles dans les sources de données Analysis Services, consultez Création et utilisation de valeurs de propriétés (MDX).

Utilisation des propriétés de champ dans un rapport

Les propriétés de champ étendues incluent des propriétés prédéfinies et des propriétés spécifiques au fournisseur de données. Les propriétés de champ n'apparaissent pas avec la liste de champs dans le volet Données du rapport, même si elles figurent dans la requête générée pour un dataset ; par conséquent, vous ne pouvez pas faire glisser les propriétés de champ vers l'aire de conception du rapport. Vous devez faire glisser le champ dans le rapport, puis remplacer la propriété Value du champ par la propriété que vous voulez utiliser. Par exemple, si les données de cellule d'un cube ont déjà été mises en forme, vous pouvez utiliser la propriété de champ FormattedValue en utilisant l'expression suivante : =Fields!FieldName.FormattedValue.

Pour faire référence à une propriété étendue qui n'est pas prédéfinie, utilisez la syntaxe suivante dans une expression :

  • Fields!FieldName("PropertyName")

Propriétés de champ prédéfinies

Dans la plupart des cas, les propriétés de champ prédéfinies s'appliquent aux mesures, aux niveaux ou aux dimensions. À chaque propriété de champ prédéfinie doit correspondre une valeur dans la source de données Analysis Services. Si aucune valeur n'existe ou que vous spécifiez une propriété de champ de mesure uniquement sur un niveau (par exemple), la propriété retourne une valeur NULL.

Pour faire référence à une propriété prédéfinie à partir d'une expression, vous pouvez utiliser l'une des syntaxes suivantes :

  • Fields!FieldName.PropertyName

  • Fields!FieldName("PropertyName")

Le tableau suivant dresse la liste des propriétés de champ prédéfinies susceptibles d'être utilisées.

Propriété

Type

Description ou valeur attendue

Value

Object

Précise la valeur de données du champ.

IsMissing

Boolean

Indique si le champ figure dans le dataset obtenu.

UniqueName

String

Retourne le nom complet d'un niveau. Par exemple, la valeur UniqueName d'un employé peut être [Employee].[Employee Department].[Department].&[Sales].&[North American Sales Manager].&[272].

BackgroundColor

String

Retourne la couleur d'arrière-plan définie dans la base de données pour le champ.

Color

String

Retourne la couleur de premier plan définie dans la base de données pour l'élément.

FontFamily

String

Retourne le nom de la police définie dans la base de données pour l'élément.

FontSize

String

Retourne la taille en points de la police définie dans la base de données pour l'élément.

FontWeight

String

Retourne l'épaisseur de la police définie dans la base de données pour l'élément.

FontStyle

String

Retourne le style de la police définie dans la base de données pour l'élément.

TextDecoration

String

Retourne la mise en forme de texte spéciale définie dans la base de données pour l'élément.

FormattedValue

String

Retourne la valeur mise en forme d'une mesure ou d'un chiffre clé. Par exemple, la propriété FormattedValue de Sales Amount Quota retourne un format monétaire tel que $1,124,400.00.

Key

Object

Retourne la clé d'un niveau.

LevelNumber

Integer

Dans le cas des hiérarchies parent-enfant, cette propriété retourne le nombre de niveaux ou de dimensions.

ParentUniqueName

String

Dans le cas des hiérarchies parent-enfant, cette propriété retourne le nom complet du niveau parent.

Notes

Ces propriétés de champ étendues ont des valeurs seulement si la source de données (par exemple, le cube Analysis Services) fournit ces valeurs lorsque votre rapport s'exécute et récupère les données pour ses datasets. Vous pouvez alors faire référence à ces valeurs de propriété de champ à partir de n'importe quelle expression en utilisant la syntaxe décrite dans la section suivante. Cependant, dans la mesure où ces champs sont spécifiques à ce fournisseur de données, les modifications que vous apportez à ces valeurs ne sont pas enregistrées avec la définition du rapport.

Exemple de propriétés étendues

Pour illustrer les propriétés étendues, la requête MDX et l'ensemble de résultats suivants incluent plusieurs propriétés de membre disponibles dans un attribut de dimension défini pour un cube. Les propriétés de membre incluses sont MEMBER_CAPTION, UNIQUENAME, Properties("Day Name"), MEMBER_VALUE, PARENT_UNIQUE_NAME, et MEMBER_KEY.

Cette requête MDX s'exécute par rapport au cube AdventureWorks2008R2 dans la base de données AdventureWorks2008R2 DW fournie avec les exemples de bases de données AdventureWorks2008R2.

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]

Lorsque vous exécutez cette requête dans un volet de requête MDX, vous obtenez un ensemble de résultats comportant 1158 lignes. Les quatre premières lignes sont affichées dans le tableau suivant.

DateCaption

DateUniqueName

DateDayName

DateValueinOriginalDatatype

DateParentUniqueName

DateMemberKeyinOriginalDatatype

All Periods

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

(null)

(null)

(null)

0

01.07.2001

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

Dimanche

7/1/2001

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

1

02.07.2001

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

Lundi

7/2/2001

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

2

03.07.2001

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

Mardi

7/3/2001

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

3

Les requêtes MDX par défaut conçues à l'aide du Concepteur de requêtes MDX en mode graphique n'incluent que MEMBER_CAPTION et UNIQUENAME pour des propriétés de dimension. Par défaut, ces valeurs sont toujours des données de type String.

Si vous avez besoin d'une propriété de membre dans son type de données d'origine, vous pouvez inclure une propriété supplémentaire MEMBER_VALUE en modifiant l'instruction MDX par défaut dans le concepteur de requêtes textuel. Dans l'instruction MDX simple suivante, la propriété MEMBER_VALUE a été ajoutée à la liste des propriétés de dimension à extraire.

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

Les quatre premières lignes du résultat dans le volet Résultats MDX s'affichent dans le tableau suivant.

Mois de l'année

Nombre de commandes

janvier

2,481

février

2,684

mars

2,749

avril

2,739

Même si les propriétés font partie de l'instruction select MDX, elles n'apparaissent pas dans les colonnes du jeu de résultats. Cependant, les données sont disponibles pour un rapport à l'aide de la fonctionnalité des propriétés étendues. Dans un volet de résultat de requête MDX dans SQL Server Management Studio, vous pouvez double-cliquer sur la cellule et afficher les valeurs de propriétés de cellules si elles sont définies dans le cube. Si vous double-cliquez sur la première cellule Nombre de commandes qui contient le chiffre 1,379, une fenêtre contextuelle s'affiche avec les propriétés de cellule suivantes :

Propriété

Valeur

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)

Si vous créez un dataset de rapport avec cette requête et liez celui-ci à une table, vous pouvez consulter la propriété VALUE par défaut pour un champ, par exemple, =Fields!Month_of_Year!Value. Si vous définissez cette expression comme l'expression de tri pour la table, vos résultats trient la table alphabétiquement par mois car le champ Valeur utilise un type de données String. Pour trier la table pour afficher les mois dans l'ordre d'apparition au cours de l'année (janvier au début, décembre à la fin), utilisez l'expression suivante :

=Fields!Month_of_Year("MEMBER_VALUE")

Cette expression trie la valeur du champ dans son type de données entier d'origine à partir de la source de données.