J'utilise MVC4 et Entity Framework pour développer une application Web intranet. L'une des conditions est que l'application puisse créer des rapports. Donc j'utilise Reporting Service pour le faire.MVC 4 - Service de rapports et procédures stockées
Dans mon fichier de rapport (.rdlc), j'ai une table qui est censée contenir tous les enregistrements que j'ai dans ma table "Personnes". J'ai créé une procédure stockée qui obtient toutes les personnes de ma base de données et une action pour permettre le téléchargement du rapport. Ce qui est, je n'ai aucune idée sur la façon de dire à mon action que ma source de données est ma procédure stockée.
Voici mon action:
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");
}
Et voici ma procédure stockée:
ALTER PROCEDURE dbo.GetAllPersons
AS
BEGIN
SET NOCOUNT ON
SELECT * FROM bm_Persons;
END
Toute idée sur la façon de le faire? Merci beaucoup.
Pouvez-vous expliquer «indiquer à mon action que ma source de données est ma procédure stockée» parce que cela n'a aucun sens pour moi? – Liam
En fait, lorsque je lance l'application et que je clique sur le lien qui est lié à mon action, elle renvoie une erreur qui me dit qu'il n'y a pas de source pour remplir ma table. – Traffy