Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 用于按多列对表进行排序的用户界面_Sorting_User Interface - Fatal编程技术网

Sorting 用于按多列对表进行排序的用户界面

Sorting 用于按多列对表进行排序的用户界面,sorting,user-interface,Sorting,User Interface,我需要一个用户界面,允许用户根据多个列对表进行排序(例如,按颜色排序,然后在颜色内定价,或者选择价格,然后在价格内定价)。我所熟悉的唯一这样的界面是Excel中“数据>排序”下的对话框,但它相当笨重,无法在视图之间快速切换。我更喜欢iTunes风格的界面,可以通过点击列标题进行快速排序。然而,这样的界面通常只允许按一列排序(iTunes本身是一个例外,它具有非常有限的、显然是硬编码的能力,可以通过点击相册标题按“艺术家相册”和“按年份相册”排序) 我可以设想一个界面,其中每个列标题都有一些数字,

我需要一个用户界面,允许用户根据多个列对表进行排序(例如,按颜色排序,然后在颜色内定价,或者选择价格,然后在价格内定价)。我所熟悉的唯一这样的界面是Excel中“数据>排序”下的对话框,但它相当笨重,无法在视图之间快速切换。我更喜欢iTunes风格的界面,可以通过点击列标题进行快速排序。然而,这样的界面通常只允许按一列排序(iTunes本身是一个例外,它具有非常有限的、显然是硬编码的能力,可以通过点击相册标题按“艺术家相册”和“按年份相册”排序)

我可以设想一个界面,其中每个列标题都有一些数字,例如单击1使列成为主要排序键,单击2使列成为次要排序键,依此类推。或者,在列标题上单击(或右键单击)可能会出现一个下拉菜单,其中包含“主要排序”、“次要排序”等。然而,我从未见过实现这样的界面,我对可能出现的可用性问题没有很好的直觉

是否有允许使用列标题按多个列排序的应用程序?你能给我指一下这些吗?对于这样的接口,有没有有用的可用性结果——哪个更好,哪个更少

此外,虽然我对接口的规范最感兴趣,但如果能向实现接口的人员提供任何提示,例如提供解决方案部分(特别是Java)的公共可用库,我将不胜感激


编辑:两个人建议使用Excel样式的对话框。这是行不通的。对于我的应用程序,用户需要在现有的表条目中找到“最佳匹配”(通常不是完美匹配)。表格太大,无法放在你的头脑中,因此你需要不断扫描相关部分,重复排序表格以获得多个视图是很有用的。每次改变观点都要通过一个包含多个选项的对话框,这太慢了;当您处理完该框时,您已经忘记了上一个视图中的结果。

您查看过Excel吗?这是一个关于如何在多个列上排序的完美示例


此外,我有时使用详细的列表视图,让用户在选择一个或多个列对信息进行排序时按住Ctrl键。(在一列上单击两次会进行降序排序。)

我认为Outlook支持按多列排序。单击列标题后,您将按住shift键并单击其他列标题。我不再使用Outlook,因此无法对此进行验证。希望这将是您的起点。

说真的,您想要什么,Excel就做什么。为什么不使用人们已经知道如何驾驶的界面呢。我建议这样做。否则你要么从第三方购买,要么自己动手

VSTO(Visual Studio.NET Office工具)促进了Office的开发。在Excel的一英寸生命周期内,您有多希望将其自动化,这取决于您自己:)。这是可以做到的

事实上,这就是我必须做的。我必须阅读电子表格,提取数据,转换成对象,然后坚持访问(不问)。每个工作表代表一条记录,每个目录代表一个位置,你明白了。所有这些都是使用Office PIA互操作程序集完成的


只是一个想法。

我已经看到caparcode在一些应用程序中提到的shift-click界面,但是我现在无法命名任何界面

我建议使用Ctrl-Click(或Shift-Click或任何单击)方法让用户选择多个列。不按Ctrl键单击将仅按所选列进行排序,但按住Ctrl键将列添加到分类器。再次单击可更改方向。并给出有关当前分拣机的反馈。大多数情况下,用户只会使用单列排序器,只有高级用户会希望按多个列进行排序。但是你应该在手册和“你知道吗”之类的东西中记录下你的行为


但是,由于存在这样的风险,没有人会找到该功能。但对于这一点,你可能会有一个类似Windows的功能,当你第一次开始希望你点击开始按钮一次,以确保你找到了按钮。当您看到用户根本没有使用分拣机时,向他显示单击列标题将进行分拣。稍后,当您看到他没有使用多重排序功能时,请立即向他显示该功能存在。

以下内容如何?在表格的上缘有一个标记为“排序”的单滴列表。下拉列表列出所有要排序的字段。每个字段显示两次,一次用于升序排序,一次用于降序排序。在下拉列表旁边是一个标记为“更多”或简单的“+”的按钮。用户从下拉列表中选择主排序键的字段。立即应用排序(无“排序”命令按钮)。如果需要第二个排序键,用户单击“更多”按钮,然后插入并打开另一个下拉列表,供用户选择第二个键。通过连续单击“更多”按钮,可以添加其他低阶键。每个下拉列表都包含一个“清除”项以删除密钥

这使得单个排序键的最简单和最常见的情况(不同于Excel的排序对话框或列标题有数字)具有紧凑、简单和整洁的UI,同时还支持对不确定数量的键进行排序(同样不同于Excel的排序对话框)。用户可以一目了然地查看排序顺序(与Excel不同,与列中的数字相比更容易)。它避免了最笨拙的对话框

可点击的列标题是一个事实上的标准,与上述内容一起包含也是一个好主意。做Outlook和Windows资源管理器所做的事情并使其降低或降低是一种很好的做法