设计基于多维数据集的报表模型

在 SharePoint 集成模式下运行时,可使用报表管理器或 Microsoft Office SharePoint Server 2007 或 SharePoint Server 2010,基于 SQL Server Analysis Services (SSAS) 多维数据集生成报表模型。您必须是 Analysis Services 数据库的管理员,才能基于 SSAS 多维数据集创建报表模型。模型生成之后,就不能再修改。如果您决定更改数据库的内容,则需要重新生成模型以纳入更改内容。

连接字符串

当基于 Analysis Services 数据库生成报表模型时,连接字符串将类似如下所示:

Data Source=<报表服务器>;Initial Catalog=<数据库名称>

注意注意

如果 Analysis Services 数据库包含多维数据集转换,则可以创建报表模型转换版本。若要为每种语言创建一种模型,请在数据源的连接字符串中指定区域设置标识符 (LCID)。例如,若要创建中文模型,连接字符串应类似于 Data Source=<reportserver>;Initial Catalog=<database name>;LocaleIdentifier=3012。有关多维数据集翻译的详细信息,请参阅多维数据集翻译

从 Analysis Services 数据库生成模型的规则

在从多维数据集创建模型时,需遵循下面的一系列通用规则:

  • 将度量值组映射到实体。单个报表模型包括 Analysis Services 数据库中的所有多维数据集。

  • 将维度映射到实体。事实维度并不会导致生成不同的实体。例如,假设您在一个多维数据集中具有一个“销售”度量值组和一个名为“销售明细”的事实维度。当从此多维数据集生成模型时,模型将生成单个实体,此实体包含“销售”的所有度量值和“销售明细”的所有维度属性。

  • 度量值组与维度之间的关系将转换成模型中的角色。被引用关系(用于间接关系)和多对多关系在模型中被定义为角色。

  • 度量值转换为实体属性。

  • 维度属性转换为实体属性。模型没有层次结构的概念。因此,如果维度属性可见,或者如果存在可见层次结构且其中包含了基于维度属性的级别,则模型中将包括维度属性。维度的键属性即使被标记为不可见,也将始终包括在模型中。

  • 来自度量值和维度属性的实体属性将按照多维数据集中定义的显示文件夹被组织成相应的文件夹。

  • 多维数据集透视变为报表模型透视。此外,每个多维数据集变为模型中的一个透视。因此,报表生成器用户必须选择模型中的一个透视,而不能选择顶级模型。

  • 计算度量值(计算成员)变为与某个度量值组(度量值与此度量值组相关联)相对应的实体的属性。

  • 对维度的键属性定义的命名集将转换为实体的一个子类型。例如,命名集“Large Customers”产生子类型“Customer”。不是基于单个键属性的命名集将被忽略。

  • 关键绩效指标 (KPI) 将转换为与某个度量值组(KPI 与此度量值组相关联)相对应的实体的属性。系统会为每个 KPI 创建多个属性,以涵盖 KPI 的不同组件(值、目标、状态及走向)。此外,还将为具有 StatusGraphic 属性的状态组件和具有 TrendGraphic 属性的走向组件分别创建一个变体属性。当您使用这些属性时,报表中将包含实际的图像。

报表模型中省略的 Analysis Services 数据库项

生成的模型中不会出现以下 SSAS 项:

  • 计算成员(不在度量值维度中)。

  • 父子层次结构不会转换成模型属性或角色。模型中仍将包含键属性,尽管在报表中使用此属性将会显示键成员的度量值,而不显示在父子层次结构上聚合所得的值。此外,性能也将受到影响。

  • 操作。这其中包括钻取操作。无论在多维数据集中定义了哪些钻取操作,对聚合属性将始终启用钻取功能。因此,当用户在模型外部运行报表生成器报表,并且单击某聚合以显示点击链接型报表,将会显示空表。

  • 属性关系。维度将导致生成单个实体,并且此维度的各属性之间的任何关系并不会影响报表模型。

  • 如果度量值组与维度的关系基于维度的键属性之外的某个属性,则这些关系将被忽略。例如,“预算”度量值组可能是在“月份”级别与“时间”维度相关,而不是在“日”级别。这时,报表模型将不会包括“预算”实体与“时间”实体之间的任何关系。

多维数据集设计的注意事项

在设计要为其生成报表模型的多维数据集时,应注意以下方面:

  • 没有关联的度量值组的计算度量值或 KPI 将不会出现在报表模型中。若要为计算度量值配置关联的度量值组,应使用**“计算属性”**对话框。

  • 由报表生成器发送的查询将始终请求维度成员的成员值,并将使用成员值进行排序和筛选。默认情况下,在 Analysis Services 中,如果某个属性具有名称绑定,则成员值将与成员名称相同;如果此属性没有名称绑定,则成员值将与成员键相同。不过,每个属性均可以具有一个到提供成员值的列的显式绑定,此绑定返回的值应为“true”数据类型。例如,Analysis Services 中的 Date 属性可能有一个类型为 DateTime(如“4/25/2008”)的键和一个使用文本说明的名称/标题(“Friday, 25th April, 2008”)。这时,多维数据集设计人员应将 MemberValue 设置为此键,以确保合理的排序和筛选。尽管对任何属性均应考虑这一点,但对于日期时间属性尤其必要。对于任何日期时间属性,生成的模型将包含两个报表模型属性:一个为标题,一个为标题的变体,此变体是真正的日期时间值。

  • 维度特性属性 InstanceSelection 用于设置报表模型属性 InstanceSelection(对于实体)和 ValueSelection(对于特性)。这确定了用户可以通过何种方式来选择报表生成器中的实例(例如,通过使用下拉列表)。

  • 维度特性属性 GroupingBehavior 用于设置 DiscourageGrouping 模型特性属性。

  • 对于作为图像的维度特性,必须对维度特性绑定设置 Image 数据类型。

  • 对于从度量值生成的属性将始终启用钻取功能,但默认的钻取报表中包含的详细信息极少。如有必要,应添加自定义钻取报表以满足相关需要。

  • 如果多维数据集中包括翻译,则需要对每个翻译创建一个数据源,以便将它们显示在报表模型中,这可以通过在连接字符串中设置相应的 LocaleIdentifier 属性来实现。这将为每个数据源生成一个模型,并且模型中将包含来自关联翻译的元数据。