代码示例:自定义报表、筛选器和表格数据源对象

上次修改时间: 2011年5月31日

适用范围: SharePoint Server 2010

建议您将该示例作为自定义扩展的模板。该示例包含可简化存储库操作(例如创建和更新)的调用的帮助程序对象,并演示使用 PerformancePoint Services 编程的最佳实践。有关支持的扩展类型的详细信息,请参阅使用 PerformancePoint Services 的开发方案

示例中的自定义对象组件

示例包含以下与自定义对象有关的组件:

  • 报表扩展

  • 筛选器扩展

  • 数据源扩展

  • 帮助程序对象

报表、筛选器和数据源扩展包含呈现器或者提供程序组件和编辑器组件。呈现器作为 Web 服务器控件来实现,编辑器作为具有代码隐藏类的 ASPX 页来实现。示例编辑器遵循 SharePoint Server 开发惯例,即在 DLL 中编译的类中为 ASPX 页定义编辑器的编程逻辑。

备注

有关如何从开发计算机上的示例安装自定义对象的说明,请参阅安装示例报表、筛选器和数据源对象。

报表扩展

示例报表从示例筛选器接收数据,然后在表中显示股票报价信息。通常情况下,自定义报表扩展包含呈现器(必需)和编辑器。

示例报表包含以下文件:

  • SampleReportRenderer.cs  在 Web 部件中呈现示例报表。呈现器是一个 Web 服务器控件,它使用 HtmlTextWriter 对象编写 HTML 来实现报表可视化。

  • SampleReportViewEditor.aspx  提供编辑器的用户界面,它是运行在前端 Web 服务器上并显示 Web 服务器控件的 ASPX 页。ASPX 页以 HTML 的形式定义 Web 服务器控件。

  • SampleReportViewEditor.cs  提供编辑器的编程逻辑,包括在 ASPX 页中定义的控件的逻辑。

有关详细信息,请参阅为 PerformancePoint Services 创建报告扩展

筛选器扩展

示例筛选器使用从 Web 服务或 Microsoft Excel 工作簿中检索的股票报价信息。通常情况下,自定义筛选器扩展包括提供程序(必需)、呈现器和编辑器。筛选器可以使用自定义呈现器或本机 PerformancePoint Services 呈现器。该示例使用 PerformancePoint Services 多选树控件。

示例筛选器包含以下文件:

  • SampleFilterDataProvider.cs  定义自定义筛选器的数据提供程序。此类处理与筛选器数据源的交互。

  • SampleFilterEditor.aspx  提供编辑器的用户界面,它是在前端 Web 服务器上运行并显示 Web 服务器控件的 ASPX 页。ASPX 页以 HTML 的形式定义 Web 服务器控件。

  • SampleFilterEditor.cs  提供编辑器的编程逻辑,包括在 ASPX 页中定义的控件的逻辑。

有关详细信息,请参阅为 PerformancePoint Services 创建筛选器扩展

数据源扩展

示例数据源从 Web 服务提供股票报价信息。通常情况下,自定义数据源扩展包括提供程序(必需)和编辑器。PerformancePoint Services 只支持表格数据源。

示例数据源包含以下文件:

  • BasicTabularDataSourceProvider.cs  包含不是由自定义数据源提供程序实现的重写方法。

  • SampleDataSourceEditor.aspx  提供编辑器的用户界面,它是运行在前端 Web 服务器上并显示 Web 服务器控件的 ASPX 页。ASPX 页以 HTML 的形式定义 Web 服务器控件。

  • SampleDataSourceEditor.cs  提供编辑器的编程逻辑,包括在 ASPX 页中定义的控件的逻辑。

  • SampleDSCacheHandler.cs  表示提供股票报价信息的基础数据源。此类从缓存文件检索股票价格,然后使用从 Web 服务检索的值更新它。

  • WSTabularDataSourceProvider.cs  表示自定义数据源提供程序。

有关详细信息,请参阅为 PerformancePoint Services 创建表格数据源扩展

帮助程序对象

PerformancePoint Services 使用 SharePoint 列表作为第一类对象 (FCO) 的存储库。它在 SharePoint 文档库中存储数据源,在 SharePoint 列表中存储仪表板、记分卡、报表、筛选器、关键绩效指标 (KPI) 和指示器。默认存储库由 PerformancePoint 数据连接库和 PerformancePoint 内容列表组成。

示例包含帮助程序对象,这些对象可以简化编辑器与 PerformancePoint Services 存储库之间所需的操作,例如检索和更新自定义对象以及访问 PerformancePoint Services 数据源。帮助程序对象也为服务器日志记录和异常处理提供挂钩。

备注

由于示例编辑器在前端 Web 服务器上运行,因此它们使用 BIMonitoringServiceApplicationProxySPDataStore 对象执行存储库操作。有关详细信息,请参阅用于自定义 PerformancePoint Services 对象的编辑器

示例中的以下类表示帮助程序对象:

  • ExtensionRepositoryHelper.cs  表示存储库帮助程序对象的基类。

    • DataSourceRepositoryHelper.cs  创建、检索和更新 PerformancePoint Services 存储库中的自定义数据源对象。此类由示例数据源编辑器使用。

    • FilterRepositoryHelper.cs  创建、检索和更新 PerformancePoint Services 存储库中的自定义筛选器对象。此类由示例筛选器编辑器使用。

    • ReportViewRepositoryHelper.cs  创建、检索和更新 PerformancePoint Services 存储库中的自定义报表对象。此类由示例报表编辑器使用。

  • IDataSourceConsumer.cs  表示由将其标识为数据源使用方的 FilterRepositoryHelper 和 ReportViewRepositoryHelper 类实现的接口。

  • DataSourceConsumerHelper.cs  从基础数据源访问和使用数据。此类由示例报表和筛选器使用。

安装示例报表、筛选器和数据源对象

若要安装示例报表、筛选器和数据源对象,必须生成示例程序集、在全局程序集缓存中注册该程序集、复制编辑器和样式表文件以及在 PerformancePoint Services web.config 文件中注册扩展。这些任务要求在应用程序服务器(即运行 PerformancePoint Services 的计算机)上拥有足够的管理权限。

备注

打开自定义编辑器的重定向功能要求您的 SharePoint Server 2010 配置包含顶级(根)网站集。

备注

有关如何安装完整示例的说明包含在示例文件中。

安装示例对象

  1. 下载 PerformancePoint Services SDK 参考示例(该链接可能指向英文页面)压缩 (.zip) 文件,其中包含自定义报表、筛选器和表格数据源组件。

  2. 将内容提取到计算机上的文件夹中。

  3. 在 Visual Studio 中打开示例。

  4. 在"解决方案资源管理器"中,展开 References 文件夹,并还原任何缺少的项目引用。PerformancePoint Services 程序集只安装到全局程序集缓存中。根据您的开发环境,可能需要将这些程序集复制到其他目录。有关从全局程序集缓存复制 PerformancePoint Services 程序集的说明,请参阅 开发方案中使用的 PerformancePoint Services DLL

    该示例包含对以下 PerformancePoint Services 和 SharePoint Server 2010 程序集的引用:

    • Microsoft.PerformancePoint.Scorecards.Client

    • Microsoft.PerformancePoint.Scorecards.DataSourceProviders.Standard

    • Microsoft.PerformancePoint.Scorecards.Server

    • Microsoft.PerformancePoint.Scorecards.ServerCommon

    • Microsoft.PerformancePoint.Scorecards.ServerRendering

    • Microsoft.PerformancePoint.Scorecards.Store

    • Microsoft.SharePoint

  5. 生成示例程序集。

    备注

    这些说明假定您使用示例中包含的 SDKSamples.snk 文件对程序集进行签名。如果使用其他强名称密钥文件生成程序集的公钥标记,请使用实际密钥替换这些说明中的示例公钥标记 (fa525c8383a44a52)。这些说明还假定数据源存储库与服务器相关的 URL 是 /BICenter/Data Connections for PerformancePoint/。如果这与您的配置不匹配,请在 SampleFilterEditor.PopulateDataSourceDropDown 方法中编辑该 URL。根据您的配置不同,URL 可能需要前导左斜线。

  6. 在应用程序服务器上,将示例程序集 (Microsoft.PerformancePoint.SDK.Samples.dll) 添加到全局程序集缓存中。有关说明,请参阅How to: Install an Assembly into the Global Assembly Cache

  7. 将编辑器 ASPX 页从示例文件中的 SampleDataSource、SampleFilter 和 SampleReport 文件夹复制到 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS 路径中的 LAYOUTS 文件夹。

  8. 将 ppsmasdk.css 从示例文件复制到 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS\STYLES 路径中的 STYLES 文件夹。

  9. 执行如何:手动注册 PerformancePoint Services 扩展中"添加自定义报表、筛选器或数据源对象的元数据"过程中的步骤 1 到 3。此过程可创建 PerformancePoint Services web.config 文件的备份副本,然后添加代码以支持注册自定义对象。

  10. 若要注册示例报表、筛选器和数据源对象,请将以下代码粘贴到 CustomFCOGroup 元素中。

    <CustomFCO type="DataSource" subType="WSTabularDataSource">
        <Resources FCOName="Custom Data Source" FCODescription="This is my custom data source." />
        <EditorURI uri="/_layouts/SampleDataSourceEditor.aspx" />
    </CustomFCO>
    <CustomFCO type="Filter" subType="SampleFilter">
        <Resources FCOName="Custom Filter" FCODescription="This is my custom filter." />
        <RendererClass name="Microsoft.PerformancePoint.Scorecards.ServerRendering.MultiSelectTreeViewControl, 
        Microsoft.PerformancePoint.Scorecards.ServerRendering, Version=14.0.0.0,
        Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
        <EditorURI uri="/_layouts/SampleFilterEditor.aspx" />
    </CustomFCO>
    <CustomFCO type="ReportView" subType="SampleReportView">
        <Resources FCOName="Custom Report" FCODescription="This is my custom report."/>
        <RendererClass name="Microsoft.PerformancePoint.SDK.Samples.SampleReport.SampleReportRenderer,
        Microsoft.PerformancePoint.SDK.Samples, Version=14.0.0.0,
        Culture=neutral, PublicKeyToken=fa525c8383a44a52" />
        <EditorURI uri="/_layouts/SampleReportViewEditor.aspx" />
    </CustomFCO>
    
  11. 若要注册示例数据源提供程序,请将以下代码粘贴到 CustomDataSourceProviders 元素中。

    <add key="WSTabularDataSource" value="Microsoft.PerformancePoint.SDK.Samples.SampleDataSource.WSTabularDataSourceProvider,
    
        Microsoft.PerformancePoint.SDK.Samples, Version=14.0.0.0, Culture=neutral,
    
        PublicKeyToken=fa525c8383a44a52" />
    
  12. 若要注册示例筛选器数据提供程序,请将以下代码粘贴到 CustomParameterDataProviders 元素中。

    <add key="SampleFilterDataProvider" value="Microsoft.PerformancePoint.SDK.Samples.SampleFilter.SampleFilterDataProvider,
    
        Microsoft.PerformancePoint.SDK.Samples, Version=14.0.0.0, Culture=neutral,
    
        PublicKeyToken=fa525c8383a44a52" />
    
  13. 保存然后关闭 web.config 文件。

  14. 根据您的环境,可能需要重新启动 Internet Information Services (IIS)。

在安装示例后,可以使用 PerformancePoint 仪表板设计器创建示例数据源、筛选器和报表对象的实例。(先创建示例数据源以便可以选择它作为筛选器的数据源。请务必单击报表编辑器中的"确定"来初始化报表终结点并刷新仪表板设计器,以便获得已更新版本的自定义对象。)然后,向仪表板添加筛选器和报表,并通过选择"示例报表视图终结点"作为报表终结点以及"符号"作为筛选器起始点的源值来连接它们。有关如何使用仪表板设计器的详细信息,请参阅 Office 网站。

请参阅

概念

用于自定义 PerformancePoint Services 对象的编辑器

代码示例:自定义记分卡转换

其他资源

为 PerformancePoint Services 创建报告扩展

为 PerformancePoint Services 创建筛选器扩展

为 PerformancePoint Services 创建表格数据源扩展