Не работает свойство Visible и Shiftmode из события Onclickobject

......
отредактировано 01:43 Раздел: FastReport 4.0
Здравствуйте!
Помогите разрешить вопрос. Хочу сделать интерактивный отчет. В котором можно изменять свойства объектов через событие TfrxReport.OnClickObject в Предварительном просмотре. Все делаю как написано в "Руководстве программиста", но у меня что то не получается.
Например в отчете имеются 2 объекта TfrxMemoView.
Мемо1 имеет режим StretchMode(Растягивание)=smActualHeight. Под ним находиться Мемо2 имеет режим ShiftMode(смещения)=smAlways.
Далее смотрите комментарии в событии ниже:
procedure TForm1.frxReport1ClickObject(Sender: TfrxView;
  Button: TMouseButton; Shift: TShiftState; var Modified: Boolean);
begin
begin
  if Sender.Name = 'Memo1' then
  begin
    TfrxMemoView(Sender).color:=clRed; //Цвет меняется на красный как и задумывалось
    TfrxMemoView(Sender).Text :='A'+#13#10+#13#10+#13#10+'B'+#13#10+#13#10+#13#10+'C'; //Текст изменяться, высота Memo1 тоже изменяться НО МЕМО1 ПЕРЕКРЫВАЕТ МЕМО2. Тоесть Мемо2 не смещается как задумано. Почему?
    TfrxMemoView(Sender).Visible:=False; // Memo1 остается ВИДИМЫМ в отчете. Почему?
    Modified := True;
  end;
end;
Вобщем корректно работает только изменение Цвета и некоторые другие свойства объекта. Подскажите что я делаю не так?

Комментарии

  • xlaalaaxlaalaa Минск
    отредактировано 01:43
    Свойство TfrxMemoView.Visible обрабатывается в момент генерации отчета объектом Engine. Определяет вставлять ячейку в выходной отчет или нет. Когда отчет отображается на экране в окне пред просмотра, точнее когда работает OnPreviewClick уже поздно менять свойство Visible. Чтобы избавить от ненужных мемок в отчете по клику его придется перестроить полностью. Для этого воспользуйтесь свойством DrillDown. Программно перестройте отчет из дельфи. Для этого нужно добраться до метода Report.Preview.RefreshReport. С этим есть некоторые трудности, но если подумать их можно преодолеть.

    Не смещается поле по той же причине. Смещение вычисляет объект Engine при генерации отчета.

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

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