Как создать удобный для пользователя фильтр
Наше приложение отображает тонны ценной информации для наших пользователей в виде таблицы. У нас есть возможность фильтрации, основанная на логических / логических поисках. Даже после коучинга пользователи все еще не понимают, как использовать фильтры, потому что AND OR > >= и т. Д. Им чужды. Этот фильтр прост для программистов, так как он легко переводится в код. Какие-нибудь примеры того, как это можно сделать более удобным и менее подверженным ошибкам?
9 ответов
В веб-приложениях у Telerik была хорошая идея с их сеткой, вы должны быть в состоянии сделать это и в настольных приложениях.
В прошлом, когда мне нужно было решить эту проблему, я предоставлял пользователям список элементов (в одном или нескольких столбцах) и предоставлял им одно текстовое поле для ввода текста. Затем я сопоставил бы текст с текстом в столбцах и свернул список (удаляя записи, которые не совпадают) по мере их ввода.
Такой подход напоминает пользователям Google. Все знают, как Google.
Если вам не нравится идея сначала представить большой список всех элементов, вы можете сначала показать пустую область результатов и отобразить результаты после ввода поиска.
Преобразуйте операторы в простой текст на английском языке и попросите их выбрать из него. Например:
Показать все книги, автором которых является [текстовое поле], а цена [меньше / больше] [текстовое поле]
[меньше / больше чем] это выпадающий список
[текстовое поле] является полем ввода
Полученный текст после того, как пользователь заполнил все поля, должен привести к простому простому английскому языку
Например: покажи мне все книги, автором которых является Стивен Кинг и цена которых меньше 10 $
Я использовал это в своем приложении, когда я работал фрилансером, и пользователям это нравилось. С помощью некоторого изящного пользовательского интерфейса вы можете задать параметры для расширения фильтра до n уровней.
Вы можете предоставить несколько предустановленных фильтров для наиболее распространенных запросов к этой таблице - если это возможно с приложением, которое вы используете
Вы можете предоставить механизм "считать вместо отображения", чтобы пользователь видел, сколько строк он / она может получить
вы можете предоставить им вики-страницу с некоторыми примерами онлайн
Вы можете дать им инструмент QBE
надеюсь, что поможет удача MikeD
Я недавно работал над этой проблемой. Мое решение состоит в том, чтобы быть более наглядным, использовать слова вместо символов и менять слова там, где это позволяет сделать их более читабельными. Для иллюстрации представьте выражение фильтра:
Breed == "Spaniel" AND (Age == 2 OR Colour == "White")
Некоторые линейные построители запросов могут написать это:
( And/Or Field Operator Value
[ ] [Breed] [=] [Spaniel]
[1] [AND] [Age] [=] [2]
[1] [OR] [Colour] [=] [White]
Или иерархический может отображать это как:
AND
[Breed] [Is Equal To] [Spaniel]
OR
[Age] [Is Equal To] [Spaniel]
[Colour] [Is Equal To] [White]
Оба из них могут быть читаемы для разработчика, но не так читаемы для непрофессионала.
Мое решение больше похоже на:
Show ALL records where
[Breed] [Is Equal To] [Spaniel]
Show ANY records where
[Age] [Is Equal To] [Spaniel]
[Colour] [Is Equal To] [White]
Таким образом, заимствуя из иерархического подхода, но меняя И и ИЛИ на ВСЕ или ЛЮБОЙ. Это означает, что это может быть прочитано сверху донизу немного легче.
По моему опыту, вы просто не хотите, чтобы конечные пользователи понимали разницу между условиями И и ИЛИ. Поэтому я строю свои фильтры так, чтобы были встроены ANDing или ORing. В общем, моя логика следующая:
Критерии для разных полей объединяются для ограничения результатов.
Множественные значения для одного и того же поля эффективно объединяются в единицу ИЛИ, а затем в критерии других полей. Обычно я обнаруживаю входные данные в одном поле разделенных запятыми списков (переведенных в IN ()), разделенных дефисом диапазонов (переведенных в BETWEEN), подстановочных значений (переведенных в LIKE) и любой комбинации (например,
Customer ID: 1-10, 50, 52
).
Я считаю, что большинство пользователей интуитивно понимают эту систему.
Конечно, время от времени требуется другой интерфейс с некоторой степенью ORing, и в этих случаях у меня обычно есть раздел пользовательского интерфейса поиска на панели или в групповой рамке с надписью "Любое из них является истинным".
Я думаю, что-то похожее на генератор MS Access Query. Вы также можете захотеть иметь хорошую контекстно-зависимую справочную систему, которая будет направлять начинающих пользователей.
Я думаю, что встроенный интерфейс администратора Django имеет очень интуитивно понятный интерфейс для фильтров.
В документах есть простой скриншот, но вы можете сделать гораздо больше, особенно при фильтрации по датам.
Возможно, вы захотите поближе познакомиться с интерфейсом администратора Django, чтобы посмотреть, сможете ли вы применить некоторые из его приемов к вашему делу.
Тереза Нейл проиллюстрировала несколько подходов к созданию сложных интерфейсов правил (предикатов AKA) в iTunes Решает пост Dillema Nested Clause. Там есть несколько хороших примеров. Мне действительно нравится, как Apple делает это в iTunes (хотя я не использую iTunes).