Формулировка проблемы: при произведении поиска по реестрам текущее отображение записей не удобно.
Связанные задачи: P7
Используется:
Хранилище -> Реестры
Решение: необходимо реализовать фильтрацию записей по столбцам реестра следующим образом:
Во-первых, по двойному клику на ячейку таблицы, в котором находится заголовок столбца, должно появляться поле ввода поисковой строки. Ширина поисковой строки зависит от ширины столбца таблицы. По нажатию кнопки "Enter" список должен быть отфильтрован в соответствии с указанным в поисковой строке текстом. При поиске учитываются значения полей выбранного столбца. После нажатия кнопки "Enter" заголовок столбца принимает следующий вид:
Название поля: Текст, введенный в поисковую строку
Если текст, введенный в поисковую строку, не помещается в ячейку, то он обрезается.
Если пользователь оставляет пустой запрос или вводит пробелы и нажимает на кнопку "Enter", фильтрация не применяется: список остается прежним.
Фильтрация по первому столбцу таблицы, в котором указан статус записи реестра, и по столбцам таблицы, которые содержат значения компонентов формы "Динамическая таблица", "Ссылка на документ", "Ссылка на файл в хранилище", "Свойства документа" невозможна. По двойному клику на данные ячейки не должно появляться поле ввода поисковой строки.
Для реализации фильтрации по столбцу таблицы, который содержит
значения компонента "Выбор вариантов", необходимо добавить
возможность сортировки этого компонента. В таблице "Поля формы
реестра" в поле "Примечание" для компонента
"Выбор вариантов" необходимо больше не отображать пометку
Сортировка отсутствует
.
Примечание.
При сортировке и фильтрации по столбцу таблицы, который содержит значения компонента формы "Выбор вариантов", будут участвовать только новые записи реестра. Чтобы учитывались старые записи реестра (созданные до итерации 3.10), нужно пересохранить данный реестр.
Во-вторых, необходимо для ячеек заголовка таблицы добавить контекстное меню со следующим пунктом:
Очистить фильтр
При выборе данного пункта фильтрация сбрасывается. Пункт "Очистить фильтр" должен быть активен для выбора только для той ячейки, по которой произведена фильтрация, для остальных отсутствует.
Текущая фильтрация также должна сбрасываться в следующих случаях:
по клику на кнопку "Обновить" в навигаторе
при переходе в навигаторе на другой элемент либо на текущий
при вводе пустого запроса или пробелов в поисковую строку и по нажатию "Enter"
пользователь пытается отфильтровать записи по другому столбцу. Двойным кликом вызывает поле ввода поисковой строки и:
вводит текст, нажимает на "Enter" - список будет отфильтрован по другому столбцу в соответствии с введенным текстом;
оставляет пустой запрос или вводит пробелы, нажимает на "Enter" - список возвращается к прежнему виду, который был до фильтрации;
пользователь задействует поиск, находящийся в верхней панели - поиск производится для выделенного реестра или его фильтра.
Текущая фильтрация не должна сбрасываться в следующем случае:
пользователь двойным кликом по заголовку другого столбца вызывает поле ввода поисковой строки, вводит текст либо пробелы, или оставляет пустой запрос, и отменяет действие (кликает вне этого поля или нажимает на кнопку "Escape").
Поведение по одиночному клику на ячейку таблицы с заголовком столбца остается прежним, то есть будет задействована сортировка. Если применена фильтрация, то сортировка должна производиться по отфильтрованным записям.
Описанный выше функционал используется только для реестров и для их фильтров. Для групп реестров он не применим.