Как создать удобный фильтр

Наше приложение отображает тонны ценной информации для наших пользователей в виде таблицы. У нас есть возможность фильтрации, основанная на логическом/логическом поиске. Даже после обучения пользователи по-прежнему не понимают, как использовать фильтры, потому что И ИЛИ > > = и т. д. им чужды. Этот фильтр удобен для программистов, так как он легко транслируется в код. Любые примеры того, как это можно сделать более удобным для пользователя и менее подверженным ошибкам?


person Community    schedule 12.11.2009    source источник


Ответы (9)


В веб-приложениях у телерика была хорошая идея с их сеткой, вы должны иметь возможность делать это и в настольных приложениях.

person Nicolas Dorier    schedule 12.11.2009
comment
Я думаю, это поможет. С раскрывающимися операторами (такими как =, ›=, ‹). Если текстовое поле пустое, фильтровать по ним не нужно. Буду делать прототип и пробовать. - person ; 12.11.2009
comment
В итоге мы добавили флажок «Поиск по нескольким полям», который, если он установлен, делает поисковый фильтр И, по сути, COL1 И COL2 И... это работает для большинства сценариев. - person ; 03.01.2010

В прошлом, когда мне нужно было решить эту проблему, я представлял пользователям список элементов (в одном или нескольких столбцах) и предоставлял им одно текстовое поле для ввода текста. Затем я сопоставлял текст с текстом в столбцах и сворачивал список (удаляя несовпадающие записи) по мере их ввода.

Такой подход напоминает пользователям Google. Все знают, как Google.

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

person Robert Harvey    schedule 12.11.2009

Преобразуйте операторы в обычный текст на английском языке и попросите их выбрать из него. Например: для

Показать мне все книги, автор которых [текстовое поле] и цена [меньше/больше] [текстовое поле]

[меньше/больше] – раскрывающийся список.

[текстовое поле] — это поле ввода

Результирующий текст после того, как пользователь заполнил все поля, должен привести к простому английскому языку.

Например: Показать мне все книги, автором которых является Стивен Кинг и цена которых менее 10 долларов США.

Я использовал это в своем приложении, когда работал фрилансером, и пользователям это нравилось. Используя изящное программирование пользовательского интерфейса, вы можете указать параметры для расширения фильтра до n уровней.

person bobbyalex    schedule 12.11.2009

вы можете предоставить некоторые предустановленные фильтры для наиболее распространенных запросов к этой таблице - если это возможно с используемым вами приложением.

вы можете предоставить механизм «счетчик вместо отображения», чтобы пользователь видел, сколько строк он/она потенциально может получить

вы можете предоставить им вики-страницу с некоторыми примерами онлайн

вы можете дать им инструмент QBE

надеюсь, что это поможет удачи MikeD

person MikeD    schedule 12.11.2009

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

  1. Критерии для разных полей объединяются вместе, чтобы ограничить результаты.

  2. Несколько значений одного и того же поля эффективно объединяются по операции ИЛИ, а затем объединяются по И с критериями для других полей. Обычно я обнаруживаю ввод в одно поле списков, разделенных запятыми (переведенных в IN ()), диапазонов, разделенных тире (переведенных в BETWEEN), значений подстановочных знаков (переведенных в LIKE) и любых комбинаций (например, Customer ID: 1-10, 50, 52).

Я считаю, что большинство пользователей интуитивно понимают эту систему.

Конечно, время от времени требуется другой интерфейс с некоторой степенью ИЛИ, и в этих случаях у меня обычно есть раздел пользовательского интерфейса поиска на панели или в групповом поле с надписью «Любое из них верно».

person Larry Lustig    schedule 12.11.2009

Я недавно работал над этой проблемой. Мое решение состоит в том, чтобы быть более описательным, использовать слова вместо символов и менять слова там, где это позволяет сделать макет более удобочитаемым. Для иллюстрации представьте выражение фильтра:

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]

Итак, заимствование из иерархического подхода, но изменение И и ИЛИ на ВСЕ или ЛЮБОЙ. Это означает, что его можно читать сверху вниз немного легче.

person Chris Simpson    schedule 12.11.2009

Я думаю, что встроенный интерфейс администратора Django имеет очень интуитивно понятный пользовательский интерфейс для фильтров.

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

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

person Steve Losh    schedule 12.11.2009

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

person grigy    schedule 12.11.2009

Тереза ​​Нил проиллюстрировала несколько подходов к созданию сложных интерфейсов правил (предикатных предложений AKA) в сообщении iTunes решает проблему вложенных предложений. . Несколько хороших примеров. Мне очень нравится, как Apple делает это в iTunes (хотя я не пользуюсь iTunes).

person Alek Davis    schedule 11.04.2010