Вероятно, это неправильный ответ, но когда я чувствую, что не хватает материала по этому вопросу, побудите меня опубликовать свои выводы.
Скажем, если у меня есть вложенный список дочерних объектов в родительском объекте. Это очень распространенная ситуация, например, если у вас есть объект заказа (родитель), у вас, вероятно, будет список элементов заказа (дочерние элементы), как вы отобразите всю информацию с помощью 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 вам просто нужно создать родительскую группу строк и дочернюю группу строк. Родительская группа должна быть сгруппирована по OrderID, дочерняя группа строк должна быть установлена на «показывать детали». Я думаю, что вы можете сделать это несколько раз, чтобы получить многоуровневый вложенный список объектов.
person
Community
schedule
29.01.2013