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 the 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;
// Create context
    pContext := New LanerContext.Create;
// Load context 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;
// Load the first workbook   
    Laner := UiErAnalyzer1.ErAnalyzer.Laner;
    If Not Laner.IsInContext Then
        pContext.Register(Laner);
    End If;
// Load the workbooks on which the first book depends 
    For Each LanerObject In Laner.Dependencies Do
        Laner := LanerObject.Bind As ILaner;
        If Not Laner.IsInContext Then
            pContext.Register(Laner);
        End If;
    End For;
// Load 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;
// Complete the loading of workbooks to context
    pContext.EndLoad;
// Save the context to stream
    MemStream := New MemoryStream.Create;
    pContext.SaveToStream(MemStream);
    Doc.LoadFromStream(MemStream);
    (Doc As IMetabaseObject).Save;
End Sub Button1OnClick;

After executing the 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 the 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;
// Create a context   
    pContext := New LanerContext.Create();
// Load context from the stream 
    ContextObject := Mb.ItemById["OBJ_CONTEXT"];
    Doc := ContextObject.Edit() As IDocument;
    Stream := Doc.GetAsStream();
    pContext.LoadFromStream(Stream);
// Start loading of workbooks to the context
    pContext.BeginLoad();
// Load the first workbook   
    Laner := uiErAnalyzerNet1.ErAnalyzer.ErAnalyzer.Laner;
    If Not Laner.IsInContext Then
        pContext.Register(Laner As LanerFactory);
    End If;
// Load the workbooks on which the first book depends
    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;
// Load the workbooks depending 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;
// Complete loading of the workbooks to context
    pContext.EndLoad();
// Save the context to stream
    MemStream := New MemoryStream.Create();
    pContext.SaveToStream(MemStream);
    Doc.LoadFromStream(MemStream);
    (Doc As IMetabaseObject).Save();
End Sub;

After executing the 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