Va a ser difícil. En primer lugar, necesita ViewState, por lo que deberá alojar el informe en una página regular de WebForms. Aunque esto no es tan malo: WebForms y MVC funcionan bien, uno al lado del otro.
La parte difícil es vinculante para los objetos reales de IEnumerable y no para esos ObjectDataSources ficticios.
El primer paso es crear un modelo de datos de informe. Puedes hacer esto en código, con consultas, lo que sea, como quieras. Una estructura algo similar (pero obviamente mucho más grande) es típica:
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; }
}
El truco es usar un control BindingSource en su informe y establezca la propiedad DataSource a typeof(ReportSource)
- sí, la fuente de datos es el tipo de su modelo de informe.
Al diseñar su informe no obtendrá mucha riqueza, pero podrá hacerlo.
En lo que respecta a soluciones de informes de terceros, encontramos que Telerik's es la mejor opción.
¿Dónde exactamente uso este BindingSource ?? – AndreMiranda
Antes que nada, lamento que tengas que trabajar con esta herramienta horrible. BindingSource es un "control" que puede "arrastrar" a la superficie del diseñador. –
MVC no está diseñado para controles que se pueden arrastrar y soltar.Claro que puedes 'hackearlos' para que trabajen con MVC (ya que MVC aún se basa en la misma base que los formularios web) pero va en contra del paradigma MVC, por lo que no es recomendable. La respuesta de Shiraz es buena si tiene informes existentes que debe usar con MVC. –