функция FIELDISNULL

отредактировано 19:32 Раздел: FastReport 2.xx VCL
Здрасте! у меня FR 2.53, пытаюсь сделать такую проверку в скрипте
if (FIELDISNULL([Query1."field1"]))And
(FIELDISNULL([Query1."field2"]))And
(FIELDISNULL([Query1."field3"])) then text:='Нет значений'
else text:='Есть значения';
так вот, даже если в поле есть значение он всё равно выводит "Нет значений" ;)
В чём может быть проблема??
Заранее спасибо!

Комментарии

  • отредактировано 19:32
    Насколько я помню, квадратные скобки не нужны:
    if (FIELDISNULL('Query1."field1"'))And...
  • отредактировано 19:32
    Спасибо! убрал - всё заработало ... тока не понятно зачем их ставит генератор отчётов если с ними не работает ... ;)
  • отредактировано 19:32
    2 Димарик:
    написал:
    ... тока не понятно зачем их ставит генератор отчётов если с ними не работает ...

    Квадратные скобки возвращают значение выражения, которое в них заключено.

    Т.е. если S='5', то в результате возвратит 5. Если написать S, то это будет обычным текстом, т.е. будет видеть обычный текст.
    Функции FIELDISNULL в качестве параметра нужно передавать НАЗВАНИЕ поля, а не его значение !!!

    Пример на пальцах:
    if Query1.FieldByName('field1').Value=null then
    

    а вот то что у тебя получится с квадратными скобками:
    if Query1.FieldByName(Query1.FieldByName('field1').Value).Value=null then
    
  • отредактировано 19:32
    Теперь всё окончательно ясно!! ;) Спасибо!!

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

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