Я это делал прям в коде отчета на событие поля OnAfterData для поля.
Если отображение поля связано со значением поля, то это легко. Просто пишем условие отображения этого поля в коде отчета.
Если условие как-то сложно определяется (но оно все равно должно быть как-то через значения датасета, привязанного к отчету), то я в датасете создавал вычисляемое поле, в него соответсвенно ставил 1, если поле надо было выводить, и 0, если нет. В начале отчета создавал или где-то еще, но чтобы было перед тем полем, которое надо отобразить, ставил Memo-поле с шириной 0 (чтобы его не было видно) и значение ставил ему то вычисляемое поле, которое создал. А на событии поля OnAfterData поставить обработчик и в зависимости от этого значения отображать или не отображать элемент отчета.
Костыляво, но работает. Сам бы не прочь узнать как надо правильно сделать.
Владимир, управляйте видимостью полей в коде самого отчета. Например, в теле функции обработки события OnBeforePrint.
Пример реализации:
procedure PageOnBeforePrint(Sender: TfrxComponent);
begin
if<ds_ReportTaskList."ShowInScheduler">=0 then
begin
Memo1.Visible:=false;
end
else
begin
Memo1.Visible:=true;
end
end;
"Тюльпа Владимир" написал:Я так и сделал. Одно непонятно:
Запись Memo1.Visible := false; вызывает ошибку кодопреобразования, пришлось "схитрить":
Владимир, очень странно. Ранее с такой ситуацией не сталкивалось (да и сейчас не смогла воспроизвести).
Правильно ли я понимаю, что задача со скрытием полей в отчете решена?