Метка по условию

отредактировано 08:47 Раздел: FastReport 3.0
Доброго времени суток.
Не получается сделать такую штуку:
в зависимости от содержания ячейки мне нужно печатать разные данные.
а именно - есть поле дата в датасете если оно содержит null то надо напечатать слово "бессрочный", а если там есть дата, то напечатать ее. причем в формате 25 январь 2005 г.

с помощью функции IIF не получается ([IIF(<frxDBDataset1."D_DOG_F">=null,'бессрочный',<frxDBDataset1."D_DOG_F">)]
либо вообще ничего не печатается, либо печатается 0.

создал 2 поля. одно "бессрочный", другое со ссылкой на нужное поле.
в обрботчике afterdata одного сделал такое
procedure Memo18OnAfterData(Sender: TfrxComponent);
begin
if <дата сдачи>=null then begin memo18.visible:=true;memo21.visible:=false;end;
if <дата сдачи><>null then begin memo18.visible:=false;memo21.visible:=true;end;
end;

печатается только поле 21 ( куда должен ссылаться датасет ) и выдает 30 декабрь 1899 г.

Комментарии

  • отредактировано December 2005
    Если в поле дата попробуйте вместо null:
    [IIF(<frxDBDataset1."D_DOG_F">=0,'бессрочный',<frxDBDataset1."D_DOG_F">)]
    А если строка, то:
    [IIF(<frxDBDataset1."D_DOG_F">='','бессрочный',<frxDBDataset1."D_DOG_F">)]
  • отредактировано 08:47
    написал:
    [IIF(<frxDBDataset1."D_DOG_F">=0,'бессрочный',<frxDBDataset1."D_DOG_F">)]
    ОГРОМНОЕ СПАСИБО. Это помогло. ;)
  • LexLex
    отредактировано 08:47
    скорее всего у тебя в
    frxReport.EngineOptions.ConvertNulls = True
  • отредактировано 08:47
    Lex написал:
    скорее всего у тебя в
    frxReport.EngineOptions.ConvertNulls = True
    точно. буду знать. то бишь если я его выключу ( false ) то можно будет использовать значения null ?
  • LexLex
    отредактировано 08:47
    написал:
    то можно будет использовать значения null ?
    Именно так, но это стоит делать лишь в том случае когда для тебя есть разница между Null и '' или 0 датой и т.д.

    Но при этом тебе прейдеться обрабатывать все поля на Null, а то может вылетить ошибка конвертации. ;)
  • отредактировано 08:47
    Спасибо за помощь.
    Для меня как раз нужно именно что бы 0 был.
    Просто надо знать ....

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

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