ILanerContext.CreateCopy

Синтаксис Fore

CreateCopy(Laner: ILaner): IMetabaseObjectDescriptor;

Синтаксис Fore.NET

CreateCopy(Laner: Prognoz.Platform.Interop.Laner.ILaner): Prognoz.Platform.Interop.Metabase.IMetabaseObjectDescriptor;

Параметры

Laner. Рабочая книга.

Описание

Метод CreateCopy создает копию указанной рабочей книги.

Комментарии

Рабочая книга может использоваться только в одном контексте. Для регистрации рабочей книги в нескольких контекстах используются её копии.

При копировании рабочей книги внутри одного контекста все формулы, использующие ряды из других рабочих книг, будут сохранены. При копировании рабочей книги между разными контекстами теряются формулы, содержащие зависимости от других рабочих книг.

Пример Fore

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

Также предполагается наличие переменой «pContext», содержащей контекст.

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

Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
    pContext: ILanerContext;
    Laner: ILaner;
    LanerObject: IMetabaseObjectDescriptor;
Begin
    pContext.BeginLoad;
    Laner := UiErAnalyzer1.ErAnalyzer.Laner;
    If Not Laner.IsInContext Then
        pContext.Register(Laner);
    Else
        LanerObject := pContext.CreateCopy(Laner);
        pContext.Register((LanerObject As IEaxAnalyzer).Laner);
        pContext.EndLoad;
    End If;
End Sub Button1OnClick;

После выполнения примера рабочая книга будет зарегистрирована в контексте. Если она уже содержится в контексте, то будет зарегистрирована её копия.

Пример Fore.NET

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

Пример является обработчиком события Click для кнопки.

Imports Prognoz.Platform.Interop.Laner;
Imports Prognoz.Platform.Interop.Express;

Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
    pContext: ILanerContext;
    Laner: ILaner;
    LanerObject: IMetabaseObjectDescriptor;
Begin
    pContext.BeginLoad();
    Laner := uiErAnalyzerNet1.ErAnalyzer.ErAnalyzer.Laner;
    If Not Laner.IsInContext Then
        pContext.Register(Laner As LanerFactory);
    Else
        LanerObject := pContext.CreateCopy(Laner As LanerFactory);
        pContext.Register((LanerObject As IEaxAnalyzer).Laner);
        pContext.EndLoad();
    End If;
End Sub;

После выполнения примера рабочая книга будет зарегистрирована в контексте. Если она уже содержится в контексте, то будет зарегистрирована её копия.

См. также:

ILanerContext