1 (edited by mikhail_a 2017-12-15 14:52:18)

Topic: Как передавать переменные в FastReport

На форме документа есть компоненты, которые в качестве переменных передаю в FastReport.
Эти компоненты привязаны к полям БД.
Есть кнопка печать для вывода Отчета.
Если я исправил какие-то значения полей на форме и сразу нажму на кнопку Печать, то внесенные изменения полей не будут видны в FastReporte.
Более того, отчет будет пуст.
Чтобы отобразить измененные значения этих компонентов в FastReport  надо сначала сохранить форму в БД, а только потом выводить ее в FastReport.
Чтобы победить это, я добавил перед выводом отчета нажатие скриптом кнопки Сохранить форму.
Все внесенные изменения теперь сразу отображаются в отчете, не требуя отдельного нажатия кнопки сохранения формы.
Однако, после закрытия окна отчета у меня сразу закрывается и форма документа, т.к. кнопка сохранения формы имеет свойство закрытия по умолчанию.
Как передать изменения значений компонентов в FastReport без нажатия на кнопку сохранения и закрытия формы?
То есть, можно ли выполнить функционал кнопки по сохранению значений формы, но без закрытия формы?

Re: Как передавать переменные в FastReport

При размещении кнопки "Отчет" на форме добавления/редактирования записи, не нужно добавлять какие либо компоненты в первый список для критереев поиска.


С какой целью необходимо передавать данные с компонентов в виде переменных, если данные компоненты привязаны к полям БД? Вместо этого необходимо просто добавить эти поля в отчет.


Если у вас какой либо специфичный случай, можете добавить переменные в отчет с помощью скрипта, т.е. без применения компонентов.

Dmitry.

3 (edited by iacovlogica 2017-12-27 20:46:38)

Re: Как передавать переменные в FastReport

Мне было нужно отправлять на печать как данные внесенные в таблицы  так и некоторые данные (расчеты ,  время  и тд) которые не вносились в таблицы но нужно было их напечатать . Плюс нужна была возможность иногда их редактировать перед печатью.
Я создал временную таблицу (например так http://myvisualdatabase.com/forum/viewt … 526#p13526) со всеми необходимыми полями и внес туда все что мне надо напечатать открывал окно редактирования при необходимости и отправлял посредством SQL отчета ( SELECT * FROM VremTable WHERE id=1 ) в репорт на печать.
Этим я убил сразу 2 кролей , первое это возможность редактировать перед печатью без изменения данных в таблицах, второе передача данных из компонентов в репорт .

п.с.
надеюсь такое решение кому нибудь пригодится.