Это, вероятно, не правильный ответ, но когда я чувствую, что отсутствие материала на эту тему побуждает меня публиковать информацию о моих выводах.
Допустим, у меня есть вложенный список дочерних объектов в родительском объекте. Это очень распространенная ситуация, например, если у вас есть объект заказа (родительский), у вас, вероятно, будет список элементов заказа (дочерних), как вы отображаете всю информацию с помощью rdlc? Есть два способа, 1 с использованием подотчета, а 2 - с помощью группировки. Я понимаю, что они оба могут достичь одного и того же, отображая список деталей в отчете.
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;}
}
Самый простой способ - использовать группировку. При группировании вы должны создать новый тип данных, который содержит свойства родительского и дочернего элементов. Я считаю, что этот способ работает и с многоуровневым вложенным списком объектов. Это может звучать глупо, но в большинстве случаев вам все равно придется создавать новый тип данных, поскольку типы, которые необходимо отобразить в отчете, отличаются от бизнес-объектов:
public class OrderReport{
public int OrderID {get; set;}
public string Description {get; set;}
public int OrderItemID {get; set;}
public decimal Price {get; set;}
}
Затем в rdlc вам просто нужно создать родительскую группу строк и дочернюю группу строк, Parent должен быть сгруппирован по OrderID, дочерняя группа строк должна быть настроена на «показ деталей». Я думаю, что вы можете сделать это несколько раз, чтобы получить многоуровневый вложенный список объектов.