Probablemente esta no sea una respuesta adecuada, pero cuando siento la falta de material sobre este tema, anímeme a publicar mis hallazgos.
Digamos que si tengo una lista anidada de objetos secundarios dentro del objeto principal. Esta es una situación muy común, por ejemplo, si tiene un objeto de pedido (principal), es probable que tenga una lista de elementos de pedido (hijos), ¿cómo muestra toda la información con el rdlc? Hay dos formas, 1 usando subinforme, y 2 es usar agrupamiento. Me doy cuenta de que ambos pueden lograr lo mismo, que muestra una lista de detalles en un informe.
public class Order{
public int OrderID {get; set;}
public string Descrpition {get; set;}
public List<OrderItem> OrderItems {get; set;}
}
public class OrderItem{
public int OrderItemID {get; set;}
public decimal Price{get; set;}
}
La manera más fácil es utilizar la agrupación. Con la agrupación, debe crear un nuevo tipo de datos que contenga las propiedades de los elementos principal e secundario. Creo que de esta manera también funciona con la lista anidada de objetos de varios niveles. Puede sonar estúpido, pero la mayoría de las veces usted tiene que crear un nuevo tipo de datos de todos modos porque los tipos que hay que visualizar en el informe son diferentes de los objetos de negocio:
public class OrderReport{
public int OrderID {get; set;}
public string Description {get; set;}
public int OrderItemID {get; set;}
public decimal Price {get; set;}
}
Luego, en el rdlc, sólo hay para crear un grupo de filas principal y un grupo de filas secundarias, Parent debe estar agrupado por OrderID, el grupo de filas secundario debe configurarse como "mostrar detalles". Creo que puede hacer esto varias veces para lograr una lista anidada de objetos de varios niveles.
Me encuentro con lo mismo. No entiendo por qué quitaron esta funcionalidad, ¡muy molesto! – AKoran
Aparentemente se arreglará en VS 2010 SP1, siempre que sus clases sean públicas y serializables. –