IAdhocReport.SaveToStream

Синтаксис Fore

SaveToStream(Stream: IIOStream);

Синтаксис Fore.NET

SaveToStream(Stream: System.IO.Stream);

Параметры

Stream. Поток, в который будет сохраненена аналитическая панель.

Описание

Метод SaveToStream осуществляет сохранение аналитической панели в поток.

Комментарии

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

Пример Fore

Для выполнения примера предполагается наличие в репозитории аналитической панели с идентификатором «ADHOC».

Добавьте ссылки на системные сборки: Adhoc, IO и Metabase.

Sub UserProc;
Var
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
    AdhocReport: IAdhocReport;
    Stream: IMemoryStream;
Begin
    MB := MetabaseClass.Active;
    AdhocReport := MB.ItemById("ADHOC").Bind As IAdhocReport;
    // Сохраним отчет в поток
    Stream := New MemoryStream.Create;
    AdhocReport.SaveToStream(Stream);
    // Создадим аналичическую панель
    CrInfo := MB.CreateCreateInfo;
    CrInfo.ClassID := MetabaseObjectClass.KE_ADHOC_REPORT;
    CrInfo.Id := "NEW_ADHOC";
    CrInfo.Name := "Новая аналитическая панель";
    CrInfo.Parent := MB.Root;
    AdhocReport := MB.CreateObject(CrInfo).Edit As IAdhocReport;
    // Загрузим отчет из потока в аналитическую панель
    AdhocReport.LoadFromStream(Stream);
    (AdhocReport As IMetabaseObject).Save;
    Dispose Stream;
End Sub UserProc;

В результате выполнения примера отчет с идентификатором «ADHOC» был сохранен в поток. Была создана новая аналитическая панель с идентификатором «NEW_ADHOC», в которую из потока был загружен отчет.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.AdHoc;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.ForeIO;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
    AdhocReport: IAdhocReport;
    Stream: MemoryStream;
Begin
    MB := Params.Metabase;
    AdhocReport := MB.ItemById["ADHOC"].Bind() As IAdhocReport;
    // Сохраним отчет в поток
    Stream := New MemoryStream.Create();
    AdhocReport.SaveToStream(Stream);
    // Создадим аналичическую панель
    CrInfo := MB.CreateCreateInfo();
    CrInfo.ClassID := MetabaseObjectClass.KE_ADHOC_REPORT As Int32;
    CrInfo.Id := "NEW_ADHOC";
    CrInfo.Name := "Новая аналитическая панель";
    CrInfo.Parent := MB.Root;
    AdhocReport := MB.CreateObject(CrInfo).Edit() As IAdhocReport;
    // Загрузим отчет из потока в аналитическую панель
    AdhocReport.LoadFromStream(Stream);
    (AdhocReport As IMetabaseObject).Save();
    Dispose Stream;
End Sub;

См. также:

IAdhocReport