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 the ReportPath
and ReportServiceUrl
to the report viewer initialization.
<div style="height: 650px;width: 950px;min-height:404px;">
<Bold:ReportViewer runat="server" ID="viewer"
ReportServiceUrl="/api/ReportViewer"
ReportPath="~/Resources/sales-order-detail.rdl">
</Bold:ReportViewer>
</div>
The following code is used to set the report parameter client side in your application’s Page_Load()
function.
protected void Page_Load(object sender, EventArgs e)
{
this.viewer.Parameters.Add(new BoldReports.Models.ReportViewer.ReportParameter()
{
Name = "SalesOrderNumber",
Values = new List<string>() { "SO50756" }
});
}
To set parameter default value in Web API Controller, use the following code in the OnReportLoaded
method.
[NonAction]
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
The ReportHelper
class provides methods to get the report parameters used in the report. The following helper methods 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 ReportViewerController : 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;
}
}
}
The properties MaxDateTime
and MinDateTime
in the parameterSettings
are used to set date range for date parameters in a report.
Property | Description |
---|---|
MaxDateTime |
Specify minimum range value of a date parameter |
MinDateTime |
Specify maximum range value of a date parameter |
Refer to the following code sample to set data range to the report viewer initialization.
<div style="height: 650px;width: 950px;min-height:404px;">
<Bold:ReportViewer runat="server" ID="viewer"
ReportServiceUrl="/api/ReportViewer"
ReportPath="~/Resources/product-line-sales.rdl">
</Bold:ReportViewer>
</div>
Refer to the following code sample to set data range using parameterSettings in Report Viewer controller.
protected void Page_Load(object sender, EventArgs e)
{
this.viewer.ParameterSettings = new BoldReports.Models.ReportViewer.ParameterSettings();
this.viewer.ParameterSettings.MaxDateTime = new DateTime(2003, 6, 22);
this.viewer.ParameterSettings.MinDateTime = new DateTime(2003, 5, 20);
}
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.
<div style="height: 650px;width: 950px;min-height:404px;">
<Bold:ReportViewer runat="server" ID="viewer"
ReportServiceUrl="/api/ReportViewer"
ReportPath="~/Resources/product-line-sales.rdl"
OnClientBeforeParameterAdd="beforeParameterAdd" >
</Bold:ReportViewer>
</div>
<script type="text/javascript">
function beforeParameterAdd(args) {
if (args.parameterModel.Name === "StartDate") {
args.parameterSettings.minDateTime = new Date("4/5/2003 5:00:00 AM");
args.parameterSettings.maxDateTime = new Date("4/15/2003 5:00:00 AM");
}
if (args.parameterModel.Name === "EndDate") {
args.parameterSettings.minDateTime = new Date("5/10/2003 5:00:00 AM");
args.parameterSettings.maxDateTime = new Date("5/20/2003 5:00:00 AM");
}
}
</script>
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 |
Refer to the following code sample to set date and time format to be displayed in the report viewer initialization.
<div style="height: 650px;width: 950px;min-height:404px;">
<Bold:ReportViewer runat="server" ID="viewer"
ReportServiceUrl="/api/ReportViewer"
ReportPath="~/Resources/product-line-sales.rdl">
</Bold:ReportViewer>
</div>
Refer to the following code sample to set data range using parameterSettings in Report Viewer controller.
protected void Page_Load(object sender, EventArgs e)
{
this.viewer.ParameterSettings = new BoldReports.Models.ReportViewer.ParameterSettings();
this.viewer.ParameterSettings.DateTimeFormat = "d/M/yyyy h:mm tt";
this.viewer.ParameterSettings.TimeDisplayFormat = "HH:mm";
this.viewer.ParameterSettings.TimeInterval = 60;
}
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.
<div style="height: 650px;width: 950px;min-height:404px;">
<Bold:ReportViewer runat="server" ID="viewer"
ReportServiceUrl="/api/ReportViewer"
ReportPath="~/Resources/product-line-sales.rdl"
OnClientBeforeParameterAdd="beforeParameterAdd" >
</Bold:ReportViewer>
</div>
<script type="text/javascript">
function beforeParameterAdd(args) {
if (args.parameterModel.Name === "StartDate") {
args.parameterSettings.dateTimeFormat = "d/M/yyyy h:mm tt";
args.parameterSettings.timeDisplayFormat = "HH:mm";
args.parameterSettings.timeInterval = 60;
}
if (args.parameterModel.Name === "EndDate") {
args.parameterSettings.dateTimeFormat = "d/M/yyyy h:mm tt";
args.parameterSettings.timeDisplayFormat = "HH:mm";
args.parameterSettings.timeInterval = 60;}
}
}
</script>
The parameterSettings
helps you to change the height and width of the parameter available in parameter panel.
protected void Page_Load(object sender, EventArgs e)
{
this.viewer.ParameterSettings = new BoldReports.Models.ReportViewer.ParameterSettings();
this.viewer.ParameterSettings.PopupHeight = "100px";
this.viewer.ParameterSettings.PopupWidth = "100px";
}
The enableparameterblockscroller
helps you to hide the scrollbar in parameter panel.
<Bold:ReportViewer runat="server" ID="viewer"
ReportServiceUrl="/api/ReportViewer"
EnableParameterBlockScroller="false" >
</Bold:ReportViewer>
The parameterSettings
helps you to hide and show the parameter block.
protected void Page_Load(object sender, EventArgs e)
{
this.viewer.ParameterSettings = new BoldReports.Models.ReportViewer.ParameterSettings();
this.viewer.ParameterSettings.HideParameterBlock = true;
}
The parameterSettings
helps you to change the parameter Item width and label width.
protected void Page_Load(object sender, EventArgs e)
{
this.viewer.ParameterSettings = new BoldReports.Models.ReportViewer.ParameterSettings();
this.viewer.ParameterSettings.ItemWidth = "200px";
this.viewer.ParameterSettings.LabelWidth = "auto";
}
The accessInternalValue
property in the parameterSettings
helps you to expose the hidden
or internal
report parameter information used in report to the user.
protected void Page_Load(object sender, EventArgs e)
{
this.viewer.ParameterSettings = new BoldReports.Models.ReportViewer.ParameterSettings();
this.viewer.ParameterSettings.AccessInternalValue = true;
}
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;
}
}