LoadFromStream(Stream: IIOStream);
LoadFromStream(Stream: System.IO.Stream);
Stream. Поток, содержащий регламентный отчет.
Метод LoadFromStream загружает регламентный отчет из потока, передаваемого посредством параметра Stream.
Регламентный отчет в поток может быть сохранен с помощью метода SaveToStream, либо загружен из пользовательского поля таблицы. Более подробно работа с полями пользовательского типа описана в базе знаний в статье «Работа с полями, имеющими пользовательский тип данных».
Для выполнения примера предполагается наличие в репозитории:
регламентного отчёта с идентификатором «REPORT»;
формы, содержащей компонент Button с наименованием «Button1», ReportBox с наименованием «ReportBox1» и компонент UiReport с наименованием «UiReport1». Укажите компонент «UiReport1» в качестве источника данных для компонента «ReportBox1».
Добавьте ссылки на системные сборки: Fore, Io, Metabase.
Пример является обработчиком события OnClick для компонента «Button1».
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
MB: IMetabase;
Report: IPrxReport;
RepStream: IIOStream;
Begin
MB := MetabaseClass.Active;
RepStream := New MemoryStream.Create;
//Открытие регламентного
отчета
Report := MB.ItemById("REPORT").Edit As IPrxReport;
Report.SaveToStream(RepStream, PrxReportSaveMode.DefinitionOnly);
RepStream.Position := 0;
Report.LoadFromStream(RepStream);
//Вывод регламентного отчета в компонент на форме
UiReport1.OperationMode := UiMetabaseObjectOperationMode.External;
UiReport1.Active := True;
UiReport1.Instance := Report;
Dispose RepStream;
End Sub Button1OnClick;
При нажатии на кнопку с помощью метода LoadFromStream из потока RepStream в компонент «UiReport1» будет выгружен регламентный отчёт.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore. Вместо компонентов Fore используйте их Fore.NET аналоги.
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.KeFore;
Imports System.IO;
…
Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
MB: IMetabase;
Report: IPrxReport;
RepStream: Stream;
Begin
MB := Self.Metabase;
RepStream := New MemoryStream.Create();
//Открытие регламентного отчета
Report := MB.ItemById["REPORT"].Edit() As IPrxReport;
Report.SaveToStream(RepStream, PrxReportSaveMode.prsmDefinitionOnly);
RepStream.Position := 0;
Report.LoadFromStream(RepStream);
//Вывод регламентного отчета в компонент на форме
uiReportNet1.ReportUi.OperationMode := UiMetabaseObjectOperationMode.oomExternal;
uiReportNet1.Active := True;
uiReportNet1.ReportUi.Instance := Report;
RepStream := Null;
End Sub;
См. также: