ITypedList как BusinessObject

Обсуждение Stimulsoft Reports.WPF
Teheran
Сообщения: 22
Зарегистрирован: 04 дек 2013, 02:01

Re: ITypedList как BusinessObject

Сообщение Teheran »

Здравствуйте.

Верны ли мои ожидания в отношении рендеринга отчета?
Я регистрирую БО-последовательность с большим количеством элементов (сотни тысяч элементов). Мой БО реализует интерфейсы ITypedList и IEnumerable<object>. Я ожидаю того, что если я перед началом рендеринга зарегистрирую реальную последовательность, то она будет прочитана ровно один раз во время рендеринга отчета. (Cache All Data = TRUE; Number Of Pass = SINGLE; Report Cache Mode = ON)
Спасибо.
Ivan
Сообщения: 641
Зарегистрирован: 10 авг 2006, 05:40
Откуда: Stimulsoft Office

Re: ITypedList как BusinessObject

Сообщение Ivan »

Здравствуйте.
Teheran писал(а):Верны ли мои ожидания в отношении рендеринга отчета?
Я регистрирую БО-последовательность с большим количеством элементов (сотни тысяч элементов). Мой БО реализует интерфейсы ITypedList и IEnumerable<object>. Я ожидаю того, что если я перед началом рендеринга зарегистрирую реальную последовательность, то она будет прочитана ровно один раз во время рендеринга отчета. (Cache All Data = TRUE; Number Of Pass = SINGLE; Report Cache Mode = ON)
1. Если вы делаете RegData() - ваш бизнес-объект будет полностью преобразован в dataset в памяти, поэтому при построении отчета обращений к исходному бизнес-объекту уже не будет.
Если делаете RegBusinessObject() - запоминается только ссылка на бизнес-объект, обращение к данным происходит по необходимости.

2. Cache All Data = TRUE; - влияет на data sources (все таблицы создаются в одном dataset), не влияет на бизнес-объекты.
Number Of Pass = SINGLE; - каждый проход - полная обработка данных.
Report Cache Mode = ON; - никак не влияет на обращение к данным.

3. Применение сортировки датабэнда - дополнительный проход по всем данным текущего источника данных, и создаётся временный массив для хранения отсортированных строк данных.
Применение группировки - это дополнительная сортировка по выражению группировки, плюс проверки границ групп.
Master-detail отчет - сколько master-записей - столько проходов будет по источнику данных detail-бэнда.
Агрегатные функции Totals - дополнительные проходы по данным.

Т.е. один проход по данным гарантирован только в случае простого списка без сортировок/группировок и всяких дополнительных условий.

Спасибо.
Teheran
Сообщения: 22
Зарегистрирован: 04 дек 2013, 02:01

Re: ITypedList как BusinessObject

Сообщение Teheran »

Здравствуйте.

Спасибо за подробный ответ.
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: ITypedList как BusinessObject

Сообщение Aleksey »

Здравствуйте,

Всегда рады помочь.
Ivan
Сообщения: 641
Зарегистрирован: 10 авг 2006, 05:40
Откуда: Stimulsoft Office

Re: ITypedList как BusinessObject

Сообщение Ivan »

Здравствуйте.
1. Схема БО зарегистрированного через RegBusinessObject распознана неверно. (Дизайнер отображает все поля как string.)
Тот же БО зарегистрированный через RegData распознаётся верно.
Типы полей распознаются верно.
Неправильно отображалась картинка с обозначением поля, и только в WPF версии продукта.
Патч будет включен в следующий предрелизный билд.
2. Содержимое БО зарегистрированного через RegBusinessObject отображается неверно.
Тот же бизнес-объект зарегистрированный через RegData отображается верно.
Проблема решена.
Патч будет включен в следующий предрелизный билд.

Спасибо.
Teheran
Сообщения: 22
Зарегистрирован: 04 дек 2013, 02:01

Re: ITypedList как BusinessObject

Сообщение Teheran »

Здравствуйте.

Я регистрирую здоровенную последовательность в качестве бизнес-объекта, которая целиком не влезает в память. Строю отчет без группировок и сортировок. Экспортирую его в csv. Ожидаю от движка единственного прохода по данным.
Ivan писал(а):Т.е. один проход по данным гарантирован только в случае простого списка без сортировок/группировок и всяких дополнительных условий.
В аттаче тест проверяющий это утверждение. Этот тест регистрирут 9 проходов по данным. Подскажите пожалуйста, что мне нужно сделать, чтоб добиться единственного прохода по данным.

Спасибо.
Вложения
UnitTest_RegBusinessObject_CSV_Export.zip
(9.63 КБ) 237 скачиваний
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: ITypedList как BusinessObject

Сообщение HighAley »

Здравствуйте.

К сожалению, на данный момент наш движок не оптимизирован с целью уменьшения количества проходов.
Спасибо. за то, что обратили на это внимание. Мы проведём работу в этом направлении.
О сроках пока ничего сказать не можем, но обязательно сообщим о результатах.

Спасибо.
Ответить