我正在使用MVC4和Entity Framework來開發Intranet Web應用程序,其中一個要求是應用程序將能夠創建報告。所以我使用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 2013-04-05 13:22:42
事實上,當我啓動應用程序並單擊與我的操作相關的鏈接時,它會返回一個錯誤,告訴我沒有來源填充我的表格。 – Traffy 2013-04-05 13:24:47