Ceci n'est probablement pas une réponse appropriée, mais quand je me sens comme le manque de matériel sur ce sujet, encouragez-moi à poster sur mes conclusions.
Disons que j'ai une liste imbriquée d'objets enfants dans l'objet parent. C'est une situation très courante par exemple, si vous avez un objet de commande (parent), vous aurez probablement une liste d'éléments de commande (enfants), comment afficher toutes les informations avec le rdlc? Il y a deux manières, 1 utilisant le sous-rapport, et 2 utilisant le groupement. Je me rends compte qu'ils peuvent tous deux réaliser la même chose qui affiche une liste de détails sur un rapport.
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 méthode la plus simple consiste à utiliser le regroupement. Avec le regroupement, vous devez créer un nouveau type de données qui contient les propriétés du parent et des enfants. Je crois que cette façon fonctionne aussi avec une liste imbriquée à plusieurs niveaux. Cela peut paraître stupide, mais la plupart du temps, vous devez créer un nouveau type de données de toute façon parce que les types dont vous avez besoin pour afficher sur le rapport sont différents des objets métier:
public class OrderReport{
public int OrderID {get; set;}
public string Description {get; set;}
public int OrderItemID {get; set;}
public decimal Price {get; set;}
}
ensuite sur le rdlc, il vous suffit Pour créer un groupe de lignes parent et un groupe de lignes enfant, Parent doit être groupé par OrderID, le groupe de lignes enfant doit être défini sur "Afficher les détails". Je pense que vous pouvez le faire plusieurs fois pour obtenir une liste imbriquée à plusieurs niveaux.
Je cours dans la même chose. Je ne comprends pas pourquoi ils ont enlevé cette fonctionnalité, très ennuyeux! – AKoran
Apparemment, il sera corrigé dans VS 2010 SP1, tant que vos classes sont publiques et sérialisables. –