Возврат к параметрам отчета
День добрый.
Есть вопросик.
Заранее извиняюсь, если где-то описан - сходу не нашел.
У меня есть отчет с большим количеством параметров. Пользователь, запуская его, как правило меняет один-два параметра, а остальные хочет оставить не измененными, но каждом при запуске отчета ему приходится заново устанавливать параметры. Теперь вопросы:
1) могу ли я сформировав отчет вернуться на страницу с параметрами (которые остались старыми)?
2) могу ли я сохранять/восстанавливать параметры отчета?
заранее благодарен за ответ.
Есть вопросик.
Заранее извиняюсь, если где-то описан - сходу не нашел.
У меня есть отчет с большим количеством параметров. Пользователь, запуская его, как правило меняет один-два параметра, а остальные хочет оставить не измененными, но каждом при запуске отчета ему приходится заново устанавливать параметры. Теперь вопросы:
1) могу ли я сформировав отчет вернуться на страницу с параметрами (которые остались старыми)?
2) могу ли я сохранять/восстанавливать параметры отчета?
заранее благодарен за ответ.
Комментарии
1) Не совсем вас понял.
1) Пример:
Я выставил параметры, затем нажал "ОК"
Посмотрел отчет и хочу нажать что-то типа "Возврат к окну с параметрами", чтобы увидеть там все параметры такими, которыми я их только что установил, чтобы поменять один параметр и снова вызвать этот отчет и так несколько раз.
2) Как я это дело понимаю, либо база в и таблица с натройками в разрезе пользователей, либо параметры из приложения, и сохраняй где хочешь.
В принципе не логично от генератора отчетов требовать сохранение параметров в реестре (ИМХО)
Вот тебе небольшой пример на эту тему (код Delphi):
frxReport.LoadFromFile('70.fr3');
frxReport.EngineOptions.DestroyForms := False;
while True do
if frxReport.PrepareReport then
frxReport.ShowPreparedReport
else
break;
Есть ограничение: Отчет не должен содержать cross-tab компоненты (старые или новые)
2) Можно. Используй класс TIniRTTI из FS для сохранения параметров в ini файл в скрипте отчета. У меня например многие отчеты умеют сохранять параметры которые ввел юзер в диалоге отчета (DialogPage) в ini.
Если не любишь ini, можешь по примеру этого класса сделать свой для реестра.
у меня версия 3.22 за какое-то июня (последняя тсабильная на 24.07.06)
... frxReport.PrepareReport() не возвращает значения
компилятор говорит что она - void
Как мне узнать, что эта строка была выполнена, а не отменена?
Я, конечно, ловлю Exception, но как-то это неправильно.
2) А что есть класс TIniRTTI из FS? Ни Visual Studio, ни FastReport о нем не знают. Можно примерчик?
Заранее благодарен.
1)
Только что глянул исходники FR 3.23
Там PrepareReport для FR_COM объявлен как
function PrepareReport(ClearLastReport: WordBool = True): HResult; stdcall;
то есть он по идее должен чего то возвращать.
2) Поищи в составе FastScript модуль fs_iinirtti.pas.
В нем как раз и определен класс TIniFile.