ILanerContext.LoadFromStream

Fore Syntax

LoadFromStream(Stream: IIOStream);

Fore.NET Syntax

LoadFromStream(Stream: System.IO.Stream);

Parameters

Stream. Stream.

Description

The LoadFromStream method loads the context from specified stream.

Comments

To save the context to the stream use the ILanerContext.SaveToStream method.

Fore Example

Executing this example requires a form containing:

The document with the OBJ_CONTEXT identifier, that contains the saved context, must be present in repository.

Add references to the Metabase, Io, Fore system assemblies. Example is a handler of the OnClick event for the button.

Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
    Mb: IMetabase;
    pContext: ILanerContext;
    ContextObject, LanerObject: IMetabaseObjectDescriptor;
    Stream: IIOStream;
    Laner: ILaner;
    Doc: IDocument;
    MemStream: IMemoryStream;
Begin
    Mb := MetabaseClass.Active;
// Context creation
    pContext := New LanerContext.Create;
// Context loading from the stream 
    ContextObject := Mb.ItemById("OBJ_CONTEXT");
    Doc := ContextObject.Edit As IDocument;
    Stream := Doc.GetAsStream;
    pContext.LoadFromStream(Stream);
// Start of workbooks loading to the context
    pContext.BeginLoad;
// The first workbook loading   
    Laner := UiErAnalyzer1.ErAnalyzer.Laner;
    If Not Laner.IsInContext Then
        pContext.Register(Laner);
    End If;
// Loading the workbooks ,which the first book depends on
    For Each LanerObject In Laner.Dependencies Do
        Laner := LanerObject.Bind As ILaner;
        If Not Laner.IsInContext Then
            pContext.Register(Laner);
        End If;
    End For;
// Loading the workbooks ,that depend on the first workbook
        For Each LanerObject In Laner.Dependents Do
        Laner := LanerObject.Bind As ILaner;
        If Not Laner.IsInContext Then
            pContext.Register(Laner);
        End If;
    End For;
// Completion of the workbooks to context loading
    pContext.EndLoad;
// Saving the context to stream
    MemStream := New MemoryStream.Create;
    pContext.SaveToStream(MemStream);
    Doc.LoadFromStream(MemStream);
    (Doc As IMetabaseObject).Save;
End Sub Button1OnClick;

After executing this example the context is loaded from the OBJ_CONTEXT document. After that the workbook, all the dependant books and the books the workbook depends on are added to the context. The resulting context is saved to the OBJ_CONTEXT document.

Fore.NET Example

Executing this example requires a .NET form containing:

Example is a handler of the Click event for the button.

Imports Prognoz.Platform.Interop.Laner;
Imports System.IO;
Imports Prognoz.Platform.Interop.KeFore;


Private Sub button2_Click(sender: System.Object; e: System.EventArgs);
Var
    Mb: IMetabase;
    pContext: ILanerContext;
    ContextObject, LanerObject: IMetabaseObjectDescriptor;
    Stream: Stream;
    Laner: ILaner;
    Doc: IDocument;
    MemStream: MemoryStream;
Begin
    Mb := Self.Metabase;
// Context creation   
    pContext := New LanerContext.Create();
// Context loading from the stream 
    ContextObject := Mb.ItemById["OBJ_CONTEXT"];
    Doc := ContextObject.Edit() As IDocument;
    Stream := Doc.GetAsStream();
    pContext.LoadFromStream(Stream);
// Start of workbooks loading to the context
    pContext.BeginLoad();
// The first workbook loading   
    Laner := uiErAnalyzerNet1.ErAnalyzer.ErAnalyzer.Laner;
    If Not Laner.IsInContext Then
        pContext.Register(Laner As LanerFactory);
    End If;
// Loading the workbooks ,which the first book depends on
    For Each LanerObject In Laner.Dependencies Do
        Laner := LanerObject.Bind() As ILaner;
        If Not Laner.IsInContext Then
            pContext.Register(Laner As LanerFactory);
        End If;
    End For;
// Loading the workbooks ,that depend on the first workbook
        For Each LanerObject In Laner.Dependents Do
        Laner := LanerObject.Bind() As ILaner;
        If Not Laner.IsInContext Then
            pContext.Register(Laner As LanerFactory);
        End If;
    End For;
// Completion of the workbooks to context loading
    pContext.EndLoad();
// Saving the context to stream
    MemStream := New MemoryStream.Create();
    pContext.SaveToStream(MemStream);
    Doc.LoadFromStream(MemStream);
    (Doc As IMetabaseObject).Save();
End Sub;

After executing this example the context is loaded from the OBJ_CONTEXT document. After that the workbook, all the dependant books and the books the workbook depends on are added to the context. The resulting context is saved to the OBJ_CONTEXT document.

See also:

ILanerContext