Я пытаюсь создать отчет 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
, поэтому все значения запасов отображаются одинаковыми.