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