ILanerContext.LoadFromStream

Синтаксис

LoadFromStream(Stream: IIOStream);

Параметры

Stream. Поток.

Описание

Метод LoadFromStream загружает контекст из указанного потока.

Комментарии

Для выгрузки контекста в поток используйте метод ILanerContext.SaveToStream.

Пример

Для выполнения примера предполагается наличие формы, содержащей:

В репозитории должен присутствовать документ с идентификатором «OBJ_CONTEXT», содержащий сохраненный контекст.

Добавьте ссылки на системные сборки «Metabase», «Io», «Fore». Пример является обработчиком события OnClick для кнопки.

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;
// Создание контекста
    pContext := New LanerContext.Create;
// Загрузка контекста из потока 
    ContextObject := Mb.ItemById("OBJ_CONTEXT");
    Doc := ContextObject.Edit As IDocument;
    Stream := Doc.GetAsStream;
    pContext.LoadFromStream(Stream);
// Начало загрузки рабочих книг в контекст
    pContext.BeginLoad;
// Загрузка 1-й рабочей книги   
    Laner := UiErAnalyzer1.ErAnalyzer.Laner;
    If Not Laner.IsInContext Then
        pContext.Register(Laner);
    End If;
// Загрузка рабочих книг, от которых зависит 1-я книга
    For Each LanerObject In Laner.Dependencies Do
        Laner := LanerObject.Bind As ILaner;
        If Not Laner.IsInContext Then
            pContext.Register(Laner);
        End If;
    End For;
// Загрузка рабочих книг, которые зависят от 1-й книги
        For Each LanerObject In Laner.Dependents Do
        Laner := LanerObject.Bind As ILaner;
        If Not Laner.IsInContext Then
            pContext.Register(Laner);
        End If;
    End For;
// Завершение загрузки рабочих книг в контекст
    pContext.EndLoad;
// Сохранение контекста в потока
    MemStream := New MemoryStream.Create;
    pContext.SaveToStream(MemStream);
    Doc.LoadFromStream(MemStream);
    (Doc As IMetabaseObject).Save;
End Sub Button1OnClick;

После выполнения примера контекст будет загружен из документа «OBJ_CONTEXT». Затем в контекст будет добавлена рабочая книга, а также все зависимые книги и книги, от которых она зависит. Полученный контекст будет сохранен в документ «OBJ_CONTEXT».

См. также:

ILanerContext