具体实施方式
系统硬件
如图1A所示,本发明可以在计算机系统100上实施,其中,计算机系统100包括中央处理器101、主存储器102、输入/输出控制器103、键盘104、点击(pointing)设备105(例如,鼠标、跟踪球、笔设备等)、显示设备106以及大容量存储器107(例如,硬盘)。另外的输入/输出设备如打印设备108可以根据需要包括在系统100中。如图所示,系统100的各个组件通过系统总线110或类似架构通信。在一个优选实施例中,计算机系统100包括由若干厂商出品(包括国际商业机器-IBM公司,Armonk,纽约)的IBM兼容个人计算机。
如图1B所示,提供计算机软件系统150以引导计算机系统100的操作。存储在系统存储器102和盘存储器107中的软件系统150包括内核或操作系统151以及外壳或界面153。一个或多个应用程序如应用软件152可以“载入”(从大容量存储器107传输到主存储器102)以由系统100执行。系统100通过用户界面153接收用户命令和数据;然后,可以根据来自操作模块151和/或应用模块152的指令由系统100响应这些输入。最好是图形用户界面(GUI)的界面153还用来显示结果,从而用户可以提供另外的输入或者终止会话。在一个优选实施例中,操作系统151和界面153是由微软公司,雷蒙德,华盛顿出品的Microsoft Win95。另一方面,应用模块152包括如下进一步详述的本发明的表格记事本。
界面
A.介绍
下面描述将集中于本发明的优选实施例,它们在工作于Microsoft Win95环境下的表格应用程序中实施。然而,本发明不限于任何特定应用程序或者任何特定环境。相反,本领域的技术人员应该知道,本发明的系统和方法可以有利地应用于各种系统和应用软件包括数据库管理系统、字处理器等。而且,本发明可以在各种不同平台包括Macintosh、UNIX、NextStep等上实施。因此,下面示例性实施例描述只是说明性的而不是限制性的。
现在参照图1C,系统100包括窗口界面或工作区160。窗口160是一种用于在屏幕106上显示的矩形图形用户界面(GUI);其他窗口元素可以根据需要以各种尺寸和格式(例如,平铺或层叠)显示。窗口160的顶部是具有多个用户命令选项的菜单栏170,其中每个选项可以调用另外子菜单以及与应用对象一起使用的软件工具。窗口160包括客户区180,用于显示和操纵屏幕对象如图形对象181和文本对象182。在本质上,客户区是让用户与驻留在计算机系统100内的数据对象交互的工作区或视见区(viewport)。
窗口界面160包括屏幕光标或指针185,用于选择以及调用感兴趣屏幕对象。响应来自点击设备105的用户移动信号,光标185在屏幕106上浮动(即自由移动)至所需屏幕位置。在光标移动期间或之后,用户可以产生用于选择和操纵对象的用户事件信号(例如,鼠标键“单击”和“拖动”),这在本领域内是公知的。例如,窗口160可以分别通过“单击”(选择)屏幕组件172、174/5和177/8来关闭、改变大小或滚动。
在一个优选实施例中,屏幕光标185采用鼠标设备来控制。单键、双键或三键鼠标设备可以分别从多家厂商包括AppleComputer(苹果计算机公司),库珀蒂诺,加州;微软公司,雷蒙德,华盛顿;以及Logitech Corporation,弗里蒙特,加州获得。最好,屏幕光标控制设备105是双键鼠标设备,包括左右两个“鼠标键”。
鼠标设备的编程技术和操作在编程和硬件文献中有很好的描述;参见例如Microsoft Mouse Programmer’s Reference(Microsoft鼠标编程人员参考手册),Microsoft Press(Microsoft出版社),1989。GUI事件驱动系统如Windows的一般结构和操作在本领域内也是公知的:参见例如Petzold,C.,Programming Windows(Windows编程),第二版,Microsoft Press(Microsoft出版社),1990,在此分别将其全文引作参考。
B.优选界面
如图2A所示,现在将描述本发明的表格记事本界面。本发明的表格记事本或工作本包括记事本工作区200,用于接收、处理和提供信息,包括文本数字以及图形信息。记事本工作区200包括菜单栏210、工具栏220、当前单元指示器230、输入行231、状态行240以及记事本窗口250。菜单栏210显示并且响应用户输入而调用主级别的用户命令。菜单210还调用另外的下拉式菜单,这在窗口应用程序中是公知的。输入行231接受用户命令和信息以输入和编辑单元内容,它可以包括数据、格式、宏等。指示器230显示当前光标(即活动单元)位置的地址,或者所选命名范围(即活动选择)的地址或名称。在状态行240,系统100显示有关工作本当前状态的信息,例如,“就绪”指示符意味着系统处于就绪状态,等待用户选择所要执行的另一任务。
在图2B中进一步详细示出的工具栏220包括一行或一排工具,提供一种快捷方式来让用户选择常用菜单命令或属性。在一个示例性实施例中,工具栏220包括文件操纵按钮221、打印按钮222、撤消按钮223、剪切、复制和粘贴按钮224、信息弹出式窗口按钮工具225、命名范围选择按钮226、样式复制按钮227、改变列大小按钮228以及求和按钮229。这些按钮的功能对应于它们的名称。例如,按钮224通过Windows剪贴板进行数据和对象的剪切、复制和粘贴。相同的操作也可以通过编辑菜单(从菜单栏210获得)中的对应命令获得。
记事本提供用于输入和显示感兴趣信息的界面,它包括多个表格页。每页均可以包括传统窗口特性和操作,如移动、改变大小和删除。在一个优选实施例中,记事本包括256个表格页,所有这些页作为单个磁盘文件保存在大容量存储器107上。工作区200可以显示根据用户指定约束各自确定大小和位置(例如,平铺、重叠等)的一个或多个记事本。
记事本的每个表格页包括一个二维范围。记事本200的页A例如包括行列格式的网格,如行3和列F。在各个行/列交叉点,提供一个方框或单元(例如单元C4)用于以传统方式输入、处理和显示信息。各单元是可寻址的,其中,提供一个选择器用于指示当前活动单元(即,当前所选的单元)。
如图2C-D所示,各个记事本页由页标识符260标识,它们最好沿着记事本的一个边沿。在一个优选实施例中,各个页标识符的形式为沿着记事本上沿的选项卡(tab)构件(例如,构件261a、262a、263a)。各选项卡构件可以包括代表性标志如文本或图形标签,包括表示相应页内容的用户所选标题。在图2C中,选项卡构件260设为它们各自的缺省名称。例如,前三个选项卡构件(构件261a、262a、263a)分别设为A、B和C。然而,选项卡构件典型地给有由用户提供的描述性名称。例如,如图2D所示,前三个选项卡构件现在设为“Contents(目录)”(选项卡构件261b)、“Summary(汇总)”(选项卡构件262b)和“Jan(一月)”(选项卡构件263b)。以类似的方式,其余选项卡分别设为一年的随后月份。通过这种方式,用户把页标识符与普通纸张记事本的常见标签联系起来。因此,用户已经知道如何选择感兴趣的页或范围:简单选择对应于页的选项卡(如同从纸张记事本中选择一页时所做一样)。
除了帮助选择适当页的信息之外,用户可定制页标识符用来帮助输入表格命名范围地址。例如,当输入一个引用另一页上的命名单元范围的公式时,用户可以简单地使用命名范围地址中的描述性页名称,因此使用户更容易理解所引用单元或信息的关系。
表格记事本界面的特性和操作的一般描述可以参见出自BorlandInternation的Quattro Pro for Windows(Getting Started,User’sGuide and Building Spreadsheet Applications)。
内容相关在线帮助信息
A.介绍
传统电子表格包括允许表格用户容易地在其显示设备106上显示在线帮助信息的内置装置。这些装置的典型例子是表格用户可以通过采用点击设备105单击或者在键盘104上按键来触发的按钮对象、菜单或子菜单条目或者快捷方式命令。
这在图5A的例子中说明,其中,图5A示出其中定义两个表的显示设备106的一部分。地址为B3..E16的第一单元范围501对应于一个记录欧洲货币信息的表,包括:
●第一最左列,显示国家;
●第二列,显示相对于欧元的汇率;
●第三列,显示相对于美元的汇率;以及
●第四最右列,显示货币ISO码。
该范围501的名称已设为CURRENCY(货币),并且可以在一些单元中的公式内引用,以根据国家信息确定汇率。
地址为B19..F27的第二范围502对应于一个显示欧洲分公司收入以及以欧元和美元表示的累积收入的表。在该第二范围502内:
●第一最左列,显示分公司所在城市;
●第二列,显示分公司国家;
●第三列,显示以本地货币表示的分公司收入;
●第四列,显示以欧元表示的累积收入;以及
●第五最右列,显示以美元表示的累积收入。
要计算范围502的第四列内的累积收入,表格用户首先通过传统装置如点击设备105或键盘104选择地址为E21的单元503,从而使该单元变成当前所选单元。然后,表格用户可以使用键盘104以如编辑窗口504所示的相关公式填写当前所选单元503。在图5A所示的例子中,当前所选单元503的内容对应于:
“+E20+D21/@DGET($CURRENCY,″RATE%XEU″;COUNTRY=C21)”。
单元内容一不遵循与在表格环境中定义的语法和/或词汇表相关的规则,该单元就显现“ERR(错误)”值,如503所示。
在这种情形下,表格用户可以典型地调用内置在线帮助工具来理解该“ERR”值说明什么。为此,可以使用电子表格工具中可获得的传统装置如点击设备105或键盘104来在显示设备106上显示如图6A所示标题为“Help Topics(帮助主题)”的第一用户界面对话框600。该对话框600包含三个资料夹(folder)601、602和603。
●第一资料夹601提供“目录”类似界面,允许表格用户如同阅读书籍一样浏览所有在线帮助信息。
●第三资料夹603提供“搜索引擎”界面,允许表格用户在全部在线帮助信息内定位用户指定字符串的所有出现处。
●第二资料夹602提供“索引”类似界面,允许表格用户通过指定预定义索引条目来浏览全部在线帮助信息。指定索引条目可以通过两种方法来完成:
●采用第一种方法,表格用户可以使用键盘104来在专用输入区域610中键入索引条目的开头若干字母,如图6B所示。通过根据字母顺序识别以指定字母为前导的第一有效索引条目,窗口605的内容更新为显示结果索引条目选择。
●采用第二种方法,表格用户可以直接使用点击设备105来选择窗口605内的一个条目,或者通过滚动条609浏览该窗口605。
无论使用哪一种方法,都是在对话框600的窗口605内选择一个索引条目611。在我们的场景中,由于表格用户怀疑在当前所选单元503的内容中误用了“@DGET”内置函数,因此他/她选择了“DGET”作为索引条目。
下一步骤是表格用户使用点击设备105单击标题为“Display(显示)”的按钮606。从而,在显示设备106上显示一个新对话框620,如图6C所示。该新对话框620包含下述若干对象621、622、623和624:
●标题为“Help Topics(帮助主题)”的按钮621允许回到前一对话框600。
●标题为“Print(打印)”的按钮622允许在打印设备108上打印对话框620的内容。
●标题为“Go Back(后退)”的按钮623允许返回至(若有的话)同一对话框620的前一显示内容。
●最后,窗口624显示与在前一步骤所选的索引条目相对应的在线帮助信息。该信息可以包含一些超文本引用,从而可以直接显示进一步的信息。例如,指向@DGET内置函数例子的引用625。如果表格用户使用点击设备105单击超文本引用625,则在显示设备106上显示一个新对话框630,如图6D所示。
该新对话框630包含下述若干对象631、632、633和634:
●标题为“Help Topics(帮助主题)”的按钮631允许回到前一对话框600。
●标题为“Print(打印)”的按钮632允许在打印设备108上打印对话框630的内容。
●标题为“Go Back(后退)”的按钮633允许返回至(若有的话)同一对话框630的前一显示内容。
●最后,窗口634显示在我们的场景中与@DGET内置函数例子相对应的在线帮助信息。该例子基于其性质、内容、大小均固定的虚设表635。通过比较对话框630的窗口634所示的该虚设例子中所说明的内置函数语法与如编辑窗口504所示的当前所选单元503的内容,表格用户难以理解ERR值的原因。更一般地,表格用户可能容易遇到在线帮助信息几乎起不到帮助作用的一些类似情形(这是自相矛盾的...),因为它不帮助用户纠正错误。
本发明通过允许电子表格用户获得提供直接得自当前所选单元内容的例子的新在线帮助信息方式,对这些问题提供一种用户友好的解决方案。在下面,相应新在线帮助方法将称作“内容相关帮助”方法。
B.内容相关关键字表
根据“内容相关帮助”方法在显示设备106上显示在线内容相关帮助信息起因于表格用户操作。当发生该操作时,使用称作“内容相关关键字表”(或缩写为CDK表)的公共资料库(repository)来识别当前所选单元内容是否包括据此根据本发明显示在线帮助信息的关键字。该CDK表最好保存在非易失性存储器上(典型地但不一定是大容量存储器107上表格磁盘文件的一部分)。
参照图3,根据本发明,CDK表300对应于由若干记录301构成的简单逻辑结构,其中每个记录对应于一个与内容相关帮助信息相关联的关键字。每个记录包括三个字段:
●“关键字(Keyword)”302字段用于记录唯一标识关键字的字符串。
●“参数模板(Parameter Template)”303字段(也称作“变元模板”)用于描述规定与“关键字”字段302所标识的关键字相关联的参数(若有的话)规格的格式和规则。若干传统表示法可以用于描述该参数模板。这些表示法不以任何方式影响本发明的精神。注意,在本描述中,术语“参数”和“变元”可以通用。在本发明的一个优选实施例中,关键字可以对应于必须采用根据预定义格式和/或预定义规则的一组参数调用的内置预定义函数。
●“文本指针(TextPtr)”304字段是指向与“关键字”字段302所标识的关键字相关联的帮助信息文本所记录的存储位置的引用。该存储位置可以在大容量存储器107、主存储器102、或者其他传统存储资料库装置上,而不脱离本发明的精神。
该表的构造和更新本身是传统且直接的。利用本发明的任何候选关键字必须与CDK表300内的特定记录301相关联。用于增加、删除或更新CDK表300内的记录301的各种装置是实现相关的,因此不被认为是本发明的一部分。
C.场景
与前述传统工具相反,本发明提供一种更强大、用户友好的交互方法,用于以所谓“内容相关帮助”方法的形式提供在线内容相关帮助信息。
在一个优选实施例中,以两个步骤使用本发明:
●1.第一步骤,发生于表格用户根据未在此详述的某标准决定选择给定单元并且可能填写或更新其内容时。
■用户首先通过使用传统装置例如但不限于点击设备105或
键盘104,选择相关单元。
■然后,用户可以进入单元编辑模式,以通过使用传统装置
(典型地是键盘104)更新或填写所选单元的内容。
●2.第二步骤,发生于表格用户根据未在此详述的他或她自己的标准决定利用本发明以显示内容相关帮助信息时。
■表格用户通过表格环境中可获得的传统装置例如(但不限于)
专用按钮、键盘输入快捷方式、菜单或子菜单条目,调用
称作“内容相关在线帮助”的新颖特定命令。在本发明的
一个优选实施例中,内容相关在线帮助命令通过使用相同
于传统电子表格中可获得的用于显示传统在线帮助信息的
一组装置来调用,例如(但不限于)使用点击设备105单击
“帮助”菜单条目,或者在键盘104上按“F1”键。
这可以采用与前面图5A所述相同的场景来阐述,其中,表格用户首先选择单元503,然后以下面内容填写它:
“+E20+D21/@DGET($CURRENCY,″RATE%XEU″;COUNTRY=C21)”从而导致“ERR”值。在这种情形下,表格用户可以典型地调用内置在线帮助工具以理解该“ERR”值表示什么。根据本发明的优选实施例,电子表格工具中可获得的传统装置如点击设备105或键盘104可以用于直接触发在显示设备106上显示新颖在线帮助信息对话框640,如图6E所示。显示信息根据当前所选单元503的内容来剪裁。
作为与传统方法相比的第一优点,本发明允许直接显示与当前所选单元的内容相关的在线帮助信息。如图6A、6B、6C和6D所述的中间步骤合并到与显示对话框640相对应的单个步骤中。在图6E的例子中,对话框640显现与@DGET内置函数相关的在线帮助信息。
作为与传统方法相比的第二优点,包含在对话框640中的信息比分别如图6C和6D的对话框620和630所示的传统信息对于表格用户更相关。实际上,对话框640包含与对话框620相同的对象621、622、623、624,但是另外,它还包含如下所述的新区域。新区域642是以得自当前所选单元503的内容但是根据与@DGET内置函数相关联的参数的有关格式和规则纠正的内容根据本发明方法自动填写的显示窗口。在图6E所示的例子中,施加于工作缓冲区内容的纠正涉及第二参数,该参数应是第一参数所标识范围内的有效首标。“ERR”值是由于用户键入了“RATE %XEU”,而不幸的是,这是一个误拼首标。施加于工作缓冲区的纠正是缺省使用第一参数所引用的表中的左起第二首标,即所示例子中的“RATE % XEU”。新区域643是显示在单元内容对应于显示窗口642的情况下单元所取值的显示窗口。
最后,标题为“Copy(复制)”的新按钮641允许点击时将新显示窗口642的内容复制到当前所选单元上,从而它取值为如显示窗口643所示的值。假定表格用户使用点击设备105单击该“复制”按钮,则如前面图5A所述的显示在显示设备上的用户界面根据图5B发生更新。如编辑窗口514所示的当前所选单元的内容与内容相关在线帮助信息对话框640的显示窗口642中的内容相同,并且取值为513所示的值,它与内容相关在线帮助信息对话框640的显示窗口643中的值相同。该场景清楚地阐述了在本发明的优选实施例中表格用户获得贴切的在线帮助信息。
D.内容相关帮助方法
用于构建然后显示内容相关在线帮助信息以利用本发明的方法可以在图4所示的流程图400中概括给出。该方法可以看作内容相关在线帮助命令的处理。
●在步骤401,该方法处于其缺省状态,等待一个发起过程的事件。
●在步骤402,检测由于用户操作的内容相关在线帮助命令。该操作例如是键盘104上的特定键组合、点击设备105对特定按钮的单击、或者未在此进一步指定的任何其他类似装置。
●在步骤403,执行测试以检查当前所选对象是否包括用户输入区域。例如,在表格环境中,执行测试以检查当前所选对象是否为一个单元(而不是按钮、图形或不带用户输入区域的其他对象)。如果是,则将控制转给步骤404;否则将控制转给步骤418。
●在步骤404,将当前所选对象的内容复制到工作缓冲区中。
●在步骤405,对工作缓冲区的内容执行解析操作以识别CDK表300的第一字段“关键字”302中的任何关键字。可以使用各种解析技术来达到该目的;它们是实现相关的。仅假定解析操作从左向右完成。如果没有找到关键字,则将控制转给步骤418;否则在将控制转给步骤406之前,以其字段“关键字”302、“参数模板”303和“文本指针”304存储CDK表300的相应记录301。
●在步骤406,将名称为“FieldUpdated”的局部变量初始化为缺省值FALSE。
●在步骤407,对在步骤405找到的“参数模板”字段303执行测试以检查它是否为空。如果是,则将控制转给步骤412;否则将控制转给步骤408。
●在步骤408,对照在步骤405找到的“参数模板”字段303,解析工作缓冲区的内容。该解析在工作缓冲区内由在步骤405完成的前面解析操作产生的位置继续。若有的话,该解析操作在工作缓冲区内识别与关键字相关联且在“参数模板”中指定的一个或多个参数,并且验证:
■第一,若有的话,工作缓冲区内的所述参数的格式是否遵
循在步骤405找到的“参数模板”字段303所指定的格
式,并且
■第二,若有的话,工作缓冲区内的所述参数是否遵循在步
骤405找到的“参数模板”字段303所指定的规则。
该解析操作可以产生三种不同情形。
■如果到达工作缓冲区的结束而没有遇到任何问题,则将控
制转给步骤412。
■如果发现参数错误(若有的话,如果一个或多个参数不满足
“参数模板”所指定的规则),则将控制转给步骤409。
■如果发现格式错误(若有的话,如果一个或多个参数不满足
“参数模板”所指定的格式),则将控制转给步骤411。
●在步骤409,根据在步骤405找到的“参数模板”字段303,纠正在步骤408识别的参数错误。然后,将控制转给步骤411。
●在步骤410,根据在步骤405找到的“参数模板”字段303,纠正在步骤408识别的格式错误。
●在步骤411,该方法将局部变量FieldUpdated设为TRUE值,然后,将控制转给步骤408,以继续解析工作缓冲区的内容直到到达其结束。
●在步骤412,执行测试以检查局部变量FieldUpdated是否等于TRUE。如果是,则将控制转给步骤413;否则将控制转给步骤415。
●在步骤413,将工作缓冲区的内容及其所取值复制到“文本指针”字段304所指向的帮助文本中,从而当显示时,它们覆写缺省文本(一般是指向虚设示例描述的超文本引用)。
●在步骤414,激活“复制”按钮641。
●在步骤415,显示如同640的在线帮助信息,它包含可能根据在步骤413期间所执行的操作经过更新的“文本指针”字段304所指文本作为帮助信息。
●在步骤416,等待如同640的显示对话框上的用户操作。如果检测到单击“复制”按钮641,则将控制转给步骤417;否则将控制转给步骤419。
●在步骤417,将工作缓冲区的内容复制到当前所选对象上。
●在步骤418,根据传统方法显示传统在线帮助信息。
●在步骤419,将控制转给让表格用户浏览传统在线帮助信息对话框的传统方法,直到表格用户决定关闭在线帮助工具。然后,将将控制转回给初始步骤,等待新内容相关在线帮助命令。
其他实施例
本发明的内容相关帮助方法和系统可以有利地用于信息元素组织成具有大于三维的多维表的那些环境中。更一般地,本发明可以有利地用于办公和商业环境中,特别是用户可以根据预定义规则和语法编辑信息元素的关系数据库、文本编辑器、表现工具、图形套件、项目管理工具、集成开发和编程工具。
尽管本发明是参照其优选实施例来具体描述的,但应该理解,在不脱离本发明的精神和范围的情况下,可以对其进行形式和细节的各种修改。