<< Click to Display Table of Contents >> Объектная модель > Действия с репозиториями и сущностями > Info – метаданные сущности > Properties – метаданные свойства сущности GetFilter(), TryGetFilter() – получить значение фильтра по свойству |
Методы используются для получения значения фильтра в отображаемом списке по свойству. Доступны для свойств типа «Перечисление», «Ссылка», «Дата», «Логическое», «Вещественное», «Целое», «Идентификатор», «Строка».
Методы позволяют получить значения, по которым отфильтрован отображаемый список. У методов есть ограничения:
•методы возвращают значения не всех фильтров, а только фильтров на равенство;
•методы работают в списках проводника и списках, открытых в режиме выбора. Не работают в папках, вычисляемых списках и списках, полученных через функции с атрибутом Remote;
•для одного свойства сущности можно получить только один фильтр. Если на свойстве установлено несколько фильтров или фильтр объединяется с другим через операцию «ИЛИ», то ни одно значение фильтра не возвращается;
•в клиентском коде значения фильтров по свойству типа «Ссылка» не возвращаются.
Метод GetFilter()
Синтаксис
C# |
public DateTime? GetFilter(); public bool? GetFilter(); |
Возвращаемое значение
Значение фильтра. Тип возвращаемого значения зависит от типа свойства. Если значение отсутствует, то возвращается null.
Пример. Получение значения фильтра по свойству
Пользователю нужно указать город Ижевск в карточке сущности. В справочнике городов нет записи «Ижевск», но пользователь об этом не знает. Он открывает список городов для выбора и фильтрует список по региону «Удмуртская Республика». Увидев, что города Ижевска в списке нет, он создает запись «Ижевск» в справочнике городов. Пользователю будет удобно, если при создании записи города автоматически заполнится поле с регионом.
Чтобы это реализовать, нужно получить значение региона, по которому фильтруется список городов. Сделать это можно в событии создания города через информацию о свойстве.
// При создании города получить значение региона,
// по которому фильтруется список городов.
_obj.Region = Cities.Info.Properties.Region.GetFilter();
Если список городов не отфильтрован по региону, то в свойство Region запишется пустое значение. Чтобы этого избежать, используйте метод TryGetFilter().
Синтаксис
C# |
public bool TryGetFilter(DateTime? value); public bool TryGetFilter(string value); |
Параметры
value – значение фильтра. Тип параметра зависит от типа свойства.
Возвращаемое значение
True, если удалось получить значение фильтра.
Пример. Получение значения фильтра по свойству
// При создании города получить значение региона,
// по которому фильтруется список городов.
IRegion region;
if (Cities.Info.Properties.Region.TryGetFilter(out region))
_obj.Region = region;
© Компания Directum, 2024 |