БАГИ в FastReport 3

12467

Комментарии

  • отредактировано 03:21
    Programmer manual, раздел "Изменение значения переменной".
  • отредактировано 03:21
    Имеем: модальное окно с TfrxPreview
    Нету: скролинга клавишами и колесом мыши.

    Попутно, хотелось бы иметь возможность в Preview показывать/прятать тот же Toolbar и меню, что и во встроенном.
  • отредактировано 03:21
    Programmer manual, "Создание собственных окон предварительного просмотра".
    Тулбар показать нельзя, это часть формы, а не TfrxPreview.
  • отредактировано 03:21
    Спасибо за совет. Собственно, откуда вопросы, нужен Prteview, подошел бы и встроенный, но нужен перехват событий сохранения/восстановления отчета.
  • отредактировано 03:21
    написал:
    Имеем: модальное окно с TfrxPreview
    Нету: скролинга клавишами и колесом мыши.
    написал:
    Programmer manual, "Создание собственных окон предварительного просмотра".
    SetFocus, конечно радикальная мера, можно его по клику мышки еще ставить (ксати, события нету), Tab-order ручками обрабатывать ...

    Почему бы честно не сказать, криво - будем править?
  • отредактировано 03:21
    к вопросу об отмене выполнения отчёта при назначении ему в качестве Dataset'а - TfrxUserDataSet. Происходит зацикливание, и как результат загрузка процессора. В процедуре procedure TfrxEngine.RunReportPages идёт цикл

    Report.DataSet.First;
    while not Report.DataSet.Eof do
    begin
    DoPages;
    Report.DataSet.Next;
    end;
    При этом в вызываемой внутри цикла в процедуре DoPages, которая в свою очередь вызывает процедуру procedure TfrxEngine.RunPage(Page: TfrxReportPage), происходит установка на начало набора FPage.DataSet.First;(frxEngine, Line 986).
    Как результат - бесконечный цикл.
    Среда Delphi5.
    Вроде делаю всё правильно, если не прерывать- всё нормально происходит.
    И ещё раз к автору - нельзя вынести опционально процесс формирования отчёта :
    - либо выводить модальное окно с отображением - сколько страниц сформировано
    - либо оставлять в текущем варианте - изменение надписи Отмена\Закрыть
  • отредактировано September 2004
    Ситуация следующая:
    1) C++Builder 6, FR 3.02
    frxReport1->PrintOptions->ShowDialog = false; - НЕ РАБОТАЕТ
    Диалог показывается всегда. Пробовал менять как в дизайнере, так и в run-time.
    После нескольких попыток изменения свойства ShowDialog в дизайнере, при попытке выполнить frxReport1->ShowReport(); получаю AV.

    2) Delphi 5, FR 3.02
    frxReport1.PrintOptions.ShowDialog := False; - в run-time работает, а в дизайне - НЕТ.

    Совсем плохая ситуация. Посмотрели Fr 2.4, FR3 купили, а у него не работают базовые функции...

    Может купившим FR3 можно получить FR 2.5 бесплатно ???
  • отредактировано 03:21
    C++Builder 6, Delphi 5, FR 3.02

    На форме есть frxReport1 и frxPreview1.
    Во время печати (frxReport1->Print() ;) на превьюшке появляется окно с надписью "Printing Page 1". После печати это окно не пропадает, а превьюха превращается в серый квадрат с этим окошком посредине.

    Как это лечить ???
  • отредактировано 03:21
    AndyS написал:
    к вопросу об отмене выполнения отчёта при назначении ему в качестве Dataset'а - TfrxUserDataSet. Происходит зацикливание, и как результат загрузка процессора. В процедуре procedure TfrxEngine.RunReportPages идёт цикл

    Report.DataSet.First;
    while not Report.DataSet.Eof do
    begin
    DoPages;
    Report.DataSet.Next;
    end;
    При этом в вызываемой внутри цикла в процедуре DoPages, которая в свою очередь вызывает процедуру procedure TfrxEngine.RunPage(Page: TfrxReportPage), происходит установка на начало набора FPage.DataSet.First;(frxEngine, Line 986).
    Как результат - бесконечный цикл.
    Среда Delphi5.
    Вроде делаю всё правильно, если не прерывать- всё нормально происходит.
    И ещё раз к автору - нельзя вынести опционально процесс формирования отчёта :
    - либо выводить модальное окно с отображением - сколько страниц сформировано
    - либо оставлять в текущем варианте - изменение надписи Отмена\Закрыть
    В 3.02 баг - в этом цикле не происходит выхода при отмене. Кроме того, нельзя назначать один и тот же источник на Report.Dataset, Page.DataSet и Band.Dataset.
    По поводу последнего вопроса - постараюсь сделать, но не обещаю что скоро.
  • отредактировано 03:21
    SterhBy написал:
    Ситуация следующая:
    1) C++Builder 6, FR 3.02
    frxReport1->PrintOptions->ShowDialog = false; - НЕ РАБОТАЕТ
    Диалог показывается всегда. Пробовал менять как в дизайнере, так и в run-time.
    После нескольких попыток изменения свойства ShowDialog в дизайнере, при попытке выполнить frxReport1->ShowReport(); получаю AV.

    2) Delphi 5, FR 3.02
    frxReport1.PrintOptions.ShowDialog := False; - в run-time работает, а в дизайне - НЕТ.

    Совсем плохая ситуация. Посмотрели Fr 2.4, FR3 купили, а у него не работают базовые функции...

    Может купившим FR3 можно получить FR 2.5 бесплатно ???
    В 3.03 работает.
  • отредактировано 03:21
    SterhBy написал:
    C++Builder 6, Delphi 5, FR 3.02

    На форме есть frxReport1 и frxPreview1.
    Во время печати (frxReport1->Print() ;) на превьюшке появляется окно с надписью "Printing Page 1". После печати это окно не пропадает, а превьюха превращается в серый квадрат с этим окошком посредине.

    Как это лечить ???
    При работе с TfrxPreview надо пользоваться *его* методами, в частности,
    frxPreview1->Print();
  • отредактировано 03:21
    Странно это. Отчет то один, почему нужно использовать для печати методом TfrxPreview а не самого репорта...
    Но пусть, просто будем знать.
    Только вышеописанная ситуация - это баг, и его надо фиксить.
  • отредактировано 03:21
    И еще.
    При использовании превью нажатие Ctrl+P всегда вызывает диалог печати.
    Как это отключить ?
  • отредактировано 03:21
    Никак, только править исходники.
  • отредактировано 03:21
    А может все-таки в следующие версии добавить свойство, которое будет это отключать ?
  • отредактировано 03:21
    Мое почтение!

    А из каких соображений в FR3 окно дизайнера перестало быть модальным? Дело в том, что в том виде как сейчас есть вызванный из IDE дизайнер можно свернуть и, например, удалить редактируемый в данный момент frxReport с формы... Только не надо мне говорить, что этого просто не надо делать!
    Вообще как-то странно выглядят все эти манипуляции с ActiveForm.Enabled в frxReport.DesignReport...
    Что гораздо более неприятно в приложении с MDI интерфейсом после закрытия дизайнера, вопреки хэлпу от Borland, вызов f.SetFocus не выполняет установку Screen.ActiveForm (он становится равным nil/NULL). В итоге нужно переключиться на другое приложение и вернуться или открыть и закрыть другую форму этого-же приложения (благо меню и все остальное работает), чтобы можно было продолжить работу. Т.е. дочернее MDI окно, которое было активно в момент вызова дизайнера, после закрытия последнего остается недоступным.

    PS. С SDI не проверял. Preview работает нормально. Среда BCB6. FR 3.03
  • отредактировано 03:21
    Присоединяюсь к AnDy. Этот рукописный модальный цикл, у нас в приложении, приводит к появлению двух активных форм одновременно, дизайнер и та форма, откуда дизайнер вызвался. Приходится блокировать приложение на момент работы дизайнера, однако после закрытия FastReport, фокус обратно в приложение вернуть можно только шаманскими методами.

    И еще, в дизайнере, редактирование формы скорее не работает, чем наоборот. Мало того, что форма торчит поверх всех окон, так еще и диалоги редактирования (SQL, алиасы полей) появляются под ней. Это вообще ни в какие ворота.

    FastReport 3.03 живет в dll, среда CBuilder6. Операционки разные Win2k, XP.
  • отредактировано 03:21
    Кто хочет посмотреть, как будет работать дизайнер в "честном" модальном режиме, можете поменять frxClass.pas (убрать цикл и поставить designer.ShowModal).
  • отредактировано September 2004
    написал:
    Кто хочет посмотреть, как будет работать дизайнер в "честном" модальном режиме, можете поменять frxClass.pas (убрать цикл и поставить designer.ShowModal).
    Ну зачем же так сразу. ;)
    Просто можно это сделать несколько иначе:
    Application.MainForm.Visible:=false;
    dm.frxReport1.DesignReport;
    Application.MainForm.Visible:=true;
    
    Это, кстати, решит проблему, когда при запущеном дизайнере нужно "свернуть" все приложение...

    И еще вопрос. Парольная защита отчета - это штука полезная. Но вот если бы я хотел запретить печать какого-либо отчета я бы его зашифровал. А вот та реализация пароля, которая сейчас есть в FR3 больше подходит для защиты модификации "честными" пользователями. Это я к тому, что пароль должен запрашиваться не при попытке загрузить шаблон в frxReport, а при попытке вызвать frxReport.DesignReport при загруженном парольном шаблоне. Можно даже сделать два отдельных пароля (как в ворде)...
    Am i right?
    Только, plz, не надо меня по этому вопросу футболить к свойству Restriction или как оно там...
  • отредактировано September 2004
    Еще. Нельзя ли сделать возможным установку Parent-а для объектов форм отчета хотя бы через перетаскивание на родителя в дереве объектов отчета (как в Delphi). А то для того, чтобы поместить CheckBox на GroupBox пришлось править *.FR3 (ХВАЛА XML! ;) ) Кстати, этот самый Parent "слетел" после Copy/Paste...

    К слову. В Delphi 6+ компонент CheckListBox вынесен в пакет VCLX. Соответственно в пакетах FR3 этого VCLX не хватает в секции requires...
  • отредактировано 03:21
    По совету автора пошёл путём программной доработки дизайнера, наследника так сделать и не удалось ;) . Нужно было несколько пунктов в меню "Файл" добавить(не в конец меню). Добавил, всё шло хорошо, до тех пор пока не пришлось пару раз шаблон из файла загрузить. Оказалось, что при загрузке файла исчезает верхний разделитель блока ранее открытых файлов (SepMI11). Он попросту удаляется. Соответственно возникает ошибка.
  • отредактировано 03:21
    как сделать чтобы в редакторе теста
    если двойной щелчек по слову выделялось только конкретно это слово
    а не все что находится в квадратных скобках.
  • отредактировано 03:21
    Определи метод он сохранить.
    а теперт нажми сохранить как в дизайнере и что сохраняется??
    я не переопределял метод сохранить как
    занчит он должен работать нормально..
    я уже посылал где у вас exit не правильно стоит.
  • отредактировано 03:21
    почему поле сохраненого отчета в 2.53 нужно все править.
    на
    [SUM(<Q."REXSUMM_HOT">+<Q."REXSUMM_HEAT">)]

    И есть ли спопобоб не запуская отчет проверить везде ли правильные
    скобки... а то ждать пока выполнится тяжелый запрос
    по 5 минут а потом исправить одну ячейку... это утомительно.
  • отредактировано 03:21
    Konst написал:
    как сделать чтобы в редакторе теста
    если двойной щелчек по слову выделялось только конкретно это слово
    а не все что находится в квадратных скобках.
    Редактор текста - это TMemo. Ничего сделать не могу.
  • отредактировано 03:21
    Потому что в FR3 квадратные скобки "заняты" скриптом для передачи параметров типа "массив".
  • отредактировано 03:21
    AlexTZ написал:
    Потому что в FR3 квадратные скобки "заняты" скриптом для передачи параметров типа "массив".
    Ну почему при сохранение в 2.53 версии она сохранет квадратные скобки??
    это то можно было сделать... чтобы после загрузки в 3
    не править эти скобки
  • отредактировано 03:21
    Создал я проект, все нормально работает, добавляю на форму frxDataSet и frxReport, компилирую и при запуске приложение возникает ошибка

    Exception EReadError in module xxxxxxxx.exe at XXXXXXXXXX.
    Error reading frxDBDataSet.GroupIndex: Property GroupIndex does not exist.


    в чем дело ?
  • отредактировано 03:21
    Konst написал:
    Konst написал:
    Потому что в FR3 квадратные скобки "заняты" скриптом для передачи параметров типа "массив".
    Ну почему при сохранение в 2.53 версии она сохранет квадратные скобки??
    это то можно было сделать... чтобы после загрузки в 3
    не править эти скобки
    Конвертер 2->3 не настолько интеллектуален, чтобы менять одни скобки на другие. Для этого пришлось бы делать полный разбор синтаксиса выражений и синтез их обратно. И все равно, что-нибудь пришлось бы править вручную.
  • отредактировано 03:21
    infom написал:
    Создал я проект, все нормально работает, добавляю на форму frxDataSet и frxReport, компилирую и при запуске приложение возникает ошибка

    Exception EReadError in module xxxxxxxx.exe at XXXXXXXXXX.
    Error reading frxDBDataSet.GroupIndex: Property GroupIndex does not exist.


    в чем дело ?
    Надо открыть все модули проекта, где используются компоненты FR3, ответить Ignore all и сохранить. Это св-во было по ошибке добавлено всем компонентам в 3.01.

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

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