IsPeriod(StartDate: String; [EndDate: String = "SameDate";][CustomFrequency: MsFrequancy = 0])
IsPeriod(StartDate: string; EndDate: string;
CustomFrequency: Prognoz.Platform.Interop.Ms.MsFrequancy;
Context: Prognoz.Platform.Interop.Fore.IForeRuntimeContext):
object;
StartDate. Дата начала периода;
EndDate. Дата окончания периода. Необязательный параметр. Значение по умолчанию совпадает с датой начала периода. Данное значение возвращает метод IMsCustomTerm.SameDate;
CustomFrequency. Динамика, для которой формируются значения. Необязательный параметр. По умолчанию динамика не задана и совпадает с динамикой модели;
Context. Контекст. Применяется только в Fore.NET.
Метод IsPeriod возвращает фиктивную переменную, определяющую находится ли наблюдение в указанном периоде.
В рамках данного метода возможна реализация следующих фиктивных переменных:
разовый скачок. Из всех значений ряда нужно сделать акцент только на одном. Например, в ряде с месячной динамикой нужно выделить значение за июль 2008, тогда переменная будет иметь вид: IsPeriod ("2008M07");
скачок на отдельный период. Из всех значений ряда нужно сделать акцент только на тех значениях, которые попадают в указанный диапазон. Например, в ряде с месячной динамикой нужно выделить значения c июля 2008 по июль 2009, тогда переменная будет иметь вид: IsPeriod ("2008M07","2009M07");
скачок начиная с конкретной даты и до конца. Например, в ряде с месячной динамикой нужно выделить значения с июля 2008, тогда переменная будет иметь вид: IsPeriod ("2008M07",NoDate);
скачок до конкретной даты. Например, в ряде с месячной динамикой нужно выделить значения с начала наблюдений до июля 2008, тогда оператор будет иметь вид: IsPeriod (NoDate,"2008M07").
Для выполнения примера предполагается наличие контейнера моделирования с идентификатором «CONT_MODEL», содержащего модель детерминированного уравнения с идентификатором «DUMMIES_DETERM». Добавьте ссылки на системные сборки «Metabase», «Ms».
Sub UserProc;
Var
mb: IMetabase;
MsDescr: IMetabaseObjectDescriptor;
Model: IMsModel;
Transf: IMsFormulaTransform;
Determ: IMsDeterministicTransform;
Begin
mb := MetabaseClass.Active;
MsDescr := mb.ItemById("CONT_MODEL");
Model := mb.ItemByIdNamespace("DUMMIES_DETERM", MsDescr.Key).Edit As IMsModel;
Transf := Model.Transform;
Determ := Transf.FormulaItem(0).Method As IMsDeterministicTransform;
Determ.Expression.AsString := "IsPeriod(""" + "2000A" + """,NoDate)";
(Model As IMetabaseObject).Save;
End Sub UserProc;
После выполнения примера в уравнении модели будут использоваться фиктивные переменные IsPeriod и NoDate. Фиктивная переменная будет выделять значения с 2000 года и до конца периода идентификации.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Ms;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
MsDescr: IMetabaseObjectDescriptor;
Model: IMsModel;
Transf: IMsFormulaTransform;
Determ: IMsDeterministicTransform;
Begin
mb := Params.Metabase;
MsDescr := mb.ItemById["CONT_MODEL"];
Model := mb.ItemByIdNamespace["DUMMIES_DETERM", MsDescr.Key].Edit() As IMsModel;
Transf := Model.Transform;
Determ := Transf.FormulaItem[0].Method As IMsDeterministicTransform;
Determ.Expression.AsString := "IsPeriod(""" + "2000A" + """,NoDate)";
(Model As IMetabaseObject).Save();
End Sub;
См. также: