Élément Cell (MDDataSet) (XMLA)
Contient des informations sur une cellule unique contenue dans un élément CellData parent.
Syntaxe
<CellData>
<Cell CellOrdinal="unsignedInt">
<!-- Zero or more cell property values -->
<!-- or -->
<Error>...</Error>
</Cell>
</CellData>
Caractéristiques de l'élément
Caractéristique |
Description |
---|---|
Type de données et longueur |
Aucun |
Valeur par défaut |
Aucune |
Cardinalité |
0-n : élément facultatif susceptible d'apparaître plusieurs fois. |
Relations entre les éléments
Attributs
Attribut |
Description |
---|---|
CellOrdinal |
Attribut unsignedInt requis. Position ordinale de la cellule dans le dataset multidimensionnel. |
Notes
Dans l'élément root parent, l'élément Axes est suivi de l'élément CellData, collection d'éléments Cell contenant les valeurs de propriété de chaque cellule retournée dans le dataset multidimensionnel. L'élément Cell contient l'attribut CellOrdinal qui indique la position ordinale de base zéro de la cellule dans le dataset multidimensionnel, ainsi qu'un élément pour chaque valeur de propriété de cellule associée à la cellule. Chaque valeur de propriété de cellule dans l'élément Cell est définie par un élément XML distinct. La valeur de la propriété de cellule correspond aux données figurant dans l'élément XML et le nom de la propriété de cellule, tel que défini dans l'élément CellInfo de l'élément racine parent, correspond au nom de l'élément XML.
La syntaxe suivante décrit une valeur de propriété de cellule :
<CellProperty xsi:type="string">value</CellProperty>
Le type de données d'une valeur de propriété de cellule est spécifié uniquement pour la propriété de cellule VALUE. Les types de données d'autres propriétés de cellule sont déterminés par la définition de propriété de cellule incluse dans l'élément CellInfo. Une valeur de propriété de cellule peut être exclue si une valeur par défaut a été spécifiée (en incluant un élément Default pour une définition de propriété de cellule contenue dans l'élément CellInfo) pour une propriété de cellule ou si aucune valeur par défaut n'a été spécifiée et si la valeur de la propriété de cellule a la valeur NULL.
Erreurs de propriété de cellule
Si aucune propriété de cellule ne peut être retournée en raison d'une erreur survenue dans l'instance de MicrosoftSQL ServerAnalysis Services, notamment une erreur de calcul empêchant le retour de la valeur pour une cellule donnée, un élément Error remplace le contenu de la propriété de cellule en question. L'exemple XML suivant décrit une erreur de propriété de cellule :
<Cell CellOrdinal="0">
<Value xsi:type="xsd:double">
<Error>
<ErrorCode>2148497527</ErrorCode>
<Description>Unknown error</Description>
</Error>
</Value>
</Cell>
Calcul des valeurs ordinales d'une cellule
Les axes de référence d'une cellule peuvent être calculés sur la base d'une valeur d'attribut CellOrdinal. D'un point de vue conceptuel, les cellules sont comptabilisées dans un dataset comme si ce dernier constituait un tableau p-dimensionnel, où p désigne le nombre des axes. Les cellules sont traitées dans l'ordre ligne-champ.
Imaginez une requête demandant quatre mesures sur les colonnes et une jointure croisée de deux états (State) avec quatre trimestres (Quarter) sur les lignes. En analysant le résultat du dataset ci-après, on constate que, pour la partie du résultat du dataset affichée en caractères gras, la propriété CellOrdinal correspond au jeu {9, 10, 11, 13, 14, 15, 17, 18, 19} puisque les cellules sont comptabilisées dans l'ordre ligne-champ en partant d'une valeur CellOrdinal égale à 0 pour la cellule supérieure gauche.
State |
Quarter |
Unit Sales |
Store Cost |
Store Sales |
Sales Count |
---|---|---|---|---|---|
California |
Q1 |
16890 |
14431.09 |
36175.2 |
5498 |
|
Q2 |
18052 |
15332.02 |
38396.75 |
5915 |
|
Q3 |
18370 |
15672.83 |
39394.05 |
6014 |
|
Q4 |
21436 |
18094.5 |
45201.84 |
7015 |
Oregon |
Q1 |
19287 |
16081.07 |
40170.29 |
6184 |
|
Q2 |
15079 |
12678.96 |
31772.88 |
4799 |
|
Q3 |
16940 |
14273.78 |
35880.46 |
5432 |
|
Q4 |
16353 |
13738.68 |
34453.44 |
5196 |
Washington |
Q1 |
30114 |
25240.08 |
63282.86 |
9906 |
|
Q2 |
29479 |
24953.25 |
62496.64 |
9654 |
|
Q3 |
30538 |
25958.26 |
64997.38 |
10007 |
|
Q4 |
34235 |
29172.72 |
73016.34 |
11217 |
Si l'on applique la formule présentée dans la figure, l'axe k = 0 possède Uk = 4 membres et l'axe k = 1 possède Uk = 8 tuples. P = 2 correspond au nombre total d'axes dans la requête. Si l'on définit la cellule correspondant à {California, Q3, Store Cost} en tant que valeur S0, la somme de départ est i = 0 à 1. Pour i = 0, la valeur ordinale du tuple sur l'axe 0 de {Store Cost} est 1. Pour i = 1, l'ordinal du tuple de {CA, Q3} est 2.
Pour i = 0, Ei = 1, donc pour i = 0 la somme est 1 * 1 = 1 et, pour i = 1, la somme est 2 (ordinal du tuple) multipliée par 4 (valeur Ei calculée sous la forme 1 * 4) ou 8. La somme de 1 + 8 est ensuite 9, soit l'ordinal de cette cellule.
Exemple
L'exemple suivant présente la structure de l'élément Cell, y compris les valeurs de propriété de cellule VALUE, FORMATTED_VALUE et FORMAT_STRING de chaque cellule.
<CellData>
<Cell CellOrdinal="0">
<Value xsi:type="xsd:double">16890</Value>
<FmtValue>16,890.00</FmtValue>
<FormatString>Standard</FormatString>
</Cell>
<Cell CellOrdinal="1">
<Value xsi:type="xsd:int">50</Value>
<FmtValue>50</FmtValue>
<FormatString>Standard</FormatString>
</Cell>
<Cell CellOrdinal="2">
<Value xsi:type="xsd:double">36175.2</Value>
<FmtValue>$36,175.20</FmtValue>
<FormatString>Currency</FormatString>
</Cell>
</CellData>