IMsModelPeriod.AutoPeriodDates

Синтаксис Fore

AutoPeriodDates(Calculation: IMsMethodCalculation;
    Coord: IMsFormulaTransformCoord;
    Var IdentificationAutoStartDate: DateTime;
    Var IdentificationAutoEndDate: DateTime;
    Var ForecastAutoStartDate: DateTime;
    Var ForecastAutoEndDate: DateTime);

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

AutoPeriodDates(Calculation: Prognoz.Platform.Interop.Ms.IMsMethodCalculation;
    Coord: Prognoz.Platform.Interop.Ms.IMsFormulaTransformCoord;
    Var IdentificationAutoStartDate: System.DateTime;
    Var IdentificationAutoEndDate: System.DateTime;
    Var ForecastAutoStartDate: System.DateTime;
    Var ForecastAutoEndDate: System.DateTime);

Параметры

Calculation. Настройки, необходимые при расчете модели.

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

IdentificationAutoStartDate. Начало идентификации.

IdentificationAutoEndDate. Окончание идентификации.

ForecastAutoStartDate. Начало прогнозирования.

ForecastAutoEndDate. Окончание прогнозирования.

Описание

Метод AutoPeriodDates возвращает границы периода расчета модели, если используются условия для вычисления дат начала/окончания периодов идентификации и прогнозирования.

Комментарии

Признак использования условий для вычисления границ периода расчета модели возвращает свойство IMsModel.UseAutoPeriod.

Параметры IdentificationAutoStartDate, IdentificationAutoEndDate, ForecastAutoStartDate и ForecastAutoEndDate должны быть переменными. После выполнения метода они содержат результаты.

Пример Fore

Для выполнения примера предполагается наличие контейнера моделирования с идентификатором «CONT_MODEL», содержащего модель с идентификатором «MODEL». Границы периода расчета модели определяются условиями. Добавьте ссылки на системные сборки «Metabase», «Ms».

Sub UserProc;
Var
    mb: IMetabase;
    MsKey: Integer;
    Model: IMsModel;
    ModelPeriod: IMsModelPeriod;
    Calc: IMsMethodCalculation;
    Transform: IMsFormulaTransform;
    Coord: IMsFormulaTransformCoord;
    IdentStart, IdentEnd, ForeStart, ForeEnd: DateTime;
Begin
    mb := MetabaseClass.Active;
    MsKey := mb.ItemById("CONT_MODEL").Key;
    Model := mb.ItemByIdNamespace("MODEL", MsKey).Bind As IMsModel;
    ModelPeriod := Model.Period;
    If Model.UseAutoPeriod Then
        Calc := Model.CreateCalculation As IMsMethodCalculation;
        Transform := Model.Transform;
        Coord := Transform.CreateCoord(Transform.Outputs.Item(0));
        ModelPeriod.AutoPeriodDates(Calc, Coord, IdentStart, IdentEnd, ForeStart, ForeEnd);
        Debug.WriteLine("Начало идентификации: " + IdentStart.ToString);
        Debug.WriteLine("Окончание идентификации: " + IdentEnd.ToString);
        Debug.WriteLine("Начало прогнозирования: " + ForeStart.ToString);
        Debug.WriteLine("Окончание прогнозирования: " + ForeEnd.ToString);
    End If;
End Sub UserProc;

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

Пример Fore.NET

Для выполнения примера предполагается наличие контейнера моделирования с идентификатором «CONT_MODEL», содержащего модель с идентификатором «MODEL».

Imports Prognoz.Platform.Interop.Ms;

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    MsKey: uinteger;
    Model: IMsModel;
    ModelPeriod: IMsModelPeriod;
    Calc: IMsMethodCalculation;
    Transform: IMsFormulaTransform;
    Coord: IMsFormulaTransformCoord;
    IdentStart, IdentEnd, ForeStart, ForeEnd: DateTime;
Begin
    mb := Params.Metabase;
    MsKey := mb.ItemById["CONT_MODEL"].Key;
    Model := mb.ItemByIdNamespace["MODEL", MsKey].Bind() As IMsModel;
    ModelPeriod := Model.Period;
    If Model.UseAutoPeriod Then
        Calc := Model.CreateCalculation() As IMsMethodCalculation;
        Transform := Model.Transform;
        Coord := Transform.CreateCoord(Transform.Outputs.Item[0]);
        ModelPeriod.AutoPeriodDates(Calc, Coord, Var IdentStart, Var IdentEnd, Var ForeStart, Var ForeEnd);
        System.Diagnostics.Debug.WriteLine("Начало идентификации: " + IdentStart.ToString());
        System.Diagnostics.Debug.WriteLine("Окончание идентификации: " + IdentEnd.ToString());
        System.Diagnostics.Debug.WriteLine("Начало прогнозирования: " + ForeStart.ToString());
        System.Diagnostics.Debug.WriteLine("Окончание прогнозирования: " + ForeEnd.ToString());
    End If;
End Sub;

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

См. также:

IMsModelPeriod