对交互式汇总表的多条件过滤转让专利

申请号 : CN201080009756.2

文献号 : CN102334098B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : A·福尔廷Z·李A·V·格拉巴

申请人 : 微软公司

摘要 :

本文中描述了用于允许交互式汇总表的用户指定多条件数据过滤器以修改在汇总表中所显示的数据的技术。将允许用户指定多条件数据过滤器的用户界面显示给用户。对多条件数据过滤器的指定包括通过逻辑运算符连接的过滤条件集合。基于过滤条件和逻辑运算符从对多条件数据过滤器的指定中解析一个或多个过滤表达式,并且将过滤表达式应用于汇总数据,而汇总表根据汇总数据显示。

权利要求 :

1.一种用于提供对在连接到计算机(102)的显示设备(114)上的汇总表(204)中显示的汇总数据的多条件过滤的计算机实现的方法,所述计算机实现的方法包括:在所述显示设备(114)上显示允许所述计算机(102)的用户(106)指定多个多条件数据过滤器的用户界面(300,400,500,800);

从所述用户界面(300,400,500,800)接收对所述多个多条件数据过滤器的指定,所述多个多条件数据过滤器中的每一个均包括通过逻辑运算符连接的多个过滤条件(304);

从所述用户界面接收所述多个多条件数据过滤器的应用次序;

基于所述多个过滤条件(304)和所述逻辑运算符从所述指定中解析一个或多个过滤表达式;

按至少部分地基于所述多个多条件数据过滤器的应用次序的次序将所述一个或多个过滤表达式应用于所述汇总数据;以及在所述显示设备(114)上的汇总表(204)中显示经过滤的汇总数据。

2.如权利要求1所述的计算机实现的方法,其特征在于,所述用户界面包括用于将过滤条件添加至所述多个过滤条件并从所述多个过滤条件删除过滤条件的装置。

3.如权利要求2所述的计算机实现的方法,其特征在于,所述用户界面还包括用于选择连接所述多个过滤条件中的相邻过滤条件的所述逻辑运算符的装置。

4.如权利要求2所述的计算机实现的方法,其特征在于,所述用户界面还包括用于按特定次序对所述多个过滤条件排序的装置,并且其中对所述多条件数据过滤器的指定还包括所述多个过滤条件的特定次序,并且其中所述一个或多个过滤表达式还基于所述多个过滤条件的特定次序。

5.如权利要求2所述的计算机实现的方法,其特征在于,所述用户界面还包括用于将所述多个过滤条件的子集归组成一组或多组过滤条件的装置,并且其中对所述多条件数据过滤器的指定还包括所述一组或多组过滤条件,并且其中所述一个或多个过滤表达式还基于所述一组或多组过滤条件。

6.如权利要求5所述的计算机实现的方法,其特征在于,所述用户界面还包括用于结合显示所述多个过滤条件来示出所述一组或多组过滤条件的装置。

7.一种用于提供对在连接到计算机的显示设备上的汇总表中显示的汇总数据的多条件过滤的方法,包括:接收所述汇总数据;

接收对多个多条件数据过滤器的指定,所述多个多条件数据过滤器中的每一个的所述指定包括通过逻辑运算符连接的多个过滤条件(304);

接收所述多条件数据过滤器的应用次序;

基于所述多个过滤条件和所述逻辑运算符从所述指定中解析一个或多个过滤表达式;

至少部分地基于所述多个多条件数据过滤器的应用次序确定所述一个或多个过滤表达式的应用次序;

按所确定的应用次序将所述一个或多个过滤表达式应用于所述汇总数据;以及将经过滤的汇总数据传递给显示模块以供在连接到所述计算机(102)的所述显示设备(114)上显示所述汇总表(204)。

8.如权利要求7所述的方法,其特征在于,对所述多条件数据过滤器的指定还包括所述多个过滤条件的指定次序,并且其中所述一个或多个过滤表达式还基于所述多个过滤条件的特定次序。

9.如权利要求7所述的方法,其特征在于,对所述多条件数据过滤器的指定还包括一组或多组过滤条件,并且其中所述一个或多个过滤表达式还基于所述一组或多组过滤条件。

10.一种用于提供对在汇总表(204)中显示的汇总数据的多条件数据过滤的系统,所述系统包括:可用于存取来自数据源(108)的源数据并将所述源数据变换成汇总数据的汇总表数据存取模块;

汇总表UI模块,可用于:

在显示设备(114)上显示第一用户界面(300,400,500,800),其中所述第一用户界面允许用户指定多条件数据过滤器,所述多条件数据过滤器包括通过逻辑运算符连接的多个过滤条件,从所述第一用户界面(300,400,500,800)接收对所述多个多条件数据过滤器的指定,在所述显示设备上显示第二用户界面,其中所述第二用户界面允许用户指定多个多条件数据过滤器的应用次序,接收所述多个多条件数据过滤器的应用次序,以及

在所述显示设备(114)上在汇总表(204)中显示经过滤的汇总数据;以及汇总表数据过滤器模块,可用于:基于所述多个过滤条件和所述逻辑运算符从对所述多个多条件数据过滤器的指定中解析一个或多个过滤表达式,至少部分地基于所述多个多条件数据过滤器的应用次序确定所述一个或多个过滤表达式的应用次序,以及按所确定的应用次序将所述一个或多个过滤表达式应用于所述汇总数据。

11.如权利要求10所述的系统,其特征在于,所述汇总表数据存取模块、所述汇总表数据过滤器模块和所述汇总表UI模块是电子表格程序的组件。

说明书 :

对交互式汇总表的多条件过滤

[0001] 背景
[0002] 汇总表是使详细的、事务性源数据以变化的细节水平被“卷起”或概括的数据汇总工具。可在诸如电子表格程序和数据报告工具之类的数据可视化和分析程序中找到还被称为数据透视表(pivot table)的汇总表功能。数据分析程序可允许用户将汇总表绘制为网格,从而为网格的行和列标签指定来自源数据的数据字段以及在网格中所概括的数据值。数据分析程序随后可基于从源数据提取的行和列标签来对网格中的数据值进行归组,排序,计数和/或求和。
[0003] 数据分析程序可允许用户为汇总表的行和/或列标签指定多个数据字段。在该情况下,数据分析程序按照常规显示由行或列标签基于所指定的数据字段的次序来分层地概括的数据值。取决于用户的要求,数据分析程序还可允许用户交互地操纵汇总表,从而扩展和折叠分层结构中的行标签或列标签以显示更多或更少的数据值。
[0004] 交互式汇总表的一些实现可允许用户通过指定汇总表的数据过滤器来限制所显示的数据。数据过滤器可以是限制由数据分析程序在构建汇总表中所使用的源数据的报告级过滤器,或者数据过滤器可以是允许用户根据对应的行或列标签的值或在那行或列中概括的数据值来选择显示哪些行或列的行或列过滤器。
[0005] 由于用于指定数据过滤器的用户界面中的限制,这些实现一般限于每一行或列一个过滤器准则或条件,并且不允许创建包含多个附加条件的复杂数据过滤器。这些复杂数据过滤器在不同的大源数据集合之中搜索专用信息片段时可能是必要的。在这些情况下,在数据分析程序访问数据之前,用户可能不得不借助于使用数据库专家通过使用查询表达式或其他机制来预先过滤源数据。这增加了报告过程的复杂性和资源,并且可导致限制用户交互地操纵所显示数据的能力的专用汇总表。
[0006] 此处所做出的本公开正是针对这些和其他考虑事项而呈现的。
[0007] 概述
[0008] 本文中描述了用于允许交互式汇总表的用户指定多条件数据过滤器以修改在汇总表中显示的数据的技术。使用此处描述的技术,数据分析程序可提供用户界面,该用户界面允许用户创建复杂的多条件数据过滤器以及对数据过滤器的条件进行归组和排序以在汇总表中显示预期数据。这可允许用户在来自不同的大源数据集合的汇总表中显示数据行或列的特殊化子集,而不必采用数据库专家在数据分析程序读取源数据之前预先过滤该源数据。
[0009] 根据一个实施例,允许用户指定多条件数据过滤器的用户界面被显示给用户。对多条件数据过滤器的指定包括通过逻辑运算符连接的过滤条件集合。基于过滤条件和逻辑运算符从对多条件数据过滤器的指定中解析一个或多个过滤表达式,并且将这些过滤表达式应用于汇总数据,而汇总表根据汇总数据显示。
[0010] 应当理解,上述主题可被实现为计算机控制的装置、计算机过程、计算系统、或诸如计算机可读介质之类的制品。通过阅读以下详细描述并审阅相关联的附图,这些及各种其他特征将变得显而易见。
[0011] 提供本概述以便以简化形式介绍在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在将本概述用来限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任何部分中提及的任何或所有缺点的实现。
[0012] 附图简述
[0013] 图1是示出由此处呈现的各实施例提供的说明性操作环境和若干软件组件的各方面的框图;
[0014] 图2是示出根据此处描述的各实施例的说明性汇总表的显示的屏幕图;
[0015] 图3和4是示出根据此处描述的各实施例的用于为交互式汇总表指定多条件数据过滤器的用户界面的示例的屏幕图;
[0016] 图5A和5B是示出根据此处描述的各实施例的用于指定多条件数据过滤器、包括对数据过滤器的条件排序的能力的用户界面的另一个示例的屏幕图;
[0017] 图6A和6B是示出根据此处描述的各实施例的用于指定多条件数据过滤器、包括对数据过滤器的条件排序的能力的用户界面的另一个示例的屏幕图;
[0018] 图7A和7B是示出根据此处描述的各实施例的汇总表的显示基于分别在图6A和6B中所示的多条件数据过滤器中的条件排序的变化的屏幕图;
[0019] 图8A和8B是示出根据此处描述的各实施例的用于指定多条件数据过滤器、包括对数据过滤器的条件归组的能力的用户界面的另一个示例的屏幕图;
[0020] 图9是示出一种用于将多条件数据过滤器应用于交互式汇总表的显示的方法的流程图;以及
[0021] 图10是示出能够实现此处呈现的各个实施例的各方面的计算系统的说明性计算机硬件和软件体系结构的框图。
[0022] 详细描述
[0023] 以下详细描述涉及用于提供对在交互式汇总表中显示的数据的多条件过滤的技术。尽管在结合计算机系统上的操作系统和应用程序的执行而执行的程序模块的一般上下文中呈现了此处描述的主题,但是本领域技术人员将认识到,其他实现可结合其他类型的程序模块来执行。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域技术人员应当理解,可用其他计算机系统配置来实施此处描述的主题,这些计算机系统配置包括手持式设备、多处理器系统、基于微处理器的或可编程消费电子产品、小型计算机、大型计算机等。
[0024] 在以下详细描述中,参考了构成本发明的一部分并作为说明示出各具体实施例或示例的附图。在附图中,在全部若干附图中相似的标号表示相似的元素。
[0025] 图1示出了根据此处提供的各实施例的包括用于提供对交互式汇总表的多条件过滤的若干软件组件的说明性操作环境100。环境100包括计算机102。计算机102可以是个人计算机(“PC”)、台式工作站、膝上型计算机、笔记本计算机、个人数字助理(“PDA”)、应用服务器、主存基于Web的应用程序的Web服务器、或可执行应用程序的任何其他计算设备。
[0026] 计算机102执行数据分析程序104。数据分析程序104是允许计算机102的用户106可视化并操纵包含在可由计算机访问的数据源108中的数据的应用程序。数据分析程序104可以是电子表格程序,诸如来自美国华盛顿州雷德蒙市的微软公司的MICROSOFTEXCEL 电子表格软件、或者来自美国纽约州阿蒙克市的IBM公司的IBM LOTUS 1-2-3电子表格软件。数据分析程序104也可以是数据报告应用程序,诸如来自德国华德福市的TM
SAP、AG公司的SAP BUSINESSOBJECTS CRYSTAL REPORTS。数据源108可以是附连到计算机102或可由其访问的文件系统,并且可包含电子表格文件或其他数据文件。数据源108也可以是包含可由数据分析程序104查询的详细和/或概括数据的数据库或多维在线分析过程(“OLAP”)立方体。
[0027] 数据分析程序104可包括可用于从数据源108取回源数据并通过汇总功能将源数据变换成汇总数据的汇总表数据存取模块110。汇总表UI模块112随后可在连接到计算机102的显示设备114上将汇总数据显示给用户106。显示设备114可以是计算机监视器、平板显示器、数据投影仪、打印机、绘图仪、或附连到计算机102的任何其他输出设备。显示设备114还可以是Web浏览器应用程序或在通过网络访问计算机102的远程计算设备上执行的其他应用程序。用户可使用连接到计算机102或远程计算设备的诸如键盘、鼠标、触摸屏、指示笔、或跟踪球之类的输入设备116来通过汇总表UI模块112控制或操纵汇总表在显示设备114上的显示。
[0028] 根据各实施例,数据分析程序还包括汇总表数据过滤器模块118。汇总表数据过滤器模块118通过由汇总表UI模块112显示的用户界面(“UI”)接受来自用户106的对一个或多个数据过滤器的指定,并因此过滤在汇总表中显示的数据,如将在下文中更详细描述的。应当理解,尽管汇总表数据存取模块110、汇总表数据过滤器模块118和汇总表UI模块112在此处被描述为数据分析程序104的独立模块,但是此处使用这些模块来指代数据分析程序的特定功能,这些模块在实践中可用比此处描述的那些程序模块更多、更少、或不同的程序模块来实现。这些模块的描述并不旨在对数据分析程序104的编程结构施加任何限制。
[0029] 图2示出了包含由汇总表UI模块112呈现给显示设备114的汇总表204的窗口202的示例屏幕显示200。汇总表204由从源数据构造的行206和列208的网格构成,该源数据由汇总表数据存取模块110从数据源108取回。在该示例中,用来自源数据中的销售人员(SALESMAN)字段的值标记汇总表204的行206,而汇总表的列208反映订单日期(ORDER DATE)字段。例如,图2所示的行206中的一行有具有值为“皮科克(PEACOCK)”的销售人员行标签210。
[0030] 销售人员行标签210可卷起到来自源数据的国家(COUNTRY)字段,而列标签可按年度(YEAR)卷起。汇总表204还包括为每个行和列标签概括的两个数据值字段212A、212B:销售额(SALES)数据值字段212A和利润额(PROFITS)数据值字段212B。例如,图2所示的数据值214可表示2003年度中的销售人员“皮科克”的利润额数据值字段212B之和。另外,汇总表204可包括整个行和/或列的数据值字段212A、212B的总和。例如,在图2中还示出具有销售人员行标签210“皮科克”的行的“总销售额”值216A和“总利润额”值216B。
[0031] 图3示出了根据一个实施例的由汇总表UI模块112呈现的允许用户106指定多条件数据过滤器的UI 300。如上所述,数据分析程序104可向用户106提供通过指定一个或多个数据过滤器来限制在汇总表204中显示的汇总数据的能力。例如,用户106可在销售人员字段上指定数据过滤器以限制在汇总表204中显示的行206。图3所示的UI 300包括允许用户106指定销售人员行标签210的值的数据过滤器的数据过滤器窗口302。例如,作为用户106使用连接到计算机102的输入设备106来选择菜单项、工具栏按钮、或其他UI触发器的结果,汇总表UI模块112可显示数据过滤器窗口302。
[0032] 根据一个实施例,用户106可为数据过滤器指定多个准则或过滤条件304A-304D(此处统称为过滤条件304)。用户106可使用连接到计算机102的输入设备116来选择诸如图3所示的“添加条件(ADD CONDITION)”按钮控件之类的添加条件UI控件306,以将附加过滤条件304添加到数据过滤器窗口302。类似地,通过用户106选择诸如图3进一步示出的“删除条件(DELETE CONDITION)”按钮控件之类的删除条件UI控件308,可去除过滤条件304。
[0033] 过滤条件304通过用户106可使用逻辑运算符选择控件310A-310C(此处统称为逻辑运算符选择控件310)为每个附加条件选择的逻辑运算符连接。在一个实施例中,用户可为在数据过滤器窗口302中所添加的每个附加过滤条件304选择“与(AND)”或“或(OR)”运算符。连接过滤条件304的逻辑运算符确定汇总表数据过滤器模块118将如何应用数据过滤器,如将在下文中参考图8更详细描述的。作为一个示例,图3所示的数据过滤器窗口302指定数据过滤器,该数据过滤器将在汇总表204中所显示的行206限于其中销售人员行标签210的值包含“A”和其中销售人员行标签的值按字母顺序落在“C”和“F”之间、或其中销售人员行标签的值等于“莱沃林(LEVERLING)”、以及其中销售人员行标签的值按字母顺序小于“Z”的那些行。
[0034] 应当理解,过滤条件304之间的逻辑运算符的评估次序可影响要应用的对汇总数据的相应过滤。根据一个实施例,按与指定过滤条件304的次序相对应的默认次序评估逻辑运算符。从图3所示的示例,这可与以下过滤表达式相对应:
[0035] (((销售人员包含“A”与销售人员在“C”和“F”之间)或销售人员等于“莱沃林”)与销售人员小于“Z”)
[0036] 在另一个实施例中,数据分析程序104可向用户106提供将过滤条件304归组在一起以修改逻辑运算符的评估次序的能力,如将在下文中参考图8A和8B更详细描述的。
[0037] 另外,数据过滤器窗口302可允许用户106改变在窗口中列出的过滤条件304的次序。用户可利用诸如在图3中进一步示出的向上和向下按钮控件之类的重新排序条件UI控件312、314来按所列出的次序向上或向下移动特定过滤条件304,如将在下文中参考图5A和5B讨论的。一旦已通过逻辑运算符在数据过滤器窗口302中添加、排序和连接了过滤条件304,用户106即可选择确认(OK)按钮控件316来将数据过滤器应用于在汇总表204中显示的汇总数据。
[0038] 图4示出了根据又一个实施例的用于为销售人员字段指定多条件数据过滤器以限制在汇总表204中显示的行206的另一个UI 400。UI 400包括允许用户106指定数据过滤器的数据过滤器窗口302,该数据过滤器具有与对应于每个销售人员行标签210的总额值216A、216B相关的多个过滤条件304。如图4所示,数据过滤器窗口302指定数据过滤器,该数据过滤器将在汇总表204中显示的行206限于其中与销售人员行标签210相对应的总销售额值216A小于125000或大于150000、并且其中与销售人员行标签210相对应的总利润额值216B大于0的那些行。
[0039] 应当理解,可想象允许为汇总表204的行206或列208指定多条件数据过滤器的数据过滤器窗口302的其他实施例,这些多条件数据过滤器包括但不限于,包含与在汇总表中所示的总额值216A、216B相关的多个“前十”过滤条件304的“前十”数据过滤器、或包含在汇总表的列中所反映的订单日期字段的多个日期范围过滤条件304的日期范围数据过滤器。在又一个实施例中,汇总表UI模块112可提供诸如图5A和5B所示的数据过滤器窗口之类的定制数据过滤器窗口302,该定制数据过滤器窗口302允许用户106为相同的实体指定不同类型的多个过滤条件304。
[0040] 图5A示出了由汇总表UI模块112呈现的允许用户106指定多条件数据过滤器的UI 500的又一个示例。UI 500包括指定第一过滤器条件304A和第二过滤器条件304B的数据过滤器窗口302,第一过滤器条件304A将在汇总表204中显示的行206限于其中与每个销售人员行标签210相对应的总利润额值216B大于0的那些行,第二过滤器条件304B将所显示的行限于具有前两名相应的总销售额值216A的销售人员行标签210。换言之,可将多条件数据过滤器的过滤表达式逻辑地表达为:
[0041] (总利润额大于0与按照总销售额计的前两项)
[0042] 如以上参考图3所述,数据过滤器窗口302可允许用户106改变在窗口中列出的过滤条件304的次序。这可进而改变在应用数据过滤器时在汇总表204中显示的所得行206。例如,用户106可通过使用连接到计算机102的输入设备116来选择图5A所示的数据过滤器窗口302中的第二过滤条件304B,如选择框502所指示的。如果用户随后使用“向上”重新排序条件UI控件312来按所列出的次序向上移动第二过滤条件,则可随后在数据过滤器窗口302中列出过滤条件304,如图5B所示。根据图5B所示的数据过滤器窗口302中所列出的过滤条件304的次序,可将相应的过滤表达式逻辑地表达为:
[0043] (按照总销售额计的前两项与总利润额大于0)
[0044] 在一个实施例中,以上表达式和与以上参考图5A所讨论的多条件数据过滤器相对应的过滤表达式将导致相同的汇总表行206在汇总表204中显示。在另一个实施例中,尽管与两个多条件数据过滤器相对应的过滤表达式可能在逻辑上是等效的,但是预期结果可能是不同的,并且汇总表数据过滤器模块118可按特定次序应用这些过滤表达式以使在汇总表204中显示的汇总表行206满足预期结果,如将在下文中参考图9更详细描述的。
[0045] 根据各实施例,用户106可指定要应用于汇总表204的多个多条件数据过滤器。可使用数据过滤器窗口302的单独调用应用这些多条件数据过滤器来为相同实体指定不同的数据过滤器类型或为不同实体指定不同的数据过滤器。例如,用户106可使用数据过滤器窗口302来指定具有多个过滤条件304的数据过滤器,该多个过滤条件304与对应于汇总表204中的每个销售人员行标签210的总销售额值216A和总利润额值216B相关,如以上参考图4所讨论的。这可导致以下过滤表达式应用于汇总表204:
[0046] ((总销售额小于125000或总销售额大于150000)与总利润额大于0)另外,用户106还可使用数据过滤器窗口302来指定将所显示的行限于具有前两名相应的总销售额值
216A的销售人员行标签210的数据过滤器。这可导致以下过滤表达式进一步应用于汇总表
204:
[0047] (按照总销售额计的前两项)
[0048] 应当理解,以上描述的两个多条件数据过滤器对汇总数据的应用次序可影响在汇总表204中显示的所得汇总表行206。因此,根据一个实施例,数据分析程序104可提供诸如图6A和6B所示的UI 600之类的附加UI,该附加UI允许用户106查看当前应用于汇总表204的各个多条件数据过滤器以及改变它们的应用次序。如图6A所示,UI 600包括数据过滤器排序窗口602,其包含与应用于汇总数据的两个多条件数据过滤器相对应的数据过滤表达式604A、604B的列表,如上所述。
[0049] 按对汇总数据的当前应用次序列出数据过滤表达式604A、604B,其中首先应用与总销售额值216A和总利润额值216B相关的多条件数据过滤器,其次应用与前两个销售人员行相关的数据过滤器。如果将所列出的数据过滤器按所列出的次序应用于以上参考图2所述的汇总表204,则所显示的所得汇总表行206可如图7A中所示。
[0050] 如图7A所示,汇总表204中所显示的行206由按总销售额计的前两个销售人员行标签210组成,其来自具有小于125000或大于150000的相应总销售额值216A和大于零的总利润额值216B的销售人员行标签集合。应当理解,在传统汇总表实现中,可将数据过滤器应用于与现有分层结构中的不同父行标签相对应的每个行分组。例如,如图6A所示,数据过滤器被分别应用于卷起到国家字段值为“英国(UK)”的销售人员行标签210和卷起到国家字段值为“美国(US)”的销售人员行标签。
[0051] 数据过滤器排序窗口602还包含“向上”重新排序过滤器UI控件606和“向下”重新排序过滤器UI控件608,如在图6A中进一步示出的。用户106可使用这些UI控件606、608来改变多条件数据过滤器对汇总数据的应用次序。例如,用户106可通过使用连接到计算机102的输入设备116来选择图6A所示的数据过滤器排序窗口602中的第一数据过滤表达式604A,如选择框502所指示的。如果用户随后使用“向下”重新排序过滤器UI控件
608来按所列出的次序向下移动第一数据过滤表达式604A,则可随后在数据过滤器排序窗口602中列出数据过滤表达式604B、604A,如图6B所示。
[0052] 如果将数据过滤表达式604B、604A按图6B所示的次序应用于以上参考图2所述的汇总表204,则所显示的所得汇总表行206可如图7B中所示。如图7B所示,在汇总表204中显示的行206由按照总销售额的具有小于125000或大于150000的总销售额值216A和大于零的总利润额值216B的前两个销售人员行标签210组成。如附图所示,按图6B所示的次序应用多条件数据过滤器导致排除具有被包括在图6A所示的汇总表204的行206中的值为“富勒(FULLER)”的销售人员行标签210。应当理解,图7A和7B中的两个所得显示行206之间的差别可能因为以上参考图6A和6B所述的数据过滤器排序窗口602中的数据过滤器的不同排序产生。
[0053] 图8A和8B示出了由汇总表UI模块112呈现的允许用户106指定多条件数据过滤器的UI 800的又一个实施例。如上所述,数据分析程序104可向用户106提供将过滤条件304归组在一起以修改逻辑运算符的评估次序的能力。图8A所示的数据过滤器窗口302包括用户106可分别用来将过滤条件304归组和取消归组的归组条件UI控件802和取消归组条件UI控件804。
[0054] 例如,用户106可通过使用连接到计算机102的输入设备116来选择图8A所示的数据过滤器窗口302中的第二过滤条件304B和第三过滤条件304C,如选择框502所指示的。如果用户随后使用归组条件UI控件802来将所选过滤条件304B和304C归组在一起,则与数据过滤器窗口302中所指定的数据过滤器相对应的所得过滤表达式为:
[0055] (((销售人员包含“A”与(销售人员在“C”和“F”之间或销售人员等于“莱沃林”))与销售人员小于“Z”)
[0056] 应当理解,该过滤表达式可与对应于以上参考图3所述的数据过滤器窗口302中所指定的相同的四个过滤条件304A-304D的过滤表达式不同地,由汇总表数据过滤器模块118评估。
[0057] 根据一个实施例,汇总表UI模块112通过结合显示过滤条件304将图形归组显示806添加至窗口来指示数据过滤器窗口302中的当前所归组的过滤条件304B和304C,如图
8A进一步示出的。应当理解,汇总表UI模块112可使用其他形式的图形归组显示806,包括但不限于,围绕与当前所指定的归组相对应的经归组过滤条件304的括号的显示。
[0058] 作为附加示例,用户106还可选择数据过滤器窗口302中的第二过滤条件304B、第三过滤条件304C和第四过滤条件304D,如图8B所示的选择框502所指示的。如果用户106随后使用归组条件UI模块802来将所选的过滤条件304B、304C和304D归组,则数据过滤器窗口302会包含两个嵌套组,所得过滤表达式为:
[0059] (销售人员包含“A”与((销售人员在“C”和“F”之间)或销售人员等于“莱沃林”)与销售人员小于“Z”))
[0060] 另外,汇总表UI模块112可更新图形归组显示806以指示由用户在数据过滤器窗口302中创建的过滤条件304B和304C以及过滤条件304B、304C和304D的两个嵌套组,如图8B进一步示出的。还应当理解,除图8A和8B示出的且此处描述的嵌套组之外,数据分析程序104可支持过滤条件304之中有无限数量的嵌套组。
[0061] 现在参考图9,将提供关于此处呈现的实施例的附加细节。应当理解,参考图9所述的逻辑操作被实现为(1)在计算系统上运行的一系列计算机实现的动作或程序模块和/或(2)计算系统内的互连机器逻辑电路或电路模块。取决于计算系统的性能及其他要求,可以选择不同的实现。因此,此处描述的逻辑操作被不同地称为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可用软件、固件、专用数字逻辑以及其任何组合来实现。还应当理解,可执行比附图中示出的且此处描述的操作更多或更少的操作。这些操作还可按与所述次序不同的次序来执行。
[0062] 图9示出了用于基于一个或多个多条件数据过滤器过滤汇总数据以供在显示设备114上的汇总表204中显示的例程900。例程900在操作902处开始,其中汇总表数据过滤器模块118接收要过滤并要在汇总表204中显示的汇总数据。汇总表数据过滤器模块118可从汇总表数据存取模块110接收汇总数据。如上参考图1所述,汇总表数据存取模块
110从数据源108中取回源数据并通过汇总功能将源数据变换成汇总数据。
[0063] 例程900从操作902前进到操作904,其中汇总表数据过滤器模块118接收对一个或多个多条件数据过滤器的指定。根据一个实施例,用户106交互式地使用由汇总表UI模块提供的数据过滤器窗口302来指定多条件数据过滤器,如以上参考图3、4、5A、5B、8A和8C详细描述的。对多条件数据过滤器的指定可包括按特定次序指定的一个或多个过滤条件304,其中每个过滤条件304通过诸如“与”和“或”之类的指定逻辑运算符连接。另外,根据一个实施例,可将过滤条件归组在一起成为一个或多个嵌套组。
[0064] 例程900从操作904前进到操作906,其中汇总表数据过滤器模块118从在操作904中接收到的数据过滤器的指定中解析过滤表达式。从多条件数据过滤器中解析的过滤表达式将取决于在数据过滤器所指定的单个过滤条件304、连接过滤条件的逻辑运算符、指定过滤条件的次序、以及在过滤条件之间所指定的任何归组。例如,汇总表数据过滤器模块
118可解析在图3示出的且以上描述的数据过滤器窗口302中所指定的多条件数据过滤器,从而产生过滤表达式:
[0065] (((销售人员包含“A”与销售人员在“C”和“F”之间)或销售人员等于“莱沃林”)与销售人员小于“Z”)
[0066] 从过滤条件304的次序和每个过滤条件之间所指定的逻辑运算符中得到该表达式。在此,在没有任何指定的归组的情况下应用默认归组。
[0067] 类似地,可将在图8B示出的且如上所述的数据过滤器窗口302中所指定的多条件数据过滤器解析成过滤表达式:
[0068] (销售人员包含“A”与((销售人员在“C”和“F”之间或销售人员等于“莱沃林”)与销售人员小于“Z”))
[0069] 从由用户106在数据过滤器窗口302中作出的对过滤条件304B和304C以及过滤条件304B、304C和304D的两个嵌套组的指定中得到来自以上使用的相同四个过滤条件304A、304B、304C和304D的过滤表达式的此变体。
[0070] 根据一个实施例,由于需要将过滤表达式顺序地应用于汇总数据,某些多条件数据过滤器的解析可导致多个单独的过滤表达式。例如,在图5A示出的且如上所述的数据过滤器窗口302中指定的多条件数据过滤器可产生过滤表达式:
[0071] (利润额大于0)与(按销售额计的前两项)
[0072] 在这种情况下,应当顺序地应用过滤表达式:首先建立总利润额216B大于零的销售人员行集合、随后从那个集合中选择按总销售额值216A计的前两个销售人员行。
[0073] 例程900从操作906前进到操作908,在操作908中汇总表数据过滤器模块118确定应用以上操作906中从多条件数据过滤器中解析出的过滤表达式的次序。多条件数据过滤器的应用次序可基于用户106创建数据过滤器的次序,或者该次序可由用户使用以上参考图6A和6B所讨论的UI 600来指定。应当理解,要应用过滤表达式的次序还可取决于多个因素,包括但不限于,应用数据过滤器的数据字段之间的关系、行数据过滤器优于列数据过滤器的默认优先权、或一些其他因素。另外,如以上参考操作906所述的,汇总表数据过滤器模块118可基于用户106指定过滤条件304的次序将从单个多条件数据过滤器中得到的多个过滤表达式顺序地排序。
[0074] 接着,例程900从操作908前进到操作910,在操作910中汇总表数据过滤器模块118按在以上操作908中建立的次序将从多条件数据过滤器中解析的过滤表达式应用于汇总数据。当按特定次序应用多个过滤表达式时,可能需要汇总表数据过滤器模块118在每个过滤表达式的应用之间重新计算集聚汇总值,诸如行和列总计以及在汇总表204中所显示的任何分层结构中的小计。换言之,对后续过滤表达式的输入是应用先前过滤表达式的结果,其中任何集聚值都在应用该先前过滤表达式之后重新计算。这可通过应用与在2005年6月21日提交且题为“Dynamically filtering Aggregate Reports Based on Values Resulting from One or More Previously Applied Filters(基于从一个或多个先前应用的过滤器中得到的值动态地过滤集聚报告)”的美国专利公开No.US2006-0287998A1中描述的方法相类似的方法来完成,该专利申请通过引用整体上明确地结合于此。
[0075] 例程900从操作910前进到操作912,在操作912中汇总表数据过滤器模块118将经过滤的汇总数据传递给诸如以上参考图1所述的汇总表UI模块之类的显示模块以供在显示设备114上显示汇总表204。从操作912,例程900结束。
[0076] 图10示出了能够执行此处描述的用于以上文呈现的方式提供对交互式汇总表的多条件过滤的软件组件的计算机1000的示例计算机体系结构。图10所示的计算机体系结构示出了常规计算设备、PDA、数字蜂窝电话、通信设备、台式计算机、膝上型计算机、或服务器计算机,并且可用来执行此处呈现的被描述为在计算机102或其他计算平台上执行的软件组件的任何方面。
[0077] 图10所示的计算机体系结构包括中央处理单元1002(CPU)、包括随机存取存储器1014(RAM)和只读存储器1016(ROM)的系统存储器1008、以及将存储器耦合至CPU 1002的系统总线1004。基本输入/输出系统存储在ROM1016中,该系统包含帮助诸如在启动期间在计算机1000内的元件之间传输信息的基本例程。计算机1000还包括用于存储操作系统
1018、应用程序和其他程序模块的大容量存储设备1010,这将在此处更为详细地描述。
[0078] 大容量存储设备1010通过连接到总线1004的大容量存储控制器(未示出)连接到CPU 1002。大容量存储设备1010及其相关联的计算机可读介质为计算机1000提供非易失性存储。虽然对此处包含的计算机可读介质的描述引用了诸如硬盘或CD-ROM驱动器之类的大容量存储设备,但是本领域技术人员应该理解,计算机可读介质可以是可由计算机1000访问的任何可用计算机存储介质。
[0079] 作为示例而非限制,计算机可读介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块之类的信息或其他数据的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机可读介质包括但不限于,RAM、ROM、EPROM、EEPROM、闪存或其他固态存储器技术、CD-ROM、数字多功能盘(DVD)、HD-DVD、蓝光、或其他光学存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或可用来存储所需信息且可由计算机1000访问的任何其他介质。
[0080] 根据各种实施例,计算机1000可使用通过网络1020至远程计算设备和计算机系统的逻辑连接在联网环境中操作。计算机1000可通过连接到总线1004的网络接口单元1006来连接到网络1020。应当理解,网络接口单元1006还可用来连接到其他类型的网络和远程计算机系统。计算机1000还可包括用于接收并处理来自包括键盘、鼠标、触摸垫、触摸屏、电子指示笔、或其它类型的输入设备的多个输入设备116的输入的输入/输出控制器
1012。类似地,输入/输出控制器1012还可向诸如计算机监视器、平板显示器、数字投影仪、打印机、绘图仪、或其他类型的输入设备的显示设备114提供输出。
[0081] 如上简述,多个程序模块和数据文件可存储在计算机1000的大容量存储设备1010和RAM 1014中,包括适用于控制计算机的操作的操作系统1018。大容量存储设备1010和RAM 1014还可存储一个或多个程序模块。具体而言,大容量存储设备1010和RAM 1014可存储数据分析程序104,这曾在上文中参考图1更详细地描述。大容量存储设备1010和RAM 1014还可存储其他类型的程序模块或数据。在一个实施例中,程序模块在包含指令的计算机可读介质中具体化,这些指令在由CPU 1002执行时执行用于基于一个或多个多条件数据过滤器过滤汇总数据以供在汇总表中显示的例程900,如以上参考图8更详细描述的。
[0082] 基于上述内容,应当理解,此处提供了用于提供对交互式汇总表的多条件过滤的技术。虽然以计算机结构特征、方法动作、以及计算机可读介质专用的语言描述了此处呈现的主题,但是应当理解,在所附权利要求书中定义的本发明不一定限于此处描述的具体特征、动作或介质。相反,这些具体特征、动作和介质是作为实现权利要求书的示例形式来公开的。
[0083] 上述主题仅作为说明提供,并且不应被解释为限制。可对此处描述的主题作出各种修改和改变,而不必遵循所示和所述的示例实施例和应用,且不背离所附权利要求书中所述的本发明的真正精神和范围。