FindByKey(AttributeKey: String): IMsMetaAttributeValue;
AttributeKey. Ключ атрибута, по которому осуществляется поиск.
Метод FindByKey осуществляет поиск атрибута в коллекции по заданному ключу. Ключ, по которому осуществляется поиск, передается посредством параметра AttributeKey.
Для выполнения примера предполагается наличие в репозитории базы данных временных рядов «OBJ_FC». В данной базе должен присутствовать фильтр валидации с идентификатором «OBJ_VALID_FILTER». «COUNTRY» - пользовательский атрибут базы данных временных рядов, ссылающийся на справочник.
Sub UserProc;
Var
Mb: IMetabase;
RubrKey: Integer;
ValidObj: IMetabaseObject;
ValidFilter: IValidationFilter;
Trend: IValidationTrend;
ValidExecSett: IValidationExecuteSettings;
ValidExecRun: IValidationExecRun;
MetaAttrValList: IMsMetaAttributeValueList;
MetaAttrFilter: IMsMetaAttributeFilter;
Rub: IRubricator;
MetaAttr: IMetaAttribute;
MetaAttrVal: IMsMetaAttributeValue;
Begin
Mb := MetabaseClass.Active;
RubrKey := Mb.GetObjectKeyById("OBJ_FC");
ValidObj := Mb.ItemByIdNamespace("OBJ_VALID_FILTER", RubrKey).Edit;
ValidFilter := ValidObj As IValidationFilter;
ValidFilter.Level := DimCalendarLevel.None;
ValidFilter.Kind := ValidationDetailsKind.Trend;
Trend := ValidFilter.Details As IValidationTrend;
Rub := Mb.ItemById("OBJ_FC").Bind As IRubricator;
MetaAttr := Rub.Facts.Attributes.FindById("COUNTRY");
MetaAttrValList := Trend.TargetData;
MetaAttrVal := MetaAttrValList.FindByKey(MetaAttr.Key);
If MetaAttrVal <> Null Then
MetaAttrVal.Value := 512;
Else
MetaAttrVal := MetaAttrValList.Add(MetaAttr);
End If;
MetaAttrValList := Trend.ComparatorData;
If MetaAttrValList.Item > 0 Then
MetaAttrValList.Clear;
End If;
MetaAttrVal := MetaAttrValList.Add(MetaAttr);
MetaAttrVal.Value := 419;
MetaAttrFilter := Trend.Filter;
MetaAttrFilter.Clear;
ValidObj.Save;
ValidExecSett := New ValidationExecuteSettings.Create;
ValidExecRun := ValidFilter.Execute(ValidExecSett);
End Sub UserProc;
После выполнения примера будет настроен фильтр валидации «Тренд»: тренд ряда, атрибут «COUNTRY» у которого равен «512», будет сравниваться с трендом ряда, атрибут «COUNTRY» у которого равен «419». Данный фильтр будет выполнен, результаты выполнения сохранены в БД.
См. также: