PerformancePoint Services Filters

SharePoint 2010

Last modified: August 30, 2011

In PerformancePoint Services in Microsoft SharePoint Server 2010, a filter typically appears on a dashboard page as a Web server control. The filter control is rendered in a Web Part that implements standard SharePoint connection interfaces. The control enables users to select parameter values, which are then sent to connected scorecards and reports.

In this article
Filtering Process in PerformancePoint Services
Filter Data
Filter Connections
Filter Selection Controls

Applies to: SharePoint Server 2010

For more information about PerformancePoint Services filters, see the following sections:

The filtering process in a dashboard occurs as follows:

  1. The server renders a filter Web Part on a dashboard page. The Web Part hosts a Web server control, such as a list or tree.

  2. The filter's data provider connects to the underlying data source. It retrieves data and stores it in a data table (referred to as the display-data table).

  3. The retrieved data is used to populate the filter control.

  4. A user selects one or more values from the filter control, and then clicks OK.

  5. The data provider stores the user's selections in a data table (referred to as the message-data table).

  6. The filter control sends the message data (user-selected values) to the server.

  7. The server retrieves the results of the new query from the data source and then sends the updated data to scorecard and report consumers.

  8. The server renders the consumers with the new data.

Note Note

Filters can also send display condition information. A display condition controls the visibility of connected consumers. When a filter selection is equal to a display condition value, the connected consumer is shown.

A filter uses a data provider to handle two datasets:

  • Display data that is used to define connection points and to populate the filter control.

  • Message data that the filter passes to consumers to represent the user's selection from the filter control.

Both datasets are stored in DataTable objects in matrices of columns and rows.

Display Data

Display data is used to define connection points for the filter and to populate the filter control. The display-data table is stored in the DisplayValues property of the ParameterDefinition object that, in turn, is stored in the filter's BeginPoints property. The table is initialized by the GetDisplayDataInternal method.

The display-data table contains data from the filter's underlying data source. The CustomDefinition property contains the information needed to obtain the data. This information can be stored in an object such as a query string, URL, or serialized object. The target data source is defined in the DataSourceLocation property, which can specify a natively supported data source or a custom data source. For information about configuring display data, see Filter Connections.

Message Data

The values that a user selects from the filter control are stored in the message-data table. The message data is passed in a client-side browser transmission packet and is used as the parameter values in the queries of connected scorecard and report consumers. The server then renders the consumers with the new data. The message-data table is returned by using the GetMessageData method.

Filters are providers; they send data to connected scorecard and report consumers. Dashboard authors define a connection between a filter and a consumer by mapping a filter beginpoint to a consumer endpoint in PerformancePoint Dashboard Designer. An endpoint represents a parameter in a scorecard or report query, and a beginpoint represents the value of the parameter. For example, a filter displays the geographic regions North, South, East, and West, and a report returns the gross revenue for the region that is selected in the filter. In this example, region is the parameter in the report's query—its value is not specifically defined. The report must obtain the parameter value to use in the query (North, South, East, or West) from the filter.

A ParameterDefinition object defines the beginpoint for a filter connection, including the display-data table that contains the source data for the beginpoint, such as the values that populate the filter control. Beginpoint information is accessed through the filter's BeginPoints property, which returns a ParameterDefinitionCollection object that contains one ParameterDefinition object.

Note Note

Scorecards are both providers and consumers; they can receive data from filters and they can send data to reports. Filter beginpoints can contain only one ParameterDefinition object, but scorecard beginpoints typically contain multiple ParameterDefinition objects.

Designating the Key and Display Fields

The filter's data provider defines how to use the columns in the display-data table. At minimum, it must designate the columns to use as the Key field and the Display field. (One column can be used as both the Key and Display fields.)

  • The Key field contains the values to use as keys (row locators).

  • The Display field contains the values that populate the filter control.

In addition, the data provider can define how to use other columns in the table. For example, it can define the first column of the table as the Key field, the second as the Display field, and then ignore other columns or define additional functionality based on other columns. These designations are defined during development and cannot be reconfigured by dashboard authors.

Designating Possible Connection Points

The values that a filter can send to a consumer originate from one column in the display-data table. This source column (or bound column) is selected by the dashboard author and represents the filter's connection point.

In Dashboard Designer, columns in the display-data table that have the ShowColumn extended property set to true are displayed to dashboard authors as possible connection points for the filter. They appear in the Source values box in the Connection dialog box or under the filter's AvailableFields section in a dashboard zone.

Note Note

See the SetColumnVisibility method in the How to: Create Data Providers for PerformancePoint Services Filters topic to see how the sample data provider sets ShowColumn to true for all columns in the table.

Example of a Filter Connection

This high-level example shows how beginpoint information is used in a filter connection.

  1. The display-data table defines the beginpoint. It contains three columns, which are configured as follows:

    • CustomerId is designated as the Key field. ShowColumn is set to false.

    • DisplayName is designated as the Display field. ShowColumn is set to true.

    • AccountName has no field designation. ShowColumn is set to true.

    Table 1. Example display-data table

    CustomerId (Key)

    DisplayName (Display)



    Tailspin Toys



    Wide World Importers



    Wingtip Toys


  2. In Dashboard Designer, the author creates a connection for a filter and a report on a dashboard page. The filter displays DisplayName and AccountName as possible connection points because the ShowColumn property is set to true for these two columns in the display-data table.

  3. The author selects AccountName as the connection point (or bound column). This identifies AccountName as the column in the display-data table that contains the values that the filter can send to consumers.

  4. On the published dashboard page, the filter control is populated with the values Tailspin Toys, Wide World Importers, and Wingtip Toys. These values originate from the DisplayName column because it is designated as the Display field in the display-data table.

  5. The user selects Wingtip Toys in the control. The filter's data provider uses the corresponding key (19-003) to locate the value from the bound column to send to consumers (WingtipToys_R19).

In a PerformancePoint Services dashboard page, a filter Web Part hosts a Web server control. The filter control typically displays enumerated data values and enables dashboard users to select one or more values. The control is populated with data during the rendering process.

The control that a filter uses is identified by its renderer class. The default control for a filter type is specified by the RendererClass attribute in the PerformancePoint Services web.config file. However, the RendererClassName property overrides the default control for a filter instance, so authors can specify a different run-time renderer in the filter editor.

Custom filters can use a custom or third-party control or one of the following PerformancePoint Services controls:

Note Note

Custom filter controls can use either the ParameterizableControl or ParameterSelectionControl base class. We recommend using ParameterSelectionControl because it derives from ParameterizableControl and also provides a framework for implementing a selection control. Instructions for creating a custom control are beyond the scope of this documentation, but the process is similar to creating a report renderer.

Whether you use a PerformancePoint Services control or a custom control for your filter, you must specify a default renderer class in the RendererClass attribute in the PerformancePoint Services web.config file. For more information, see How to: Manually Register PerformancePoint Services Extensions.