Форма диалога.
вызывается окно с запросом параметров.
пользователь выбирает нужные параметры
нажимает кнопку Ок
отчет подготавливается появляется превью он что то делает с отчетом
говорит закрыть.
И вот тут он хочет снова попадать в диалог выбора параметров.
а так что все сразу закрывается.
как это сделать?
пользователь выбирает нужные параметры
нажимает кнопку Ок
отчет подготавливается появляется превью он что то делает с отчетом
говорит закрыть.
И вот тут он хочет снова попадать в диалог выбора параметров.
а так что все сразу закрывается.
как это сделать?
Комментарии
while True do
frxReport1.ShowReport;
Посудите сами, не было ли это более удобно!!!???
И еще один довольно существенный вопрос по формама в FR3: в FR2.5 формы показывались автономно, а в FR3 они показываются на форме Preview, не могу понять зачем это сделано, какой в этом смысл и как это изменить.
Заранее спасибо за ответ.
Керценбаум Кирилл, ООО "САМО-Софт"
2) сделайте TfrxReport.OldStyleProgress := True. Поведение при этом будет напоминать FR2.x.
при создании формы идут вычисления открытие разных справочников.
выставляются параметры. Как правило и не один.
Почему сразу все уничтожается после превью?
Хочется снова вернутся в диалог.
Как сделать? чтобы снова не происходила загрузка формы ???
За штамп конечно извиняю, но к сожалению это не ответ на вопрос, сами Вы не считаете что это было бы удобнее. Если нет, то какие аргументы, если да то почему же концепция такова, что это нереализуемо.
>>2) сделайте TfrxReport.OldStyleProgress := True. Поведение при этом будет >>напоминать FR2.x.
Хоть за это огромное спасибо.
Это можно сделать как то?
или же нет принципиально?
P.S. Это не критика. Так просто вспомнились некоторые запросы моих клиентов
почитай на досуге.
И потом будешь кричать на каждом углу.
А по поводу крика - так я и не кричу. Я даже на каждом шагу наставил смайликов и высказал свое предположение. К тому же, если бы все было так просто, ты бы и сам это сделал, а не кричал на каждом углу
Действительно подумайте пожайлуста, ведь Вам проще это изменить, вы ведь это создали, мы тоже конечно можем, но это будет значительно сложнее и дольше.
А вопрос действительно, по-моему мнению, очень актуален, ведь FastReport действительно обладает уникальной возможностью по созданию диалоговых форм, причем эта функциональность постоянно расширяется, но отсутствие возможности о который мы говорим сильно портит общую полезность от создания таких отчетов.
1. делаем 2 пользовательские функции: SaveData, LoadData в FR скрипте
2. Эти пользовательские функции должны сохранять/загружать данные в программе. Ну или можно просто передавать стрнг.....
3. В форме на событие о начале генерации отчета вешаем функцию LoadData и пишем десерилизацию формы
4. На клик по кнопке ОК пишем серилизацию формы и функцию SaveData
5.
while True do
frxReport1.ShowReport;
работает.....
Все работает, никакую концепцию менять не надо и т.д.
работы от силы на пару часов с пивом
ИМНО нужно просто флаг у формы не закрывать диалог после построения отчета.
А так на каждый отчет вешать обработчики.. если отчетов больше 200....
Извините за назойливость, но это действительно очень важно.
Спасибо.
while True do
frxReport1.ShowReport
то ничего пересоздаваться и обнуляться не будет.
if frxReport1.PrepareReport then
frxReport1.ShowPreparedReport
else
break;
Еще не совсем понятно, насколько я понял все наоборот с DestroyForms если оно True, то формы не уничтожаются, а если False, то уничтожаются, хотя особой разницы я не заметил, при вышеописанном способе повтора отчета форма показывается еще раз и так и так, и все скрипты которые на форме и на отчете повторяются из раза в раз ( а как раз на Form Activate) висит Query.Open, который выполняется достаточно долго каждый раз
Так что к сожадению практического смысла в этой функции пока не вижу, или может быть опишете другой способ ее использования
Заранее спасибо
frxReport1.Variables := True;
while True do
if frxReport1.PrepareReport then
begin
frxReport1.ShowPreparedReport
frxReport1.Variables := False;
end
else
break;
procedure frxReport1OnStartReport(Sender: TfrxComponent);
begin
if <firstcall> = True then
begin
query1.Open;
query2.Open;
end;
end;
Запросы прекрасно открываются первый раз, потом я что-то выбираю из комбобоксов, нажимаю OK, формируется отчет, я его закрываю, и вижу форму снова, но комбобоксы пустые, потому что запросы закрылись и FirstCall = False
Пробую и при свойстве DestroyForms равное True и False.
Что я делаю не так???