SaveToStream(Stream: IIOStream);
SaveToStream(Stream: System.IO.Stream);
Stream. Поток, в который будет сохраненена аналитическая панель.
Метод SaveToStream осуществляет сохранение аналитической панели в поток.
Для загрузки аналитической панели из потока используйте метод IAdhocReport.LoadFromStream.
Для выполнения примера предполагается наличие в репозитории аналитической панели с идентификатором «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.
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;
См. также: