Vb.net 2010 Чтение вспомогательных свойств объекта в reportViewer - PullRequest
2 голосов
/ 11 ноября 2010

Я создаю несколько отчетов с использованием объектных источников данных.

У меня есть следующий сценарий:

В моем программном обеспечении пользователь может создать список продуктов с указанием кода , название продукта , цена и ставка НДС (эти два последних атрибута будут использоваться в качестве подсказок, когда пользователь разместит продукт внутри заказа).

Когда пользователь создает заказ, он может разместить в нем продукты, указав для каждого продукта количество, а также он может переопределить предлагаемую цену и ставку НДС.

Таким образом, в основном у меня есть двамодели для представления продуктов:

  • ProductModel (используется для определения названия продукта, кода продукта и предложения по умолчанию для цены и ставки НДС)
  • OrderProductModel (используется для размещения товаров в заказе, указания количества и отмены предложения по умолчанию для товара и номера НДС)

ProductModel :

  • id
  • код
  • имя
  • цена
  • НДС

OrderProductModel:

  • id
  • order (ссылка на объект OrderModel)
  • product (ссылка на ProductModel для чтения кода и названия, а также предложениядля цены и ставки НДС)
  • количество
  • цена
  • НДС

Теперь мне нужно заполнить таблицу, чтобы заполнить таблицуобъектов OrderProduct и отображают следующую информацию для каждого продукта:

  • код (orderProduct.product.code)
  • имя (orderProduct.product.name)
  • цена(orderProduct.price)
  • количество (orderProduct.quantity)

(предположим, что orderProduct является экземпляром OrderProductModel)

Теперь вопрос " howопределить правило отчета для доступа к коду и имени?"...

Я использую Visual Studio 2010 и прочитав здесь: http://www.gotreportviewer.com/objectdatasources/index.html они говорят, чтосинтаксис: =Fields!Object.Value.attribute больше не работает ...

Я подумал, что смогу решить проблему, добавив в OrderProductModel некоторые свойства, которые будут считывать свойства соответствующего экземпляра ProductModel.Но я уверен, что есть лучший способ, который не сломает модель ...

Ответы [ 2 ]

1 голос
/ 16 июня 2011

Просто обновление, теперь оно исправлено в SP1.Требование, чтобы заставить это работать, должно удостовериться, что ВСЕ классы, используемые в свойствах источника данных, сериализуемы.

больше информации в:

http://wraithnath.blogspot.com/2011/04/reportviewer-object-datasource-nested.html

0 голосов
/ 12 ноября 2010

Я обнаружил, что это ошибка ... если вы сделаете все ваши объекты сериализуемыми, это должно быть исправлено в SP1 ...

Подробнее здесь: http://blogs.msdn.com/b/brianhartman/archive/2010/10/27/nested-objects-in-local-mode.aspx

...