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


Элемент 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>