AggregationType: MsCollapseType;
AggregationType: Prognoz.Platform.Interop.Ms.MsCollapseType;
Свойство AggregationType определяет тип агрегации данных.
Для задания сравниваемого уровня динамики используйте свойство IValidationCrossFrequency.FromLevel.
Для выполнения примера в репозитории предполагается наличие базы данных временных рядов с идентификатором «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.
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;
См. также: