Поделиться через


Элемент Cell (MDDataSet) (XML для аналитики)

Содержит сведения об одной ячейке, содержащейся в родительском элементе CellData.

Синтаксис

<CellData>
   <Cell CellOrdinal="unsignedInt">
      <!-- Zero or more cell property values -->
      <!-- or -->
      <Error>...</Error>
   </Cell>
</CellData>

Характеристики элемента

Характеристика

Описание

Тип данных и длина

Нет

Значение по умолчанию

Нет

Количество элементов

От 0 до n: необязательный элемент, который может встречаться несколько раз.

Связи элемента

Связь

Элемент

Родительские элементы

CellData

Дочерние элементы

Ноль или более значений свойств ячейки или элемент Error

Атрибуты

Атрибут

Описание

CellOrdinal

Обязательный атрибут типа unsignedInt. Порядковый номер ячейки в многомерном наборе данных.

Замечания

В родительском элементе root за элементом Axes следует элемент CellData, который представляет собой коллекцию элементов Cell, в которых содержатся значения свойств для каждой ячейки, возвращенной в многомерном наборе данных. Элемент Cell содержит атрибут CellOrdinal, который определяет порядковый номер, начиная с нуля, ячейки в многомерном наборе данных, и один элемент для каждого значения свойства ячейки, связанного с ячейкой. Каждое значение свойства ячейки в элементе Cell определяется отдельным XML-элементом. Значение свойства ячейки — это данные, содержащиеся в XML-элементе, а имя свойства ячейки, как оно определено в элементе CellInfo родительского корневого элемента, соответствует имени XML-элемента.

Ниже представлен синтаксис записи значения свойства ячейки.

<CellProperty xsi:type="string">value</CellProperty>

Тип данных для значения свойства ячейки указывается только для свойства ячейки VALUE. Типы данных для других свойств ячейки задаются в определении свойства ячейки, включенного в элемент CellInfo. Элемент значения свойства ячейки можно исключить, если указано значение по умолчанию (когда элемент Default включен в определение свойства ячейки, содержащееся в элементе CellInfo) или если значение по умолчанию не указано и значение свойства ячейки равно NULL.

Ошибки свойств ячейки

Если свойство ячейки не удается вернуть из-за ошибки, которая возникает в экземпляре служб Microsoft SQL Server Службы 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-размерный массив, где p — это число осей. Адресация ячеек осуществляется по строкам.

Предположим, в запросе запрашивается четыре меры в столбцах и перекрестное соединение для двух штатов с четырьмя кварталами в строках. В следующем наборе данных свойство CellOrdinal для части результатов по набору данных, показанной полужирным шрифтом, — это набор {9, 10, 11, 13, 14, 15, 17, 18, 19}. Такой набор получается, потому что ячейки нумеруются по строкам, начиная с CellOrdinal, равного 0, для верхней левой ячейки.

Штат

Квартал

Продажи единиц товара

Стоимость хранения

Продажи магазинов

Количество продаж

Калифорния

К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, это порядковый номер для этой ячейки.

Пример

В следующем примере показана структура элемента Cell, включая значения свойств ячейки VALUE, 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>

См. также

Справочник

Основные понятия