SaveToStream

отредактировано 19:48 Раздел: FastReport 3.0
В файл сохранение происходит без проблем, а вот с потоками засада, вылазит "abstract error".
Пытаюсь воспроизвести по примеру создание композитного отчета, т.к. до перехода на 3шку в проекте было много таких отчетов, но не хочется для этого плодить сущности в виде файлов поэтому сохраняю в поток и из него же читаю:
var
  DataStream: TStream;
  ....
  begin
    ...
            frInvoice.SaveToStream(DataStream);
            frCompositeInvoice.LoadFromStream(DataStream);
   ...

Комментарии

  • Andrew_ShAndrew_Sh г.Минск
    отредактировано 19:48
    golkanavt написал:
    В файл сохранение происходит без проблем, а вот с потоками засада, вылазит "abstract error".
    Пытаюсь воспроизвести по примеру создание композитного отчета, т.к. до перехода на 3шку в проекте было много таких отчетов, но не хочется для этого плодить сущности в виде файлов поэтому сохраняю в поток и из него же читаю:
    var
      DataStream: TStream;
      ....
      begin
        ...
                frInvoice.SaveToStream(DataStream);
                frCompositeInvoice.LoadFromStream(DataStream);
       ...
    
    ;) <span style='color:red'><span style='font-size:14pt;line-height:100%'>TStream - абстрактный класс, поэтому нельзя создавать экземпляры этого класса</span></span>

    Вырезка из дельфийского HELP:


    TStream is an abstract or, in C++ terminology, pure virtual class. It should not be instantiated; it relies on abstract or pure virtual methods that must be overridden in descendant classes.


    Используйте одного из наследников TStream, в которых перегружены абстрактные методы класса TStream:
    TFileStream (for working with files)
    TStringStream (for manipulating in-memory strings)
    TMemoryStream (for working with a memory buffer)
    TBlobStream (for working with BLOB fields)
    TWinSocketStream (for reading and writing over a socket connection)
    TOleStream (for using a COM interface to read and write)
  • отредактировано 19:48
    я знаю. и незачем так орать, я и впервый раз неплохо слышал ;)
    при попытке использовать TMemoryStream ошибка возникает в методе
    LoadFromStream, ругается на 'Invalid file format'. Вот потому и решил обратиться сюда, чтобы выйти из мозговой затупы.
  • отредактировано 19:48
    все, вопрос решен, спасибо
  • Igorek3Igorek3 спамер
    отредактировано 19:48
    golkanavt написал:
    все, вопрос решен, спасибо
    И как ты его решил ? Если мона код проги.
  • отредактировано 19:48
    А в чем проблема то была?
    ток что попробовал, все прекрасно работает..
    var
      stream :TMemoryStream;
    begin
    stream := TMemoryStream.Create;
    frxReport1.SaveToStream(stream);
    // дальше куда хотим, туда и впихиваем.. хоть в файл, хоть в блоб...
    stream.SaveToFile('.\jopa.stream');
    stream.Free;
    frxReport1.ShowReport();
    end;
    

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

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