При совместном использовании FastReport .Net с фреймворком ASP.Net MVC существует возможность простого формирования файла в нужном выходном формате при нажатии на кнопку формы.
Добавляем следующий код во View:
@using (Html.BeginForm("GetFile", "Home"))
{
<input id="pdf" type="submit" value="Export to PDF" />
}
GetFile - имя обработчика результатов сабмита формы в контроллере, Home - имя контроллера, в данном случае файл контроллера HomeController.cs
Добавляем пространство имен в контроллере:
using FastReport.Export.Pdf;
Добавляем нужный метод в контроллер:
public FileResult GetFile()
{
WebReport webReport = new WebReport();
// привязка данных
System.Data.DataSet dataSet = new System.Data.DataSet();
dataSet.ReadXml(report_path + "nwind.xml");
webReport.Report.RegisterData(dataSet, "NorthWind");
// загружаем нужный файл отчета
webReport.ReportFile = this.Server.MapPath("~/App_Data/report.frx");
// строим отчет
webReport.Report.Prepare();
// сохраняем в нужном формате в поток
Stream stream = new MemoryStream();
webReport.Report.Export(new PDFExport(), stream);
stream.Position = 0;
// возвращаем результат в браузер
return File(stream, "application/zip", "report.pdf");
}
Привязка данных и загрузка файла отчета показаны для примера. Привязка к данным может быть выполнена непосредственно в самом файле отчета из дизайнера.
Если вам необходим другой формат, то нужно добавить соответствующий uses и вызвать нужный конструктор в строке экспорта.
Например для формата Excel 2007 нужны строки:
using FastReport.Export.OoXML;
...
webReport.Report.Export(new Excel2007Export(), stream);
...
return File(stream, "application/xlsx", "report.xlsx");