Ошибка при выполнении скрипта

Евгений ПришкоЕвгений Пришко Украина, Харьков
отредактировано 20:09 Раздел: FastReport 2.xx VCL
наступил на интересные грабли....
в отчете в groupheader и footer выполняются скрипты
begin
level1 := [current#];
end
в хедере
begin
tmp_rec_count := [level1];
visible := ([rec_count] <> [tmp_rec_count]) and ([current#] - [tmp_rec_count] >=  1);
rec_count := [tmp_rec_count];
end
в футере

а грабли вот в чем:
в 2.5 - выполняется "на УРА"
в 2.52 - при попытке выполнить скрипт футера, вылетает с ошибкой : "Could not convert variant of type `String`into type `Double`"

вопрос: как с этим бороться?

Комментарии

  • отредактировано 20:09
    А что такое Level1, поле БД? Какого типа?
  • Евгений ПришкоЕвгений Пришко Украина, Харьков
    отредактировано May 2004
    Level1 - переменная, в которую загоняется номер строки - начало группы - я ее использовал как integer

    количество переменных level зависит от кол-ва группировок
    все это служит для того, чтобы не дублировать итоги

    еще деталь о которой забыл упомянуть...
    скрипты генерятся в run-time
    меняется индекс после level
    и именно в они выделываются... если же сгенеренные скрипты подставить в дизайнере - все работает....
  • отредактировано 20:09
    Можно демку с описанным багом на support?
  • Евгений ПришкоЕвгений Пришко Украина, Харьков
    отредактировано 20:09
    я не знаю как выдрать отчет из проекта с сохранением работоспособности.....
    frf и весь код относящийся к отчету вышлю сейчас... если что-то не так, скажи в каком виде прислать
  • Евгений ПришкоЕвгений Пришко Украина, Харьков
    отредактировано 20:09
    проблема решилась
    инициализация rec_count происходила из программы в OnBeginDoc
    frRResult.Dictionary.Variables := -1;
    сделал инициализацию в скрипте ReportTitle
    rec_count := -1;
    все заработало
    огромная благодарность Владимиру ака Jinn
  • Евгений ПришкоЕвгений Пришко Украина, Харьков
    отредактировано 20:09
    я несколько поторопился с радостными воплями.... ;((
    по приведенной методике проблема не решилась
    пришлось забросить использование словаря в отчете report.Dictionary.variables
    и полностью перейти на frVariables
    после этого заработало нормально
    Саша, ты можешь это прокоментировать?

    p.s. это не упрек, не наезд.. попытка выяснить причину, чтобы мне не наступить на эти грабли в следующий раз

  • отредактировано 20:09
    Попытаюсь. Дело в том, что переменные из data dictionary - это не совсем переменные. Это больше похоже на функцию, при обращении к которой вычисляется ее значение. Так вот, строковые переменные в словарь данных надо помещать аккуратно (об этом есть пара слов в faq ;)
    Переменные из frVariables - "чистые" переменные, туда можно помещать все что угодно.

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

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