Ответ 1
У нас была/была аналогичная ситуация в работе.
Решение, которое мы используем:
- Создайте отдельный каталог для отчетов
- Создание обычных ASPX-страниц для отчетов
Мы не видели никаких проблем (помимо обычных Crystal) с этой настройкой.
Я знаю, что использование серверных элементов управления - это не-нет в ASP.NET MVC, однако у нас есть длинный список хрустальных отчетов, которые компания уже подготовила для предыдущего приложения, которое я бы хотел использовать для наших новое приложение ASP.NET MVC.
Есть ли способ использовать Crystal Reports в ASP.NET MVC? Если да, то как?
У нас была/была аналогичная ситуация в работе.
Решение, которое мы используем:
Мы не видели никаких проблем (помимо обычных Crystal) с этой настройкой.
На самом деле это довольно просто. просто добавьте следующие ссылки на ваш проект MVC:
используйте метод действий, как показано ниже:
С#:
using CrystalDecisions.CrystalReports.Engine;
public ActionResult Report()
{
ReportClass rptH = new ReportClass();
rptH.FileName = Server.MapPath("[reportName].rpt");
rptH.Load();
rptH.SetDataSource([datatable]);
Stream stream = rptH.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
return File(stream, "application/pdf");
}
VB.NET:
Imports CrystalDecisions.CrystalReports.Engine
Public Function Report() As ActionResult
Dim rptH As New ReportClass()
rptH.FileName = Server.MapPath("[reportName].rpt")
rptH.Load()
rptH.SetDataSource([datatable])
Dim stream As IO.Stream = rptH.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat)
Return File(stream, "application/pdf")
End Function
Просто добавьте эту ссылку: using CrystalDecisions.CrystalReports.Engine;
чем это действие:
using CrystalDecisions.CrystalReports.Engine;
public ActionResult Report()
{
List<Table> table = new List<Table>();
ReportDocument rd = new ReportDocument();
rd.Load(Path.Combine(Server.MapPath("~/Repport/CrystalReport1.rpt")));
Response.Buffer = false;
Response.ClearContent();
Response.ClearHeaders();
Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
stream.Seek(0, SeekOrigin.Begin);
return File(stream, "application/pdf", "Suivie Historique.pdf");
}