Наше приложение отображает тонны ценной информации для наших пользователей в виде таблицы. У нас есть возможность фильтрации, основанная на логическом/логическом поиске. Даже после обучения пользователи по-прежнему не понимают, как использовать фильтры, потому что И ИЛИ > > = и т. д. им чужды. Этот фильтр удобен для программистов, так как он легко транслируется в код. Любые примеры того, как это можно сделать более удобным для пользователя и менее подверженным ошибкам?
Как создать удобный фильтр
Ответы (9)
В веб-приложениях у телерика была хорошая идея с их сеткой, вы должны иметь возможность делать это и в настольных приложениях.
В прошлом, когда мне нужно было решить эту проблему, я представлял пользователям список элементов (в одном или нескольких столбцах) и предоставлял им одно текстовое поле для ввода текста. Затем я сопоставлял текст с текстом в столбцах и сворачивал список (удаляя несовпадающие записи) по мере их ввода.
Такой подход напоминает пользователям Google. Все знают, как Google.
Если вам не нравится идея представления большого списка всех элементов на начальном этапе, вы можете сначала отобразить пустую панель результатов и отобразить результаты после ввода поискового запроса.
Преобразуйте операторы в обычный текст на английском языке и попросите их выбрать из него. Например: для
Показать мне все книги, автор которых [текстовое поле] и цена [меньше/больше] [текстовое поле]
[меньше/больше] – раскрывающийся список.
[текстовое поле] — это поле ввода
Результирующий текст после того, как пользователь заполнил все поля, должен привести к простому английскому языку.
Например: Показать мне все книги, автором которых является Стивен Кинг и цена которых менее 10 долларов США.
Я использовал это в своем приложении, когда работал фрилансером, и пользователям это нравилось. Используя изящное программирование пользовательского интерфейса, вы можете указать параметры для расширения фильтра до n уровней.
вы можете предоставить некоторые предустановленные фильтры для наиболее распространенных запросов к этой таблице - если это возможно с используемым вами приложением.
вы можете предоставить механизм «счетчик вместо отображения», чтобы пользователь видел, сколько строк он/она потенциально может получить
вы можете предоставить им вики-страницу с некоторыми примерами онлайн
вы можете дать им инструмент QBE
надеюсь, что это поможет удачи MikeD
По моему опыту, конечные пользователи просто не поймут разницу между условиями И и ИЛИ. Поэтому я строю свои фильтры так, чтобы в них были встроены операторы И или ИЛИ. В общем, моя логика такова:
Критерии для разных полей объединяются вместе, чтобы ограничить результаты.
Несколько значений одного и того же поля эффективно объединяются по операции ИЛИ, а затем объединяются по И с критериями для других полей. Обычно я обнаруживаю ввод в одно поле списков, разделенных запятыми (переведенных в IN ()), диапазонов, разделенных тире (переведенных в BETWEEN), значений подстановочных знаков (переведенных в LIKE) и любых комбинаций (например,
Customer ID: 1-10, 50, 52
).
Я считаю, что большинство пользователей интуитивно понимают эту систему.
Конечно, время от времени требуется другой интерфейс с некоторой степенью ИЛИ, и в этих случаях у меня обычно есть раздел пользовательского интерфейса поиска на панели или в групповом поле с надписью «Любое из них верно».
Я недавно работал над этой проблемой. Мое решение состоит в том, чтобы быть более описательным, использовать слова вместо символов и менять слова там, где это позволяет сделать макет более удобочитаемым. Для иллюстрации представьте выражение фильтра:
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]
Итак, заимствование из иерархического подхода, но изменение И и ИЛИ на ВСЕ или ЛЮБОЙ. Это означает, что его можно читать сверху вниз немного легче.
Я думаю, что встроенный интерфейс администратора Django имеет очень интуитивно понятный пользовательский интерфейс для фильтров.
В документах есть простой снимок экрана. но вы можете сделать гораздо больше, особенно при фильтрации по датам.
Возможно, вы захотите поближе взглянуть на интерфейс администратора Django, чтобы увидеть, сможете ли вы применить некоторые из их приемов к вашему делу.
Я бы подумал что-то похожее на генератор запросов MS Access. Вы также можете захотеть иметь хорошую контекстно-зависимую справочную систему, которая поможет новичкам.
Тереза Нил проиллюстрировала несколько подходов к созданию сложных интерфейсов правил (предикатных предложений AKA) в сообщении iTunes решает проблему вложенных предложений. . Несколько хороших примеров. Мне очень нравится, как Apple делает это в iTunes (хотя я не пользуюсь iTunes).