Questa probabilmente non è una risposta appropriata, ma quando ritengo che la mancanza di materiale su questo argomento mi incoraggi a pubblicare le mie scoperte.
Diciamo che se ho un elenco annidato di oggetti figlio all'interno dell'oggetto padre. Questa è una situazione molto comune, ad esempio, se si dispone di un oggetto ordine (genitore), si avrà probabilmente un elenco di elementi dell'ordine (figli), come si visualizzano tutte le informazioni con rdlc? Ci sono due modi, 1 usando il sottoreport e 2 è usare il raggruppamento. Mi rendo conto che entrambi possono ottenere la stessa cosa che sta visualizzando un elenco di dettagli su un rapporto.
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;}
}
Il modo più semplice è utilizzare il raggruppamento. Con il raggruppamento, devi creare un nuovo tipo di dati che contenga le proprietà del genitore e dei figli. Credo che in questo modo funzioni anche con l'elenco nidificato di oggetti a più livelli. Può sembrare stupido, ma il più delle volte è necessario creare un nuovo tipo di dato comunque perché il tipo è necessario visualizzare sulla relazione sono diversi dagli oggetti di business:
public class OrderReport{
public int OrderID {get; set;}
public string Description {get; set;}
public int OrderItemID {get; set;}
public decimal Price {get; set;}
}
Poi sulla rdlc, basta per creare un gruppo di righe padre e un gruppo di righe figlio, il genitore deve essere raggruppato per ID ordine, il gruppo di righe figlio deve essere impostato su "mostra dettagli". Penso che puoi farlo più volte per ottenere una lista annidata di oggetti a più livelli.
Sto correndo la stessa cosa. Non capisco perché hanno tolto questa funzionalità, molto fastidioso! – AKoran
Apparentemente verrà risolto in VS 2010 SP1, a condizione che le classi siano pubbliche e serializzabili. –