ScenarioKey: Integer;
Свойство ScenarioKey определяет ключ сценария, по которому должна быть рассчитана валидация.
По умолчанию ScenarioKey принимает значение «-1», т.е. валидация рассчитывается по фактическим данным (сценарий «Факт»).
Возможность расчета на сценарных данных доступна для валидаций, оперирующих данными, а не метаданными.
Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1», компонента LanerBox и компонента UiErAnalyzer с наименованием «UiErAnalyzer1», являющегося источником данных для LanerBox. В «UiErAnalyzer1» должна быть загружена рабочая область базы данных временных рядов «OBJ_FC». В базе данных временных рядов предполагается наличие фильтра валидации типа «Сравнение с числом» с идентификатором «OBJ_VALID_FILTER».
Добавьте ссылки на системные сборки «Metabase», «Ms», «Cubes», «Rds». Приведенный пример является обработчиком события «OnClick» для компонента «Button1».
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);;
Var
Mb: IMetabase;
RubrKey: Integer;
ValidObj: IMetabaseObject;
ValidFilter: IValidationFilter;
Level: IValidationLevel;
ComparisonValue: IValidationComparisonValue;
ValidExecSett: IValidationExecuteSettings;
ValidExecRun: IValidationExecRun;
DiagRep: IDiagnosticReport;
MetaAttrValList: IMsMetaAttributeValueList;
Rub: IRubricator;
Analyzer: IEaxAnalyzer;
Begin
Mb := MetabaseClass.Active;
RubrKey := Mb.GetObjectKeyById("OBJ_FC");
ValidObj := Mb.ItemByIdNamespace("OBJ_VALID_FILTER", RubrKey).Edit;
ValidFilter := ValidObj As IValidationFilter;
ValidFilter.Kind := ValidationDetailsKind.Level;
Level := ValidFilter.Details As IValidationLevel;
ComparisonValue := Level.ComparisonValue;
ComparisonValue.ComparisonOperator := ValidationComparisonOperator.More;
ComparisonValue.Percentage := False;
ComparisonValue.Value1 := -0.3;
Rub := Mb.ItemById("OBJ_FC").Bind As IRubricator;
MetaAttrValList := Level.TargetData;
MetaAttrValList.ScenarioKey := 1;
ValidObj.Save;
ValidExecSett := New ValidationExecuteSettings.Create;
Analyzer := UiErAnalyzer1.ErAnalyzer;
ValidExecSett.Laner := Analyzer.Laner;
ValidExecRun := ValidFilter.Execute(ValidExecSett);
DiagRep := New DiagnosticReport.Create;
DiagRep.Run := ValidExecRun;
DiagRep.EaxAnalyzer := Analyzer;
End Sub Button1OnClick;
После выполнения примера будет настроен фильтр валидации «Сравнение с числом»: фильтруются сценарные данные ряда больше «-0,3» (ключ сценария «1»). Данный фильтр будет выполнен для загруженной рабочей области.
См. также: