Об организации поиска в программах с большими массивами данных

Jan 29, 2016 07:24

Самый удобный интерфейс для поиска в базе данных, который я видела (ну, каюсь, я видела не так уж и много) был  в программе SR-Bank, с которой я работала в Банке "Финансы и Кредит" (шо он там, как, жив еще, или покойничка уже вынесли?). Принцип работы был немного похож на работу фильтра в ексель, только намного лучше.

Большинство других  интерфейсов поиска устроены примерно так.  Перед вами - таблица со строками и столбцами, в которых расположены, к примеру,  данные о ваших клиентах. Чтобы найти в ней, к примеру, всех Ивановых, обычно предусмотрено  отдельное от таблицы поле вверху, в которое вводится фамилия. Чтобы найти всех ивановых 1936 года рождения, чаще всего есть отдельная форма «расширенного поиска», которая открывается в отдельном окне, вы там вводите в разных полях нужные параметры, потом она выдает результаты, или не выдает, тогда нужно  опять тыкать в нее, задавая параметры и только после этого наблюдать результат. И возможность искать обычно ограничена только несколькими параметрами.

Эксель в этом плане чуть лучше: условия отфильтровывания данных можно поставить по любому столбцу и их сочетанию, но опять же, сколько лишних телодвижений: поставь фильтр, ткни в вид фильтра, затем выбери подвид фильтра (содержит/равно и т. д.). И после применения фильтра ты не видишь, что именно ты там написал в этом поле критерия.

А вот фильтр в СР-Банке был совершенством. Я его теперь всегда вспоминаю с ностальгией.

Перед вами была таблица, примерно как в екселе - практически со всеми данными из базы. Т.е. если мы находимся в меню «Клиенты» (к примеру), то в столбцах  - и ФИО (в отдельных 3 столбцах) и дата рождения, и место проживания, и еще много чего.
В этой общей таблице сверху идут две отдельные строки, примерно вот так:


Поля этих строк являются фильтрами. В столбце «Имя» я могу ввести «Александр» или «Алекс*» или еще как - и оно отфильтрует мне всю таблицу по этому критерию . Причем строка фильтра никуда не пропадет, не скроется - я вижу, по какому критерию отфильтрован этот столбец и есть ли в нем фильтрация вообще. В столбце дата рождения я могу ввести одну дату или диапазон дат рождения (для этого и две строки). При этом в этом поле можно ввести только дату, а не текст. В поле для суммы ввести сумму или диапазон. В столбце город сделать фильтр по городу.

Заметьте - все эти фильтры можно компоновать, включать/ отключать, и для этого не нужно никуда отдельно тыкать,  не нужно открывать дополнительных окон! две строки над общей таблицей берут на себя весь этот функционал, остаются всегда на виду, ничего не закрывают, действуют сразу после нажатия энтер.

И до сих пор, когда я смотрю на другие решения поиска по базе, мне хочется рыдать. Идеал уже придуман, ну что вы всякую муть кодите?

программы, люблю

Previous post Next post
Up