Ошибка в 3.16/3.17

отредактировано September 2005 Раздел: FastReport 3.0
При попытке перевести отчёты с версии 3.14 стали с заметным постоянством получать сообщения об ошибке например
написал:
Could not convert variant of type (Array Variant) into type (String)
второй тип может менятся.

Долгие копания показали, что проблема в следующем. При обращении к перемнным объявленым в скрипте из мемо или в качестве параметров запросов, в ранних версиях требовалось эти переменные заключать в "<>", иначе нормально работать отказывалось. Ну да ладно мы не гордые допишем.
Но в последних версиях это стало вызывать описанную ошибку. Второй тип в сообщении зависит как следствие от типа объявленной переменной.

Есть ли вариант решения проблемы без переделки отчётов.

Подозреваю что это последствия
написал:
version 3.16
.......
+ добавлена возможность использования квадратных скобок взамен угловых
  (как в версии 2.5)
.......

Комментарии

  • Eugene LachinovEugene Lachinov Санкт-Петербург
    отредактировано 15:36
    Попробуйте убрать комментарий с кода
    function TfrxReport.DoGetValue(const Expr: String; var Value: Variant): Boolean;
    ...
    
     { searching in the script }
     v := FScript.FindLocal(Expr);
     if v <> nil then
     begin
       Value := v.Value;
       Result := True;
       Exit;
     end
    end;
    

    У разработчиков спросил зачем они его убрали, но ответа так и не получил
  • отредактировано 15:36
    К скриптовым переменным надо обращаться без скобок, так было всегда. Раньше скобки допускались, сейчас - нет. Это то же самое, что в делфи написать:
    var
    i, j: Integer;
    i := [j] + 1
  • Eugene LachinovEugene Lachinov Санкт-Петербург
    отредактировано 15:36
    >AlexTZ

    Не подскажите в чем ошибка ?

    'Ошибка в выражении 'CORRECTSUM(SUM([Report_1_View_2_Data."AGG_15"], Page1B_RD))': Identifier expected'
  • Eugene LachinovEugene Lachinov Санкт-Петербург
    отредактировано 15:36
    Eugene Lachinov написал:
    >AlexTZ

    Не подскажите в чем ошибка ?
    Вопрос снимается, старая версия fsRegisterLanguage
  • отредактировано September 2005
    To AlexTZ

    Но тогда мне кажется нелогичным взятие в "<>" переменных, объявленных в отчёте, при обращение к ним. Нельзя ли сделать всё одиноково для всех.
    А то для одних надо так для других так, хотя смысл и у тех и у других одинаковый.

    Также было бы неплохо при объявлении переменных отчёта делать их типизированными, а не надеятся что интерпретатор сам разберётся что к чему.

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

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