У Tfrxpictureview Не сохраняется Tagstr

отредактировано 03:06 Раздел: FastReport 4.0
В отчете 4 Band - Hrader, Master, Footer и Footer-Child.
На Footer - лежит TfrxPictureView.
В событии TfrxPictureView.OnBeforePrint устанавливаю TfrxPictureView.TagStr='ddddd'.
Потом в Footer-Child.OnBeforePrint анализирую TfrxPictureView.TagStr. Он оказывается =''.
Причем с Memo все нормально.

Комментарии

  • gpigpi
    отредактировано 03:06
    C Мемо будет так же, т.к. в TagStr могут быть выражения и поэтому первоначальное значение TagStr сначала сохраняется
    procedure TfrxView.BeforePrint;
    begin
      inherited;
      FTempTag := FTagStr;
      FTempURL := FURL;
      if Report <> nil then
      begin
    //    Report.sel
        Report.SelfValue := Self;
      end;
    end;
    а потом восстанавливается
    procedure TfrxView.AfterPrint;
    begin
      inherited;
      FTagStr := FTempTag;
      FURL := FTempURL;
    end;
    Т.е. TagStr нужно менять до вызова OnBeforePrint объекта, у которого меняется TagStr
    Ну, или править исходники
    procedure TfrxView.AfterPrint;
    begin
      inherited;
      if FTempTag <> '' then FTagStr := FTempTag;
      FURL := FTempURL;
    end;
  • gpigpi
    отредактировано 03:06
    Такой вариант тоже работать не будет:
    procedure TfrxView.AfterPrint;
    begin
      inherited;
      if FTempTag <> '' then FTagStr := FTempTag;
      FURL := FTempURL;
    end;
    Нужно отключать вычисление выражений
    procedure TfrxView.AfterPrint;
    begin
      inherited;
      //FTagStr := FTempTag;
      FURL := FTempURL;
    end;
    Попробуйте также использовать свойство Description

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