为 Analysis Services 数据库使用扩展字段属性(SQL Server 2005 联机丛书(2008 年 11 月))

SQL Server Analysis Services 数据处理扩展插件支持扩展字段属性。扩展字段属性是除字段属性 ValueIsMissing 之外的属性,可用于数据源并受数据处理扩展插件支持。扩展属性并不作为报表数据集字段集合的一部分显示在“数据集”窗格中。您可以通过编写使用全局 Fields 集合按名称指定扩展字段属性值的表达式,在报表中包括这些值。

扩展属性包括预定义属性和自定义属性。预定义属性是通用于多个数据源的属性,它们映射到特定字段属性名称并可通过全局 Fields 集合按名称进行访问。自定义属性是特别为每个数据访问接口定义的,只能使用将扩展属性名称用作字符串的语法通过全局 Fields 集合进行访问。

在图形模式下使用 Analysis Services MDX 查询设计器定义查询时,一组预定义的单元属性和维度属性会自动添加到 MDX 查询。您只能使用在您的报表的 MDX 查询中专门列出的扩展属性。根据您的报表,可能需要修改默认 MDX 命令文本才能包含多维数据集中定义的其他维度或自定义属性。有关 Analysis Services 数据源中的可用扩展字段的详细信息,请参阅创建和使用属性值 (MDX)

扩展字段属性包括预定义属性和数据访问接口特定属性。即使字段属性在为数据集生成的查询中,这些属性也不会在“数据集”窗口的字段列表中出现,因此,您不能将字段属性拖至报表布局。不过,您可以将该字段拖至报表中,然后将该字段的 Value 属性更改为要使用的属性。

若要引用未预定义的扩展属性,请在表达式中使用以下语法:

  • Fields!FieldName("PropertyName")

在大多数情况下,预定义的字段属性应用于度量值、级别或维度。预定义的字段属性必须在 Analysis Services 数据源中存储有相应的值。如果值不存在,或者(例如)对某个级别指定了仅适用于度量值的字段属性,则该属性将返回空值。

可以使用以下任一语法引用表达式中的预定义属性:

  • Fields!FieldName.PropertyName
  • Fields!FieldName("PropertyName")

下表提供了您可以使用的预定义字段属性的列表:

属性 类型 说明或所需的值

Value

Object

指定字段的数据值。

IsMissing

Boolean

指示是否在结果数据集中找到了该字段。

UniqueName

String

返回级别的完全限定名称。例如,某个雇员的 UniqueName 值可能为 [Employee].[Employee Department].[Department].&[Sales].&[North American Sales Manager].&[272]

BackgroundColor

String

返回数据库中为该字段定义的背景颜色。

Color

String

返回数据库中为该项定义的前景色。

FontFamily

String

返回数据库中为该项定义的字体的名称。

FontSize

String

返回数据库中为该项定义的字体的字号。

FontWeight

String

返回数据库中为该项定义的字体的粗细。

FontStyle

String

返回数据库中为该项定义的字体的样式。

TextDecoration

String

返回数据库中为该项定义的特殊文本格式设置。

FormattedValue

String

返回度量值或关键数字的格式值。例如,“销售额配额”FormattedValue 属性将返回一种货币格式,如 $1,124,400.00。

Key

Object

返回级别的键。

LevelNumber

Integer

针对父子层次结构返回级别号或维度编号。

ParentUniqueName

String

针对父子层次结构返回父级的完全限定名称。

为字段输入语法时,预定义字段将会出现在表达式编辑器的 IntelliSense 中。有关详细信息,请参阅在表达式中使用全局集合 (Reporting Services)

ms156477.note(zh-cn,SQL.90).gif注意:
仅当数据源(如 Analysis Services 多维数据集)在报表运行和检索其数据集数据的情况下提供这些扩展字段属性的值时,这些值才存在。然后,您可以使用下面所述的语法从任意表达式引用这些字段属性值。但是,由于这些字段专用于此数据访问接口,因此,对这些值所做的更改不会随报表定义一同保存。

扩展属性示例

为了说明扩展属性,以下 MDX 查询和结果集包含了为多维数据集定义的某维度属性的多个可用成员属性。包含的成员属性为 MEMBER_CAPTION、UNIQUENAME、Properties("Day Name")、MEMBER_VALUE、PARENT_UNIQUE_NAME 和 MEMBER_KEY。

此 MDX 查询将针对随 AdventureWorks 示例数据库提供的 AdventureWorks DW 数据库中的 AdventureWorks 多维数据集运行。

WITH MEMBER [Measures].[DateCaption]

AS '[Date].[Date].CURRENTMEMBER.MEMBER_CAPTION'

MEMBER [Measures].[DateUniqueName]

AS '[Date].[Date].CURRENTMEMBER.UNIQUENAME'

MEMBER [Measures].[DateDayName]

AS '[Date].[Date].Properties("Day Name")'

MEMBER [Measures].[DateValueinOriginalDatatype]

AS '[Date].[Date].CURRENTMEMBER.MEMBER_VALUE'

MEMBER [Measures].[DateParentUniqueName]

AS '[Date].[Date].CURRENTMEMBER.PARENT_UNIQUE_NAME'

MEMBER [Measures].[DateMemberKeyinOriginalDatatype]

AS '[Date].[Date].CURRENTMEMBER.MEMBER_KEY'

SELECT {

[Measures].[DateCaption],

[Measures].[DateUniqueName],

[Measures].[DateDayName],

[Measures].[DateValueinOriginalDatatype],

[Measures].[DateParentUniqueName],

[Measures].[DateMemberKeyinOriginalDatatype]

} ON COLUMNS , [Date].[Date].ALLMEMBERS ON ROWS

FROM [Adventure Works]

在 MDX 查询窗格中运行此查询时,您将获得一个包含 1158 行的结果集。下表显示了其中的前四行。

DateCaption DateUniqueName DateDayName DateValueinOriginalDatatype DateParentUniqueName DateMemberKeyinOriginalDatatype

All Periods

[Date].[Date].[All Periods]

(null)

(null)

(null)

0

1-Jul-01

[Date].[Date].&[1]

Sunday

7/1/2001

[Date].[Date].[All Periods]

1

2-Jul-01

[Date].[Date].&[2]

Monday

7/2/2001

[Date].[Date].[All Periods]

2

3-Jul-01

[Date].[Date].&[3]

7/3/2001

[Date].[Date].[All Periods]

3

对于使用图形模式下的 MDX 查询设计器生成的 MDX 查询,其维度属性只包括 MEMBER_CAPTION 和 UNIQUENAME。默认情况下,这些值始终为 String 数据类型。

如果需要成员属性采用其原始数据类型,则可通过在通用查询设计器中修改默认 MDX 语句,包含附加属性 MEMBER_VALUE。在下面的简单 MDX 语句中,MEMBER_VALUE 已添加到要检索的维度属性列表中。

SELECT NON EMPTY {[Measures].[Order Count]} ON COLUMNS,

NON EMPTY { ([Date].[Month of Year].[Month of Year] ) }

DIMENSION PROPERTIES

MEMBER_CAPTION, MEMBER_UNIQUE_NAME, MEMBER_VALUE ON ROWS

FROM [Adventure Works]

CELL PROPERTIES

VALUE, BACK_COLOR, FORE_COLOR,

FORMATTED_VALUE, FORMAT_STRING,

FONT_NAME, FONT_SIZE, FONT_FLAGS

下表显示了 MDX“结果”窗格中的前四行结果。

Month of Year Order Count

January

2,481

February

2,684

March

2,749

April

2,739

即使属性是 MDX 选择语句的一部分,它们也不会显示在结果集列中。尽管如此,使用扩展属性功能仍可将这些数据用于报表。在 SQL Server Management Studio 的 MDX 查询结果窗格中,您可以双击单元并查看单元的属性值(如果在多维数据集中进行了设置)。如果双击第一个包含 1,379 的 Order Count 单元,则会看到一个包含以下单元属性的弹出窗口:

Property Value

CellOrdinal

0

VALUE

2481

BACK_COLOR

(null)

FORE_COLOR

(null)

FORMATTED_VALUE

2,481

FORMAT_STRING

#,#

FONT_NAME

(null)

FONT_SIZE

(null)

FONT_FLAGS

(null)

如果使用此查询创建报表数据集,并将该数据集绑定到一个表,则可以看到字段的默认 VALUE 属性,例如 =Fields!Month_of_Year!Value。如果将此表达式设置为该表的排序表达式,则会按月份的字母顺序对表中的结果进行排序,因为 Value 字段默认为 String 数据类型。若要按月份在一年中的顺序(即一月排在第一位,十二月排在最后)对该表进行排序,请使用以下表达式:

=Fields!Month_of_Year("MEMBER_VALUE")

这将使用数据源中字段的原始整数数据类型对其值进行排序。

你可能感兴趣的:(sql server 2005)