Задача [0580]: Фильтрация записей реестра по столбцам

Формулировка проблемы: при произведении поиска по реестрам текущее отображение записей не удобно.

Связанные задачи: P7

Используется:

Решение: необходимо реализовать фильтрацию записей по столбцам реестра следующим образом:

Во-первых, по двойному клику на ячейку таблицы, в котором находится заголовок столбца, должно появляться поле ввода поисковой строки. Ширина поисковой строки зависит от ширины столбца таблицы. По нажатию кнопки "Enter" список должен быть отфильтрован в соответствии с указанным в поисковой строке текстом. При поиске учитываются значения полей выбранного столбца. После нажатия кнопки "Enter" заголовок столбца принимает следующий вид:

Название поля: Текст, введенный в поисковую строку

Если текст, введенный в поисковую строку, не помещается в ячейку, то он обрезается.

Если пользователь оставляет пустой запрос или вводит пробелы и нажимает на кнопку "Enter", фильтрация не применяется: список остается прежним.

Фильтрация по первому столбцу таблицы, в котором указан статус записи реестра, и по столбцам таблицы, которые содержат значения компонентов формы "Динамическая таблица", "Ссылка на документ", "Ссылка на файл в хранилище", "Свойства документа" невозможна. По двойному клику на данные ячейки не должно появляться поле ввода поисковой строки.

Для реализации фильтрации по столбцу таблицы, который содержит значения компонента "Выбор вариантов", необходимо добавить возможность сортировки этого компонента. В таблице "Поля формы реестра" в поле "Примечание" для компонента "Выбор вариантов" необходимо больше не отображать пометку Сортировка отсутствует.

Примечание.

При сортировке и фильтрации по столбцу таблицы, который содержит значения компонента формы "Выбор вариантов", будут участвовать только новые записи реестра. Чтобы учитывались старые записи реестра (созданные до итерации 3.10), нужно пересохранить данный реестр.

Во-вторых, необходимо для ячеек заголовка таблицы добавить контекстное меню со следующим пунктом:

При выборе данного пункта фильтрация сбрасывается. Пункт "Очистить фильтр" должен быть активен для выбора только для той ячейки, по которой произведена фильтрация, для остальных отсутствует.

Текущая фильтрация также должна сбрасываться в следующих случаях:

Текущая фильтрация не должна сбрасываться в следующем случае:

Поведение по одиночному клику на ячейку таблицы с заголовком столбца остается прежним, то есть будет задействована сортировка. Если применена фильтрация, то сортировка должна производиться по отфильтрованным записям.

Описанный выше функционал используется только для реестров и для их фильтров. Для групп реестров он не применим.

Рисунок 78. Фильтрация записей

Фильтрация записей

Рисунок 79. Фильтрация записей: поисковая строка

Фильтрация записей: поисковая строка