Tfrxpictureview + Tfrxuserdataset = баг?

gdygdy
отредактировано February 2009 Раздел: FastReport Studio
Здравствуйте!
У меня есть такая задача: показывать в отчёте картинки, которых нет и не может быть в базе (это ГИС и надо рисовать в отчёте карты различных участков).
Для этого я попробовал использовать TfrxPictureView и TfrxUserDataSet с обработчиком IfrxUserDataSetEvents.raw_OnGetValue, который возвращает поле типа BLOB (IStream в VARIANT), по аналогии с просмотром картинок в biolife.Graphic из demo.mdb.
Проблема в том, что это не работает - TfrxPictureView просто не вызывает обработчик OnGetValue, при этом точно такой же (как мне кажется) код прекрасно работает с TfrxMemoView и точно такой же код для установки названий полей успешно подключает поле biolife.Graphic к TfrxPictureView. Другими словами, у меня не работает только сочетание TfrxPictureView и TfrxUserDataSet.

Вопрос первый: это баг или я что-то в своём коде в упор не вижу? К теме прицеплен архив с минимальным проектом на VC++ 2008, воспроизводящим проблему, самое интересное место отмечено комментарием //!!.
Прикреплённый к теме архив что-то не скачивается, можно взять отсюда.

Вопрос второй: можно ли вообще в TfrxUserDataSet иметь поле типа BLOB и правильно ли его возвращать, используя IStream?

Вопрос третий: какие есть альтернативы? Если у меня картинок постоянное число, то я могу просто делать TfrxPictureView.LoadViewFromStream перед выполнением отчёта, а если переменное? Обрабатывать IfrxReportEvents.OnBeforePrint и каким-то образом узнавать (как проще это делать?), какую именно запись сейчас печатаем и загружать соответствующую картинку? Заводить временную таблицу в базе для этой цели не хочется.

Спасибо за внимание :-)

Дополнение: версия - 4.6.179

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.