Es wird hart werden. Zunächst benötigen Sie ViewState, sodass Sie den Bericht auf einer regulären WebForms-Seite hosten müssen. Dies ist jedoch nicht so schlimm - WebForms und MVC funktionieren gut nebeneinander.
Der schwierige Teil bindet sich an echte IEnumerable-Objekte und nicht an diese phoney-baloney ObjectDataSources.
Der erste Schritt besteht darin, ein Berichtsdatenmodell aufzubauen. Sie können dies im Code tun, mit Abfragen, was auch immer, wie Sie wollen. Eine Struktur, so etwas wie diese (aber offensichtlich größer viel) ist typisch:
public class ReportSource
{
public Floogle[] Floogles { get; set; }
}
public class Floogle
{
public Doodad[] Doodads { get; set; }
public string Text { get; set; }
}
public class Doodad
{
public int Number { get; set; }
}
Der Trick ist, eine Binding Kontrolle in Ihrem Bericht zu verwenden und die Datasource-Eigenschaft auf typeof(ReportSource)
gesetzt - ja, ist die Datenquelle die Art Ihres Berichtsmodell.
Wenn Sie Ihren Bericht entwerfen, erhalten Sie nicht viel Reichtum, aber Sie werden es schaffen.
Soweit die Reporting-Lösungen von Drittanbietern gehen, haben wir festgestellt, dass Telerik die beste Option ist.
Wo genau verwende ich diese BindingSource ?? – AndreMiranda
Zuerst tut mir leid, dass Sie mit diesem schrecklichen Werkzeug arbeiten müssen. Die BindingSource ist ein "Steuerelement", das Sie auf die Designeroberfläche ziehen können. –
MVC ist nicht für bindfähige Drag-and-Drop-Steuerelemente konzipiert.Sicher, Sie können sie mit MVC "hacken" (da MVC immer noch auf der gleichen Basis wie Webforms erstellt wird), aber es geht gegen das MVC-Paradigma, so dass es nicht empfohlen wird. Shirazs Antwort ist gut, wenn Sie bereits Berichte haben, die Sie mit MVC verwenden müssen. –