RDLC SubReport проблема, не может использовать свойство List (of Object) из objectdatasource в отчете или подотчете - PullRequest
1 голос
/ 11 августа 2010

Я пытаюсь создать отчет RDLC в VB.net 2008, используя объектный источник данных.

Дело в том, что мой объектный источник данных представляет собой список Item объектов.Каждый объект Item имеет свойство с именем Stock, представляющее собой список ItemStock объектов.Основные свойства обоих классов следующие:

Item Class:
Name,Id, Stock,<and some other like MRP,Tax etc.>

ItemStock Class:
BranchId,BatchNo,Expirydate,StockQuantity

Один Item объект может содержать количество ItemStock элементов для каждого BranchId.Таким образом, свойство Item.Stock будет объединением таких базовых элементов, то есть List( of ItemStock).

Теперь мой отчет с именем Stock report будет иметь объект List(of Item) в качестве источника данных (источник привязки).Я получаю требуемый список объектов без каких-либо ошибок.Я назначаю список сетке данных для отображения агрегированных значений запасов по ветвям.То есть:

Itemname         Branch1    Branch2   Branch2
item1               12         2         3

Это прекрасно работает, так как я использовал LINQ для получения суммы значений запасов для элемента в каждой ветви, обрабатывая событие Cell_format

Но проблемавозникает, когда я создаю отчет.Мой отчет должен иметь формат:

Item1 Name
     Branch     BatchNo   Expiry      Quantity
     Branch1    12677     12/09/2009    56 
     Branch1    1217      04/04/2010    6 
     Branch2    22644     12/03/2011    16 
     Branch3    72600     12/02/2012    7 

Item2 Name
     Branch     BatchNo   Expiry       Quantity
     Branch1    2677     12/09/2009      5 
     Branch2    244      12/03/2011      1 
     Branch3    7200     12/02/2012      7 

Теперь я не могу понять, как использовать свойство Stock объекта Item для отображения этого отчета.У меня есть возможность использовать подотчет, который я создал.Но я не могу понять, как назначить свойство stock конкретного объекта item при обработке вложенного отчета.

Я также попытался обработать событие SubreportProcessing следующим образом:

  Private Sub SubreportProcessing(ByVal sender As Object, ByVal e As SubreportProcessingEventArgs)
        e.DataSources.Add(New ReportDataSource("Chemasis_BusinessObjects_Objects_ItemStock", ctype(itemBindingSource.Current,Item).Stock))
    End Sub  

Но, очевидно,для этого берется первый элемент в ItemBindingSource, поэтому все значения запасов отображаются одинаковыми.

...