IAlgorithmSettings.PeriodControlStart

Синтаксис

PeriodControlStart: IAlgorithmPeriodControl;

Отсутствует;

Описание

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

Пример

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

Добавьте ссылку на пользовательскую сборку «Ядро алгоритма расчёта», которая содержится в компоненте «Алгоритмы расчёта», и ссылки на системные сборки: Algo, Dimensions, Metabase, Ms.

Sub UserProc;
Var
    
MB: IMetabase;
    MObj, Dim: IMetabaseObjectDescriptor;
    Algo: ICalcObject;
    CalcAlgo: ICalcAlgorithm;
    Settings: IAlgorithmSettings;
    Start: 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;
    
// Получим настройки даты начала расчёта
    Start := Settings.PeriodControlStart;
    
// Зададим первый параметр алгоритма расчёта в качестве даты начала расчёта
    Ms := CalcAlgo.MsProblem;
    MetaModel := Ms.MetaModel;
    Params := MetaModel.Params;
    Start.Parameter := Params.Item(
0);
    
// Получим коллекцию параметров алгоритма расчёта
    ParamValues := CalcAlgo.ParamValues;
    ValueList := ParamValues.Values;
    
// Получим справочник первого параметра
    Dim := ValueList.Item(0).LinkedObject;
    DimInst := Dim.Open(
NullAs IDimInstance;
    
// Найдем атрибут с идентификатором «START_DATE»
    DimAttr := DimInst.Attributes.FindById("START_DATE");
    
// Зададим полученный атрибут справочника
    Start.Attribute := DimAttr.Attribute;
    // Зададим уровень календаря
    Start.OffsetLevel := DimCalendarLevel.Day;
    
// Зададим смещение даты начала расчёта
    Start.OffsetValue := 2;
    
// Включим отображение даты начала расчёта на панели параметров
    Start.Visible := True;
    
// Выполним проверку на наличие изменений в настройках периода расчёта
    If Settings.IsDirty Then
        
// Сохраним изменения в алгоритме расчёта
        CalcAlgo.Save;
    
End If;
End Sub UserProc;

Не предусмотрен.

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

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

См. также:

IAlgorithmSettings