详细描述
以下将参考附图更全面地描述各实施例。此处公开的各实施例是示例,并且不应被解释为限制;相反,提供这些实施例以使本公开内容全面且完整。贯穿全文,相同的参考标号指相同的元素。
此处描述的各实施例涉及用于分析计算机系统上的数据的数据汇总表。
现在参考图1,示出了一个示例计算机系统100。图1所示的计算机系统100可采用各种形式,诸如台式计算机、膝上型计算机以及手持式计算机。另外,尽管示出了计算机系统100,但是此处公开的系统和方法也可在各种替换计算机系统中实现。
系统100包括处理器单元102、系统存储器104和将包括系统存储器104的系统组件耦合至处理器单元102的系统总线106。系统总线106可以是若干种总线结构中的任一种,包括存储器总线、外围总线以及使用各种总线体系结构中的任一种的局部总线。系统存储器包括只读存储器(ROM)108和随机存取存储器(RAM)110。基本输入/输出系统112(BIOS)包含有助于在计算机系统100内的元件之间传输信息的基本例程,它被储存在ROM 108中。
计算机系统100还包括用于对硬盘进行读写的硬盘驱动器112,用于对可移动磁盘116进行读写的磁盘驱动器114,以及用于对诸如CD ROM、DVD或其它光学介质等可移动光盘119进行读写的光盘驱动器118。硬盘驱动器112、磁盘驱动器114和光盘驱动器118分别通过硬盘驱动器接口120、磁盘驱动器接口122和光驱接口124连接到系统总线106。驱动器及其相关联的计算机可读介质为计算机系统100提供了对计算机可执行指令、数据结构、程序和其它数据等的非易失性存储。
尽管此处描述的示例环境可采用硬盘112、可移动磁盘116以及可移动光盘119,然而在示例系统100中也可以使用能够储存数据的其它类型的计算机可读介质。可在该示例操作环境中使用的这些其它类型的计算机可读介质的示例包括盒式磁带、闪存卡、数字录像带、Bernoulli盒式磁盘、随机存取存储器(RAM)以及只读存储器(ROM)。
多个程序模块可被储存在硬盘112、磁盘116、光盘119、ROM 108或RAM 110上,包括操作系统126、一个或多个应用程序128、其它程序模块130以及程序数据132。
用户可以通过诸如键盘134、鼠标136或其它定点设备等输入设备向计算机系统100输入命令和信息。其它输入设备的示例包括工具栏、菜单、触摸屏、话筒、操纵杆、游戏手柄、笔、圆盘式卫星天线和扫描仪。这些和其它输入设备通常通过耦合至系统总线106的串行端口接口140连接到处理单元102。然而,这些输入设备也可以通过其它接口连接,如并行端口、游戏端口或通用串行总线(USB)。LCD显示器142或其它类型的显示设备也通过接口,如视频适配器144连接到系统总线106。除显示器142之外,计算机系统通常可包括其它外围输出设备(未示出),如扬声器和打印机。
计算机系统100可以使用到一个或多个远程计算机,如远程计算机146的逻辑连接在网络化环境中操作。远程计算机146可以是计算机系统、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并通常包括许多或所有以上相对于计算机系统100所描述的元件。网络连接包括局域网(LAN)148和广域网(WAN)150。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机系统100通过网络接口或适配器152连接至局域网148。当在WAN网络环境中使用时,计算机系统100通常包括调制解调器154或用于通过广域网150,如因特网建立通信的其它装置。调制解调器154可以是内置或外置的,它通过串行端口接口140连接至系统总线106。在网络化环境中,相对于计算机系统100所描述的程序模块或其部分可储存在远程存储器存储设备中。可以理解,示出的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其它手段。
此处描述的各实施例可被实现为计算系统中的逻辑操作。逻辑操作可被实现为(1)在计算机系统上运行的计算机实现的步骤或程序模块的序列,以及(2)在计算系统内运行的互连逻辑或硬件模块。该实现是取决于特定计算系统的性能要求的选择问题。因此,构成此处所描述的实施例的逻辑操作被称为操作、步骤或模块。本领域的普通技术人员将认识到,这些操作、步骤和模块可用软件、固件、专用数字逻辑及其任何组合来实现而不脱离所附权利要求书中所述的本发明的精神和范围。该软件、固件或类似的计算机指令序列可被编码并储存在计算机可读存储介质上,并且还可被编码在载波信号内以便在计算设备之间传输。
现在参考图2,示出了一示例程序200。在一个示例中,程序200是运行在诸如上述计算机系统100等计算机系统上的微软的EXCEL电子表格软件程序。程序200包括具有一示例数据列表210的电子表格205。用户可从数据210中创建数据汇总表。
例如,现在参考图3,示出了程序200的一个示例用户界面302。用户界面302包括初始数据汇总表320(数据汇总表320在图3中是空白)。数据汇总表320可从来自各个源的数据中创建。在如图3所示的一个示例中,数据汇总表320可从来自一个或多个数据库的数据中创建,如以下进一步描述的。在其它实施例中,数据汇总表320可从诸如图2所示的数据210等电子表格中的数据创建。
程序200的用户界面302还包括可用于创建和修改数据汇总表320的示例任务窗格450。例如,任务窗格450包括来自数据210的字段列表。用户可从任务窗格450中选择和取消选择字段来创建数据汇总表320,如以下进一步描述的。
I.任务窗格
现在参考图4,示出了示例任务窗格450。任务窗格450一般包括字段窗格452和布局窗格454。任务窗格450用于创建和修改数据汇总表320,如以下进一步描述的。
字段窗格452包括给定数据库或电子表格(例如,如以上图2中所示的电子表格205)中的每一字段的列表453。提供一滚动条451,因为字段的列表453要比由字段窗格452提供的空间长。在某些实施例中,字段窗格452(以及布局窗格454)可由用户调整大小。列表453中的每一字段包括该字段旁边的复选框。例如,字段“Profit”(利润)包括与该字段文字说明相邻地放置的复选框460。当列表453中的一字段如以下所述地被添加到布局窗格454时,复选与该字段相关联的复选框。例如,用于“Profit”字段的复选框460被复选是因为它已被添加到布局窗格454。
布局窗格454包括表示使用任务窗格450创建的数据汇总表320的各方面的多个区。例如,布局窗格454包括行区455、列区456、值区457以及过滤器区458。行区455定义了用于所得的数据汇总表320的行标签。列区456定义了用于数据汇总表320的列标签。值区457标识了在数据汇总表320上汇总(例如,合计、方差等)的数据。过滤器区458允许选择应用于其它区455、456、457中的所有其它字段的过滤(例如,一字段可被放置在过滤器区458中,并且可选择与该字段相关联的一个或多个项来创建一过滤器以仅示出布局窗格454中与对过滤器区458中的字段所选的项相关联的所有其它字段的那些项)。
来自字段窗格452的字段中的一个或多个可被添加到布局窗格454的一个或多个区中,以创建和修改数据汇总表320。在所示的示例中,用户可点击一字段并将其从字段窗格452的列表453拖放到布局窗格454的区之一以将一字段添加到数据汇总表320。
例如,如图5所示,用户可悬停在包括在字段窗格452中的一特定字段,诸如“Store Sales”(商店销售)字段466上。当用户悬停在该字段上时,向用户呈现一十字丝光标472,它指示用户可点击所选字段并将其从字段窗格452拖到布局窗格454的区之一。一旦用户选择了该字段,该十字丝光标472就返回到正常光标,并且“Store Sales”字段466可被如图所示拖放到值区457中。字段可类似地通过选择该字段并将其从布局窗格454中拖出来从布局窗格454中移除。
在另一示例中,用户可复选与字段窗格452中的一特定字段相关联的复选框,以将该字段添加到布局窗格454。例如,如果用户选择与图4的任务窗格450中所示的“Profit”字段相关联的复选框460,则该字段可作为“Profit”字段462被添加到值区457。如以下进一步描述的,程序200可被编程为分析所选字段并将其放置在布局窗格454的适当区中。用户可类似地取消选择一复选的字段以将该字段从布局窗格454中移除。例如,如果用户取消选择复选框460,则“Profit”字段462从布局窗格454中移除。
在一可任选示例中,如果用户点击一给定字段以选择该字段而不将该字段拖到放置区454的区之一,则可向用户呈现允许用户选择要将该字段放到哪一区的菜单(例如,类似于图6所示的菜单482)。
现在参考图7,示出了用于将来自字段窗格452的字段添加到布局窗格454的区的示例方法500。在操作501处,用户选择列在字段窗格452中的一字段以添加到布局窗格454。在操作502处,确定用户是否选择了与该特定字段相关联的复选框。如果用户选择了该复选框,则控制传递到操作503,并且程序200可自动确定要将所选字段放置在布局窗格454的哪一区中。接着,在操作507中,将该字段添加到布局窗格454的适当区中。
如果在操作502处确定用户未选择该复选框,则控制传递到操作504。在操作504处,确定用户是否选择了该字段并将其拖放到布局窗格454的区之一中。如果用户已将该字段放到布局窗格454的区之一中,则控制传递到操作507,并且该字段被添加到该区。
如果在操作504处确定用户未拖放该字段,则在一可任选实施例中,控制传递到操作505,因为用户已选择了该字段而没有选择该复选框或将该字段拖/放到布局窗格454的区中。在操作505处,程序200向用户呈现允许用户选择向其添加该字段的区的菜单。接着,在操作506处,用户选择期望的区。在操作507处,将该字段添加到该区。
一旦字段被添加到布局窗格454的区,控制传递到操作509,并且程序200如下所述相应地更新数据汇总表320。
再次参考图4,一旦来自字段窗格452的诸如“Profit”字段等字段被添加到布局窗格454的区之一,则与字段窗格452中与该字段相关联的复选框(例如,复选框460)被复选以指示该字段是数据汇总表320的一部分。另外,字段窗格452中与该字段相关联的字段标签的字体被加粗。类似地,当一字段尚未成为数据汇总表320的一部分(或已从其中移除时),与该字段相关联的复选框保持未复选,并且该字段正常显示而非加粗字体。也可使用用于指示作为数据汇总表320的一部分的字段的其它方法。
当字段被添加到任务窗格450的布局窗格454或从中移除时,相应地修改所得的数据汇总表320。例如,最初向用户呈现如图3所示的包括字段窗格452的任务窗格450。参考图8,当用户将“Profit”字段添加到布局窗格454的值区457时,与“Profit”字段相关联的数据的和被自动添加到数据汇总表320。参考图9,用户可将其它字段(例如,“Sales Average”(平均销售)、“Customers”(顾客)、“Gender”(性别))添加到布局窗格454的各区,并且更新数据汇总表320以包括与所添加的字段有关的数据。
参考图10,用户也可将字段从一个区移至任务窗格450的布局窗格454的另一区,并且相应地更新数据汇总表320。例如,用户可将“Gender”字段从列区456移至行区455,并且数据汇总表320被相应地自动更新以反映该变化。用户还可在给定区455、456、457、458内移动字段以改变在数据汇总表320中显示字段的次序。例如,用户可将“Gender”字段移至行区455中“Customer”字段上方,使得在数据汇总表320中“Gender”字段在“Customer”字段之前显示。
现在参考图6,在一个示例中,如果用户点击并释放位于布局窗格454中的诸如“Product Categories”(产品类别)字段481等字段而不拖曳该字段,则向用户呈现允许用户操纵字段在布局窗格454内的放置的菜单482。例如,菜单482允许用户改变字段在给定区中的位置(即,“Move up”(上移)、“Move Down”(下移)、“Move to Beginning”(移至开头)、“Move to End”(移至末尾))、在各区之间移动字段(即,“Move to Row Labels”(移至行标签)、“Move to Values”(移至值)、“Move to Column Labels”(移至列标签)、“Move to Report Filter”(移至报表过滤器))、以及从布局窗格454中移除字段(即,“Remove Field”(移除字段))。仅对特定字段可用的那些选项被示为菜单482上的活动选择(例如,“Move to Row Labels”在该示例中被示为非活动的,因为字段481已在行区455中)。
再次参考图4,任务窗格450还包括手动更新复选框469。当选中复选框469时,在添加、重新排列或从任务窗格450的布局窗格454中移除字段时不会自动更新所得的数据汇总表320。例如,如果用户选中手动更新复选框469然后向布局窗格454的行区455添加一字段,则数据汇总表320不会被自动更新以反映该新添加的字段。相反,更新在用户选择了一旦作出选择之后即变为活动的手动更新按钮471之后发生并可执行手动更新。手动更新可用于在用需要大量检索和处理时间来创建数据汇总表320的大量数据工作时提高效率。以此方式,可在创建或修订数据汇总表320之前选择所需字段并进行过滤,这在选中手动更新按钮471时发生,由此提高了效率。
参考图11,字段窗格452中所示的字段表示“联机分析处理(OLAP)”类型的数据字段。(相反,图5中的字段窗格452中所示的字段是非OLAP类型,有时被称为关系型字段)。OLAP是提供对储存在数据库中的数据的分析的一类工具。OLAP工具允许用户分析多维数据的不同维度。OLAP数据字段以具有多个层次的分层结构来排列。例如,“Sales Fact 1991”(1991年销售事实)字段包括子字段“Store Sales”(商店销售)、“Unit Sales”(单位销售)以及“Store Cost”(商店成本)。子字段可通过点击钻入(drill)指示符(加/减+/-号)566以展开和折叠子字段来访问。OLAP数据可被排列成具有层次和度量的各维度。
在所示的实施例中,字段窗格452中所列出的每一字段包括多个分量。字段可通过悬停在该字段上或点击该字段来加亮显示。例如,诸如图11中所示的“Product”(产品)字段等每一字段包括允许用户选择并拖曳该字段的选择区域558和559。每一字段还包括可用于从数据汇总表320中添加/移除字段的复选框560。另外,每一OLAP数据类型的字段可包括用于展开和折叠与该字段相关联的子字段的钻入指示符556。另外,每一字段包括用于访问如以下进一步描述的过滤选项的下拉区域562。
再次参考图4,任务窗格450还包括允许用户修改任务窗格450的布局的控件470。例如,用户可选择控件470来访问如图12所示的布局菜单572。布局菜单572用于排列窗格452和454。例如,如果用户选择控件470中的“Fields and Layoutstacked”(堆叠的字段和布局)573,则字段窗格452在任务窗格450中被放置在布局窗格454上方以形成单个集成窗格,如图4所示。如果用户选择控件470中的“Fields and Layout side by side”(并排的字段和布局)574,则在任务窗格450中字段窗格452与布局窗格454并排放置以形成单个集成窗格,如图13所示。如果用户选择控件470中的“Fields only”(仅字段)575,则单独示出字段窗格452,如图14所示。如果用户选择控件470中的“Layout only 2 by 2”(仅2×2的布局)576,则单独示出布局窗格454,并且区455、456、457、458以2×2的正方形排列,如图15所示。如果用户选择控件470中的“Layout only 1 by 4”(仅1×4的布局)577,则单独示出布局窗格454,并且区455、456、457、458以1×4的正方形排列,如图16所示。
在图5所示的示例中,字段窗格452中的字段以字母表顺序列出。对于诸如图4所示的包括OLAP类型数据的列表,首先示出度量,然后以字母表顺序示出各维度。在所示的示例中,维度文件夹以展开的形式示出,所有其它字段以折叠形式示出。也可使用其它配置。
II.布局窗格中字段的自动化放置
再次参考图4,如果用户通过复选与一字段相关联的复选框来选中该字段,则程序200被编程为将所选字段自动放置在布局窗格454的区之一中,如以下所述。
一般而言,数值类型的字段被添加到值区457,而非数值类型的字段被添加到布局窗格454的行区455。例如,数值类型的字段(例如,金钱销售额)通常被累计因此被放置在值区457中,而非数值类型的字段(例如,产品名)通常用作行标签,因此被自动放置在行区455中。
现在参考图17,示出了用于向布局窗格454的区之一自动添加一选中字段的示例方法600。在操作601处,用户使用例如与字段窗格452中的一字段相关联的复选框来选中该字段。接着,在操作602处,确定该字段是否是数值类型。如果该字段是数值类型,则控制被传递到操作603,并且将该字段添加到值区457以供累计。如果在操作602处该字段被确定为不是数值类型的,则控制被传递到操作604,并且将该字段添加到行区455。
在某些实施例中,数值类型的字段可在将该字段添加到值区457之前被进一步分析以确定布局窗格454中的不同放置是否更恰当。例如,包括多个邮政编码值的字段是数值类型的,但是通常期望将这一字段放在行区455而非值区457中。出于此原因,在某些实施例中使用数据语义来进一步分析数值类型的字段以标识布局窗格454中期望的放置。
在一个实施例中,使用诸如以下示例表1的查找表来标识被添加到行区455而非值区457的数值类型的字段。
FieldTypeString(字段类型串) |
MinValue(最小值) |
MaxVlue(最大值) |
“zip”(邮政编码) |
|
|
“year”(年) |
|
|
“quarter”(季度) |
1 |
4 |
“qtr”(季度) |
1 |
4 |
“month”(月) |
1 |
12 |
“week”(周) |
1 |
52 |
“day”(日) |
1 |
31 |
“id” |
|
|
“number”(号) |
|
|
“social security number”(社会保障号) |
|
|
“ssn” |
|
|
“phone number”(电话号码) |
|
|
“date”(日期) |
|
|
在表1中,列“FieldTypeString”包括要与所选字段的文字说明进行比较的文本串,如以下进一步描述的。在所示的示例中,将所选字段的文字说明与表1的FieldTypeString列中的每一串进行比较以标识任何大小写不敏感匹配。
如果在FieldTypeString列中的文本串与所选字段的文字说明之间找到匹配,则使用表1的“MinValue”和“MaxVlue”中的值来进一步分析该字段中的数值项。MinValue列中的值指定了给定FieldTypeString类型的任一项的最小值。MaxVlue列中的值指定了给定FieldTypeString类型的任一项的最大值。如果表1中没有对特定FieldTypeString类型定义MinValue,则确定数值项是否是低于MaxValue的整数。如果对一特定FieldTypeString类型没有定义MaxValue,则确定该数值项是否是高于MinValue的整数。如果对一特定FieldtypeString类型既没有定义MinValue也没有定义MaxValue,则确定该数值项是否是整数。
例如,如果所选字段包括文字说明“Month”,则剖析表1并标识与FieldTypeString值“month”的匹配。接着,剖析与该字段相关联的数值以确定该数值是否落入最小值“1”和最大值“12”(表示1月到12月)之间。在一个实施例中,测试该字段的所有数值项。在其它实施例中,诸如当有大量的数值项时,仅对照表1中的最小值和最大值测试一数值项样本。如果所有值都落入最小值和最大值之间,则将该字段添加到行区455而非值区457,如以下进一步描述的。
表1所示的文本串和最小值及最大值仅是示例,并且可使用不同的串和值。例如,可取决于生成数据的地理位置来修改文本串和最小/最大值(例如,电话号码值可取决于地理位置而有所不同)。在其它实施例中,可使用不同类型的语义检查。例如,除了检查数值项的实际值之外或作为其替代,可分析数值项的位数。例如,如果一字段的文字说明匹配文本串“zip”(即,邮政编码),则可检查该字段中的数值项的位数以查看位数是否落入最小值5(例如,“90210”包括5位)和最大值10(例如,“90210-1052”包括10位)之间。
现在参考图18,示出了用于在布局窗格454中自动放置所选字段的示例方法610。方法610类似于上述方法600,不同之处在于进一步分析了数值类型的字段。在操作611处,用户使用例如与字段窗格452中的一字段相关联的复选框来选中该字段。接着,在操作612处,确定该字段是否是数值类型的。如果该字段是非数值类型的,则控制被传递到操作613,并且将该字段添加到行区455。
如果操作612处的判定是该字段是数值类型的,则控制被传递到操作615。在操作615处,剖析该字段的文字说明,并在操作616处将该文字说明与诸如以上表1所示的文本串的查找表进行比较。如果在操作616中没有形成该文字说明与一文本串之间的匹配,则控制被传递到操作619,并且该字段被添加到值区457。如果在操作616中形成该文字说明与表1中的文本串之间的匹配,则控制被传递到操作617。
在操作617处,剖析字段的数值项,并在操作618处,将该数值项的值与表1中与该文本串相关联的最小值和最大值进行比较。如果该数值项落在如上所述的最小值和最大值之外,则控制被传递到操作619,并且将该字段添加到值区457。如果在操作618处该数值项落入最小值和最大值之内,则控制被传递到操作613,并且该字段被添加到行区455。
以此方式,可自动标识特定的数值类型字段,并将其放置在行区455中而非默认值区457中。如果一字段由程序200自动放置在布局窗格454的一特定区中,并且用户希望该字段被放置在一不同的区中,则用户可选择该字段并将其拖到所需的区。
在某些实施例中,标识与日期信息相关联的字段并将其放置在列区456而非行区455或值区457中。例如,图19所示的方法630类似于上述方法610,其包括操作61-619。然而,在操作618处,如果该数值项落入最小值和最大值内,则控制被传递到操作631。在操作631处,确定该字段是否是日期字段。在所示的示例中,该判定是按照文字说明所匹配的文本串来作出的。例如,如果字段的文字说明包括文本“Date”(日期),并且与表1中的文本串“date”匹配,则该字段被标识为日期字段。如果该字段是日期字段,则控制被传递到操作632,并且将字段添加到列区456。如果该字段不是日期字段,则控制被传递到操作613,并且将该字段添加到行区455。
在替换实施例中,与一特定字段相关联的元数据可用于标识关于该字段的属性。例如,元数据可用于标识一字段是否是数值和/或日期字段。
在某些实施例中,当将一标识OLAP数据的字段自动添加到布局窗格454和数据汇总表320时,使用以下规则:
A.OLAP分层结构/OLAP命名集
1.该分层结构被添加到行区
2.该分层结构在行区中的所有其它字段的内部嵌套
3.对于具有多个层次的分层结构,在数据汇总表中显示最高层字段,并且用户可钻入来查看较低层字段
B.OLAP度量/OLAP KPI表达式
1.如果已添加了至少一个度量,则该度量被添加到与已添加的度量相同的区
2.添加第二度量将在布局窗格中引入一数据字段(例如,见图10中的“∑ Values”(∑值)字段),并且该数据字段默认被放置在列区中—当值区中有两个或更多字段时该数据字段被显示在布局区中
3.当被添加时,该数据字段在列区中的所有其它字段的内部嵌套
4.该数据字段驻留在行或列区的任一个中
在某些实施例中,当将一标识非OLAP数据的字段,即关系型字段自动添加到布局窗格454和数据汇总表320时使用以下附加规则:
A.对于非数值字段,将该字段添加到行区—该字段在行区中的所有其它字段的内部嵌套
B.对于数值字段,将该字段添加到值区
1.如果至少一个字段已经在值区中,则该字段将被添加到与已经添加的字段相同的区中
2.将第一字段添加到值区将在布局窗格中引入数据字段,并且该数据字段默认被放置在列区中
3.当被添加时,该数据字段在列区中的所有其它字段的内部嵌套
4.该数据字段驻留在行或列区的任一个中
III.过滤任务窗格
再次参考图11,可将一个或多个过滤器应用于特定字段的项以限制要包括在数据汇总表320中的信息。例如,用户可使用用于任务窗格450的字段窗格452中所列出的特定字段的下拉区域562来访问过滤任务窗格700。
现在参考图20,示出了示例过滤任务窗格700。界面700一般包括字段选择器下拉控件705、手动过滤器区域707、以及过滤控制区域709。
选择器下拉控件705可用于选择不同的字段来进行过滤。对于OLAP数据,选择器下拉控件705中的字段可用分层排列来显示,并且可使用下拉控件705来选择OLAP数据的不同层次来进行过滤。在所示的示例中,所选的字段是“Country”(国家)字段。
手动过滤器区域707列出了与选择器下拉控件705中所示的字段相关联的所有项。各复选框与手动过滤器区域707中列出的每一项相关联,以允许用户手动选择要将哪些项包括在过滤器中。参考图21,对于OLAP数据,可通过点击钻入指示符加/减(+/-)号来展开和折叠与手动过滤器区域707中列出的每一字段相关联的项,来访问子项。例如,以展开形式示出了“Drink”(饮料)和“Food”(食品)项。选择“Food”项的复选框713,这导致也选中了“Food”的每一子项。对于“Drink”项,仅选中子项“Alcoholic Beverages”(酒精饮料),并且对与“Drink”项相关联的复选框712提供一混合指示符以示出“Drink”项的仅一部分子项被选中。可选择“select all”(选择所有)复选框711来选择/取消选择过滤器区域707中所示的所有层次处的每一项。
再次参考图20,当用户使用选择器下拉控件705来选择一不同字段时,相应地更新手动过滤器区域707以列出与选择器下拉控件705中所示的字段相关联的项。如果新选中的字段来自与选择器下拉控件705中原始所选的字段相同的分层结构中的另一层次,则手动过滤器区域707保持不变,因为对OLAP数据,在手动过滤器区域707中显示所有层次的项。
过滤控件区域709列出了可供应用于选择器下拉控件705中所示的所选字段的过滤器控件。控件710允许用户改变列出经过滤的项的次序。例如,用户可选择控件710之一以使经过滤的项以从A→Z或从Z→A的字母表顺序列出。控件715用于提供另外的排序选项,诸如按照特定字段排序。
用户可选择控件720来移除对下拉选择器705中的字段的所有过滤。控件725和730允许用户选择要应用于下拉选择器705中的字段的特定过滤器。例如,如果用户选择控件725,则向用户呈现图22所示的飞出(fly-out)菜单740。菜单740列出了可被应用于所选字段的多个过滤器。菜单740中列出的过滤器是那些一般被应用于标签字段的过滤器。这些过滤器包括,但不限于,“Begins With”(以……开始)、“Does Not Begin With”(不以……开始)、“Ends With”(以……结束)、“Dos Not End With”(不以……结束)、“Contains”(包含)以及“Does NotContain”(不包含)。用户可从菜单740中选择一过滤器来将该过滤器应用于该字段中的项。同样,用户可选择控件730来访问图23所示的飞出菜单745。菜单745包括可被应用于值字段的过滤器。这些过滤器包括,但不限于,“Equals”(等于)、“Does Not Equal”(不等于)、“Greater Than”(大于)、“Greater ThanOr Equal To”(大于或等于)、“Less Than”(小于)、“Less Than Or Equal To”(小于或等于)、“Between”(在……之间)以及“Not Between”(不在……之间)。
现在参考图24,当用户从飞出740、745之一中选择一过滤器时,向用户呈现诸如对话框760等对话框以构建所需过滤器。在对话框760中,用选择器下拉控件705中所选的字段来预填充字段选择框722,并且用从飞出740、745中所选的过滤器来预填充过滤器选择框774。用户可通过选择字段选择框722中的下拉菜单来选择一不同字段,以便例如访问当前包括在值区457中的其它字段。用户可通过选择过滤器选择框774中提供对该数据类型可用的所有过滤器的清单的下拉菜单来选择一不同过滤器。准则框776允许用户放置值以便在其中进行过滤。例如,如果用户选择手动过滤器区域707中的“Store Sales”项,然后从飞出745中选择“GreaterThan”过滤器,则向用户呈现对话框770。用户可在准则框776中输入值“50000”来将过滤器设为过滤大于$50,000的所有商店销售。
现在参考图25,可取决于选择器下拉控件705中所示的字段的类型来修改控件725和730。例如,任务窗格700包括日期类型的字段,并且因此包括允许按照日期来过滤的控件725,以及允许按照值来过滤的控件730。用户可选择控件725来访问图26所示的飞出菜单760。飞出菜单760包括可被应用于数据类型的字段的多个过滤器。
在某些实施例中,仅向用户呈现适用于所选字段的那些控件。例如,如果用户选择非日期和非数值类型的字段,则控件725是活动的,以提供具有适用于这一字段的过滤器的飞出菜单740。如果用户选择日期字段,则控件725是活动的,以提供具有适用于日期字段的过滤器的飞出菜单760。如果用户选择数值、非日期类型的字段,则控件730是活动的,以提供具有适用于数值数据字段的过滤器的飞出菜单745。
在某些实施例中,在一给定字段被添加到数据汇总表320之前,各过滤器可以与该字段相关联。过滤器实际上可在该特定字段被添加到数据汇总表320时应用。以此方式,可减少在数据汇总表320上访问并汇总的数据量,由此提高效率。如果将一过滤器应用于已经包括在数据汇总表320中的字段,则根据该过滤器来更新数据汇总表320以仅示出经过滤的项。
关于所选过滤器对数据的应用的其它细节可在2005年6月21日提交的题为“Dynamically Filtering Aggregate Reports Based on Values Resulting from One orMore Previously Applied Filters”(基于从一个或多个先前应用的过滤器所得的值来动态地过滤累计报表)的美国专利申请第11/157,634号中找到,该申请的全部内容通过引用结合于此。
过滤窗格700中的复选框指示符752(见图25)与已应用的任何过滤器相邻地放置。现在参考图27,一旦一过滤器被应用于一给定字段,则在任务窗格450的字段窗格452中与该字段相邻地示出一过滤器图标810,以指示该一过滤器被应用于该字段。在某些实施例中,一类似的过滤器图标也与布局窗格454和数据汇总表320中的每一经过滤的字段相关联。
另外,当定点设备悬停在具有过滤器图标810的特定字段上时,提供如图28所示的工具提示830。工具提示830在以下三个部分之一中列出了经过滤的字段:手动过滤器(Manual filters)、标签过滤器(Text filters)和值过滤器(Number filters)。工具提示830还以对所应用的过滤器类型的评估的顺序列出了所过滤的字段。对于具有较长标签的过滤器,可按需截断标签的一部分以便适合该工具提示。对于每一过滤器,工具提示830示出对于年份2000、2001、2002、2003和2004,一手动过滤器首先被应用于“Year”(年)字段。工具提示830指示然后将一文本过滤器应用于“Product Name”字段,这需要文本“ab”。工具提示830中还示出了附加过滤。以此方式,用户可通过检查工具提示830来标识要对数据汇总表320应用哪些过滤器,并且还可标识应用这些过滤器的次序。
在所示的示例中,用户可使用用于任务窗格450中列出的特定字段的下拉区域562(见图11)来访问过滤任务窗格700。如果用户从数据汇总表320中访问界面700,则在选择器下来控件705中所示的默认字段是数据汇总表320中当前选中的字段。用户可使用选择器下拉控件705来选择另一字段。在其它实施例中,也可通过在数据汇总表320中选择下拉区域862来从数据汇总表320内访问过滤任务窗格700。见图9。在其它实施例中,用户可通过选择数据汇总表320中的一个或多个字段并右键点击所选字段来来访问一个或多个过滤选项,以访问过滤任务窗格700。这些选项可包括,例如在手动过滤器中包括或排除所选字段,或使用上述标签、日期或值过滤器来过滤所选字段。
如果从数据汇总表320来访问过滤任务窗格700,则可基于用户在哪里访问界面700来选择下拉控件705中列出的字段。例如,如果用户从数据汇总表320的一行中的一字段选择下拉区域862,则示出当前在行上的所有字段。如果用户改为从数据汇总表320的一列中的一字段选择下拉区域862,则示出当前在列上的所有字段。
在所示的示例中,过滤信息与向其应用该过滤的特定字段一起储存。例如,如果过滤被应用于不是数据汇总表320的一部分的字段,则该过滤信息与该字段相关联,并且在该字段被添加到数据汇总表320时被应用。同样,如果具有一过滤器的字段从数据汇总表320中移除,则该过滤器信息与该字段一起保留,使得如果该字段稍后被添加回数据汇总表320,可重新应用该过滤器。如上所述,对一字段的过滤可通过选择该字段然后选择控件720(见图20)来移除。
以上描述的各实施例是仅作为说明来提供的,并且不应被解释为限制。本领域的技术人员将认识到可在不遵循此处所示并描述的示例实施例和应用、并且不脱离所附权利要求书中所述的本发明的真正精神和范围的情况下作出的各种修改和改变。