Передача рисунков в Fr
Добрый день! Подскажите пожалуйста вариант решения следующей проблемы:
При составлении отчета на странице все данные(по изделию) выбираються с бд кроме чертежа. В базе ханится только шаблон чертежа, а сам чертеж строиться с помощью ряда процедур в Delphi. Как мне передать построенные в приложении чертежи в отчет, если в отчете выводится например около 5 различных изделий?
При составлении отчета на странице все данные(по изделию) выбираються с бд кроме чертежа. В базе ханится только шаблон чертежа, а сам чертеж строиться с помощью ряда процедур в Delphi. Как мне передать построенные в приложении чертежи в отчет, если в отчете выводится например около 5 различных изделий?
Комментарии
Как вариант, можно попробовать добавить дополнительное поле в набор данных, по которому строится отчет, и заносить туда подготовленный чертёж.
Типа:
Возникли попутно вопросы: а куда именно добавлять дополнительное поле? В наборе данных у меня содержатся только frxBDEQuery, и по этим запросам заполняеться формы отчёта - добавить дополнительное поле к запросу, но как? И еще можно вопрос - Как организовать так, что бы для конкретного изделия выводился конкретный чертёж? Надо привязывать поле к данным из BDEquery?
Отказаться от frxBDEQuery. Использовать TClientDataSet. В TClientDataSet добавить поле типа TBlobField.
В это поле и грузить картинку чертежа. Т.е. в результате в TClientDataSet получим часть отчета с описанием детали и в дополнително созданом поле TBlobField чертеж.
Так как в записи со спецификацией детали содержиться поле с чертежом, они и будут связаны.
А как подключить TClientDataSet к frxReport? В набор данных можно подключить только TfrxUserDataSet..
TfrxDBDataset у него в свойство DataSet указать нужный TClientDataSet
TfrxDBDataset будет видно в отчете. Его связать с нужным MasterData бендом.
Спасибо за помощь, буду пробовать!
Можно предложить ещё один самый элементарный вариант.
Пред печатью подготавливать картинки и складывать на диск. Потом в событии OnBeforePrint указывать, какую картинку выводить. После печати картинки удалять.
Спасибо, но как кажеться это не очень оптимально, но тоже интересный вариант..
А можно вопрос по ходу дела - я вывожу данные в клиент ClientDataSet, но не могу добавить к нему картинку( Как это правильно сделать не поскажите?
Если я пыьаюсь добавить чертеж в запросе на AfterScroll(в query который вытягивает данные из БД) или как-либо еще он мне выдает - EDatabaseError 'ClientDataSet1: dataset not in edit or insert mode'((
После того, как получен набор данных с сервера БД, при перегрузке в TClientDataSet. Т.е. нужно просто пробежаться по
Главному набору данных, перегружая данные в TClientDataSet, при этом структура полей в TClientDataSet должно соответствовать главному набору + Blob поле для картинки.
Сделал так ShowMessage выдает корректно значение поля, однако в FastReport значения эти не попадают( Попадают только выбранные из БД. Хотя настроил вроде правильно Query -> DataSetProvider -> cds -> frxDBDataSet. Или это не верно?
Данные по изделию передавать из приложения через frDBDataSet, а в query, которое выбирает эти данные, на событие onAfterScroll сгенерировать чертеж и передать его параметром в FastReport. А вуже в FastReporte на данных перед чертежом на событие onAfterData сделать присвоения picture в FR переменной из приложения. Но смотриться как-то неоптимально(
B FastReporte добавляем следующую функцию:
Если есть предложения лучше - пишите, буду рад посмотреть!