IValidationCrossFrequency.AggregationType

Синтаксис Fore

AggregationType: MsCollapseType;

Синтаксис Fore.NET

AggregationType: Prognoz.Platform.Interop.Ms.MsCollapseType;

Описание

Свойство AggregationType определяет тип агрегации данных.

Комментарии

Для задания сравниваемого уровня динамики используйте свойство IValidationCrossFrequency.FromLevel.

Пример Fore

Для выполнения примера в репозитории предполагается наличие базы данных временных рядов с идентификатором «TSDB_VALIDATION_PARAMETERS», содержащей правило валидации с идентификатором «VALIDATION».

Добавьте ссылки на системные сборки: Dimensions, Metabase, Ms.

Sub UserProc;
Var
    Mb: IMetabase;
    RubrKey: Integer;
    ValidObj: IMetabaseObject;
    ValidFilter: IValidationFilter;
    CrossFrequency: IValidationCrossFrequency;
    ComparisonValue: IValidationComparisonValue;
Begin
    Mb := MetabaseClass.Active;
    
// Получаем правило валидации
    RubrKey := Mb.GetObjectKeyById("TSDB_VALIDATION_PARAMETERS");
    ValidObj := Mb.ItemByIdNamespace(
"VALIDATION", RubrKey).Edit;
    ValidFilter := ValidObj 
As IValidationFilter;
    
// Задаем уровень динамики, к которому применяем правило
    ValidFilter.Level := DimCalendarLevel.Year;
    
// Указываем тип валидации
    ValidFilter.Kind := ValidationDetailsKind.CrossFrequency;
    
// Получаем параметры валидации «Сравнение уровней динамики»
    CrossFrequency := ValidFilter.Details As IValidationCrossFrequency;
    
// Задаем параметры сравнения
    ComparisonValue := CrossFrequency.ComparisonValue;
    ComparisonValue.ComparisonOperator := ValidationComparisonOperator.Less;
    ComparisonValue.Percentage := 
False;
    ComparisonValue.Value1 := 
0;
    
// Задаем сравниваемый уровень
    CrossFrequency.FromLevel := DimCalendarLevel.Quarter;
    
// Задаем тип агрегации
    CrossFrequency.AggregationType := MsCollapseType.Average;
    
// Очищаем область выполнения и фильтр валидации
    CrossFrequency.SelectionTargetData.Clear;
    CrossFrequency.SelectionFilter.Clear;
    
// Сохраняем правило
    ValidObj.Save;
End Sub UserProc;

В результате выполнения примера будет настроено правило валидации «равнение уровней динамики»: разница между средним значением годовой и квартальной динамики должно быть меньше нуля.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Ms;

Public Shared Sub Main(Params: StartParams);
Var
    Mb: IMetabase;
    RubrKey: uinteger;
    ValidObj: IMetabaseObject;
    ValidFilter: IValidationFilter;
    CrossFrequency: IValidationCrossFrequency;
    ComparisonValue: IValidationComparisonValue;
Begin
    Mb := Params.Metabase;
    // Получаем правило валидации
    RubrKey := Mb.GetObjectKeyById("TSDB_VALIDATION_PARAMETERS");
    ValidObj := Mb.ItemByIdNamespace["VALIDATION", RubrKey].Edit();
    ValidFilter := ValidObj As IValidationFilter;
    // Задаем уровень динамики, к которому применяем правило
    ValidFilter.Level := DimCalendarLevel.dclYear;
    // Указываем тип валидации
    ValidFilter.Kind := ValidationDetailsKind.vdkCrossFrequency;
    // Получаем параметры валидации «Сравнение уровней динамики»
    CrossFrequency := ValidFilter.Details As IValidationCrossFrequency;
    // Задаем параметры сравнения
    ComparisonValue := CrossFrequency.ComparisonValue;
    ComparisonValue.ComparisonOperator := ValidationComparisonOperator.vcoLess;
    ComparisonValue.Percentage := False;
    ComparisonValue.Value1 := 0;
    // Задаем сравниваемый уровень
    CrossFrequency.FromLevel := DimCalendarLevel.dclQuarter;
    // Задаем тип агрегации
    CrossFrequency.AggregationType := MsCollapseType.mctAverage;
    // Очищаем область выполнения и фильтр валидации
    CrossFrequency.SelectionTargetData.Clear();
    CrossFrequency.SelectionFilter.Clear();
    // Сохраняем правило
    ValidObj.Save();
End Sub;

См. также:

IValidationCrossFrequency