Élément Cell (MDDataSet) (XMLA)
Contient des informations sur une cellule unique contenue par 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 | None |
Valeur par défaut | None |
Cardinalité | 0-n : élément facultatif pouvant apparaître plusieurs fois. |
Relations d’éléments
Relation | Élément |
---|---|
Éléments parents | CellData |
Éléments enfants | Zéro, une ou plusieurs valeurs de propriété de cellule ou erreur |
Attributs
Attribut | Description |
---|---|
CellOrdinal | Attribut unsignedInt requis. Position ordinale de la cellule dans le dataset multidimensionnel. |
Remarques
Dans l’élément root parent, l’élément axes est suivi par l’élément CellData , une collection d’éléments Cell qui contiennent les valeurs de propriété pour 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 et 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 est celle des données contenues 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 . Un élément de valeur de propriété de cellule peut être exclu si une valeur par défaut a été spécifiée (en incluant un élément par défaut 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 que la valeur de la propriété de cellule est null.
Erreurs de propriété de cellule
Si une propriété de cellule ne peut pas être retournée en raison d’une erreur qui se produit sur l’instance de Analysis Services, telle qu’une erreur de calcul qui empêche 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
La référence d’axe pour une cellule peut être calculée en fonction d’une valeur d’attribut CellOrdinal . Conceptuellement, les cellules sont numérotées dans un DataSet comme si le jeu de données était un tableau de dimensions p, où p est le nombre d’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. Dans le résultat du jeu de données, la propriété CellOrdinal pour la partie du résultat du DataSet affichée en gras est l’ensemble {9, 10, 11, 13, 14, 15, 17, 18, 19}. Il s’agit de l’ensemble, car les cellules sont numérotées dans l’ordre ligne-principal, en commençant par un CellOrdinal de 0 pour la cellule supérieure gauche.
State | Quarter (Trimestre) | Unit Sales | Store Cost | Store Sales | Sales Count |
---|---|---|---|---|---|
Californie | 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 | 6 184 |
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 illustre la structure de l’élément Cell , y compris la valeur, FORMATTED_VALUE et FORMAT_STRING valeurs de propriété de cellule pour 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>