Элемент Cell (MDDataSet) (XMLA)
Содержит сведения об отдельной ячейке, содержащейся в родительском элементе CellData .
Синтаксис
<CellData>
<Cell CellOrdinal="unsignedInt">
<!-- Zero or more cell property values -->
<!-- or -->
<Error>...</Error>
</Cell>
</CellData>
Характеристики элемента
Характеристика | Описание |
---|---|
Тип данных и длина | Нет |
Значение по умолчанию | Нет |
Кратность | от 0 до n: необязательный элемент, который может встречаться несколько раз. |
Связи элементов
Связь | Элемент |
---|---|
Родительские элементы | CellData |
Дочерние элементы | Нулевое или большее значение свойства ячейки или Ошибка |
Атрибуты
Атрибут | Описание |
---|---|
CellOrdinal | Обязательный атрибут unsignedInt . Порядковый номер ячейки в многомерном наборе данных. |
Комментарии
В родительском корневом элементе за элементом осей следует элемент CellData , коллекция элементов Cell , которая содержит значения свойств для каждой ячейки, возвращенной в многомерном наборе данных. Элемент Cell содержит атрибут CellOrdinal , который указывает порядковый номер ячейки (от нуля) в многомерном наборе данных и по одному элементу для каждого значения свойства ячейки, связанного с ячейкой. Каждое значение свойства ячейки в элементе Cell определяется отдельным элементом XML. Значение свойства Cell представляет собой данные, содержащиеся в XML-элементе, и имя свойства ячейки, как определено в элементе CellInfo родительского корневого элемента, соответствует имени XML-элемента.
Ниже представлен синтаксис записи значения свойства ячейки.
<CellProperty xsi:type="string">value</CellProperty>
Тип данных для значения свойства ячейки указывается только для свойства ячейки VALUE. Типы данных других свойств ячеек определяются определением свойства ячейки, которое включается в элемент CellInfo . Элемент значения свойства ячейки может быть исключен, если было задано значение по умолчанию (путем включения элемента по умолчанию для определения свойства ячейки, содержащегося в элементе CellInfo ) для свойства ячейки, или, если значение по умолчанию не указано, а свойство Cell имеет значение null.
Ошибки свойств ячейки
Если свойство ячейки не может быть возвращено из-за ошибки, возникающей в экземпляре Analysis Services, например ошибки вычисления, которая не позволяет вернуть значение для данной ячейки, элемент Error заменяет содержимое рассматриваемого свойства ячейки. В следующем примере кода XML описывается ошибка свойства ячейки.
<Cell CellOrdinal="0">
<Value xsi:type="xsd:double">
<Error>
<ErrorCode>2148497527</ErrorCode>
<Description>Unknown error</Description>
</Error>
</Value>
</Cell>
Вычисление значения порядкового номера ячейки
Ссылку на ось для ячейки можно вычислить на основе значения атрибута CellOrdinal . По сути, ячейки нумеруются в наборе данных, как если бы набор данных был многомерным массивом, где p — это число осей. Адресация ячеек осуществляется по строкам.
Предположим, в запросе запрашивается четыре меры в столбцах и перекрестное соединение для двух штатов с четырьмя кварталами в строках. В результате выполнения набора данных свойство CellOrdinal для части результата набора данных, отображаемого полужирным шрифтом, — это наборы {9, 10, 11, 13, 14, 15, 17, 18, 19}. Это набор, поскольку ячейки нумеруются в основном порядке, начиная с CellOrdinal 0 для верхней левой ячейки.
Состояние | Quarter | Продажи единиц товара | Стоимость хранения | Продажи магазинов | Количество продаж |
---|---|---|---|---|---|
Калифорния | КВ1 | 16890 | 14431,09 | 36175,2 | 5498 |
КВ2 | 18052 | 15332,02 | 38396,75 | 5915 | |
КВ3 | 18370 | 15672,83 | 39394,05 | 6014 | |
КВ4 | 21436 | 18094,5 | 45201,84 | 7015 | |
Орегон | КВ1 | 19287 | 16081,07 | 40170,29 | 6184 |
КВ2 | 15079 | 12678,96 | 31772,88 | 4799 | |
КВ3 | 16940 | 14273,78 | 35880,46 | 5432 | |
КВ4 | 16353 | 13738,68 | 34453,44 | 5196 | |
Вашингтон | КВ1 | 30114 | 25240,08 | 63282,86 | 9906 |
КВ2 | 29479 | 24953,25 | 62496,64 | 9654 | |
КВ3 | 30538 | 25958,26 | 64997,38 | 10007 | |
КВ4 | 34235 | 29172,72 | 73016,34 | 11217 |
Применяя формулу, показанную на рисунке, получим, что ось при k = 0 содержит Uk = 4 элемента, а ось при k = 1 содержит Uk = 8 кортежей. P = 2 — число осей в запросе. Если принять ячейку {Калифорния, К3, Стоимость хранения} за S0, начальная сумма будет равна i = 0 до 1. При i = 0 порядковый номер кортежа на оси 0 для столбца {Стоимость хранения} равен 1. При i = 1 порядковый номер кортежа для {Калифорния, К3} равен 2.
При i = 0 Ei = 1, поэтому при i = 0 сумма равна 1 * 1 = 1, а при i = 1 сумма равна 2 (порядковый номер кортежа) умножить на 4 (значение Ei вычисляется как 1 * 4), то есть 8. Сумма 1 + 8 равна 9, это порядковый номер для этой ячейки.
Пример
В следующем примере показана структура элемента ячейки , включая значение, FORMATTED_VALUE и format_string значения свойств ячейки для каждой ячейки.
<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>