Возврат к параметрам отчета

отредактировано 02:02 Раздел: FastReport Studio
День добрый.
Есть вопросик.
Заранее извиняюсь, если где-то описан - сходу не нашел.

У меня есть отчет с большим количеством параметров. Пользователь, запуская его, как правило меняет один-два параметра, а остальные хочет оставить не измененными, но каждом при запуске отчета ему приходится заново устанавливать параметры. Теперь вопросы:
1) могу ли я сформировав отчет вернуться на страницу с параметрами (которые остались старыми)?
2) могу ли я сохранять/восстанавливать параметры отчета?

заранее благодарен за ответ.

Комментарии

  • FokewolfFokewolf Киев
    отредактировано 02:02
    2) Напишите две функции, которые будут сохранять и получать параметры , допустим , из таблицы БД. А при вызове диалоговой формы отчета - вызывайте сохраненные параметры.

    1) Не совсем вас понял.
  • отредактировано 02:02
    2) Не совсем хорошо. Получится, что все пользователи будут пользоваться одними и теми же сохраненными параметрами. Можно, конечно, сохранять и в разрезе пользователей, но логичнее было бы сохранять в реестре.

    1) Пример:
    Я выставил параметры, затем нажал "ОК"
    Посмотрел отчет и хочу нажать что-то типа "Возврат к окну с параметрами", чтобы увидеть там все параметры такими, которыми я их только что установил, чтобы поменять один параметр и снова вызвать этот отчет и так несколько раз.
  • отредактировано 02:02
    насчет
    2) Как я это дело понимаю, либо база в и таблица с натройками в разрезе пользователей, либо параметры из приложения, и сохраняй где хочешь.

    В принципе не логично от генератора отчетов требовать сохранение параметров в реестре (ИМХО)
  • Stalker4Stalker4 123
    отредактировано 02:02
    1) В принципе можно. Почитай форум на предмет использования свойства DestroyForm.

    Вот тебе небольшой пример на эту тему (код 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, можешь по примеру этого класса сделать свой для реестра.

  • отредактировано 02:02
    Stalker4 написал:
    1) В принципе можно. Почитай форум на предмет использования свойства DestroyForm.

    while True do
    if frxReport.PrepareReport then
    frxReport.ShowPreparedReport
    else
    break;

    2) Можно. Используй класс TIniRTTI из FS для сохранения параметров в ini файл в скрипте отчета. У меня например многие отчеты умеют сохранять параметры которые ввел юзер в диалоге отчета (DialogPage) в ini.

    Если не любишь ini, можешь по примеру этого класса сделать свой для реестра.
    1) Спасибо. Здесь всё работает. Почти...
    у меня версия 3.22 за какое-то июня (последняя тсабильная на 24.07.06)
    ... frxReport.PrepareReport() не возвращает значения
    компилятор говорит что она - void
    Как мне узнать, что эта строка была выполнена, а не отменена?
    Я, конечно, ловлю Exception, но как-то это неправильно.

    2) А что есть класс TIniRTTI из FS? Ни Visual Studio, ни FastReport о нем не знают. Можно примерчик?

    Заранее благодарен.
  • Stalker4Stalker4 123
    отредактировано 02:02
    Ты как я понял используешь не чистый FR3, а FastReport Sdudio ?

    1)

    Только что глянул исходники FR 3.23
    Там PrepareReport для FR_COM объявлен как
    function PrepareReport(ClearLastReport: WordBool = True): HResult; stdcall;
    то есть он по идее должен чего то возвращать.

    2) Поищи в составе FastScript модуль fs_iinirtti.pas.
    В нем как раз и определен класс TIniFile.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.