Я использую MVC4 и Entity Framework для разработки веб-приложения для интрасети, и одним из требований является то, что приложение сможет создавать отчеты. Поэтому я использую Reporting Service для этого.MVC 4 - Служба отчетов и хранимые процедуры
В моем файле отчета (.rdlc) у меня есть таблица, которая должна содержать все записи, которые у меня есть в моей таблице «Лица». Я создал хранимую процедуру, которая получает всех людей из моей БД и действие, разрешающее загрузку отчета.
Честно говоря, я не знаю, как сказать свое действие, что источником данных является моя хранимая процедура.
Вот мое действие:
public ActionResult PersonReport()
{
ReportViewer personReportViewer = new ReportViewer();
List<ReportParameter> reportParameters = new List<ReportParameter>();
reportParameters.Add(new ReportParameter("Title", "Test"));
personReportViewer.LocalReport.SetParameters(reportParameters);
personReportViewer.ProcessingMode = ProcessingMode.Local;
personReportViewer.LocalReport.ReportEmbeddedResource =
HttpContext.Server.MapPath(".") + "\\Reporting\\Templates\\"
+ "PersonReport.rdlc";
byte[] byteArray = personReportViewer.LocalReport.Render("PDF");
Response.ClearHeaders();
Response.AddHeader("Content-Disposition",
"attachment; Filename=\"" + DateTime.Now + "_Title_" + "\"");
Response.AddHeader("Content-Transfer-Encoding", "Binary");
Response.BinaryWrite(byteArray);
Response.Flush();
Response.End();
return RedirectToAction("Index");
}
И вот моя хранимая процедура:
ALTER PROCEDURE dbo.GetAllPersons
AS
BEGIN
SET NOCOUNT ON
SELECT * FROM bm_Persons;
END
Любая идея о том, как сделать это? Большое спасибо.
Можете ли вы объяснить «скажите, как мой источник данных является моей хранимой процедурой», потому что это не имеет для меня никакого смысла? – Liam
Фактически, когда я запускаю приложение и нажимаю ссылку, связанную с моим действием, она возвращает ошибку, которая говорит мне, что нет источника для заполнения моей таблицы. – Traffy