IAlgorithmSettings.PeriodControlEnd

Синтаксис

PeriodControlEnd: IAlgorithmPeriodControl;

Описание

Свойство PeriodControlEnd возвращает настройки даты окончания расчёта.

Пример

Для выполнения примера предполагается наличие в репозитории алгоритма расчёта с идентификатором ALGORITHM. В алгоритме расчёта должно быть добавлено не менее двух параметров и настроена дата окончания расчёта. Ко второму параметру привязан календарный справочник, в котором содержится атрибут с идентификатором END_DATE.

Добавьте ссылки на системные сборки: Algo, Dimensions, Metabase, Ms. Также добавьте ссылки на сборки, которые необходимы для работы с алгоритмами расчёта.

Sub UserProc;
Var
    MB: IMetabase;
    MObj, Dim: IMetabaseObjectDescriptor;
    Algo: ICalcObject;
    CalcAlgo: ICalcAlgorithm;
    Settings: IAlgorithmSettings;
    DataEnd: IAlgorithmPeriodControl;
    Ms: IMsProblem;
    MetaModel: IMsMetaModel;
    Params: IMsModelParams;
    ParamValues: IAlgorithmParameterValues;
    DimInst: IDimInstance;
    DimAttr: IDimAttributeInstance;
    ValueList: IAlgorithmParamValueList;
Begin
    MB := MetabaseClass.Active;
    // Получим алгоритм расчёта
    MObj := MB.ItemById("ALGORITHM");
    Algo := CalcObjectFactory.CreateCalcObject(MObj, True);
    CalcAlgo := Algo As ICalcAlgorithm;
    // Получим настройки периода расчёта алгоритма
    Settings := CalcAlgo.Settings;
    DataEnd := Settings.PeriodControlEnd;
    Debug.WriteLine(DataEnd.IsEnabled);
    // Проверим использование настроенной даты окончания расчёта
    If DataEnd.IsEnabled Then
        // Сбросим заданные параметры и зададим новые
        DataEnd.Reset;
        // Зададим второй параметр алгоритма расчёта в качестве даты окончания расчёта
        Ms := CalcAlgo.MsProblem;
        MetaModel := Ms.MetaModel;
        Params := MetaModel.Params;
        DataEnd.Parameter := Params.Item(1);
        // Получим коллекцию параметров алгоритма расчёта
        ParamValues := CalcAlgo.ParamValues;
        ValueList := ParamValues.Values;
        // Получим справочник второго параметра
        Dim := ValueList.Item(1).LinkedObject;
        DimInst := Dim.Open(NullAs IDimInstance;
        // Найдем атрибут с идентификатором «END_DATE»
        DimAttr := DimInst.Attributes.FindById("END_DATE");
        // Зададим полученный атрибут справочника
        DataEnd.Attribute := DimAttr.Attribute;
        // Зададим уровень календаря
        DataEnd.OffsetLevel := DimCalendarLevel.Day;
        // Включим отображение даты окончания расчёта на панели параметров
        DataEnd.Visible := True;
        // Сохраним изменения в алгоритме расчёта
        CalcAlgo.SaveObject;
    End If;
End Sub UserProc;

В результате выполнения примера будут сброшены заданные параметры даты окончания расчёта алгоритма и добавлены новые:

Заданная дата окончания расчёта алгоритма будет отображаться на панели параметров.

См. также:

IAlgorithmSettings