IMsMetaModelVisualController.RemoveFactor

Синтаксис Fore

RemoveFactor(Model: IMsModel;
             Index: Integer;
             RemoveSimilar: Boolean;
             RemoveModel: Boolean): Boolean;

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

RemoveFactor(Model: Prognoz.Platform.Interop.Ms.IMsModel;
             Index: integer;
             RemoveSimilar: boolean;
             RemoveModel: boolean): boolean;

Параметры

Model. Внутренняя модель, из которой требуется удалить фактор;

Index. Индекс удаляемого фактора;

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

RemoveModel. Признак того, удалять ли модель, если в ней отсутствуют факторы.

Описание

Метод RemoveFactor удаляет указанный фактор из внутренней модели.

Комментарии

Доступные значения параметра RemoveSimilar:

Доступные значения параметра RemoveModel:

Если фактор удален успешно, то метод возвращает значение True.

Пример Fore

Для выполнения примера в репозитории должен присутствовать контейнер моделирования с идентификатором «MS», содержащий метамодель с идентификатором «META». Данная метамодель должна содержать внутреннюю БД временных рядов и модель.

Добавьте ссылки на системные сборки: Metabase, Ms.

Sub RemoveFactor;
Var
    mb: IMetabase;
    MsObj: IMetabaseObjectDescriptor;
    Meta: IMsMetaModel;
    MetaVisual: IMsMetaModelVisualController;
    SimpleModel: IMsModel;
    i: Integer;
    ChainEn: IMsCalculationChainEntries;
Begin
    mb := MetabaseClass.Active;
    // Получаем контейнер моделирования
    MsObj := mb.ItemById("MS");
    // Получаем метамодель
    Meta := mb.ItemByIdNamespace("META", MsObj.Key).Bind As IMsMetaModel;
    MetaVisual := Meta.VisualController;
    // Получаем модель
    ChainEn := Meta.CalculationChain;
    For i := 0 To ChainEn.Count - 1 Do
        If ChainEn.Item(i).Type = MsCalculationChainEntryType.Model Then
            SimpleModel := (ChainEn.Item(i) As IMsCalculationChainModel).Model;
        End If;
    End For;
    SimpleModel := (SimpleModel As IMetabaseObject).Edit As IMsModel;
    // Удаляем первый фактор
    If MetaVisual.RemoveFactor(SimpleModel, 0FalseFalseThen
        Debug.WriteLine("Удаление выполнено успешно");
    Else
        Debug.WriteLine("Фактор не был удален");
    End If;
    (SimpleModel As IMetabaseObject).Save;
End Sub RemoveFactor;

После выполнения процедуры из первой внутренней модели будет удален первый фактор, результат удаления будет выведен в окно консоли.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с необходимыми требованиями и результатом выполнения примера Fore.

Imports Prognoz.Platform.Interop.Ms;

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    MsObj: IMetabaseObjectDescriptor;
    Meta: IMsMetaModel;
    MetaVisual: IMsMetaModelVisualController;
    SimpleModel: IMsModel;
    i: Integer;
    ChainEn: IMsCalculationChainEntries;
Begin
    mb := Params.Metabase;
    // Получаем контейнер моделирования
    MsObj := mb.ItemById["MS"];
    // Получаем метамодель
    Meta := mb.ItemByIdNamespace["META", MsObj.Key].Bind() As IMsMetaModel;
    MetaVisual := Meta.VisualController;
    // Получаем модель
    ChainEn := Meta.CalculationChain;
    For i := 0 To ChainEn.Count - 1 Do
        If ChainEn.Item[i].Type = MsCalculationChainEntryType.mccetModel Then
            SimpleModel := (ChainEn.Item[i] As IMsCalculationChainModel).Model;
        End If;
    End For;
    SimpleModel := (SimpleModel As IMetabaseObject).Edit() As IMsModel;
    // Удаляем первый фактор
    If MetaVisual.RemoveFactor(SimpleModel, 0FalseFalseThen
        System.Diagnostics.Debug.WriteLine("Удаление выполнено успешно");
    Else
        System.Diagnostics.Debug.WriteLine("Фактор не был удален");
    End If;
    (SimpleModel As IMetabaseObject).Save();
End Sub;

См. также:

IMsMetaModelVisualController