Гриды — Справочник фильтров¶
Справочник всех реализаций IColumnFilterBuilder -- маппинг типов колонок к фильтрам.
Интерфейс¶
IColumnFilterBuilder
├── ApplyFilter(TasksDataSourceParameters, ...) -- для гридов задач
└── ApplyTableFilter(ExtParamTableDataParameters, ...) -- для ДП Таблица
Базовый класс: ColumnFilterBuilderBase (Filters/ColumnFilterBuilderBase.cs).
Фильтры гридов задач¶
Каталог: Valhalla.Services/AgGridServices/Filters/
Текстовые и поисковые¶
| Класс | Файл | Колонки | ColumnFilter DTO | Описание |
|---|---|---|---|---|
TaskTextFilter |
TaskTextFilter.cs |
TaskText, Description | TextFilter |
Фильтр по тексту задачи. Поддерживает contains, startsWith, endsWith, equals. Также используется для quick filter. |
SubcategoryTextFilter |
SubcategoryTextFilter.cs |
SubcategoryName | TextFilter |
Фильтр по названию категории. |
Пользователи и роли¶
| Класс | Файл | Колонки | ColumnFilter DTO | Описание |
|---|---|---|---|---|
TaskOwnerFilter |
TaskOwnerFilter.cs |
Owner, OwnerName | SetFilter |
Фильтр по заказчику задачи. |
TaskPerformerFilter |
TaskPerformerFilter.cs |
Performer | SetFilter |
Фильтр по единственному исполнителю. |
TaskPerformersFilter |
TaskPerformersFilter.cs |
Performers | SetFilter |
Фильтр по множественным исполнителям. |
TaskAcceptorsFilter |
TaskAcceptorsFilter.cs |
Acceptors | SetFilter |
Фильтр по согласующим. |
SelectUsersExtParamFilters |
SelectUsersExtParamFilters.cs |
ExtParam{id} (SelectUsers type) | SetFilter |
Фильтр для ДП "Выбор пользователей/групп". |
Подзадачи и вопросы¶
| Класс | Файл | Колонки | ColumnFilter DTO | Описание |
|---|---|---|---|---|
SubtasksFilter |
SubtasksFilter.cs |
Subtasks | NumberFilter |
Фильтр по наличию подзадач. |
ActiveSubtasksFilter |
ActiveSubtasksFilter.cs |
ActiveSubtasks | NumberFilter |
Количество активных подзадач. |
TotalSubtasksFilter |
TotalSubtasksFilter.cs |
TotalSubtasks | NumberFilter |
Общее количество подзадач. |
MyQuestionsFilter |
MyQuestionsFilter.cs |
MyQuestions | NumberFilter |
Мои вопросы в задаче. |
QuestionsToMeFilter |
QuestionsToMeFilter.cs |
QuestionsToMe | NumberFilter |
Вопросы адресованные мне. |
QuestionsFromMeFilter |
QuestionsFromMeFilter.cs |
QuestionsFromMe | NumberFilter |
Вопросы от меня. |
ДП и специальные¶
| Класс | Файл | Колонки | ColumnFilter DTO | Описание |
|---|---|---|---|---|
MultiSelectFilter |
MultiSelectFilter.cs |
ExtParam{id} (MultiSelect types) | SetFilter |
Универсальный фильтр для ДП с множественным выбором (MultiSlctSubcatTasks, MultiCheckbox, etc.). |
LookupFilter |
LookupFilter.cs |
ExtParam{id} (LookUpField) | SetFilter / TextFilter |
Фильтр для lookup ДП. Фильтрует по связанной задаче. |
SmartExpressionFilter |
SmartExpressionFilter.cs |
Любая | SmartFilter |
Фильтр через smart-выражение (ESQL). |
TaskSignaturesFilters |
TaskSignaturesFilters.cs |
Signatures* | SetFilter |
Фильтры по подписям задач. |
CustomFlexFilter |
CustomFlexFilter.cs |
Custom | AdvancedFilter |
Произвольный гибкий фильтр. |
TableMultiselectFilter |
TableMultiselectFilter.cs |
Table columns | SetFilter |
Мультивыбор строк в ДП Таблица. Реализует оба метода: ApplyFilter и ApplyTableFilter. |
Утилиты¶
| Класс | Файл | Описание |
|---|---|---|
FilterHelpers |
FilterHelpers.cs |
Утилиты для построения дерева FilterNode, операнды, конвертация. |
FilterOperand |
FilterOperand.cs |
Enum / константы операндов (AND, OR, equals, contains, etc.). |
IFilterBuilder |
IFilterBuilder.cs |
Вспомогательный интерфейс. |
Фильтры колонок ДП Таблица¶
Каталог: Valhalla.Services/AgGridServices/Filters/TableFilters/
Эти фильтры реализуют только ApplyTableFilter (не ApplyFilter).
| Класс | Файл | Тип колонки | ColumnFilter DTO | Описание |
|---|---|---|---|---|
LookupColumnFilter |
LookupColumnFilter.cs |
Lookup-колонка в таблице | SetFilter |
Фильтр по lookup-связи внутри ДП Таблица. Зависит от LookupParamSettings. |
VirtualColumnFilter |
VirtualColumnFilter.cs |
Виртуальная (вычисляемая) колонка | TextFilter / NumberFilter |
Фильтр по вычисляемому значению. Может не поддерживать все операции. |
SelectUsersColumnFilter |
SelectUsersColumnFilter.cs |
"Выбор пользователей" в таблице | SetFilter |
Фильтр по пользователям/группам внутри ДП Таблица. |
Маппинг: тип ДП → фильтр¶
| ExtParamType | Грид задач (ApplyFilter) | ДП Таблица (ApplyTableFilter) | Примечание |
|---|---|---|---|
String, MultiLineString |
TaskTextFilter (или base) |
base ColumnFilterBuilderBase |
Текстовый |
Number, Decimal, Money |
base | base | Числовой |
DateTime |
base | base | Дата |
Boolean |
base | base | Чекбокс |
LookUpField |
LookupFilter |
LookupColumnFilter |
Lookup |
MultiSlctSubcatTasks |
MultiSelectFilter |
base | Мультилукап |
SelectUsersType, SelectGroupsType, SelectOrgUnit |
SelectUsersExtParamFilters |
SelectUsersColumnFilter |
Выбор пользователей |
MultiCheckbox, DropDown |
MultiSelectFilter |
base | Множественный выбор |
Table |
Ограничено (не через ShowTasksFeed) |
N/A (Table -- это сам грид) | Фильтрация задач возможна через HTML-представление при настройке шаблона. См. support-guide §1.3 |
Through |
Особая обработка | N/A | Сквозной ДП: ColumnFilterService резолвит target EP через ThroughExtParamLogic.GetTargetExtParamId(), но передаёт ParamType = "Through" (не target-тип). SP сам определяет целевой тип и применяет правильную логику. Ремап на SelectUsersOrgUnits/SelectUsersGroups — только при группировке (filter.IsGrouping), не при фильтрации. Типичные применения: Through→SelectUsers ДП (Менеджер клиента, РП, BDM и др.) |
File |
ИСКЛЮЧЁН | N/A | Файловый ДП |
Numerator |
base | base | Нумератор |
Virtual (колонка таблицы) |
N/A | VirtualColumnFilter |
Только внутри ДП Таблица |
Дерево FilterNode¶
Фильтры строят дерево FilterNode:
GeneralFilter (root, AND)
├── FilterNode (column=State, operand=IN, values=[1,3])
├── FilterNode (column=ExtParam42, operand=CONTAINS, value="test")
└── GeneralFilter (OR)
├── FilterNode (column=Owner, operand=EQUALS, value=123)
└── FilterNode (column=Performer, operand=EQUALS, value=456)
Дерево передаётся в SP ShowTasksFeed / ShowExtParamTableData и транслируется в WHERE-clause.
Перекрёстные ссылки¶
docs/domains/grids/backend.md-- архитектура backend pipelinedocs/domains/grids/data-flow.md-- сквозные сценарии с диагностикойdocs/domains/smart-filters/backend.md-- ESQL pipeline для SmartFilterdocs/domains/ext-params/backend.md-- типы ДП