Переход с версии 2.х на 4.х
Добрый день!
Подскажите. возможно кто-то уже сталкивался со следующей проблемой.
Был осуществелен переход с версии FastReport 2.7 на 4.0, а далее на 4.7.9.
Для конвертации отчетов использован был модуль frx2xto30, правда взят он был от 3 версии.
В принципе с помощью бубна все отчеты заработали под 4 версией. но я так понима модуль frx2xto30 более не нужен, он использовался для преобразования.
Но при его отключении в некоторые отчеты перестают работать. Выдается сообщение "Неопределенный идентификатор (имя переменной) "
Во переменных отчета эта переменная может быть не объявлена вообще (т.к. переменные создаются программно). В старой версии эта переменная просто заполнялась пустым значением.
Или в коде программы используется переменная, которая ранее не была объявлена.
Собственно вопрос вот в чем: нужен ли модуль frx2xto30 после конвертации отчетов для их работы и какие еще проблеиы есть кроме этой.
Подскажите. возможно кто-то уже сталкивался со следующей проблемой.
Был осуществелен переход с версии FastReport 2.7 на 4.0, а далее на 4.7.9.
Для конвертации отчетов использован был модуль frx2xto30, правда взят он был от 3 версии.
В принципе с помощью бубна все отчеты заработали под 4 версией. но я так понима модуль frx2xto30 более не нужен, он использовался для преобразования.
Но при его отключении в некоторые отчеты перестают работать. Выдается сообщение "Неопределенный идентификатор (имя переменной) "
Во переменных отчета эта переменная может быть не объявлена вообще (т.к. переменные создаются программно). В старой версии эта переменная просто заполнялась пустым значением.
Или в коде программы используется переменная, которая ранее не была объявлена.
Собственно вопрос вот в чем: нужен ли модуль frx2xto30 после конвертации отчетов для их работы и какие еще проблеиы есть кроме этой.
Комментарии
Отчеты работают потому, что модуль использует свою обработку события OnGetValue и для всех переменных которые не определены в отчете, возвращает пустое значение.
Это может в дальнейшем привести к проблемам в рабочих отчетах, и будет сложно определить ошибку.
Отключил модуль. Создал обработчик события OnGetValue
Выдается ошибка: Identifier expected; До процедуры даже не доходит.
В скрипте onGetValue не срабатывает.
То что раньше в двойке было как Имя_переменной_отчета , теперь должно быть как <Имя_переменной_отчета>.
Конвертер же создает функции в скрипте с аналогичными именами, чтобы можно было обращаться к ним без <>.
Посмотрите на функцию DoPrepareScript в Frx2xto30.pas ю
Уже смотрел.
Вопрос был не в этом! Проблема в том, что переменная может быть не определена в массиве frxReport.Variable. И тогда выскакивает окно, что переменная отсуствует. Раньше если переменная отсутствует, тогда просто это значение заполняется пустой строкой. Мне так и надо.
В конечном итоге мне удалось переопределить событие OnGetValue, но в итоге отвалились значения в функцией SUM
Т.е. теперь если переменная не определена, то вместо нее подставляется пустая строка, но объекты, в которых задано например "[SUM(<_frBC_OrderPrint."NETTO_OUT">,MasterData1)]" - пустые, хотя если эту функцию убрать - то все работает.
событие GetValue не использовал.
Переменные, на которые выдавалось сообщение об их отсутствии, объявили в коде в области VAR.
В принципе такое решение тоже устраивает.