AutoPeriodDates(Calculation: IMsMethodCalculation;
Coord: IMsFormulaTransformCoord;
Var IdentificationAutoStartDate: DateTime;
Var IdentificationAutoEndDate: DateTime;
Var ForecastAutoStartDate: DateTime;
Var ForecastAutoEndDate: DateTime);
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 должны быть переменными. После выполнения метода они содержат результаты.
Для выполнения примера предполагается наличие контейнера моделирования с идентификатором «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;
После выполнения примера в окно консоли будут выведены границы периода расчета модели.
Для выполнения примера предполагается наличие контейнера моделирования с идентификатором «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;
После выполнения примера в окно консоли будут выведены границы периода расчета модели.
См. также: