<< Click to Display Table of Contents >> Разработка > Элементы разработки > Типы сущностей > Списки Аргумент _filter |
Текущее состояние панели фильтрации хранится в аргументе _filter. Поэтому в обработчиках событий аргумент используется для обращения к панели фильтрации и ее элементам. Например, аргумент применяется в обработчиках событий Фильтрация для списков, а также в обработчиках событий Получение данных и Проверка фильтра для папок.
С аргументом _filter связана настройка фильтрации записей по критериям. Критериям соответствуют свойства, которые связаны с добавленными на панель фильтрации контролами. Поэтому, например, при фильтрации списка входящих документов список доступных свойств будет один, при фильтрации договоров – другой и т.д.
Критерии фильтрации для списка «Входящие документы»
Свойства
Имя |
Тип |
Описание |
---|---|---|
Counterparty |
Контрагент |
|
DateRangeFrom |
Nullable<DateTime> |
Период дат с… |
DateRangeTo |
Nullable<DateTime> |
Период дат по… |
Department |
Подразделение |
|
DocumentKind |
Вид документа |
|
DocumentRegister |
Журнал регистрации |
|
Last90Days |
bool |
Последние 90 дней |
LastMonth |
bool |
Последние 30 дней |
LastWeek |
bool |
Последние 7 дней |
ManualPeriod |
bool |
Произвольный период, введенный вручную |
NotRegistred |
bool |
Статус документа «Зарегистрирован» |
Registred |
bool |
Статус документа «Не зарегистрирован» |
Чтобы проверить, включена ли панель фильтрации, в начало обработчика события добавляется проверка вида:
if (_filter == null)
return query;
Пример. Фильтрация списка входящих документов по критериям
public override IQueryable<T> Filtering(IQueryable<T> query, Sungero.Domain.FilteringEventArgs e)
{
// Проверить, что панель фильтрации включена.
if (_filter == null)
return query;
// В контроле "Ссылка на сущность" отфильтровать по журналу регистрации.
// Выбрать значение из справочника "Журналы регистрации".
if (_filter.DocumentRegister != null)
query = query.Where(d => d.DocumentRegister == _filter.DocumentRegister);
// В контроле "Набор флажков" отфильтровать по статусу документа «Зарегистрирован».
if (_filter.Registered)
query = query
.Where(d => (_filter.Registered && d.RegistrationState == OfficialDocument.RegistrationState.Registered);
return query;
}
Пример настройки фильтрации записей в списке Доработка вычисляемой папки в перекрытии модуля |
© Компания Directum, 2024 |