Переменные из списка

отредактировано 12:56 Раздел: FastReport 3.0
1. В коде Дельфи перед запуском отчета объявляю переменную и
присваиваю ей значение
frxReport1.Variables := '''yes''';
Далее в программе запускается дизайнер отчета - в списке переменных TestVar есть и значение у неё как положено - 'yes'
2. В скрипте отчета надо изменить значение TestVar
используя - Set(<TestVar>, '''no''');
Далее в скрипте пишем
ShowMessage(VarToStr(<TestVar>) + ' = ' + VarToStr(Get(<TestVar>)));
При выполнении скрипта видим в диалоге
yes = no
Если далее в скрипте требуется анализировать значение TestVar, то
при использовании выражения типа IF <TestVar> = 'yes' then
для вычисления будет использоваться значение, установленное в коде дельфи (if вернет истину), а если напишем IF Get(<TestVar>) = 'yes' then
будет использовано значение, присвоенное в скрипте и IF вернет ложь.

Если запросить значение Get(<TestVar>) ДО присвоения значения ф-цией
Set(), то получим null (и далее сообщение о неопознанном поле или переменной...).
Получается, что функции Set() и Get() работают со своими экземплярами переменных..., что совершенно не соотвествует документации.
Вопрос - как в скрипте правильно и гарантированно менять значения
списочных переменных. Или вообще их лучше не трогать...

Комментарии

  • отредактировано 12:56
    Метод Set принимает два параметра - имя переменной и ее значение. Если делать
    Set(<TestVar>, '''no''');
    то в качестве имени будет передано значение переменной. Правильно так:
    Set('TestVar', '''no''');
  • отредактировано 12:56
    AlexTZ написал:
    Метод Set принимает два параметра - имя переменной и ее значение.
    Александр, спасибо!
    Затмение нашло... самое настоящее... ведь в упор не видел кавычек в доке..
    Выходит я создавал новую переменную с именем значения существующей.
    ;) )

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

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