IRdsDictionaryElementsSearch.SelectSearchValue

Синтаксис Fore

SelectSearchValue: RdsSelectSearchValue;

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

SelectSearchValue: Prognoz.Platform.Interop.Rds.RdsSelectSearchValue;

Описание

Свойство SelectSearchValue определяет условие поиска по значению.

Комментарии

Для получения массива ключей всех элементов, удовлетворяющих условиям поиска, используйте метод IRdsDictionaryElementsSearch.FindAll.

Пример Fore

Для выполнения примера предполагается наличие в репозитории табличного справочника НСИ с идентификатором «DIM».

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

Sub UserProc;
Var
    DictInst: IRdsDictionaryInstance;
    Search: IRdsDictionaryElementsSearch;
    Cond: IOrmCondition;
Begin
    DictInst := MetabaseClass.Active.ItemById("DIM").Open(NullAs IRdsDictionaryInstance;
    DictInst.FetchAll := True;
    Search := DictInst.CreateSearch;
    // Настроим поиск по значению в таблице справочника
    Search.SelectSearchValue := RdsSelectSearchValue.Value;
    Cond := Search.Condition.Conditions.Add;
    // Выберем атрибут для поиска и настроим условия поиска
    Cond.AttributeName := DictInst.Attributes.Item(4).Id;
    Cond.Operator_ := OrmComparisonOperator.Equal;
    Cond.Value := 3
    // Выведем количество найденных элементов
    Debug.WriteLine("Количество элементов, удовлетворяющих условиям поиска: " + 
        Search.FindAll.Count.ToString);
End Sub UserProc;

В результате выполнения примера произведен поиск по значению в таблице справочника. В окно консоли выведено количество найденных элементов.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Orm;
Imports Prognoz.Platform.Interop.Rds;

Public Shared Sub Main(Params: StartParams);
Var
    DictInst: IRdsDictionaryInstance;
    Search: IRdsDictionaryElementsSearch;
    Cond: IOrmCondition;
Begin
    DictInst := Params.Metabase.ItemById["DIM"].Open(NullAs IRdsDictionaryInstance;
    DictInst.FetchAll := True;
    Search := DictInst.CreateSearch();
    // Настроим поиск по значению в таблице справочника
    Search.SelectSearchValue := RdsSelectSearchValue.rssvValue;
    Cond := Search.Condition.Conditions.Add();
    // Выберем атрибут для поиска и настроим условия поиска
    Cond.AttributeName := DictInst.Attributes.Item[4].Id;
    Cond.Operator := OrmComparisonOperator.ocoEqual;
    Cond.Value := 3
    // Выведем количество найденных элементов
    System.Diagnostics.Debug.WriteLine("Количество элементов, удовлетворяющих условиям поиска: " + 
    Search.FindAll().Count.ToString());
End Sub;

См. также:

IRdsDictionaryElementsSearch