管理报表模型

在 Reporting Services 中,模型管理包括向报表服务器添加模型、从报表服务器中删除模型、修改模型属性和管理与模型相关联的共享数据源。有关控制对全部或部分模型的访问的详细信息,请参阅保护模型。有关如何从预定义的共享数据源生成模型的详细信息,请参阅如何使用报表管理器创建模型

注意注意

具有高级服务的 SQL Server Express 不支持报表模型。有关此版本中功能的详细信息,请参阅具有高级服务的 SQL Server Express 中的 Reporting Services

在 Reporting Services 中使用模型

为了有效地管理模型,您必须了解模型的使用方式。在 Reporting Services 中,报表模型描述了在报表生成器中创建和修改的即席报表的数据。可以通过以下方式使用报表模型:

  • 在报表生成器中设计报表时或者在报表设计器中设计基于模型的报表时作为数据源。

  • 在运行时用作浏览数据时的数据源。因为报表生成器报表是基于模型生成的,所以在以交互方式浏览报表数据时,通过单击自动生成的报表,用户可以使用非线性导航路径浏览数据。

  • 在执行查询以获取数据时用作数据源。第三方客户端应用程序可以通过编程方式访问模型并将其用作报表数据源。

预定义和自动生成的点击链接型报表

只能通过显示用户相关数据的自动生成的点击链接型报表支持通过基于模型的报表浏览即席数据。然而,可以使用以指定方式显示数据的预定义自定义报表补充或替代自动生成的报表。

自动生成的点击链接型报表由报表服务器在用户浏览报表中的数据时动态创建。报表服务器使用模板来创建临时报表。有两种模板:一种用于单实例数据(例如显示特定客户的有关数据);另一种用于多实例数据(例如显示特定产品的订单列表)。无法对模板进行修改。不过,可以使用具有所需样式和布局的预定义报表来替换临时的点击链接型报表。

预定义点击链接型报表是映射到模型特定部分的、自定义的已发布报表。当用户导航到映射至预定义报表的模型的某部分时,用户查看的是自定义报表而不是报表服务器生成的点击链接型报表。由于预定义点击链接型报表是由报表作者创建的,因此这些报表可以使用可通过报表生成器使用的所有报表功能。如果希望以特定的布局显示数据,则应创建自定义报表。必须在报表生成器中创建预定义点击链接型报表。在创建并保存报表后,可以使用报表管理器将该报表与模型中的实体相关联。

对预定义报表的访问由报表的角色分配来控制。如果根据显式或继承的角色分配,不允许用户访问预定义报表,则该用户将查看临时报表,而不是映射到模型项的预定义报表。

在模型驱动报表中导航数据

报表生成器报表提供了进一步查询的起点。与报表设计器报表支持的显式钻取和深化导航路径相反,报表生成器报表中包含可点击的数据点,用户可以通过这些数据点来查看模型提供的其他数据。例如,如果有一个描述销售、产品和雇员数据的模型,则使用 Employee 报表的用户可以通过单击报表来进一步查看有关特定雇员、产品和销售情况的即席报表。

钻取导航中的一系列报表

如果多个实体彼此相关,则点击链接式导航路径将由报表中表示基础实体的值来确定。例如,假设有一个包含 Customer 实体、Customer Orders 实体和 Customer Returns 实体的模型。如果 Customer 报表包含表示订单数和退货数的字段,则当用户单击订单数时,将钻取生成显示订单列表的报表;当用户单击退货数时,将钻取生成显示退货列表的报表。

是否能够对即席数据路径进行导航取决于模型项的安全性。例如,若要控制对客户订单的访问,可以对模型中的 Customer Order 实体进行保护。只有有权查看 Customer Order 实体的用户才能查看报表中的客户订单信息。

如何在报表模型中将预定义报表映射到实体

可以设计自定义报表来代替报表服务器自动生成的点击链接型报表。若要让用户能够使用自定义报表,必须首先创建该报表,将其发布至报表服务器,然后将报表映射到模型中的主实体。

若要提供自定义点击链接型报表,则应包含该报表的单实例版本和多实例版本。用户定位到特定实体时所用的数据路径将确定需要的是单实例报表还是多实例报表。您事先并不一定知道是否不需要某个版本的报表。使用以下步骤可以创建用于点击链接型导航的自定义报表:

  1. 在报表服务器上生成模型。

  2. 使用该模型作为数据源创建自定义报表。

    若要创建使用模型数据源的报表,请使用报表生成器。应为每个实体创建一组报表:一个报表用于单实例数据;另一个用于多实例数据。若要了解如何操作,请参阅教程:自定义报表生成器点击链接型报表

  3. 将报表保存到报表服务器。

  4. 启动报表管理器

  5. 右键单击该模型,并选择**“属性”**。

  6. 在**“点击链接型报表”**页上,找到要为其指定自定义报表的实体。有关详细信息,请参阅“点击链接型报表”页(报表管理器)

  7. 选择所创建的单实例报表和多实例报表。

管理共享数据源和报表模型

报表模型可以使用 SQL Server 2000 和更高版本数据库中的数据,也可以使用 SQL Server 2005 和更高版本的 Analysis Services 多维数据集数据库中的数据。若要连接到数据库,报表模型应使用定义连接字符串、凭据和数据处理扩展插件的共享数据源。

每个报表模型均与单个共享数据源和一个数据源视图相关联。共享数据源最初与报表模型一起在模型设计器中创建,不过,在将模型和共享数据源发布到报表服务器之后可以将其作为单独的项进行管理。

在为模型指定共享数据源时,对于如何获取凭据存在一些限制。为报表模型提供数据的共享数据源必须配置为使用以下选项:

  • 已存储凭据

  • Windows 集成安全性。

对于为报表模型提供数据的共享数据源,不支持提示凭据或不使用凭据。有关凭据的详细信息,请参阅为报表的数据源指定凭据和连接信息

向报表服务器添加模型

可以采用以下方式向报表服务器添加模型 (.smdl) 文件:

  • 从模型设计器中将模型发布到报表服务器。

  • 从文件系统中将模型上载到报表服务器。

在报表服务器上创建模型的最简单的方法是从共享数据源生成模型。也可以从模型设计器中发布模型或从文件系统中上载 .smdl 文件。

并非所有 .smdl 文件都可以上载。如果文件缺少数据源视图信息,则在试图上载该文件时将会出现错误。如果试图上载从未发布到报表服务器的 .smdl 文件,则将会丢失数据源视图信息。在从模型设计器中发布之前,.smdl 文件和数据源视图是单独进行存储的。在发布期间,数据源视图信息将合并到 .smdl 文件中。因此,应仅上载以前曾发布到报表服务器随后又从报表服务器保存到文件系统中的 .smdl 文件。

有关发布和上载模型的详细信息,请参阅发布报表模型将文件上载到文件夹

删除模型和数据源

报表模型为在报表生成器中创建的报表提供数据。如果删除模型,则将无法打开、运行或修改任何基于该模型的报表。

报表模型使用共享数据源指定到为报表提供数据的关系数据库或多维数据集的连接信息。如果删除共享数据源,将会破坏模型和所有基于该共享数据源的报表。

如果误删除了共享数据源,则可以使用报表管理器创建一个指向基础数据库或基础多维数据集的新数据源,然后在“常规属性“页中为模型指定新的数据源。新的共享数据源项可以有不同于已删除数据源的名称、凭据或连接字符串语法。只要连接解析为相同的数据源,就可以将该数据源用于模型。

不能重新创建不小心删除的模型。如果错删了模型,必须重新生成模型,重新创建并保存报表,然后重新指定希望使用的任何模型项安全性。不能仅重新生成模型,然后将其附加到现有报表。

重命名模型和依赖数据源

您可以重命名报表模型,而不会影响使用该模型的报表。还可以重命名模型使用的共享数据源而不影响报表的可用性。

更新模型项

对于基于 SQL Server 关系数据库的模型,可以使用模型设计器来修改和重新发布模型。如果重新发布的模型正在使用中(例如,用户正在查看从该模型生成的点击链接型报表),则在进行部署时将会锁定该报表。若要在重新发布模型时停止模型处理,可以禁用该模型所使用的共享数据源。方法是:在“数据源属性”页上清除**“启用此数据源”**选项。如果删除已发布报表中所使用的模型项,则对于此部分报表,将会为用户显示“找不到模型项”错误。

可以使用报表管理器来创建或修改模型项安全设置。在模型命名空间中,使用模型标识号唯一标识模型项。在更新模型时,报表服务器将比较该模型的更新版本和以前保存的版本之间的标识号。如果标识号匹配,则更新的模型项将获取现有项的安全设置。保护模型项的安全有多项要求。有关详细信息,请参阅“模型项安全性”页(报表管理器)