便于使用的数据上下文过滤的制作方法

文档序号:6633890阅读:177来源:国知局
专利名称:便于使用的数据上下文过滤的制作方法
技术领域
本发明一般涉及软件应用程序邻域,尤其涉及诸如通过数据查询存储并排序数据的软件应用程序,还涉及过滤从查询结果返回的数据。
背景技术
为了管理大量数据,已经开发了诸如电子制表和数据库应用程序的计算机软件应用程序来以逻辑方式组织并存储数据。典型的电子制表和数据库应用程序包括大量的信息记录,其中每个记录包括预定数量的字段。在数据库的上下文中,数据库管理系统通常被用来提供更简单地操纵数据库的软件工具。例示数据库管理系统包括微软Access和微软SQL Server等。数据库通常使用户能建立在电子表格中不可用的复杂的数据相互关系,这提高了它们的能力但也使数据库应用程序对新用户而言更难掌握。
典型的数据库管理系统向用户提供添加、更改或删除数据的能力,以及查询、排序或重新组合数据库中记录的能力。此外,普通系统还提供与维护数据库数据的安全性和整体性相关的功能。
查询在电子表格或数据库应用程序中的大量数据是复杂的和令人害怕的任务,特别是对新用户而言。确定如何在电子表格中指定一数据查询也是困难的。数据库应用程序会特别难以使用,因为常使用整个查询语言来使能更复杂的查询。查询语言会使新用户害怕,因而需要更加用户友好的查询界面。
本发明是参照这些和其它考虑作出的。

发明内容
根据本发明,计算机实现方法被提供用于过滤查询的图形设计。接收一信号以过滤表格。然后,分析特定键字段的上下文,且显示基于该上下文的过滤器菜单。接收过滤器选择,并创建相应的过滤器。
根据其它方面,本发明涉及一种用于方便使用数据过滤的系统。菜单模块维护过滤器菜单。接收模块接收过滤器信号以及从过滤器菜单的选择。过滤器模块执行过滤。显示模块显示过滤器菜单和过滤结果,而上下文分析模块分析特定表格单元或列的上下文。
根据另外的方面,本发明涉及一种用于过滤查询的自动化创建的方法。显示数据表格。接收过滤该表格的信号。分析特定列的上下文,并基于该上下文显示过滤器菜单。接收过滤器选择,并创建和执行一新的过滤器。本发明可被实现为计算机进程、计算系统或诸如计算机程序产品或计算机可读介质的制造品。计算机可读介质可以是计算机系统可读的并编码用于执行计算机进程的指令的计算机程序的计算机存储介质。该计算机程序可读介质还可以是计算系统可读的并编码用于执行计算机进程的指令的计算机程序的载波上的传播信号。
参阅以下详细描述和附图,特征化本发明的这些和各种其它特征和优点将变得显而易见。


图1示出其中可实现本发明实施例的数据库环境。一列表示图包含未经过滤的数据。数据库管理系统的该列表示图表示现有技术。
图2示出其上可实现本发明一实施例的适当计算系统环境的一个示例。
图3示出在本发明一实施例中执行的各操作的操作流。
图4是示出包括本发明一实施例的各模块的框图。
图5示出一示例屏幕截图,其中已接收要过滤的信号并显示一过滤器菜单。未经过滤的记录可在背景中看到。
图6示出另一示例屏幕截图,其中从过滤器菜单中选择一特定过滤器。
图7示出另一示例屏幕截图,其中特定过滤器已被应用于数据,并可看到最后所得的经过滤记录。
具体实施例方式
图1示出数据库管理系统内产品订购数据库的列表示图(也称为表格102)的屏幕截图。表格102具有包括多个行和列的数据的一个表格。每行数据通常包括单个数据记录。一般而言,可依靠数据库中每列数据来包括相同类型的数据元素。例如,Order ID列104包括数字格式的数据元素,Customer列106包括字母字符串形式的数据,Order Date列108包括日期格式的数据等。本领域技术人员将理解,许多其它类型的数据可被保存在数据库中,并使用数据库管理系统内的表格显示。
尽管图1中数据有欺骗性的简单视觉呈现,直到现在用户仍然不得不以适当的结构化查询语言通常通过设计并键入查询命令来手动地明确表达查询。因此尽管数据库管理系统可提供数据的直接示图,明确表达有效查询对初见数据库世界的电子表格用户是难以学习的技术。通过允许过滤数据的“罐装”(预先制造的)查询,并允许简单的查询接口,本发明使数据库和电子表格产品能比以前更容易被新用户访问。
假设本发明可被实现为计算机系统,提供了图2以示出其上可实现本发明实施例的适当计算系统环境的一个示例。在其最基本配置中,计算装置200通常包括至少一个处理单元202和存储器204。取决于计算装置200的准确配置和类型,存储器204可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等等)、或两者的某种组合。计算装置200的最基本配置由虚线206在图2中示出。
除了存储器204,系统可包括至少一种其它形式的计算机可读介质。计算机可读介质可以是系统200可访问的任何可用介质。作为示例,但非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质包括以用来存储诸如计算机可读指令、数据结构、程序模块、或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。存储器204、可移动存储器208和不可移动存储器210都是计算机存储介质的示例。计算机存储介质包括,但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字化多功能盘(DVD)或其它光学存储器、磁盒、磁带、磁盘存储器、其它磁性存储装置、或可用来存储所需信息并可由系统200和处理器202访问的任何其它介质。任何这种计算机存储介质可以是系统200的一部分。
系统200还可包含使装置能与其它装置通信的通信连接212。通信连接212是通信介质的一个示例。通信介质通常体现为计算机可读指令、数据结构、程序模块、或其它诸如载波或其它传送机制的已调制数据信号中的其它数据,并包括任何信息传送介质。术语“已调制数据信号”意指具有以这种把信息编码到信号中的方式来设置或改变的一个或多个特征的信号。作为示例,而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、RF、红外和其它无线介质的无线介质。术语计算机可读介质在此使用时,包括存储介质和通信介质。
根据一实施例,系统200包括诸如输入装置214和/或输出装置216的外围装置。示例性输入装置214包括,但无限制,键盘、计算机鼠标、笔或电子笔、语音输入装置、触摸输入装置等。示例性输出装置216包括,但无限制,诸如显示器、扬声器、打印机的装置。对于本发明,显示器是主要的输出装置。所有这些装置在本领域中是众所周知的,无需在此赘述。
图3示出本发明一实施例,其中使用上下文过滤来查询表格。在本发明一实施例中,显示表格操作302显示一表格(诸如图1中的表格102)。该表格实际上可包括任何类型的数据。每列数据一般包含单个同类数据类型的数据,诸如一系列日期、字母字符串或数字。
当用户点击适当的图形用户界面(GUI)控制序列时,接收操作304接收要过滤表格数据的信号。在本发明一实施例中,在特定列或列标题(指示“关键字段”的列,如下所述)上右击鼠标导致信号被发送给接收操作304。在本发明一可选实施例中,在表格中一特定单元上(单元所在列变成关键字段)左击导致信号被发送给接收操作304。本领域技术人员将理解,来自输入装置的任何数量的可能GUI控件或命令序列,可被用来选择特定类型的数据。示例包括将鼠标指针集中在给定数据元素、列、或列标题上,伴随以激活某鼠标按钮。或者,键盘可被用来作选择。又或者,键盘、鼠标、跟踪球、或其它输入装置动作的组合可被用来选择数据元素、列、或列标题。
在一实施例中,接收操作304可将对列中单元的选择翻译成要基于整列内容过滤的信号。在一可选实施例中,接收操作304可将对列中单元的选择翻译成要特别基于特定单元内容过滤的信号。选择所对应的列变成“关键字段”,即其值被用来判定过滤或不过滤每个给定行的列。例如,为了从来自产品订购数据表格的查询结果中略去或“滤去”在2004年之前的所有订购,“order date”(订购日期)列必然变成该查询的关键字段。
当选择一特定单元(而非整个列时)时,将值集成到单元中的过滤选项是可能(例如参见图5、6、7中示例,如下所述)。
参照一可选实施例,数据表格外部的数据也可被结合到过滤器中。例如,滤去订购数据表格中“今天”的订购需要检索外部数据(即今天的日期)并结合到查询中,因为当前的日期和时间一直在变从而存储到数据表格中是不实际的。
在接收操作304接收要过滤的信号之后,分析上下文操作306分析选定的数据单元或列来确定它包含哪种数据类型。适于确定数据类型的数据过滤器也可被添加到过滤器菜单502(参见图5)。
例如,如果数据类型被确定是日期,则适合日期的一个或多个过滤器将被添加到过滤器菜单(参见图5 502的示例性过滤器菜单)。这样的日期特定过滤器选择可包括“今天”,它可被用来滤去与今天日期不匹配的所有记录。类似地,“昨天”和“明天”也是可由分析上下文操作304添加到过滤器菜单的日期特定过滤器选择。其它日期特定的过滤器选择可包括“本周”、“上月”、“上个季度”、“今年”等。其它的日期特定选择可包括比包含在单元中(如果选定一特定单元)日期“新的”、比包含在选定单元中“旧的”、或与包含在选定单元中“同月”的。
在又一实施例中,基于日期的过滤器可涉及“期间内所有日期”过滤器。例如,该类过滤器的用户选项或选择可包括“1季度”和/或“2季度”等以显示与选定季度相关联的所有数据,而不用考虑年份。在另一实施例中,选择可包括诸如“1月”、“2月”、“3月”等的月份,从而用户可选择这些选项来仅示出选定月份期间的日期,而不用考虑年份值。这样,对于这些示例,同一应用程序可分别查看并过滤过去5年中第一季度的销售或给定月份中的所有生日。
在一给定实施例中,其它类型-特定的过滤器可因其它数据类型而存在。例如,字符串-特定过滤器可包括“is”(是),它可滤去不匹配特定单元中所包含字符串的数据记录。类似地,“is not”(不是)可滤去匹配特定单元中所包含字符串的数据记录。“Begins with”(以之开始)可被用来滤去不包含以用户指定字符串开始的字符串的记录,因而允许通过部分匹配给定字符串进行过滤。“contains”(包含)可允许类似部分搜索,该类返回具有包含另一给定字符串的字符串的元素。“Notblank”(不空白)可滤去在指定字段内包含一空白字符串的数据记录。
在另一实施例中,出现在列中的值的列表被呈现给用户。每一个值的旁边是一复选框,或允许二进制选择的其它控件。包含不匹配选定(复选)值的值的记录将被滤去。
在另一实施例中,数字特定过滤器使能基于数字字段的内容进行过滤。例如,“Smallest 25”(最小25个)可滤去除包含表示关键字段中最小的25个值的关键字段的记录之外的全部记录。如果存在包含非唯一数字的列,则这样的过滤器可返回25个以上的记录,因为在比较数字时SQL报告“系于”最高或最低状态的所有数字。例如,滤去除对应于最小25个客户邮编的记录之外的所有记录仍可包括太多客户记录,因为成千上万的客户可驻留在每个邮编内。作为又一示例,“Largest100”(最大100个)可滤去除包含表示关键字段中最大100个值的关键字段的记录之外的全部记录。“Greater than average”(大于平均值)将计算一列数字的平均值,然后滤去小于或等于该平均值的记录。类似地,“Less than average”(小于平均值)将计算一列数字的平均值,然后滤去大于或等于该平均值的记录。在另一实施例中,用户可使用“Between”(之间)过滤器来指定2个数字,而包含不在由该两个数字形成的范围之内值的记录将被滤去。
在又一实施例中,百分比可被用来滤去数字值。例如,“Smallest 5 percent”(最小的5%)或“Largest 25 percent”(最大的25%)可被用来基于相对表格中其它数字的值过滤数字。
在本发明一特定实施例中,包含具有非常有限值选择的单元的列可使得分析上下文操作306将真实值加入过滤器菜单。例如,仅允许“Yes”或“No”为可能值的列可使分析上下文操作306将“Yes”或“No”过滤器选项加入过滤器菜单。
本领域技术人员将理解某些过滤器可适于多种数据类型。例如,“Equals”可被用来滤去不等于选定单元内容的的所有数据记录。“Equals”可被用来寻找一匹配日期、数字、字母字符串、布尔值等。
在本发明一实施例中,分析上下文操作306可确定不需要向过滤器菜单添加其它过滤器。
在分析上下文操作306向过滤器菜单添加任何适当过滤器之后,显示操作308显示该过滤器菜单(对于过滤器菜单的示例,参见图6中602)。由显示操作308示出的过滤器菜单可包括适于所有数据类型的缺省过滤器(诸如上述的“Equals”)。
一旦已显示过滤器菜单,接收操作310接收一过滤器选择。在一实施例中,可通过将鼠标指针停留在过滤器菜单中一给定过滤器上并点击鼠标按钮作选择。然而,本领域技术人员将理解,任何数量的输入装置序列可被用来从过滤器菜单中选择一过滤器,而不背离本发明范围。
在接收一过滤器选择之后,确定操作312确定对一选定表格列是否存在过滤器。如果过滤器对于选定表格列存在,则流分支YES到移除操作314。然而,如果过滤器对于选定表格列未存在,则流分支NO到创建操作316。
在本发明一实施例中,两个过滤器不能被应用于同一表格列,所以如果确定操作312确定过滤器对于选定表格列存在,则移除操作314被用来移除该过滤器为新过滤器让路。
如果无过滤器对指定表格列存在,或如果过滤器存在且通过移除操作314移除,则创建操作316随后创建一新的过滤器。该新的过滤器包括以诸如SQL的查询语言编码的查询。
在本发明一可选实施例中,多个过滤器可被应用于同一表格列,只要那些过滤器不互相排斥。
在涉及数据库的一实施例中,可创建结合一SQL“where”限定词的过滤器查询。Where限定词当被添加到SQL查询时可被用来进行搜索或缩小查询结果。例如,将“where Country=Lithuania”附于SQL查询末端可使该查询仅返回Country列的值等于“Lithuania”的结果。类似地,将“where OrderID=41475”附于一SQL查询将使查询仅返回OrderID等于41475的结果。这样,where限定词可被用来返回匹配查询的任意宽或窄的记录列表。
本领域技术人员将理解,除了查找全匹配,where限定词还可被用来通过使用常规表达式(本领域内众所周知的搜索工具)来寻找对查询的部分匹配。例如,可更改where查询来查询具有以“L”开始Country值的所有记录。类似地,特定范围的数字和/或日期也可使用where限定词来查询。
在另一实施例中,一过滤器可结合SQL“top”限定词。这可被用来指示一查询仅返回任意数量的最高或最低条目。例如,通过将Top(5)添加到销售数据库查询,对一给定查询将仅返回最高的5个销售数据而非全部销售。在平局情形中,示例性销售数据库将返回5个以上记录。
本领域技术人员将理解,where和最高SQL限定词被仅提供为示例性实施例,且其它查询限定词可被用来构建查询而不背离本发明的范围。此外,某些实施例涉及电子表格,它可不用查询语言而相反直接对数据执行查询。
在涉及数据库的一实施例中,包含适当SQL限定词的过滤查询被创建,并存储于存储器中用于进一步的更改和/或以后的使用。
在本发明一实施例中,创建操作316还可通过在显示过滤器菜单的任何时候使其高亮来选择过滤器菜单上的给定过滤器。
在创建一过滤器之后,执行操作318基于该过滤器来执行过滤。在一数据库实施例中,由创建操作316创建的查询由数据库管理系统以查询语言发给数据库。在另一实施例中,过滤直接由应用程序执行。结果可被存储在存储器中,或直接存储到显示操作320(如下所述)用于呈现。
显示操作320在屏幕上呈现由执行操作318产生的查询结果。该结果可从存储器读取,通过执行操作318直接输送到显示操作320,或以其它方式传送到显示操作320用于呈现。结果替换原始的未经过滤的表格呈现。
在本发明一可选实施例中,结果可在一附加结果表格中呈现,而不必替换原始的未经过滤的表格。
在本发明一特定实施例中,存在使用户能删除所有当前有效过滤器的“clearfilters”控件。可任选地,“clear filters”控件还可关闭所有过滤器重新发出当前查询,并在屏幕上相应地更新结果。
图4是示出包括本发明一实施例的模块的框图。一实施例400在执行查询、执行过滤查询、或接收过滤查询的结果时可与存储器420通信。实施例400还与显示装置430通信以允许对单元、列、以及过滤器的图形选择能返回过滤器等。
菜单模块402维护特定表格列的过滤器菜单。这可包括将上下文适当的过滤器选项添加到过滤器菜单,从菜单移除上下文不适当的过滤器菜单、并排序过滤器菜单中的过滤器选项。
接收模块404接收过滤器记录的信号和来自过滤器菜单的过滤器选择的信号。输入可通过键盘输入或其它输入装置或通过自动化脚本或宏从GUI接收。
过滤器模块406创建过滤器。在涉及数据库的实施例中,过滤器模块406还创建与过滤器相关联的查询并执行那些查询。尽管SQL是数据库领域中的重要查询语言,过滤器查询可用包括诸如HQL(健康查询语言)的SQL专用版本、或与SQL无关的查询语言的任何查询语言来创建。查询的执行可在数据库管理系统层上发生,或可被授权给访问数据库的低层程序。查询可在与数据库管理系统运行的同一系统上执行,或发送到一个或多个远程系统用于执行。在后者情形中,远程系统将(直接或间接地)结果返回到数据库管理系统,从而可显示查询结果。过滤器还可由电子表格应用程序直接应用于数据,而不使用查询或数据库管理系统。
显示模式408示出本发明的许多方面。例如,显示模式408可显示电子制表或数据库管理系统中的一个表格。它还可显示先前结合图3讨论的过滤器菜单。此外,它可以表格的显示或其它适当格式显示过滤器的结果。显示模块408可与显示装置430交互以呈现它在显示的元素。
上下文分析模块410分析数据表格中特定单元或列的上下文。适当的(和不适当的)过滤器可使用预定标准(参见结合图3对分析上下文操作306的讨论)或其它标准导出。
图5示出已接收要过滤信号(未示出)的一示例屏幕截图以及所显示的过滤器菜单502。未经过滤的记录504可在背景中看到,因为过滤器还未从过滤器菜单502中选择。在示例性屏幕截图中,当用户先点击Order Date列506中第一个单元(未示出)(因而在随后的过滤发生之后将Order Date选为关键字段),再点击Common Filters菜单项508时,过滤器菜单502显示,尽管本领域技术人员将理解该功能可简便地在不同单元或列上和/或用不同菜单项、按钮、鼠标或键盘序列或选择工具栏元件触发而不背离本发明的范围。
图6示出另一屏幕截图,其中从过滤器菜单604中选择特定过滤器602。在该示例性屏幕截图中,特定的过滤器602通过将鼠标指针停留在其上并左击来选择,尽管本领域技术人员将理解可使用其它序列和其它输入装置来作该选择而不背离本发明范围。
图7示出另一示例性屏幕截图,其中特定过滤器(未示出;结合图6参见602)已被应用于未经过滤数据(未示出;结合图1参见102),并可看到最后的经过滤数据702。Order data列704被加以阴影,以注意到经过滤数据702仅包含其OrderDate关键字段值为5月的记录。
本领域技术人员将理解,尽管为了简便各示例性实施例仅处理一过滤器,应用于多个列的多个过滤器可同时有效,从而使与过滤器的交互更精确地集中于过滤器查询。类似地,本领域技术人员将理解,尽管示例性实施例在电子制表和数据库应用程序的上下文中呈现,本发明须在特定数据可在数据集中选择的任意上下文里使用。此外,不需显示最后特定数据。相反它可被保存到存储器,发送给打印机、经电子邮件发送、或以其它方式引导而不背离本发明范围。
上述各个实施例仅被提供作为说明,且不应被解释为限制本发明。本领域技术人员将容易理解,对本发明作各种更改和改变而无需遵从在此示出和描述的示例实施例和应用程序,并不背离在此后权利要求中陈述的本发明的真实精神和范围。
权利要求
1.一种用于过滤器查询的图形表达的计算机实现方法,其特征在于,包括接收要过滤表格的信号;分析特定关键字段的上下文;基于所述上下文显示过滤器的菜单;以及从过滤器的所述菜单接收一过滤器选择。
2.如权利要求1所述的计算机实现方法,其特征在于,还包括发出所述相关联过滤器查询。
3.如权利要求1所述的计算机实现方法,其特征在于,还包括显示与所述过滤器查询相关联的结果。
4.如权利要求1所述的计算机实现方法,其特征在于,还包括如果另一过滤器已对一列存在,则移除一过滤器。
5.如权利要求1所述的计算机实现方法,其特征在于,分析指定关键字段的上下文还包括确定列的数据类型。
6.如权利要求1所述的计算机实现方法,其特征在于,分析指定关键字段的上下文还包括计算一列中数值的平均值。
7.如权利要求1所述的计算机实现方法,其特征在于,分析指定关键字段的上下文还包括从所述过滤器菜单中移除一不适当过滤器。
8.如权利要求1所述的计算机实现方法,其特征在于,过滤器菜单内容可由用户配置。
9.如权利要求1所述的计算机实现方法,其特征在于,特定过滤器值可由用户以二进制方式选择。
10.如权利要求1所述的计算机实现方法,其特征在于,还包括创建一新过滤器和一相关联过滤查询。一种用于便于使用的数据过滤的系统包括菜单模块,用于维护过滤器菜单;接收模块,用于接收过滤器信号和来自所述过滤器菜单的选择;过滤器模块,用于创建过滤器查询并执行过滤;显示模块,用于显示所述过滤器菜单和过滤结果;以及上下文分析模块,用于分析特定表格单元或列的上下文。
11.如权利要求10所述的系统,其特征在于,所述显示模块还显示数据表格。
12.如权利要求10所述的系统,其特征在于,还包括移除任何现存过滤器的公式移除模块。
13.一种用于过滤器查询的自动化创建的方法,其特征在于,包括显示数据表格;接收要过滤所述表格的信号;分析指定列的上下文;基于所述上下文显示过滤器的菜单;接收来所述过滤器菜单的过滤器选择;以及创建一新的过滤器。
14.如权利要求13所述的方法,其特征在于,还包括创建一相关联的过滤查询;以及执行所述过滤查询。
15.如权利要求13所述的方法,其特征在于,还包括显示与所述过滤查询相关联的显示结果。
16.如权利要求13所述的方法,其特征在于,还包括如果另一过滤器已对一列存在,则移除过滤器。
17.如权利要求13所述的方法,其特征在于,创建新过滤器还包括从特定数据单元检查用于所述新过滤器的数据。
18.如权利要求13所述的方法,其特征在于,创建新过滤器还包括检索有关当前时间和日期的数据。
19.如权利要求13所述的方法,其特征在于,分析指定关键领域的上下文还包括从所述过滤器菜单移除不适当过滤器。
20.如权利要求13所述的方法,其特征在于,过滤器菜单内容可由用户配置。
全文摘要
揭示了一种用于过滤器查询的图形表达的方法和系统,它使数据查询能通过菜单选择简便进行。接收要过滤或查询数据表格的信号。然后,分析已发信号的关键字段的上下文,并基于该上下文来明确表达并显示过滤器菜单。过滤器选择被接收,且相应的过滤器被执行。该过滤器的结果在屏幕上示出。
文档编号G06F17/30GK1783072SQ20051008851
公开日2006年6月7日 申请日期2005年7月29日 优先权日2004年9月30日
发明者C·W·布莱恩特, C·D·科温顿, P·E·贝格曼, R·迪金森, T·M·拜延 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1