Dataset Filter, Dataset Parameter, and Report Parameter

1.  When to Use Filters at the Dataset and When to Use Query Parameters?

Filters at the dataset are very similar to parameters because they affect the data that is presented to all regions. However, filters always occur after data has been retrieved from the data source and might not perform as well as parameters because the query pulls all the data, not just the specific data that the user needs. Thus, from a performance perspective, it is better to use parameters because they let SSRS pull filtered data from the data source. In contrast, when you use filters, the queries retrieve all data and then filter the information in an additional step.

The main advantage of filters is that information can be shared between multiple users if you configure the report to use report execution snapshots. In report execution snapshots, the first execution of the report pulls the data from the server, and successive executions use the snapshot information stored in the report server. So the best practice is not to use filters at the dataset unless you plan to use report snapshots.  In other words, use query parameters instead to filter information before it gets to the report.

Filters at the dataset can be configured as follows:

·       Select the Report Data window.

·       In the Report Data window, right-click the dataset you want to filter, and then select Dataset Properties.

·       In the Dataset Properties dialog box, click the Filters tab.

·       In the Change Filters pane, click Add.

·       Configure the filter expression, data type, operator, and value. If your filter expression is simple, such as a single data field, the data type is assigned automatically from the field data type.

Filters at data regions affect only the report item they are filtering, and different data regions can apply different filters to the same dataset. Additionally, filters can also be for a data grouping.

2.  When to Use Query parameters and When to Use Report parameters?

A query parameter, also called a dataset parameter, is a variable defined at the dataset level that affects the way SSRS queries the data source. The main purpose of a query parameter is to filter data in the data source.

A report parameter is a variable defined at the report level that allows the personalization of a report at run time. The main purpose of a report parameter is to add interactivity to your reports, letting users change the report behavior based on options they select. Report parameters are often mapped to query parameters. For example, the user can select a department and use the report parameter to assign the query parameter value and filter expenses by departments. In addition, if a data source does not support query parameters, you can use report parameters to give users the ability to filter data after it has been retrieved for the report.

Filtering datasets after the data has been retrieved is also useful if you are using report snapshots. With report snapshots, SSRS caches the data and does not retrieve it from the source again to satisfy a user rendering request. If you want to present only a subset of data to the user, you need to use report parameters and filter the data in the report dataset or in any report data region.

The Differences between Query and Report Parameters

Query parameters

Report parameters

Parameter runs on

Database server

Report server

Primary purpose

of parameter

To filter data

To interact with user

Parameter properties

Name and value (can be an expression)

Name, type, value, prompt, available values, default values, and so on

Parameter is managed through

Dataset

Report Parameters dialog box

3.  How to Create a Query Parameter or Dataset Parameter?

a.   Option 1 via Dataset Properties – Your Dataset (right-click)| Dataset Properties | Query or Parameter.

·       In BIDS, open a project and then open a report.

·       In the Report Designer, open the Report Data window by using the tab displayed on the left side of BIDS (where you also access the Toolbox window). If the Report Data tab is not there, use the BIDS View menu and select Report Data to open this window.

·       Change the query syntax to add the parameters. Right-click a dataset to which you want to add parameters, and select Dataset Properties. On the Query tab in the Dataset Properties dialog box, edit the query to add the parameters. The SQL Server client uses the at symbol (@) as the first character of the name to define the parameters in the query. You can use parameters in the WHERE clause of the T-SQL query.

·       In the Dataset Properties dialog box, click the Parameters tab.

·       On the Parameters tab, assign a value to each query parameter.

b.   Option 2 via Graphical Query Designer (works for MDX as well) – Your Dataset (right-click)| Query.

·       In the Report Designer, open the Report Data window.

·       Right-click the dataset, and then select Query.

4.  How to Create a Report Parameter?

a.   Option 1 – via the Parameter folder in the Report Data window

·       In the Report Designer, click the Design tab, if necessary.

·       In the Report Data window, right-click the Parameters folder, and then select Add Parameter.

·       If you expand the Parameters folder, you can right-click an already defined report parameter and delete it or edit its properties.

b.   Option 2 – via Query Parameters

By default, a report parameter with an equivalent name is created for each query parameter, and query parameter values are assigned to corresponding report parameters. End users can change report parameters when they run the report, and SSRS replaces query parameters with report parameter values when executing the query. This is usually what you need; nevertheless, you could assign a constant or an expression to a value of a query parameter.

5.  Working with Report Parameter

a.   How to Assign a List of Values That Users Can Select From - Binding a Dataset to a Parameter?

Your Report Parameter (right-click)| Report Parameter Properties | Available Values.

b.   How to Use Multivalued Parameters

Your Report Parameter (right-click)| Report Parameter Properties | General | Allow Multiple Values.

c.   How to Set Parameter Defaults?

Your Report Parameter (right-click)| Report Parameter Properties | Default Values.

d.   How to supply the parameter values through the URL used to run parameterized reports?

http://localhost/ReportServer?%2fLogistics%2fTracking+Numbers+by+Month&rs:Command=Render&Department=12

·       Report server URL: http://localhost/ReportServer? The report server name and protocol will reflect your specific installation. The question mark begins the parameter section.

·       Report path: %2fLogistics%2fTracking+Numbers+by+Month& The path includes the folder and report name; for your reports, replace the names appropriately. Use %2f to replace the slash mark (/) and %20 to replace spaces.

·       Command section: &rs:Command=Render The command section configures the action of the report. The & symbol at the beginning separates the command section from the report path.

·       Parameters section: &Department=1 Use the & symbol to separate parameters, and use a name and value pair to configure the parameter. If you have multivalued parameters, you need to repeat the name and value pair once for each parameter.

·       If you want to hide parameters in the report, add &rc:parameters=false to the URL. You can also hide the toolbar completely by adding &rc:toolbar=false.