Это будет тяжело. Во-первых, вам нужна ViewState, поэтому вам нужно будет разместить отчет на обычной странице WebForms. Это не так уж плохо, потому что WebForms и MVC работают хорошо бок о бок.
Жесткая часть связывается с реальными объектами IEnumerable, а не с объектами ObjectDataSources.
Первым шагом является создание модели данных отчета. Вы можете сделать это в коде, с запросами, независимо от того, что вы хотите. Структура нечто подобное (но, очевидно, намного больше) является типичным:
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; }
}
Хитрость заключается в том, чтобы использовать элемент управления BindingSource в отчете и установите свойство DataSource в typeof(ReportSource)
- да, источником данных является тип вашего модель отчета.
При разработке отчета вы не получите много богатства, но сможете это сделать.
Что касается сторонних решений для отчетности, мы нашли, что Telerik является лучшим вариантом.
Где именно я использую этот BindingSource ?? – AndreMiranda
Прежде всего, мне жаль, что вам нужно работать с этим ужасным инструментом. BindingSource - это «контроль», который вы можете «перетащить» на поверхность конструктора. –
MVC не предназначен для управления перетаскиванием и перетаскиванием.Конечно, вы можете «взломать» их на работу с MVC (поскольку MVC все еще строится на той же основе, что и webforms), но он идет против парадигмы MVC, поэтому это не рекомендуется. Ответ Шираза хорош, если у вас есть существующие отчеты, которые вы должны использовать с MVC. –