Передача Metafile в элемент управления image1 на полосе masterdata в FastReportDelphi , Базы данных , ОтчетыПередача Metafile в элемент управления image1 на полосе masterdata в FastReport В процессе работы с FastReport иногда возникает необходимость передать графический файл (Metafile) в элемент управления image1 на полосе masterdata для каждого напечатанногоrecords. К сожалению, метод LoadFromFile не может быть использован в событии OnBeforePrint, так как metafile является частью другого файла и должен быть извлечен перед передачей в элемент управления на полосе masterdata. В этом случае можно воспользоваться пользовательской функцией, но она использует тип Variant, что делает невозможной передачу metafile. Существует ли другой способ решить эту проблему? Решение: Для решения этой проблемы можно определить пользовательскую функцию, принимающую имя объекта picture и любые другие параметры, необходимые из отчета.
Далее, определите функцию:
В событии OnUserFunction отчета frxReport1:
Примечания: Сперва спасибо. Решение работает наполовину. Всегда печатается одно и то же изображение. Имя процедуры такое же, как и имя файла. Я не понимаю, что такое TmpCurReport, это ли TfrxReport класс отчета? Мы почти там. Что можно сделать? @BartolomeoGiorgio: Моя ошибка, TmpCurReport - это объект TfrxReport, я обновил ответ. Но почему процедура вызывается только один раз? (Я установил точку останова) В предварительном просмотре одно и то же изображение. Спасибо еще раз. @BartolomeoGiorgio: Как вы определяете, какое изображение загрузить? (Есть ли Id, имя файла... в наборе данных?) @BartolomeoGiorgio: Если да, убедитесь, что изображение находится внутри полосы отчета, и что полоса отчета связана с набором данных, который содержит ключевую информацию для загрузки изображения (Id, имя файла... или что-то, что вы используете для определения правильного изображения для загрузки). Отчет работает хорошо. Все поля меняют свои значения, и поле filename тоже. Только поле picture не меняется. Фактически, приложение останавливается только один раз на точке останова в моей процедуре. @BartolomeoGiorgio: Как вы определяете, какое изображение загрузить? (Есть ли Id, имя файла... в наборе данных?) Каждая запись имеет поле, содержащее имя файла, который необходимо обработать. Я передаю значение этого поля в мою процедуру @BartolomeoGiorgio: Хорошо, попробуйте: 1) убедитесь, что изображение находится внутри полосы. 2) убедитесь, что полоса связана с тем же набором данных, что и имя файла. 3) убедитесь, что свойство DataSet элемента управления изображением отчета оценивается тем же набором данных, что и полоса. 4) вызовите свою пользовательскую функцию из обработчика события OnBeforePrint элемента управления изображением отчета Спасибо, я решил проблему. Былproblem с событием OnBeforePrint; оно было написано неправильно. Спасибо еще раз @BartolomeoGiorgio: Отлично! Примите ответ, если он вам помог. Контекст: Необходимо передать Metafile в элемент управления image1 на полосе masterdata в FastReport для каждого напечатанного records, но стандартные методы не работают. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |