Search results
PDF

Report parameters

Provides property options to pass or set report parameters default values at run time using the parameters property. You can set the report parameters while creating the Report Viewer control in a script or in the Web API Controller.

In this tutorial, the Sales Order Detail.rdl report is used, and it can be downloaded from here.

Set parameter at client side

The parameters property takes the JSON array value input with parameter details.

  • Set the default value data to the values property and name of the report parameter to the name property.

    The parameter name is case sensitive, and it should be same as available in the report definition.

The following code example illustrates how to set a report parameter in the script.

var parameters = [{
            name: 'SalesOrderNumber',
            labels: ['SO50751'],
            values: ['SO50751'],
            nullable: false
            }];

function App() {
    return (<div id="viewer" style={viewerStyle}>
    <BoldReportViewerComponent id="reportviewer-container"
    reportServiceUrl = {'https://demos.boldreports.com/services/api/ReportViewer'}
    reportPath = { 'Sales Order Detail.rdl' }
    parameters = {parameters}
    >
    </BoldReportViewerComponent>
    </div>);
  }
  • Build and run the application.

Set parameters in Web API Controller

To set parameter default value in the Web API Controller, use the following code in the OnReportLoaded method.

public void OnReportLoaded(ReportViewerOptions reportOption)
{
    List<BoldReports.Web.ReportParameter> userParameters = new List<BoldReports.Web.ReportParameter>();
    userParameters.Add(new BoldReports.Web.ReportParameter()
    {
        Name = "SalesOrderNumber",
        Values = new List<string>() { "SO50756" }
    });
    reportOption.ReportModel.Parameters = userParameters;
}

The Report Parameters name should be case sensitive

Get report parameter

The ReportHelper class provides methods that help you to get the report parameters used in the report. The following helper methods are used to get parameter with or without values.

Methods Description
GetParameters Returns the parameters used in the current report without the processed values.
GetParametersWithValues Returns the report parameters with processed data values that are used in the current report.

You can use the following code sample to get parameter names and set parameter default values.

    public class ReportsApiController : ApiController, IReportController
    {
        Dictionary<string, object> jsonArray = null;
        public object PostReportAction(Dictionary<string, object> jsonResult)
        {
            jsonArray = jsonResult;
            return ReportHelper.ProcessReport(jsonResult, this);
        }

        ....
        [NonAction]
        public void OnReportLoaded(ReportViewerOptions reportOption)
        {
            var reportParameters = ReportHelper.GetParameters(jsonArray, this);
            List<BoldReports.Web.ReportParameter> modifiedParameters = new List<BoldReports.Web.ReportParameter>();

            if (reportParameters != null)
            {
                foreach (var rptParameter in reportParameters)
                {
                    modifiedParameters.Add(new BoldReports.Web.ReportParameter()
                    {
                        Name = rptParameter.Name,
                        Values = new List<string>() { "SO50756" }
                    });
                }

                reportOption.ReportModel.Parameters = modifiedParameters;
            }
        }
    }

Change the Parameter drop-down height and width

The parameterSettings helps you to change the height and width of the parameter available in parameter panel.

var parameterSettings = {
    popupHeight: "200px",
    popupWidth: "50px",
}

function App() {
    return ( <div className = "App" >
        <BoldReportViewerComponent id = "reportviewer-container"
        parameterSettings = { parameterSettings} >
        </BoldReportViewerComponent>  </div>
    );
}

Hide a Parameter scroller

The enableparameterblockscroller helps you to hide the scrollbar in parameter panel.

 <BoldReportViewerComponent id = "reportviewer-container"
 enableParameterBlockScroller = { false} >
     </BoldReportViewerComponent>

Hide a Parameter Pane on load

The parameterSettings helps you to hide and show the parameter block.

var parameterSettings = {
    hideParameterBlock: true
}

function App() {
    return ( <div className = "App" >
        <BoldReportViewerComponent id = "reportviewer-container"
        parameterSettings = { parameterSettings }>
        </BoldReportViewerComponent>  </div>
    );
}

Change the Parameter Item Width and Label Width

The parameterSettings helps you to change the parameter Item width and label width.

var parameterSettings = {
               itemWidth: '250px',
               labelWidth: 'auto'
               }

function App() {
    return ( <div className = "App" >
        <BoldReportViewerComponent id = "reportviewer-container"
        parameterSettings = { parameterSettings }>
        </BoldReportViewerComponent>  </div>
    );
}

Set date range for date parameter

The properties minDateTime and maxDateTime in the parameterSettings are used to set date range for date parameters in a report.

var parameterSettings = {
  minDateTime: new Date("4/5/2003"),
  maxDateTime: new Date("6/15/2003"),
};

function App() {
    return ( <div className = "App" >
        <BoldReportViewerComponent id = "reportviewer-container"
        parameterSettings = { parameterSettings} >
        </BoldReportViewerComponent>  </div>
    );
}

The above code sets date range for all the date parameters used in the report.

To set different date range for each date parameter used in the report, register the event beforeParameterAdd and specify range based on parameter name as in below code sample.

function App() {
  return (
    <div id="viewer" style={viewerStyle}>
      <BoldReportViewerComponent
        id="reportviewer-container"
        reportServiceUrl={"https://demos.boldreports.com/services/api/ReportViewer"}
        reportPath={"~/Resources/demos/Report/product-line-sales.rdl"}
        beforeParameterAdd={onBeforeParameterAdd}>
     </BoldReportViewerComponent>
     </div>);
   }

function onBeforeParameterAdd(event) {
  event.parameterSettings.dateTimePickerType = "DateTime";
  if (event.parameterModel.Name === "StartDate") {
    event.parameterSettings.minDateTime = new Date("4/5/2003 5:00:00 AM");
    event.parameterSettings.maxDateTime = new Date("4/15/2003 5:00:00 AM");
  }
  if (event.parameterModel.Name === "EndDate") {
    event.parameterSettings.minDateTime = new Date("5/10/2003 5:00:00 AM");
    event.parameterSettings.maxDateTime = new Date("5/20/2003 5:00:00 AM");
  }
}

Set date time display format for date parameter

The properties dateTimeFormat and timeDisplayFormat in the parameterSettings are used to set date and time format to be displayed in the DateTimePicker control in a report.

Format Display in DateTimePicker
Short Date and Time - d/M/yy h:mm tt 9/12/2014 2:04 PM
Medium Date - d MMM yy h:mm tt 12 Sep 14 2:04: PM
Full Date and short time - dddd, MMMM dd, yyyy HH:mm tt Friday, September 12,2014 2:04 PM
Full Date and Long Time - dddd, MMMM dd, yyyy HH:mm:ss tt Friday, September 12,2014 2:04:00 PM
UTC - yyyy-MM-dThh:mm:ssz 2014-09-12T2:04:00+5
var parameterSettings = {
  dateTimePickerType: "DateTime",
  dateTimeFormat: "MM/dd/yyyy h:mm tt",
  timeDisplayFormat: "HH:mm",
  timeInterval: 60,
};

function App() {
    return ( <div className = "App" >
        <BoldReportViewerComponent id = "reportviewer-container"
        parameterSettings = { parameterSettings }>
        </BoldReportViewerComponent>  </div>
    );
}

The above code sets date and time value to be display for all the date parameters used in the report.

To set different date and time value to be display for each date parameter used in the report, register the event beforeParameterAdd and specify date and time value based on parameter name as in below code sample.

function App() {
  return (
    <div id="viewer" style={viewerStyle}>
      <BoldReportViewerComponent
        id="reportviewer-container"
        reportServiceUrl={"https://demos.boldreports.com/services/api/ReportViewer"}
        reportPath={"~/Resources/demos/Report/product-line-sales.rdl"}
        beforeParameterAdd={onBeforeParameterAdd}>
     </BoldReportViewerComponent>
     </div>);
   }

function onBeforeParameterAdd(event) {
  event.parameterSettings.dateTimePickerType = "DateTime";
  if (event.parameterModel.Name === "StartDate") {
    event.parameterSettings.dateTimeFormat = "MM/dd/yyyy h:mm tt";
    event.parameterSettings.timeDisplayFormat = "HH:mm";
    event.parameterSettings.timeInterval = 60;
  }
  if (event.parameterModel.Name === "EndDate") {
    event.parameterSettings.dateTimeFormat = "MM/dd/yyyy h:mm tt";
    event.parameterSettings.timeDisplayFormat = "HH:mm";
    event.parameterSettings.timeInterval = 60;
  }
}

Access the hidden or internal parameter information

The accessInternalValue property in the parameterSettings helps you to expose the hidden or internal report parameter information used in report to the user.

var parameterSettings = {
    accessInternalValue: true
}

function App() {
    return ( <div className = "App" >
        <BoldReportViewerComponent id = "reportviewer-container"
        parameterSettings = { parameterSettings }>
        </BoldReportViewerComponent>  </div>
    );
}

Set the report parameter visibility in Web API Controller

The Hidden property of ReportParameter allows you to show or hide the parameter at the top of the report viewer panel. The following code example shows hiding a report parameter in the Web API controller’s OnReportLoaded method.

    [NonAction]
    public void OnReportLoaded(ReportViewerOptions reportOption)
    {
        var reportParameters = ReportHelper.GetParameters(jsonArray, this);
        List<BoldReports.Web.ReportParameter> modifiedParameters = new List<BoldReports.Web.ReportParameter>();

        if (reportParameters != null)
        {
            foreach (var rptParameter in reportParameters)
            {
                modifiedParameters.Add(new BoldReports.Web.ReportParameter()
                {
                    Name = rptParameter.Name,
                    Hidden = true
                });
            }

            reportOption.ReportModel.Parameters = modifiedParameters;
        }
    }