IMsModel.AutoName

Синтаксис Fore

AutoName: Boolean;

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

AutoName: boolean;

Описание

Свойство AutoName определяет, генерировать ли наименование модели автоматически.

Комментарии

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

Пример Fore

Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «MODEL_SPACE». В контейнере должна присутствовать модель с идентификатором «MODEL_LIN».

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

Sub UserProc;
Var
    mb: IMetabase;
    DescrCM: IMetabaseObjectDescriptor;
    pModel: IMsModel;
    pGen: IMsModelStringGenerator;
Begin
    mb := MetabaseClass.Active;
    DescrCM := mb.ItemById("MODEL_SPACE");
    pModel := mb.ItemByIdNamespace("MODEL_LIN", DescrCM.Key).Edit As IMsModel;
    Debug.WriteLine("Наименование модели до генерации: '" + (pModel As IMetabaseObject).Name + "'");
    pModel.AutoName := True;
    pModel.UseModelPeriod := True;
    pGen := pModel.CreateStringGenerator;
    pGen.ShowEstimatedCoeffs := False;
    pGen.ShowFullVariableNames := True;
    pGen.HideModelPeriods := False;
    Debug.WriteLine("Наименование модели с полными наименованиями " +
        "переменных и периодом расчёта: '" + pGen.Execute + "'");
    pGen.ShowFullVariableNames := False;
    pGen.HideModelPeriods := True;
    Debug.WriteLine("Наименование модели с наименованиями элементов " +
        "выражения и без периода расчёта: '" + pGen.Execute + "'");
    (pModel As IMetabaseObject).Save;
End Sub UserProc;

После выполнения примера наименование модели будет генерироваться автоматически. В окно консоли будет выведено наименование модели до и после автоматической генерации по различным параметрам. Например:

Наименование модели до генерации: 'MODEL_LIN'
Наименование модели с полными наименованиями переменных и периодом расчёта: 'Уровень цен[t] = A0 + A1*Цены на газ[t] + A2*Сезонные колебания[t] + [AR(1)=A3], (Начало данных)-(От окончания идентификации+10)'
Наименование модели с наименованиями элементов выражения и без периода расчёта: 'Y = A0 + A1*X1 + A2*X2 + [AR(1)=A3]'

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Ms;

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    DescrCM: IMetabaseObjectDescriptor;
    pModel: IMsModel;
    pGen: IMsModelStringGenerator;
Begin
    mb := Params.Metabase;
    DescrCM := mb.ItemById["MODEL_SPACE"];
    pModel := mb.ItemByIdNamespace["MODEL_LIN", DescrCM.Key].Edit() As IMsModel;
    System.Diagnostics.Debug.WriteLine("Наименование модели до генерации: '" + (pModel As IMetabaseObject).Name + "'");
    pModel.AutoName := True;
    pModel.UseModelPeriod := True;
    pGen := pModel.CreateStringGenerator();
    pGen.ShowEstimatedCoeffs := False;
    pGen.ShowFullVariableNames := True;
    pGen.HideModelPeriods := False;
    System.Diagnostics.Debug.WriteLine("Наименование модели с полными наименованиями " +
        "переменных и периодом расчёта: '" + pGen.Execute() + "'");
    pGen.ShowFullVariableNames := False;
    pGen.HideModelPeriods := True;
    System.Diagnostics.Debug.WriteLine("Наименование модели с наименованиями элементов " +
        "выражения и без периода расчёта: '" + pGen.Execute() + "'");
    (pModel As IMetabaseObject).Save();
End Sub;

См. также:

IMsModel