我需要一个用户界面,允许用户根据多个列对表格进行排序(例如按颜色排序,然后按颜色排序,或者选择价格,然后再按价格计算颜色)。我熟悉的唯一这样的界面是Excel中的数据>中找到的对话框。排序,但这是相当笨重的,并不会让自己快速切换视图。我更喜欢iTunes风格的界面,它允许通过点击列标题进行快速排序。然而,这样的界面通常只允许按一列排序(例外是iTunes本身具有非常有限的,明显硬编码的能力,按“艺术家专辑”和“年份专辑”排序,点击专辑标题)。
我可以设想一个接口,其中每个列标题都有一些数字,这样点击1就会使列成为主要的排序键,点击2的辅助键,依此类推。或者,在列标题上单击(或右键单击)可以带有一个下拉菜单,其中包含“主要排序”,“次要排序”等。但是,我从未见过这样的界面实现,我没有对可能出现的可用性问题有一个很好的直觉。
是否有应用程序允许使用列标题按多列排序?你能指点我吗?关于这样的接口是否有任何有用的可用性结果 - 哪个更好,哪个更少?
此外,虽然我最感兴趣的是界面的规范,但是可以理解任何传递给实现它的人的提示,例如,公共可用的库,提供解决方案的一部分(尤其是Java)。
编辑:有两个人建议使用Excel风格的对话框。这不会起作用。对于我的应用程序,用户需要在现有表条目中找到“最佳匹配”(通常不是完美匹配)。该表太大而无法保留在您的脑海中,因此您需要继续扫描相关部分,重复对表进行排序以获取多个视图非常有用。每次更改视图时,必须通过一个包含多个选项的对话框才会太慢;当你完成这个盒子的时候,你已经忘记了上一个视图的结果。
答案 0 :(得分:5)
我已经看到了caparcode在一些应用程序中提到的shift-click界面,但我现在无法命名。 Here's a nice web-based example though.
答案 1 :(得分:4)
我认为Outlook支持按多列排序。单击列标题后,您将按住Shift键单击其他列标题。我不再使用Outlook,所以我无法验证这一点。希望它将成为你的起点。
答案 2 :(得分:2)
我建议使用Ctrl-Click(或Shift-click或任意点击)方法让用户选择多个列。单击不使用Ctrl将只按所选列排序,但按住Ctrl键可将列添加到排序器。再次单击可更改方向。并提供有关当前分拣机similar as in these pictures的反馈。大多数情况下,用户无论如何都只使用单列分拣机,只有高级用户才会想要按多列进行排序。但是你应该在手册和“你知道吗”中记录某些行为。
但是从users don't read开始,就有可能没有人会找到这个功能。但是对于这个问题,你可能会在首次启动时想要点击一下开始按钮以确保找到按钮。当您看到用户根本没有使用分拣机时,请告诉他单击列标题将进行排序。之后,当您看到他没有使用多重排序功能时,只要该功能存在,就会显示他。
答案 3 :(得分:2)
按照Excel的方式进行,或者更确切地说是真实的人使用Excel的方式,这几乎从不涉及你正确希望避免的那个笨重的对话框。基本上,Excel会尽可能多地保留您当前的排序顺序 - 所以如果您当前按价格按降序排序,现在按颜色排序(使用工具栏上的A-to-Z按钮,而不是对话框) ),颜色内的价格将按降序排列。
这种方法确实需要用户进行一些反向思考,因为您首先按最不重要的列排序,但是一旦获得它就非常直观。 (是的,我知道,这听起来自相矛盾,但我不知道如何描述它。)
要实现它,您必须在某处存储用户的排序历史记录;但就接口而言,您需要的只是每列中的向上箭头和向下箭头。或者,如果您只想允许A-to-Z排序,只需将列标题自己设置为链接或按钮或其他任何内容。
答案 4 :(得分:1)
你看过Excel吗?这是关于如何对多列进行排序的完美示例。
此外,我有时会使用详细的列表视图,让用户按住Ctrl键,同时选择一列或多列来对信息进行排序。 (在列上单击两次会进行降序排序。)
答案 5 :(得分:1)
说真的,你想要的,Excel做到了。为什么不使用人们已经知道如何驾驶的界面。我会建议。否则你要么必须从第三方购买,要么自己动手。
VSTO(用于Office的Visual Studio .NET工具)促进了Office的开发。这取决于你想要在其生命的一英寸内自动化Excel多少:)。它可以做到。
事实上,这就是我必须要做的。我不得不阅读电子表格,提取数据,转换为对象,然后坚持访问(不要问)。每张工作表代表一个记录,每个目录代表一个位置,您就明白了。全部使用Office PIA Interop程序集完成。
只是一个想法。
答案 6 :(得分:1)
以下怎么样?在表格的上边缘标记为“排序”的单个下拉列表。下拉列表列出要排序的所有字段。每个字段出现两次,一次用于提升,一次用于降序排序。在下拉列表旁边是一个标有“更多”或者简称为“+”的按钮。用户从下拉列表中选择主要排序键的字段。排序立即应用(没有“排序”命令按钮)。如果需要辅助排序键,则用户单击“更多”按钮,并插入并打开另一个下拉列表,供用户选择第二个键。通过连续单击“更多”按钮,可以添加其他低位键。每个下拉菜单都包含一个“清除”项来删除密钥。
这为单个排序键的最简单和最常见的情况(不同于Excel的排序对话框或具有列标题的数字)提供了紧凑,简单且整洁的UI,同时还支持排序无限数量的键(再次不同于Excel的排序对话框)。用户可以一目了然地查看排序顺序(与Excel不同,比列中的数字更容易)。它避免了对话框的笨拙。
可点击列标题是事实上的标准,也是包含上述内容的好主意。执行Outlook和Windows资源管理器所做的操作并使用以前的排序顺序生成低位键是一种很好的做法。因此,例如,如果表按日期排序,并且用户按类别排序,则表首先按类别排序,然后按日期排序。因此,用户可以通过首先选择最低顺序排序字段并进行后续处理来进行多顺序排序。然而,这具有较差的可发现性,并且用户可能发现“向后”工作是违反直觉的,因此应该补充诸如下拉菜单和更多按钮之类的东西。依靠shift键单击或按住Ctrl键单击同样具有可发现性问题。