我们的应用程序在表格中向用户显示大量有价值的信息。我们有一个基于布尔/逻辑搜索的过滤功能。即使在指导之后,用户仍然倾向于不理解如何使用过滤器,因为AND OR> > =等对他们来说是陌生的。这个过滤器对程序员来说很容易,因为它很容易翻译成代码。有关如何使其更加用户友好且不易出错的任何示例?
答案 0 :(得分:2)
过去,当我需要解决这个问题时,我向用户展示了一个项目列表(在一列或多列中),并为它们提供了一个文本框来输入文本。然后,我会将文本与列中的文本进行匹配,并在键入时折叠列表(删除不匹配的记录)。
这种方法提醒用户谷歌。每个人都知道如何使用Google。
如果您不喜欢最初显示所有项目的大型列表的想法,则可以先显示空的结果窗格,然后在输入搜索后显示结果。
答案 1 :(得分:2)
将运算符转换为纯英文文本,并要求他们从中进行选择。 例如:To
显示所有作者 [文字字段] 且价格 [小于/大于] [文字字段] 的图书
[小于/大于] 是一个下拉列表
[文字字段] 是一个输入框
用户填写完所有字段后生成的文本应该会产生简单的英文
例如:向我展示作者 Stephen King 且价格 10 $
的所有图书我曾经在自己的应用程序和用户喜欢它的应用程序中使用它。 使用一些漂亮的UI编程,您可以选择将过滤器扩展到n级。
答案 2 :(得分:1)
您可以为该表的最常见查询提供一些预设过滤器 - 如果您正在使用的应用程序可以使用
您可以提供“计数而不是显示”机制,以便用户看到他/她可能检索的行数
你可以在网上为他们提供一些维基页面
你可以给他们一个QBE工具
希望有所帮助 祝你好运MikeD答案 3 :(得分:1)
根据我的经验,您根本不会让最终用户理解AND和OR条件之间的区别。因此,我构建了我的过滤器,以便内置ANDing或ORing。通常,我的逻辑如下:
对不同字段的标准进行AND运算以限制结果。
对同一字段的多个值进行有效OR运算,然后与其他字段的条件进行AND运算。我通常将输入检测到逗号分隔列表(转换为IN()),破折号分隔范围(转换为BETWEEN),通配符值(转换为LIKE)和任何组合(例如Customer ID: 1-10, 50, 52
)的单个字段中)。
我发现大多数用户直观地了解这个系统。
当然,有时需要具有某种程度ORing的不同界面,在这些情况下,我通常在面板或组框中有一部分搜索用户界面,标记为“其中任何一个都是真的”。 / p>
答案 4 :(得分:1)
我最近一直在研究这个问题。我的解决方案是更具描述性,使用单词而不是符号,并更改允许更可读布局的单词。为了说明,想象一下过滤器表达式:
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]
所以借用分层方法,但将AND和OR更改为ALL或ANY。这意味着它可以更容易地从上到下阅读。
答案 5 :(得分:1)
在Web应用程序中,telerik有一个good idea with their grid,您也应该可以在桌面应用程序中执行此操作。
答案 6 :(得分:0)
我认为Django的内置管理界面具有非常直观的过滤器UI。
docs中有一个简单的屏幕截图,但您可以做更多事情,尤其是在过滤日期时。
您可能需要仔细查看Django的管理界面,看看是否可以将一些技巧应用到您的案例中。
答案 7 :(得分:0)
我会想到类似于MS Access Query生成器的东西。您可能还希望拥有良好的上下文相关帮助系统,以指导初次使用者。
答案 8 :(得分:0)
Theresa Neil在iTunes Solves the Nested Clause Dillema帖子中阐述了构建复杂规则接口(AKA谓词从句)的几种方法。那里有一些好例子。我非常喜欢Apple在iTunes中的表现(尽管我不使用iTunes)。