# Report Book Parameters Overview

Often, one or more reports that are part of a report book will contain report parameters. The report book is shown as a single document in the report viewer, and the parameters area represents the visible report parameters defined in all child reports.

The described behavior is valid when you pass the Report Parameter values in the ReportSource wrapping the entire ReportBook, and when you pass them separately, with each report's ReportSource added to the ReportBook's ReportSources collection.

Telerik Reporting provides a mechanism known as parameter merging. If the [Name](https://www.telerik.com/products/reporting/documentation/api/telerik.reporting.ireportparameter#Telerik_Reporting_IReportParameter_Name) and [Type](https://www.telerik.com/products/reporting/documentation/api/telerik.reporting.ireportparameter#Telerik_Reporting_IReportParameter_Type) of two (or more) parameters from different reports are the same, then they are considered equivalent and are displayed as a single parameter in the viewer's Parameters Area.

> note When one or more parameters are merged, the UI settings of the **first** one are used for the generated input control in the parameters area.

![An image showing how the values of the Report Parameters of multiple Reports with same names are merged together when Mergeable is true](https://www.telerik.com/products/reporting/documentation/assets/124668b3a1d1c441768bf40d333ad730/reportbook3_mergedparameters.png)

You can control parameter merging via the [Mergeable](https://www.telerik.com/products/reporting/documentation/api/telerik.reporting.ireportparameter#Telerik_Reporting_IReportParameter_Mergeable) boolean property of the `ReportParameter` class. The default value of the `Mergeable` property is true. Set the `Mergeable` property to `false` if you want to prevent a parameter from being merged with its equivalent ones.

![An image showing how the values of the Report Parameters of multiple Reports with same names keep their individual values when Mergeable is false](https://www.telerik.com/products/reporting/documentation/assets/a7e2f0588d0073f77646565b05ec10a1/reportbook4_mergedparameters2.png)

## How to set a value for a report parameter in ReportBook

In the sample pictures below, you will see in a few steps how to set a value for a report parameter in ReportBook using Standalone Designer. For this example, the **Dashboard.trdp** and **Product Sales.trpd** reports are used, which can be found in the installation folder - **C:\Program Files (x86)\Progress\Telerik Reporting 2026 Q4\Report Designer\Examples**.

### In Standalone Designer

1. Open the Report Book
2. Click on the **Dashboard.trdp**
3. From the Toolbar, click on the **Parameters**
4. The **Edit Parameter** window will open, then select New

   ![How to set a value for a report parameter using Standalone Designer](https://www.telerik.com/products/reporting/documentation/assets/d3f787a7650050c6ce79c51d22206531/setvalueforreportparameterinreportbookstandalonedesigner.png)

### Web Report Designer

1. Open the ReportBook (Combined Report).
2. In Report Sources, click on the `uriReportSources1 `.
3. Next to Parameters, you will see a plus sign(+). Click on it.
4. In the `Add New Item` window, you will be able to set the name and value of the parameter.

   ![How to set a value for a report parameter using Web Report Designer](https://www.telerik.com/products/reporting/documentation/assets/1cd3e9ed7ab1d0794c6ecbfd857448f6/howtosetvalueforreportparameterwebreportdesigner.png)

![How to set the name and value of the parameter](https://www.telerik.com/products/reporting/documentation/assets/a081ce282c6e5749d0256d5fc9548f10/howtosetthenameandvalueoftheparameter.png)

## Passing Values for Report Parameters in a Reportbook through ReportSource Programmatically

* **When report parameters have unique names or the target parameters are merged:** If a parameter is distinguishable by its Name property or the Name denotes several merged parameters, refer to the parameter directly by the value of its Name property.

  ```C#
  var typeReportSource = new Telerik.Reporting.TypeReportSource();
  typeReportSource.TypeName = typeof(MyReportBook).AssemblyQualifiedName;

  // Passing a value for unique or repeating report parameter that should have one and the same value
  // for all reports part of the report book thru the report source
  typeReportSource.Parameters.Add(new Telerik.Reporting.Parameter("ProductCategory", "Bikes"));
  ```

  ```VB.NET
  Dim typeReportSource As New Telerik.Reporting.TypeReportSource()
  typeReportSource.TypeName = GetType(MyReportBook).AssemblyQualifiedName

  ' Passing a value for unique Or repeating report parameter that should have one And the same value
  ' for all reports part of the report book thru the report source
  typeReportSource.Parameters.Add(New Telerik.Reporting.Parameter("ProductCategory", "Bikes"))
  ```

* **When report parameters have repeating names but they are not merged:** In this case, you need to refer to the individual occurrence of the parameter in a particular report. This is done by denoting the target report by its zero-based index inside the report book.

  ```C#
  var typeReportSource = new Telerik.Reporting.TypeReportSource();
  typeReportSource.TypeName = typeof(MyReportBook).AssemblyQualifiedName;

  // Passing a value for not mergeable report parameter targeting the FIRST report in the report book
  // thru the report source
  typeReportSource.Parameters.Add(new Telerik.Reporting.Parameter("reports(0).ClientID", 102));

  // Passing a value for not mergeable report parameter targeting the SECOND report in the report book
  // thru the report source
  typeReportSource.Parameters.Add(new Telerik.Reporting.Parameter("reports(1).ClientID", 103));
  ```

  ```VB.NET
  Dim typeReportSource As New Telerik.Reporting.TypeReportSource()
  typeReportSource.TypeName = GetType(MyReportBook).AssemblyQualifiedName

  ' Passing a value for Not mergeable report parameter targeting the FIRST report in the report book
  ' thru the report source
  typeReportSource.Parameters.Add(New Telerik.Reporting.Parameter("reports(0).ClientID", 102))

  ' Passing a value for Not mergeable report parameter targeting the SECOND report in the report book
  ' thru the report source
  typeReportSource.Parameters.Add(New Telerik.Reporting.Parameter("reports(1).ClientID", 103))
  ```

> note If you do not use the specified syntax and you refer to the report parameter directly by the `Name` property's value, the value will be set only for the *first* occurrence of the report parameter in the report book.
