Изображение. TfrxUserDataSetClass
Не получается передать изображение через TfrxUserDataSetClass в объект TfrxPictureView.
Назначил объекту TfrxPictureView и DataSet и DataField, но в мой обработчик
void OnGetValueHandler(object VarName, out object Val)
не попадает VarName, который я указал в DataField для поля, содержащего изображение. Все другие поля, содержащие текст - без проблем.
Или это делается как-то по-другому?
Я могу еще на сервер выгружать эту картинку файлом и потом подхватывать этот файл (FR3 использую в веб-приложении), но не знаю, каким образом динамически из кода C# указывать для отчета URL этой картики (у меня запись в таблице для отчета всегда только одна), так как название файла будет для каждого пользователя своим. Но такой механизм внедрять себе - как-то не правильно.
Назначил объекту TfrxPictureView и DataSet и DataField, но в мой обработчик
void OnGetValueHandler(object VarName, out object Val)
не попадает VarName, который я указал в DataField для поля, содержащего изображение. Все другие поля, содержащие текст - без проблем.
Или это делается как-то по-другому?
Я могу еще на сервер выгружать эту картинку файлом и потом подхватывать этот файл (FR3 использую в веб-приложении), но не знаю, каким образом динамически из кода C# указывать для отчета URL этой картики (у меня запись в таблице для отчета всегда только одна), так как название файла будет для каждого пользователя своим. Но такой механизм внедрять себе - как-то не правильно.
Комментарии
procedure TForm1.frxReport1BeforePrint(Sender: TfrxReportComponent);
begin
if Sender.Name = 'Picture1' then
TfrxPictureView(Sender).Picture.Assign(
Chart1.TeeCreateMetafile(False,
Rect(0, 0, Round(Sender.Width), Round(Sender.Height))));
end;
Но, в коде C# я не понимаю, каким образом добраться до TfrxReport.
Создать напрямую его я не могу, так как это интерфейс, а не класс.
У объекта TfrxReportClass отсутствует какое-либо свойство типа TfrxReport.
У объекта TfrxReportClass событие OnBeforePrint отсутствует.
Я бы рад хоть чего-то сделать, но у меня уже кончились мысли как добраться до этого события и сижу тыкаюсь везде как слепой кротъ.
В примере, поставляемом в FR3-COM примеры с картинками показаны только при работе с ADO-контролами. Там они вычитываются из БД и передаются в отчет путем задания свойства DataField у TfrxPictureView (как я и предполагал сделать ранее в коде C#, но это не получается).
Можно дать хоть какой-нибудь пример, как это все увязать воедино в коде C#?
Или это должно делаться скриптами в дизайнере отчета? Но там у объкта TfrxReport отсутствует OnBeforePrint. Оно есть только у Page или у Band.
Я могу выслать маленький проект, который загружает xml-файл DataSet с картинками и fr3-файл, если это чем-то поможет для ответа на мои вопросы.
Передача картинки пока не поддерживается в СОМ версии FastReport. Событие OnBeforePrint уже добавлено, но новая версия ещё не выкладывалась. В скором времени будет добавлен интерфейс к TfrxPictureView и возможность передачи картинок появится.