Export Parameter Report
You can set report parameter default values or modify the values using the SetParameters() method of Report Writer instance. This section describes how to modify the exported document report parameter values.
This section requires an ASP.NET MVC Report Writer application, if you don’t have, then create by referring to the Getting-Started documentation.
In this tutorial, the sales-order-detail.rdl report is used and it can be downloaded here. You can get the reports from Bold Reports® installation location. For more information, refer to samples and demos section.
Set report parameters to export file
-
Create a folder
Resourcesinto theApp_Datafolder in your application. Copy and paste the sample RDL reports into theResouresfolder. -
To load the report as stream from the application
Resourcesfolder using theFileStreamclass.public class HomeController : Controller { [HttpPost] public ActionResult Export(string writerFormat) { // Here, we have loaded the sample reports from application the App_Data\Resources folder. FileStream reportStream = new FileStream(System.Web.Hosting.HostingEnvironment.MapPath(@"\App_Data\Resources\sales-order-detail.rdl"), FileMode.Open, FileAccess.Read); BoldReports.Writer.ReportWriter writer = new BoldReports.Writer.ReportWriter(); writer.ReportProcessingMode = ProcessingMode.Remote; ...... } } -
You can add collection of report parameters programmatically using the
ReportParameterproperty that is the list type of Report Parameter class. Refer to the following code snippet to set the report parameter name and value.List<BoldReports.Web.ReportParameter> userParameters = new List<BoldReports.Web.ReportParameter>(); userParameters.Add(new BoldReports.Web.ReportParameter() { Name = "SalesOrderNumber", Values = new List<string>() { "SO50756" } }); writer.SetParameters(userParameters); -
You can use the
Savemethod in Report Writer to generate the export document along with information of the report stream, it will return the generated file as Stream.[HttpPost] public ActionResult Export(string writerFormat) { // Here, we have loaded the sample reports from application the App_Data\Resources folder. FileStream reportStream = new FileStream(System.Web.Hosting.HostingEnvironment.MapPath(@"\App_Data\Resources\sales-order-detail.rdl"), FileMode.Open, FileAccess.Read); BoldReports.Writer.ReportWriter writer = new BoldReports.Writer.ReportWriter(); writer.ReportProcessingMode = ProcessingMode.Remote; List<BoldReports.Web.ReportParameter> userParameters = new List<BoldReports.Web.ReportParameter>(); userParameters.Add(new BoldReports.Web.ReportParameter() { Name = "SalesOrderNumber", Values = new List<string>() { "SO50756" } }); writer.SetParameters(userParameters); string fileName = null; WriterFormat format; string type = null; if (writerFormat == "PDF") { fileName = "sales-order-detail.pdf"; type = "pdf"; format = WriterFormat.PDF; } else if (writerFormat == "Word") { fileName = "sales-order-detail.docx"; type = "docx"; format = WriterFormat.Word; } else if (writerFormat == "CSV") { fileName = "sales-order-detail.csv"; type = "csv"; format = WriterFormat.CSV; } else { fileName = "sales-order-detail.xlsx"; type = "xlsx"; format = WriterFormat.Excel; } writer.LoadReport(reportStream); MemoryStream memoryStream = new MemoryStream(); writer.Save(memoryStream, format); // Download the generated export document to the client side. memoryStream.Position = 0; FileStreamResult fileStreamResult = new FileStreamResult(memoryStream, "application/" + type); fileStreamResult.FileDownloadName = fileName; return fileStreamResult; } -
Now, the parameter report exported successfully in your application.