Cell 元素 (MDDataSet) (XMLA)

包含父级 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 元素包含的数据,父级 root 元素的 CellInfo 元素中定义的单元属性的名称与 XML 元素的名称对应。

下列语法对单元属性值进行了说明:

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

只可为 VALUE 单元属性指定单元属性值的数据类型。 其他单元属性的数据类型由包含在 CellInfo 元素中的单元属性定义确定。 如果已为单元属性指定了默认值(方法是将包含在 CellInfo 元素中的单元属性定义的 Default 元素包括在内),或尚未指定默认值且该单元属性的值为空值,则将不包含单元属性值元素。

单元属性错误

如果因为 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。

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

应用图中显示的公式,轴 k = 0 具有 Uk = 4 个成员,轴 k = 1 具有 Uk = 8 个元组。 P = 2 是该查询的轴的总数。 将单元 {California, Q3, Store Cost} 视为 S0,初始和为 i = 0 和 1。对于 i = 0,轴 0 上 {Store Cost} 的元组序号为 1。对于 i = 1,{CA, Q3} 的元组序号为 2。

当 i = 0,Ei = 1 时,对于 i = 0,总数为 1 * 1 = 1;对于 i = 1,总数为 2(元组序号)乘以 4(由 1 * 4 得出的 Ei 的值),即 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>