IPrxReport.SaveToStream

Синтаксис

SaveToStream(Stream: IIOStream; Mode: PrxReportSaveMode);

Параметры

Stream. Поток, в который будет сохранен регламентный отчет.

Mode. Режим сохранения отчета.

Описание

Метод SaveToStream сохраняет регламентный отчет в поток.

Комментарии

Сохранение регламентного отчета в поток может использоваться для передачи данных между отчетами, либо для сохранения отчета в таблицу репозитория. Регламентный отчет может быть сохранен в поле пользовательского типа. Более подробно работа с полями пользовательского типа описана в базе знаний в статье «Работа с полями, имеющими пользовательский тип данных».

Для загрузки регламентного отчета из потока используйте метод LoadFromStream.

Пример

Для выполнения примера предполагается наличие в репозитории таблицы с идентификатором «RepTable». В данной таблице созданы строковые поля с идентификаторами «REP_ID» и «REP_ID», предназначенные для хранения идентификатора и наименования соответственно. Также создано двоичное поле «REPORT», в котором хранятся сами регламентные отчеты.

Также в репозитории должен быть создан регламентный отчет с идентификатором «Report_1».

Sub UserProc;
Var
    MB: IMetabase;
    TableInst: IDatasetInstance;
    Cache: ICachedDataset;
    Fields: IDatasetInstanceFields;
    Report: IPrxReport;
    RepStream: IMemoryStream;
Begin
    MB := MetabaseClass.Active;
    //Таблица для сохранения рег.отчета
    TableInst := MB.ItemById("RepTable").Open(NullAs IDatasetInstance;
    Cache := TableInst.OpenCached;
    Fields := Cache.Fields;
    //Рег.отчет
    Report := MB.ItemById("Report_1").Bind As IPrxReport;
    Cache.Append;
    Fields.FindById("REP_ID").Value := Report.MetabaseObject.Id;
    Fields.FindById("REP_NAME").Value := Report.MetabaseObject.Name;
    //Поток, в который будет сохранен рег.отчет
    RepStream := New MemoryStream.Create;
    Report.SaveToStream(RepStream, PrxReportSaveMode.Full);
    //Сохранение содержимого потока в таблицу
    Fields.FindById("REPORT").Value := RepStream;
    Cache.Post;
    Dispose RepStream;
End Sub UserProc;

При выполнения примера в таблице будет создана новая запись. В полях будет сохранена информация о регламентном отчета, а также сам отчет. Сохранение рег.отчета в поле таблицы происходит через поток.

См. также:

IPrxReport