具体实施方式
下面参考附图更全面地描述各种实施例,这些附图构成这些实施例的一部分,并且示出用于实践本发明的特定示例性实施例。然而,可用许多不同形式实现各实施例并且不应解释为限制于在此所述的实施例;相反,提供这些实施例是为了使本说明书更完整,并能充分地向本领域的技术人员表达本发明的范围。各实施例可被实践为方法、系统或设备。因此,各实施例可以采用硬件实现、完全软件实现或组合软硬件方面的实现的形式。因此,下面的详细描述没有限制意义。
各个实施例的逻辑操作实现为(1)运行于计算系统上的计算机实现步骤的序列和/或(2)计算系统内互连的机器模块。实现是依赖于实现实施例的计算系统的性能要求的选择问题。因此,构成在此所述实施例的逻辑操作可替换地称为操作、步骤或模块。
数据一般以有组织的方式存储在计算机系统上,该方式允许数据响应于用户命令排序、操纵和显示。这种数据可以使用数据库系统来存储,数据库系统提供用户操纵数据的命令。另外,可使用模式来定义要如何存储和访问数据。近来,直接编码模式和操纵数据库信息需要的编程语言知识是一般用户所没有的,并且对于拥有这种知识的用户而言效率很低。也可以使用数据库设计器,但限制了同时访问数据和数据库结构的能力。
传统上,数据库应用程序的用户要克服的最大困难之一是表单和报告的运行时间与设计经验之间的分裂。浏览模式一般是微软Office
Access
数据库中对象的运行时间模式。当处于浏览模式中时,表单和报告中的控件(诸如文本框和标签)是数据绑定的----即,它们以设计表单所确定的格式显示来自数据库中表的数据。浏览模式通常也是对象被打开的默认模式。“视图”是数据库中的可以用于可视地交互或者查看表格中存储的数据(例如,报告、表单、查询等等)的对象。
在各个实施例中,浏览模式设计器是易于使用的构建表单与报告的界面。浏览模式设计器允许数据库应用程序的一般用户容易地设计表单和报告。用户可以使用它来构建有意义的报告,其中聚合数据以及将相关数据组合成更易于信息消耗的成形模式(shaped pattern)。浏览模式设计器不仅包括用于组合来自各种数据源的信息的系统,而且还通过让用户组合从显示表面选择的信息来允许个人从表格中精选所需数据。
浏览模式设计器可以解释用户的动作并且推断要执行什么动作。所推断的动作修改基础的源文件和/或模板(基于对其它报告的检查来确定大多数报告构建者期望什么以及相似的直观推断,诸如“在执行数据透视表功能时不要复制字段中重复的项”),使得信息以用户有可能期望数据呈现的方式来显示。不是实际报告一部分的用户界面也被显示以让用户改变所得到的视图。
浏览模式设计器还允许用户就应当如何布局经组合信息作出某些选择。浏览模式设计器允许用户查看数据同时对视图作出改变。浏览模式设计器除了能够自动重新排序数据(相对于其它字段)和重新调整字段大小(例如基于要显示的数据长度)之外,还能自动重新调整整行和整列数据的大小。用户也能可视地格式化数据(例如,加粗、变斜体、加下划线等等)以及调整其数据在视图中的位置定位。
例如,用户想要构造一个关于职员的报告,其中“职员”是单元,并且具有相关联的信息,诸如名,姓以及电话号码(即单元“职员”的属性)。浏览模式设计器允许用户构造关于所有职员的报告,包括他们选择的任何属性,同时在构造期间一直查看实际的当前的报告。浏览模式设计器还使得属性(以字段的形式)互相知道并且将它们自己适当地定位在报告表面上。当添加字段到报告时,例如,字段“名”将不会覆盖字段“姓”。而且,字段“电话号码”可在稍后插入到“名”与“姓”之间,并且这些字段会分开,以给所添加字段提供空间。
图1例示在浏览模式设计器中添加字段到堆叠式布局(如在微软Office
Access
中所使用的)。在一个实施例中,浏览模式设计器在计算机系统上实现,诸如一个连网到数据库的计算机。任务窗格110用于显示例如可以用于修改视图120的数据库字段。任务窗格110显示用户可选择(例如通过拖拉并放在视图120上)以创建所需视图的可用字段。
如在视图120中所示,从任务窗格110的字段列表拖拉字段122使得一条 插入线被显示在组成堆叠式布局124的一个阴影区域内的可能放置点上。释放字段122使得新字段132被显示在视图130中。
图2例示在浏览模式设计器中添加字段到表式布局(例如在微软Office
Access
中所使用的)。如在视图220中所示地,从任务窗格110的字段列表拖拉字段222使得一个包括表224的阴影区域被形成。释放字段222使得新的列233被显示在视图230中。
图3例示在浏览模式设计器中添加字段到空白视图。如在视图320中所示,从任务窗格110的字段列表拖拉字段322使得一个阴影区域在视图320中形成。释放字段322使得新的列332被显示在视图330中。
图4例示当在浏览模式设计器中添加字段到空白视图时选择非默认布局。如在视图420中所示,激活控件422使得替换选择424被显示在视图420中。(控件422可以通过例如将光标悬浮在字段426上来显示。)
替换选择424显示一般为所选择字段的替换的布局。例如,字段426处在表式布局中,而替换选择424显示文本“Show in Stacked Layout(在堆叠式布局中显示)”。点击替换选择424使得所选择字段被重新排序到堆叠式布局432中,如视图430中所示。在一个实施例中,浏览模式设计器实现根据下面表1的命令。
表1
关于查看来自相关数据源的数据,字段列表(在任务窗格中)允许用户添加字段到视图,这些字段当前还不是视图所绑定的查询的一部分。添加来自相关数据源的字段一般是将该字段添加到查询并且同时将控件添加到视图。
如在下面表2中所示,对于将来自相关数据源的字段添加到视图,存在六种可能的情况。在该表中,“1”指已经显示来自在数据关系的“一”端的表的数据的表单或报告,而“∞”指已经显示来自在数据关系的“多”端的表的数据的表单或报告。数据关系是由数据库存储的有关两个或多个表中的数据的信息。例如,它可表示,对于一个表中的每一记录,另一表中的多个记录共享给定字段集合的同一数据。在图5中,Customers(客户)表与Orders(定单)表具 有一对多关系,因此对于Customers中通过在ID字段中具有唯一值来确定的每一记录,在Orders中可以有零、一或多个记录,其中字段CustomerID等于Customers记录中ID字段的值。对于这些情况的每一个,一般执行不同的动作。图5-10在以下基于示例数据库例示表2中的动作,其中“Orders”具有对“Customers”的多对一关系。
表2
|
自1->∞的拖拉 |
自∞->1的拖拉 |
单项表单 |
联接 |
联接 |
连续表单 |
联接 |
子数据表格(转换成详细表单) |
报告 |
分组 |
联接 |
表3和表4显示替换的格式化选项,它们在来自相关数据源的已经被添加到视图的字段之后在浏览模式设计器中出现。格式化选项一般直到下一次设计改变后才使之可用。
表3
|
自1->∞的拖拉 |
自∞->1的拖拉 |
单项表单 |
联接 |
联接 |
连续表单 |
联接 |
子数据表格(转换成详细表单) |
报告 |
分组 |
联接 |
表4
操作 |
文本(以及可访问值) |
联接(表单) |
对文本的改变 |
子数据表格 |
对数据表格的改变 |
联接(报告) |
不分组 |
分组 |
按<字段名>分组 |
图5例示在组织为“Orders with Customers”的报告中启动一个示例联接操作。如在视图520中所示,来自任务窗格510的字段列表的拖拉字段522使得一个包括表524的阴影区域被形成。释放字段522启动一个联接操作,这在图6中例示。
图6例示在组织为“Orders with Customers”的报告中一示例联接操作的结果。如在视图620中所示,释放字段522(拖拉自任务窗格510)引起联接操作,它将字段622(“Company Name(公司名)”)添加到表624。字段622使得表624显示具有与要显示的字段622的关系的数据。
图7例示在组织为“Orders with Comments”的报告中创建查找字段。如在视图720中所示,释放字段730(拖拉自任务窗格710)引起联接操作,它将字段722(“Company Name”)添加到堆叠式布局724。当创建查找字段时,一般将组合框与外键捆绑,该外键使“多”表与“一”表相关。组合框730的ControlSource(控件源)一般是“多”表中的外键,它使“多”表与“一”表相关。组合框730的RowSource(行源)是查询,它被捆绑到“一”表中的主键并且该字段被拖拉进来且被释放。
用于查找的显示字段是拖拉进来的字段(外键字段是隐藏的)。在已创建查找之后被添加到视图的后续字段变成联接到当前视图中。对于每一后续字段,只读文本框与在联接操作中一样地创建。因为使用一个字段作为每一关系的查找字段,所以新添加到查找字段的字段使得当前查找字段变成被联接的字段。
图8例示在组织为“Orders with Comments”的报告中添加来自同一表的新字段。如在视图820中所示,释放字段830(拖拉自任务窗格810)引起联接操作,该联接操作将字段822(“Contact Name(联系人名)”)添加到堆叠式布局824。
图9例示在组织为“Orders with Comments”的报告中启动一示例分组操作。如在视图920中所示,来自任务窗格910的字段列表的拖拉字段922使得一个包括表924的阴影区域被形成。在一个实施例中,释放字段922启动分组操作,这在图10中示出。
图10例示在组织为“Orders with Comments”的报告中的一示例分组操作的结果。如在视图1020中所示,释放字段1022(拖拉自任务窗格910)引起分组操作,该分组操作使字段1030(“Company Name”)的重复实例仅在表格1024中陈述一次。然而,字段1022的每一实例在表1024中被显示,以示出每一实例与字段1030的关系。
图11例示用于显示相关数据的操作流1100。操作流1100可在任何合适的计算环境中执行。例如,操作流1100可由诸如用户应用程序1228的应用程序(下面的图12)来执行以执行模式编辑。因此,操作流1100的描述可引用图12的组件中至少之一。然而,对图12组件的任何这种引用仅仅是为了说明的目的,并且要理解,图12的实现是用于操作流1100的非限制性环境。
在操作1102,接收在显示表面上定位第一字段位置的用户命令。在各个实 施例中,第一字段可以被安排在模式、结构、用户定义列表等等之中。字段的列表可以安排在树结构中,该树结构能根据用户的意愿进行扩展和折叠。用户可以使用字段列表作为可从中选择字段用于视图表面的源。
在操作1104,接收用于在显示表面上定位第二字段位置的用户命令。当显示多个字段时,在字段之间存在包括现存逻辑关系的“上下文(context)”。当添加另外的字段时(它提供另外的预定上下文),现存的逻辑关系被用于确定如何格式化视觉输出,以用有用且有效的方式来显示数据。
例如,提供图形用户界面以可视地描绘例如一个包括第二字段位置的有效插入点的区域。在此例中,数据可以查看,但不能编辑、拷贝或输入。在另一示例中,可以接收命令用于输入第一和第二字段的数据。
在操作1106,生成查询以根据所确定的逻辑关系从第一和第二字段产生结果集合。在各个实施例中,结果集合是诸如逻辑联接的所确定逻辑关系的结果。在一实施例中,向用户提供改变默认的确定逻辑关系的控件。
在操作1108,根据第一字段位置和第二字段位置显示结果集合。编辑者识别出这些字段被显示为一个可视结构的一部分,并且以视觉上内聚的方式将新字段添加到该结构。例如,结果集合可以显示为表格或堆叠式布局。用户界面被配置为从用户接收用于使用来自列表的字段来编辑(或者创建、修改、重新定位等)视图的命令。用户也可以分组一个字段中的重复项,诸如当遇到第一与第二字段之间的一对多或多对一关系时。结果集合显示可以例如被自动调节,以响应于字段的数据项的宽度或高度来避免字段的重叠。
图12例示可用于实现本文中所述技术的通用计算机环境1200。计算机环境1200仅是计算环境的一个示例,并且并非旨在提出对计算机和网络架构的使用范围或功能性的任何限制。也不应将计算机环境1200解释为对在示例计算机环境1200中所示的任何一个组件或其组合有任何的依赖性或要求。
计算机环境1200包括计算机1202形式的通用计算设备。计算机1202的组件可包括但不限于,一个或多个处理器或处理单元1204、系统存储器1260、以及系统总线1206,它将包括处理器1204在内的各个系统组件耦合到系统存储器1206。
系统总线1208表示一个或多个任意若干类型的总线结构,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用任意各种总线架构的处理器或局部总线。作为示例,这些架构可包括外围组件互连(PCI)总线(也 称为夹层(Mezzanine)总线)、PCI快速总线(等)、通用串行总线(USB)、安全数据(SD)总线和/或IEEE 1394(即火线)总线。
计算机1202可包括各种计算机可读介质。这些介质可以是可由计算机1202访问的任何可用介质,并且可以是易失性或非易失性介质、可移动或不可移动介质。
系统存储器1206包括诸如随机存取存储器(RAM)1210的易失性存储器、和/或诸如只读存储器(ROM)1212或闪存RAM的非易失性存储器形式的计算机可读介质。基本输入/输出系统(BIOS)1214,包含帮助诸如在启动时在计算机1202内的元素之间传送信息的基本例程,被存储在ROM 1212或闪存RAM中。RAM 1210一般包含可由处理单元1204直接访问和/或当前正在操作的数据和/或程序模块。
计算机1202还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。作为示例,图12例示用于读写不可移动非易失性磁性介质(未示出)的硬盘驱动器1216、用于读写可移动非易失性磁盘1220(例如“软盘”)的磁盘驱动器1218、以及用于读和/或写可移动非易失性光盘1224诸如CD-ROM、DVD或其它光学介质的光盘驱动器1222。硬盘驱动器1216、磁盘驱动器1218和光盘驱动器1222各自通过一个或多个数据介质接口1225连接到系统总线1208。可替换地,硬盘驱动器1216,磁盘驱动器1218和光盘驱动器1222可以通过一个或多个接口(未示出)连接到系统总线1208。
这些盘驱动器及其相关联的计算机可读介质为计算机1202提供计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。尽管此例例示硬盘1216、可移动磁盘1220和可移动光盘1224,但可以理解,能存储可由计算机访问的数据的其它类型计算机可读介质,诸如磁带盒或其它磁性存储设备、闪存卡、CD-ROM、数字多功能盘(DVD)或其它光学存储、随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)等等,也可用于实现示例计算系统和环境。
任意数量的程序模块可被存储在硬盘1216、磁盘1220、光盘1224、ROM1212和/或RAM 1210上,包括,作为示例的操作系统1226、一个或多个应用程序1228(可以包括如上所述的模式编辑)、其它程序模块1230以及程序数据1232。这里的操作系统1226、一个或多个应用程序1228、其它程序模块1230和程序数据1232的每一个(或它们的某种组合)可实现支持分布式文件系统 的全部或部分内在组件。
用户可以通过诸如键盘1234和定点设备1236(例如“鼠标”)的输入设备将命令和信息输入到计算机1202。其它输入设备1238(未具体示出)可包括话筒、操纵杆、游戏垫、卫星天线、串行端口、扫描仪等等。这些和其它输入设备通过耦合到系统总线1208的输入/输出接口1240连接到处理单元1204,但可通过其它接口和诸如并行端口、游戏端口或通用串行总线(USB)的总线结构来连接。
监视器1242或其它类型的显示设备也可通过诸如视频适配器1244的接口连接到系统总线1208。除监视器1242之外,其它输出外围设备可包括诸如扬声器(未示出)和打印机1246等的可通过I/O接口1240连接到计算机1202的组件。
计算机1202可使用与诸如远程计算设备1248的一个或多个远程计算机的逻辑连接在网络化环境中运行。作为示例,远程计算设备1248可以是PC、便携式计算机、服务器、路由器、网络计算机、对等设备或其它通用网络节点等等。远程计算设备1248被例示为可包括在此相关于计算机1202描述的许多或所有元素和特征。可替换地,计算机1202也可以在非网络化环境中运行。
计算机1202与远程计算机1248之间的逻辑连接被描述为局域网(LAN)1250和一般的广域网(WAN)1252。这类连网环境在办公室、企业范围计算机网络、内联网和因特网中是很常见的。
当在LAN连网环境中实现时,计算机1202通过网络接口或适配器1254连接到局域网1250。当在WAN连网环境中实现时,计算机1202一般包括调制解调器1256或用于在广域网1252上建立通信的其它装置。可以内置或外置于计算机1202的调制解调器1256可通过I/O接口1240或其它合适机制连接到系统总线1208。要了解的是,所示网络连接是示例,并且可使用建立计算机1202与1248之间的至少一个通信链接的其它装置。
在网络化环境中,诸如用计算环境1200例示的,相关于计算机1202描述的程序模块或其一部分可被存储在远程存储器存储设备中。作为示例,远程应用程序1258驻留在远程计算机1248的存储器设备中。为了例示起见,应用程序或程序和诸如操作系统的其它可执行程序组件是作为分立的框来例示的,尽管可以理解,这些程序和组件在不同时间驻留在计算设备1202的不同存储组件中,并且由计算机的至少一个数据处理器执行。
各种模块和技术在此可在由一个或多个计算机或其它设备执行的诸如程序模块的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,用于执行特定任务或实现特定的抽象数据类型。通常,程序模块的功能性可按需组合或分布在各种实施例中。
这些模块和技术的实现可被存储在某种形式的计算机可读介质上或者通过其传输。计算机可读介质可以是可由计算机访问的任何可用介质。作为示例但非限制,计算机可读介质可包括“计算机存储介质”和“通信介质”。
“计算机存储介质”包括易失性和非易失性、可移动和不可移动的介质,它们是用存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字多功能盘(DVD)或其它光学存储、磁带盒、磁带、磁盘存储或其它磁性存储设备,或者可用于存储所需信息并可由计算机访问的任何其它介质。
“通信介质”一般体现为在诸如载波的经调制数据信号或其它传输机制中的计算机可读指令、数据结构、程序模块或其它数据。通信介质还包括任何信息传输介质。术语“经调制数据信号”指一种信号,具有用将信息编码到该信号的方式设置或改变的一个或多个特性。仅作为非限制性示例,通信介质包括诸如接线网络的接线介质或直接线连接,以及诸如声音、RF、红外的无线介质和其它无线介质。任何上述各项的组合也包括在计算机可读介质的范围内。
在整个说明书中对“一个实施例”、“一实施例”或“一示例实施例”的引用表示特别描述的特征、结构或特性包括在本发明的至少一个实施例中。因而,这些短语的使用是指不仅只有一个实施例。而且,所述特征、结构或特性可按任何合适的方式组合在一或多个实施例中。
然而,相关领域的技术人员知道,本发明可在没有一或多个特定细节的情况下、或者使用其它方法、资源、材料等来实践。在其他实例中,众所周知的结构、资源或操作没有详细示出或描述,以避免混淆本发明的诸方面。
尽管已经例示和描述了本发明的各个示例实施例和应用,但要理解,本发明并不限于上述精确的配置和资源。对于本领域技术人员显而易见的是,在这里所述的本发明的方法与系统的安排、操作和细节方面可作出各种修改、改变和变化,而不背离要求保护的本发明的范围。