CN100388271C - 管理递归可缩放模板实例中的删除操作的数据表中的系统和方法 - Google Patents

管理递归可缩放模板实例中的删除操作的数据表中的系统和方法 Download PDF

Info

Publication number
CN100388271C
CN100388271C CNB2004800103943A CN200480010394A CN100388271C CN 100388271 C CN100388271 C CN 100388271C CN B2004800103943 A CNB2004800103943 A CN B2004800103943A CN 200480010394 A CN200480010394 A CN 200480010394A CN 100388271 C CN100388271 C CN 100388271C
Authority
CN
China
Prior art keywords
scalable template
recursive
recurrence
sti
instances
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2004800103943A
Other languages
English (en)
Other versions
CN1774711A (zh
Inventor
让-雅克·奥里格莉亚
弗雷德里克·鲍科特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1774711A publication Critical patent/CN1774711A/zh
Application granted granted Critical
Publication of CN100388271C publication Critical patent/CN100388271C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Electron Beam Exposure (AREA)
  • Sheet Holders (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

在传统电子表格中,关于结构化单元格范围,其新实例的创建、更新、元素的删除、以及涉及递归时新实例的创建等很复杂、费时、且容易出错,针对此状况提出了本发明,本发明涉及一种包括多个数据的多维电子数据表中的方法、系统和程序,其用于管理递归可缩放模板实例中的删除操作;递归可缩放模板实例包括沿着第一数据表维排序且对齐、并且根据递归可缩放模板而结构化的可变数目的连续递归元素实例;所述递归可缩放模板包括递归元素,其包含一个或多个可缩放模板;每个递归元素实例具有沿着所述第一数据表维的可变大小,以及沿着第二数据表维的相同大小;递归元素实例包括一个或多个可缩放模板实例;每个递归元素实例的每个可缩放模板实例沿着所述第一数据表维而对齐;每个递归元素实例内的每个可缩放模板实例沿着第二数据表维而对齐;可缩放模板实例包括根据可缩放模板而结构化的可变数目的元素;元素被定义为数据范围;数据范围包括一个或多个数据。

Description

管理递归可缩放模板实例中的删除操作的数据表中的系统和方法
技术领域
本发明涉及通过数字计算机的信息处理领域,特别涉及一种数据表优选地是电子表格(spreadsheet)中的方法和系统,其用于管理递归可缩放模板实例中的删除操作。
背景技术
电子表格的一种基本价值是将数据组织成行和列,同时自动化繁琐的计算。被组织成行和列的这样一组数据的典型、常见和有价值的例子是单元格范围。即使单元格范围在电子表格环境内接收正式和严格的定义,但是它足够灵活,使得信息可以包含在单个单元格范围或者若干单元格范围的集合中。因此,单元格范围是相当有用的对象。单元格范围可以作为整个实体来定义和处理。例如,它可以在电子表格内从一处被拷贝到另一处,或者从一个电子表格文件被拷贝到另一个电子表格文件。单元格范围广泛地用于在电子表格领域内开发的应用中。非常频繁地,单元格范围根据某种结构来布置,这样变成结构化单元格范围。每个单元格的内容被定义在元素内,其中元素被定义为一行结构化单元格范围,然后重复相同种类的元素特定次数,以便存储/处理可变数目的信息片断。时常地,使用类似结构化单元格范围的若干实例。在没有其它工具实际上可用的当前背景下,通过剪切/复制和粘贴操作频繁地创建这样的类似结构化单元格范围的实例。为了对数量不断增长的信息保持高级别的智能控制,人类需要组织或结构化该信息。分级模型由于允许嵌套结构而经常被使用。这种分级结构的典型且公知的例子是计算机操作系统如DOS或微软Windows(视窗)的目录树。根目录可以包含文件和/或多个目录,这些目录本身也可以包含文件和/或多个目录等等。递归性帮助结构化信息并且保持对其的智能控制。递归性的这一需要在电子表格环境中也适用于结构化单元格范围。当在电子表格文件中定义和使用结构化单元格范围的若干实例时,经常地根据可以在不同电子表格文件之间或者甚至在单个电子表格文件内复制的特定超结构布置或“结构化单元格范围数组”来结构化它们自身。在这样的结构化单元格范围数组内,常见的是,查找遵循相同中间超结构的若干结构化单元格范围、以及遵循其它中间超结构的一些其它结构化单元格范围。然后,可以把结构化单元格范围数组视作结构化单元格范围的聚集中间超结构的集合。在传统电子表格的当前背景下,频繁地通过剪切/复制和粘贴操作创建这种结构化单元格范围数组的实例。
创建结构化单元格范围的新实例是复杂和费时的,这特别是因为传统的单元格范围显示了较强的限制:
·(i)结构信息(如列数、行数)、格式信息(如字体风格、颜色或边框)、以及内容信息(例如,公式或者原始-或情报-数据)被混合,
·(ii)单元格范围的大小在给定时刻是固定的。
因此,当电子表格用户想要创建具有相同结构的另一个单元格范围时,他/她需要连续执行几个操作。他/她需要:
1.复制-粘贴现有的结构化单元格范围,
2.区分包含原始或情报数据的区域和包含通用内容如公式的区域,
3.清空被拷贝原始数据的被拷贝结构化单元格范围,同时试图保持结构、格式和通用内容,
4.根据他的新需要,调整被拷贝结构化单元格范围的大小。
5.最终,以缺省值填充原始数据区域,以便减轻随后的数据输入。
此外,在复制和粘贴结构化单元格范围之前,用户必须为被拷贝的结构化单元格范围准备地方,这样存在覆写因此丢失在目的地处预先存在的信息的风险。尤其是当所操纵的结构化单元格范围在大小和复杂性上增长时,该操作链很快就变得繁琐、费时且易于出错。
更新结构化单元格范围也极其经常地是复杂、费时且易于出错的。这种更新包括添加新元素和修改现有元素。在电子表格环境中可以执行几种修改而没有任何特定问题。然而,对于某些修改例如插入就不是这种情况。例如,如果借助于传统功能如电子表格行插入方法来增加行,则所创建的行将为空。这意味着需要输入每一个元素的每一个单元格的值。输入数据或者执行拷贝/粘贴操作对于用户意味着较大的工作量,而每个元素的内容在一定程度上是已知的,但是应当遵循结构化单元格范围的一般结构。而且,诸如行插入功能的正常电子表格功能可能危及一些相邻元素的内容。危及相邻元素的插入的较好例子是将行插入在单元格范围中,其中在每一个行上,诸如C17或更一般的(Cn)的单元格通过诸如C16+B17或者更一般的(Cn-1)+(Bn)的公式而指向前一行中的单元格。在行16和17之间的行插入之后,单元格C18中的公式变成C16+B18而非一般公式C17+B18,或者更一般地,在行(n-1)和(n)之间的行插入之后,单元格(Cn+1)中的公式变成(Cn-1)+(Bn+1)而非一般公式(Cn)+(Bn+1)。作为第二例子,存在必须贯穿结构化单元格范围一致地进行修改的情况。现在,这只能通过施加于要被修改的确切区域的特定拷贝-粘贴操作来完成。尤其是当所操纵的结构化单元格范围在大小和复杂性上增加时,这可以证实是非常困难的。
删除结构化单元格范围的元素是易于出错的操作。实际上,诸如行删除功能的普通电子表格功能可能危及一些相邻元素的内容,从而导致未决定的引用(#REF结果),或者更糟的是,导致可能难以识别的错误公式。解决该问题需要附加的“上下文智能”,其考虑发生元素删除的结构化单元格范围的结构。当用户在电子表格中选择一个或多个单元格之后调用传统删除功能的时候,出现另一种需要。如果该选择属于结构化单元格范围,则借助于菜单或通过按“删除”键调用删除功能对于用户想要执行什么可能产生歧义。消除该歧义现在只能通过选择要被删除的确切区域来完成,尤其是随着所操纵的结构化单元格范围在大小和复杂性上增长,这可以证实是非常困难的。解决该问题需要附加的“上下文智能”,以便检测该情形,利用结构化单元格范围的结构,并且向用户提供相关的选项。
当涉及递归时,创建结构化单元格范围数组的新实例甚至更加复杂和费时,这具体是因为结构化单元格范围数组涉及双重级别的结构:
·在较低级别,必须创建结构化单元格范围的多个并且甚至是不同的实例的集合。如前所述,该操作本身就由于传统单元格范围的限制而复杂、费时且易于出错。
·在较高级别,结构化单元格范围实例的创建将要求电子表格用户执行若干操作:
1.识别用作创建新实例的引用的结构化单元格范围数组的现有实例。
2.在目的地处准备地方来保存新实例,其中存在可能覆写因而丢失任何预先存在的信息的风险。
3.将结构化单元格范围数组的引用实例拷贝-粘贴到目的地。
4.根据他/她的新需要,调整新创建的结构化单元格范围数组实例的结构,这是通过在该数组内删除或引入结构化单元格范围实例的一个或几个中间超结构来实现的。
5.清除包括在该数组内的结构化单元格范围的每个实例的内容。
6.最终,以相关的缺省值填充结构化单元格范围的每个实例。
删除包括在结构化单元格范围数组的实例中的对象是易于出错的操作。除了当删除各个单元格或单元格范围时创建未决定的引用的前述风险之外,当在递归结构中选择单元格范围之后调用删除操作时,在电子表格环境中可用的传统工具也并不热心帮助电子表格用户。实际上,如果这样的选定单元格范围属于结构化单元格范围数组的实例,则删除操作的范围保持有歧义:删除属于选定单元格范围的输入(IN)字段的内容,或者删除与选定单元格范围重叠的结构化单元格范围实例的元素,或者甚至删除包括选定单元格范围的结构化单元格范围数组的整个实例。为了消除该歧义,电子表格用户必须小心地甄别然后选择确切的相关单元格范围,以便删除操作准确地匹配他的需要。当结构化单元格范围数组变大且复杂时,前面操作变得明显困难且易于出错。解决该问题需要另外的附加“上下文智能”来检测该情形,利用结构化单元格范围数组的双重级别结构,并且向用户提供相关选项。Steven J.Dubnoff于1989年3月3日的发明名称为“System for generating worksheet filesfor electronic spreadsheets(用于生成电子表格的工作表文件)”的美国专利5,033,009是令人感兴趣的现有技术文档。该发明提出了通过工作表文件生成器可被集成以便生成工作表文件的模式数据和变量数据的概念。然而,该发明显示了很多限制,从而阻止了它解决上面提出的一组问题,其中特别是:
·它旨在从两个输入文件的集合产生新输出电子表格,同时在用户应用环境内需要创建和操纵该用户所熟悉的现有电子表格文件内的新实体。
·它没有包含与常规电子表格工具不同的允许直接更新输出电子表格的机制。
·它没有包含在同一电子表格文件内操纵可变数目的不同结构和这些结构的每一个的可变数目的实例的能力。粒度局限于电子表格文件,而所需粒度是结构化单元格范围的粒度。
·所谓的“文件格式规范”实际上混合结构信息(如行和列的数目和相对位置)、表现信息(例如,字体、颜色、背景等)、内容信息(如公式等)。
发明内容
如在独立权利要求中所限定的那样,本发明涉及一种包括多个数据的多维电子数据表(优选地是电子表格)中的方法、系统和程序,其用于管理递归可缩放模板实例中的删除操作;递归可缩放模板实例包括沿着第一数据表维排序且对齐并、且根据递归可缩放模板而结构化的可变数目的连续递归元素实例;所述递归可缩放模板包括递归元素,其包含一个或多个可缩放模板;每个递归元素实例具有沿着所述第一数据表维的可变大小,以及沿着第二数据表维的相同大小;递归元素实例包括一个或多个可缩放模板实例;每个递归元素实例的每个可缩放模板实例沿着所述第一数据表维而对齐;每个递归元素实例内的每个可缩放模板实例沿着第二数据表维而对齐;可缩放模板实例包括根据可缩放模板而结构化的可变数目的元素;元素被定义为数据范围;数据范围包括一个或多个数据。该方法包括以下步骤:
·检测用于删除在递归元素实例的可缩放模板实例中选择的一个或多个连续元素的删除命令;
·识别:
·在其中删除所述一个或多个选定元素的可缩放模板实例;
·可缩放模板实例中要删除的一个或多个选定元素;
·与所述可缩放模板实例相关联的可缩放模板;
·识别:
·递归可缩放模板实例和包括所识别的可缩放模板实例的递归元素实例;
·在所识别的可缩放模板实例中删除该一个或多个选定元素;所识别的可缩放模板实例的所有剩余元素保持连续;
·根据所述递归元素实例中的最大可缩放模板实例的大小,沿着所述第一数据表维调整所识别的递归元素实例的大小;所识别的递归可缩放模板实例的所有剩余递归元素实例保持连续。
在特定实施例中,该方法包括另外的步骤:
·检测用于在递归可缩放模板实例中删除一个或多个选定连续递归元素实例的删除命令;
·识别:
·在其中删除所述一个或多个递归元素实例的递归可缩放模板实例;
·在递归可缩放模板实例中要删除的一个或多个递归元素实例;
·与所述递归可缩放模板实例相关联的递归可缩放模板;
·在递归可缩放模板实例中删除该一个或多个选定连续递归元素实例;所识别的递归可缩放模板实例的所有剩余递归元素实例保持连续。
在所附从属权利要求中提供了本发明的另外实施例。
首字母缩略词
为了更加简洁起见,将使用以下首字母缩略词。
·EF代表元素格式
·EP代表元素概要(profile)
·MEF代表元元素格式
·MEP代表元元素概要
·RE代表递归元素
·RME代表递归元元素
·RST代表递归可缩放模板
·RSTI代表递归可缩放模板实例
·ST代表可缩放模板
·STI代表可缩放模板实例
附图说明
图1A是可以实施本发明的计算机系统的示意图。
图1B是用于实现本发明的包括操作系统、应用软件和用户界面的软件系统的示意图。
图2示出了根据本发明优选实施例的用于管理RST的优选电子表格用户界面。
图3示出了根据本发明优选实施例的用于编辑EF的优选电子表格用户界面。
图4示出了根据本发明优选实施例的用于编辑EP的优选电子表格用户界面。
图5示出了根据本发明优选实施例的用于编辑ST的优选电子表格用户界面。
图6示出了根据本发明优选实施例的用于编辑RST的优选电子表格用户界面。
图7A、7B、7C、7D、7E分别示出了根据本发明优选实施例的、EF表(EFT)、EP表(EPT)、ST表(STT)、ST描述符表(STDT)、STI表(STIT)的结构。
图7F给出了根据本发明优选实施例的、在表EFT、EPT、STT、STDT、STIT、RET、RSTT、RSTDT、RSTIT和RSTIDT之间建立的关系的图示。
图8是示出根据本发明优选实施例的用于管理RST对象的优选方法的流程图。
图9是示出根据本发明优选实施例的用于编辑EF和MEF的优选方法的流程图。
图10是示出根据本发明优选实施例的用于编辑EP和MEP的优选方法的流程图。
图11是示出根据本发明优选实施例的用于编辑ST的优选方法的流程图。
图12是示出根据本发明优选实施例的用于编辑RST的优选方法的流程图。
图13A示出了根据本发明优选实施例的用于创建STI的优选电子表格用户界面。
图13B示出了根据本发明优选实施例的ST实例化。
图14A是示出根据本发明优选实施例的用于实例化ST的优选方法的流程图。
图14B是示出根据本发明优选实施例的用于创建STI的优选方法的流程图。
图15A是示出根据本发明优选实施例的用于管理STI中的删除的优选方法的流程图。
图15B是示出根据本发明优选实施例的用于管理RSTI中的删除的优选方法的流程图。
图16A和16B每一个示出了根据本发明优选实施例的用于管理STI中的删除的优选电子表格用户界面。
图16C示出了根据本发明优选实施例的用于管理RSTI中的删除的优选电子表格用户界面。
图17A示出了根据本发明优选实施例的RSTI的逻辑结构。
图17B示出了根据本发明优选实施例的RST的逻辑结构。
图18A和18B组成了示出根据本发明优选实施例的用于创建RSTI的优选方法的流程图。
图19A、19B、19C、19D、19E和19F分别示出了RE表(RET)、RST表(RSTT)、RST管理器表(RSTMT)、RST描述符表(RSTDT)、RSTI表(RSTIT)以及RSTI描述符表(RSTIDT)的结构。
图20A示出了根据本发明优选实施例的用于创建RSTI的优选电子表格用户界面。
图20B示出了根据本发明优选实施例的用于编辑RE的优选电子表格用户界面。
图20C是示出根据本发明优选实施例的用于编辑RST中的RE的优选方法的流程图。
图21A是示出根据本发明优选实施例的用于计算包括在STI中的行数的优选方法的流程图。
图21B是示出根据本发明优选实施例的用于计算包括在STI中的列数的优选方法的流程图。
具体实施方式
系统硬件
如图1A所示,本发明可被实施在计算机系统100上,其中计算机系统100包括中央处理器101、主存储器102、输入/输出控制器103、键盘104、定点设备105(例如,鼠标、跟踪球、笔式设备等)、显示设备106以及大容量存储装置107(例如,硬盘)。附加的输入/输出设备如打印设备108可以根据需要而包括在系统100中。如图所示,系统100的各个组件通过系统总线110或类似架构通信。在优选实施例中,计算机系统100包括可从若干厂商(包括国际商业机器-IBM公司,阿芒克,纽约)获得的IBM兼容个人计算机。如图1B所示,提供了计算机软件系统150以便引导计算机系统100的操作。存储在系统存储器102和盘存储器107中的软件系统150包括内核或操作系统151以及外壳或界面153。可以“装载”(即从存储装置107传输到存储器102中)一个或多个应用程序如应用软件152以便由系统100执行。系统100通过用户界面153接收用户命令和数据;然后,可以根据来自操作模块151和/或应用模块152的指令由系统100作用于这些输入。优选地是图形用户界面(GUI)的界面153还用来显示结果,由此用户可以提供附加的输入或者终止会话。在优选实施例中,操作系统151和界面153是可从微软公司(位于雷蒙德,华盛顿)获得的Microsft Win95。另一方面,应用模块152包括如下面更详细描述的本发明的电子表格笔记簿。
界面
下面描述将集中于本发明的优选实施例,其实现在Aureglia等人的发明名称为“System and method in an electronic spreadsheet for exporting-importingthe content of input cells from a scalable template instance to another(用于将输入单元格内容从可缩放模板实例输出-输入到另一个的电子表格中的系统和方法)”的国际专利申请PCT/EP 02/09483(IBM参考文献FR9 2001 0029)中描述的用户界面。
递归可缩放模板管理
A.介绍
可缩放模板(ST)的概念
传统的电子表格包括允许电子表格用户容易地将数据组织成行和列、同时自动化繁琐的计算的内置装置。这组所组织的数据可以包括在单个单元格范围中或者若干单元格范围的集合中。单元格范围是电子表格环境中相当有用且广泛使用的对象。它可以作为整个实体来定义和处理。根据在国际专利申请PCT/EP 02/09483(IBM参考文献FR9 2001 0029)中描述的发明,允许电子表格用户执行以下操作的系统和方法是可用的:
·为单元格范围定义结构,包括:
·(i)由一个或多个元元素构成的可选页眉部分;
·(ii)由一个或多个元素构成的强制主体部分;
·(iii)由一个或多个元元素构成的可选页脚部分;
页眉部分的每个元元素的结构可以通过MEF按照属性以及通过MEP按照内容来定义。
主体部分的所有元素的结构可以通过EF按照属性以及通过EP按照内容来定义。
页脚部分的每个元元素的结构可以通过MEF按照属性以及通过MEP按照内容来定义。
该结构被称作ST。总而言之,ST通过指定字段数来定义结构,这是通过参考定义所有主体元素的EF和EP的组合,以及可选地通过参考定义页眉部分或页脚部分的每个元元素的MEF和MEP的一个或几个组合来实现的。
·管理ST以及在其下定义的被称作EF、EP、MEF和MEP的对象。
·创建或更新EF、MEF。
·创建或更新EP、MEP。
·创建或更新ST。
·遵循已定义的ST创建STI。
·从STI中移除一个或多个元素。
上述功能集由一组工具支持:
·“RST管理器”方法或简称的RSTM方法;
·“EF编辑器”方法或简称的EFE方法;
·“EP编辑器”方法或简称的EPE方法;
·“ST编辑器”方法或简称的STE方法;
·“ST实例化器”方法或简称的STI方法;
·“STI删除管理器”方法或简称的STIDM方法。
递归可缩放模板(RST)的概念
在介绍了ST和STI的概念之后,RST和RSTI的概念变得更易于掌握。实际上,RST可以被看作两级结构。最高级别在逻辑上相当于ST的结构,作为可以在逻辑上被映射到元素和元元素(meta-element)的结构化RE和RME的集合。RST的递归性质出现在较低的结构级别,因为RE和RME是本身包括STI(而非传统的电子表格单元格,如同元素和元元素的情况那样)的对象。换句话说,RST是ST的分层结构。当实例化(instanciate)RST时,可以清楚表达相同的类似性来描述所得到RSTI的结构。在较高级别,RSTI呈现在逻辑上相当于STI的结构、但是由容器范围而非各个单元格组成的结构。在每个容器范围内,较低级别的结构以STI的形式存在。结果,RSTI可以被看作本身包含STI来代替传统单元格的STI。因此,这样的对象首先以“结构化单元格范围数组”的名称来引入。现在参照图17A和17B,将使用该RST和RSTI的简单例子来说明本申请。
首先参照图17B,名称为“RST_customer(客户)”的RST 2051定义由网络服务提供者遵循以便记录与接收连网服务的客户对应的所有各种数据的结构。该RST围绕包括以下部分的结构来组织:
·页眉部分2052,其中根据名称为“ST_cust_data(ST客户数据)”的ST的结构来记录客户数据(例如,公司名称、地址、业务、合同时间表等),其中根据名称为“ST_contacts(ST联系人)”的ST的结构来记录客户联系点(例如,CEO、CIO、CFO、经理等),其中根据名称为“ST_SLA”的ST的结构来记录合同服务级别协定,并且其中根据名称为“ST_support_team”的ST的结构来记录客户支持团队(例如,过渡经理、运送经理、解决方案经理等)。
·主体部分2053,其中,根据名为“ST_res_info(ST服务信息)”的ST的结构,为从服务供应商接受服务的每个客户资源记录管理这个资源所需的信息(譬如,位置、IP地址、配置文件等),和根据名为“ST_pb_log(ST问题日志)”的ST的结构记录同一资源的当前问题日志。
·页脚部分2054,其中,根据名为“ST_billing(ST结算)”的ST的结构记录这个客户的结算状态,和根据名为“ST_stats(ST统计)”的ST的结构,记录客户管理资源的问题统计。
然后,参照图17B,RSTI 2001遵从RST 2051的结构“RST_customer”。实际上,它也围绕着包括页眉部分2002、主体部分2003、和页脚部分2004的结构来组织。页眉部分2002包含本身根据RST页眉部分2052的结构来组织、和遵从ST的“ST_cust_data”、“ST_contacts”、“ST_SLA”、和“ST_support_team(ST支持团队)”的结构的4个STI。主体部分2003由3个不同记录2010、2009、和2008构成,它们的每一个根据RST主体部分2053的结构来组织,RST主体部分2053的结构包括遵从ST的“ST_res_info”和“ST_cpb_log”的结构的2个STI。最后,页脚部分2004包含本身根据RST页脚部分2054的结构来组织并遵从ST的“ST_billing”和“ST_stats”的结构的2个STI。
时常,还使用相似递归构造的单元格范围的几个实例。在如上所述的和如图17A所示的我们例子的逻辑内,在新表格中为每个客户创建相似递归构造的单元格范围。在当前没有其它工具真正可用的电子表格环境的背景下,经常通过剪切/复制和粘贴操作来创建这样相似递归构造的单元格范围的实例。我们已经描述过用于创建STI的传统工具的局限性。由于RSTI的双重结构,创建RSTI甚至更加困难和更易于出错。实际上,操纵这样递归对象时出现的额外困难就是确定应该进行给定操作(譬如,复制-粘贴递归对象,识别递归对象内包含行数据或结构专用数据的区域,调整递归对象的尺寸,腾空递归对象内的一些字段,纠正由作用于递归对象的以前操作所导致的任何错误,以及将默认值填入递归对象内的一些字段中)的结构级别。而且,在对递归构造的单元格范围进行复制和粘贴操作之前,用户必须在目的地位置上为所复制的递归构造的单元格范围预备地方,因为如果不这样做的话,就存在因盖写而丧失这个位置上先前存在的信息的风险。上述的操作链迅速地变得单调乏味、漫长和易于出错,主要由于当使用传统工具时,递归构造的单元格范围的尺寸和复杂度会迅速达到人的极限。在本发明的优选实施例中,通过使电子表格用户进行如下操作,提供了对这些问题的用户友好解决方案,这些操作为:
·为单元格范围定义超结构,包括:
·(i)由一个或多个RME组成的可选页眉部分;
·(ii)由一个RE组成的必有主体部分;
·(iii)由一个或多个RME组成的可选页脚部分。
页眉部分的每个RME的结构被定义成每一个对应于ST的超结构字段的有序集合(collection)。主体部分的所有RE的结构被定义成每一个对应于ST的超结构字段的有序集合。页脚部分的每个RME的结构被定义成每一个对应于ST的超结构字段的有序集合。这种超结构被称为RST。总之,RST通过指定字段个数、通过引用定义主体部分的RE、和可选地,通过引用定义页眉部分或页脚部分的一个或几个RME’s来定义超结构。
·管理RST’s和称为RE’s和RME’s的在它下面定义的对象。
·创建或更新RE’s。
·创建或更新RME’s。
·创建或更新RST。
·创建遵从定义的RST的RSTI。
如下的一组工具支持上面的一组功能:
·“RST管理器”方法,或简称为RSTM方法;
·“RE编辑器”方法,或简称为REE方法;
·“RST编辑器”方法,或简称为RSTE方法;
·“RST实例化器”方法,或简称为RSTI方法。
在如下章节中,更详细地描述这组功能。
在我们的例子中,RST被发展成定义“NSP客户资源库(repository)”的通用结构,因此,便于创建所述“NSP客户资源库”的几个实例。现在参照图17B,定义“NSP客户资源库”的结构的RST:
·(i)指定超结构字段的个数,在我们的例子中,为2(两)个。
·(ii)通过如下步骤定义“NSP客户资源库”的页眉部分2052:
·定义第一ST的“ST_cust_data”、和第二ST的“ST_contacts”的结构。
·定义包含前两个ST’s的第一RME 2058的结构。
·定义第三ST的“ST_SLA”、和第四ST的“ST_support_team”的结构。
·定义包含前两个ST’s的第二RME 2057的结构。
·(iii)通过如下步骤定义“NSP客户资源库”的主体部分2053:
·定义第五ST的“ST_res_infp”、和第六ST的“ST_pb_log”的结构。
·定义包含前两个ST的RE 2056的结构。
·(iv)通过如下步骤定义“NSP客户资源库”的页脚部分2054:
·定义第一ST的“ST_billing”、和第二ST的“ST_stats”的结构。
·定义包含前两个ST’s的RME 2055的结构。
根据上面的RST 2051,可以以对用户而言非常有限的成本创建像如图17A所示的那个那样的一个或几个RSTI,并因此,避免了许多出错风险。
从RSTI删除对象,删除RSTI
删除RSTI的元素也是易于出错的操作。对于我们的“NSP客户存储库”的例子,电子表格用户可能不得不例如处理客户支持团队中的成员退休或者现有客户管理资源的移除、或者问题日志中重复问题的删除。如前所述,除了删除STI内的现有元素的固有困难之外,删除RST内的现有信息片断还由于以下原因而甚至更具有挑战性:
·被删除的对象可能被定义在不同的结构级别。例如,删除退休的客户支持团队成员或者问题日志中的重复问题将包括从已定义的STI(分别地,
“支持团队”和“问题日志”STI)中移除现有元素,而移除现有客户管理资源将要求根据相关RE 2056的结构在RSTI 2001的主体部分2003内删除一对STI的“资源信息”和“问题日志”。由于任何错误将不得不通过保持RSTI的两级结构来恢复,因此电子表格用户必须执行谨慎的删除操作。
由于删除现有对象而产生的副作用在RSTI的较低结构级别(例如,通过破坏被定义为RSTI的一部分的STI)、或者也在较高结构级别通过破坏组成RSTI的各个STI的组织而可能是有害的。前一情况在STI内的删除操作的描述中已经得到解决。当电子表格用户需要在RSTI 2001的主体部分2003的顶部处移除现有客户管理资源时,可以说明后一情况。在这种情况下,必须从RSTI 2001中移除顶部“资源信息”STI和顶部“问题日志”STI 2034。由于两个被移除的STI的高度不必相等,因此删除操作的结果最有可能属于主体部分2003的两个较低现有STI将不再水平对齐,因此破坏了RSTI 2001的超结构。
在本发明的优选实施例中,通过允许电子表格执行以下操作来提出用户友好的对这些问题的解决方案:
·在通过调用传统删除功能而触发自动提示时,选择要删除什么(单元格内容或STI元素或RE或整个RSTI),
·在RSTI内删除选定单元格内的输入字段的内容、或者选定元素内的输入字段的内容、或者选定STI内的输入字段的内容、或者整个选定元素、或者选定的RE,同时保持RSTI的总体完整性,或者
·删除整个RSTI。
上述功能被称作“RSTI删除管理器”方法,或者简称的RSTIDM方法,并且在下面章节中更详细地定义该功能。
B.概念和词汇
这个章节的目的是形式化在本发明的范围内定义的一些概念(与对象相关联)和一些词汇。在如下的描述中,假设电子表格采取二维(2D)形式,以便可以在2D环境下描述表格和结构。此外,假设表格垂直组织,以便表格标题(heading)在表格的顶部,而不是在它的左侧。这样就可以非常清晰地描述作为本发明组成部分的各种各样原始概念、对象和方法,但这不会对本发明的范围构成限制。也就是说,下面的描述可以推广到水平组织的2D表格的环境或3D表格的环境,而不偏离本发明的精神。
B1.基本定义
结构化单元格范围:结构化单元格范围是遵从将数据组织成行和列的某种结构的单元格范围。列定义旨在每一行上包含相同类型的信息的字段。行定义记录(或元素)。
表格:字表格可以用于指定结构化单元格范围。
字段:字段是数据库或表格中包括每个记录(或元素)的相同类型信息的带标记列。例如,客户表可以包含标有名称、地址和电话号码(tel#)的字段。
推广之,在给定记录(或元素)中,给定字段指的是位于记录(或元素)和给定字段(带标记列)的交点上的单元格。
上面的定义用于列定义字段和行定义记录的2D环境。可以在行定义字段和列定义记录的2D环境中调换它们。也可以在例如页定义记录的3D环境中调换它们。
输入/输出单元格:当假设用于记录用户提供的信息时,将单元格指定成“输入”单元格。当假设用于生成信息(一般通过其变量(argument)直接或间接引用“输入”单元格的公式获得)时,将单元格指定成“输出”单元格。
B2.对象定义
定义如下对象有助于理解本发明。
元素格式:EF是用格式属性定义2维或3维单元格范围内的元素的结构的电子表格对象,这些属性为:
·背景属性(颜色、图案等);
·对齐属性(水平、垂直、文本环绕、跨列对齐等);
·字体属性(大小、颜色等);
·线属性(类型、颜色等);
·字段保护;和
·任何其它传统格式属性。
元元素(Meta-Element)格式:MEF是依据格式属性定义2维或3维单元格范围内的元元素的结构的电子表格对象,这些属性为:
·背景属性(颜色、图案等);
·对齐属性(水平、垂直、文本环绕、单元格合并等);
·字体属性(大小、颜色等);
·线属性(类型、颜色等);
·字段保护;和
·任何其它传统格式属性。
元素概要:EP是依据内容和目的地定义2维或3维单元格范围内的元素的结构的电子表格对象:
·根据包括在同一元素的其它字段中、或同一STI的另一个元素或元元素的其它字段中、或甚至STI之外的其它字段中的数据计算的字段的公式。
·在元素创建时指定的字段默认值。
·单元格的目的地(为“输入”单元格输入的数据或为“输出”单元格生成的数据)。
元元素概要:MEP是依据内容和目的地定义2维或3维范围内的元元素的结构的电子表格对象,这些内容和目的地:
·用于根据包括在同一元素的其它单元格中、或在同一STI的另一个元素或元元素的其它单元格中、或甚至在STI之外的其它单元格中的数据计算的单元格的公式。
·在元元素创建时赋予的单元格默认值。
·单元格的目的地(为“输入”单元格输入的数据或为“输出”单元格生成的数据)。
可缩放模板(也称为“模板”或“ST”):ST是依据{元素+元元素}布局定义2维或3维单元格范围的结构的电子表格对象。字(word)“可缩放”指的是为尺寸可变(例如,从最小值到最大值)单元格范围定义给定结构的ST的能力。ST通过如下来定义结构:
·指定字段个数;
·引用定义每个主体元素的一对EF和/或EP;和
·可选地,引用一对或几对MEF和/或MEP。
在2维环境中,这样的MEF’s/MEP’s位于构成ST“页眉”部分的EF/EP之上,或位于构成ST“页脚”部分的EF/EP之下。ST“页眉”部分或ST“页脚”部分,或它们二者都有可能是空的。
当元素和元元素引用(reference)只由EP和MEP构成时,那么,ST只携带内容信息,因此,可以被命名为可缩放概要化模板。
当元素和元元素引用只由EF和MEF构成时,那么,ST只携带格式信息,因此,可以被命名为可缩放格式化模板。
当元素和元元素引用由EP’s和EF’s两者的任何组合构成时,那么,ST携带概要和格式信息,因此,可以被命名为可缩放概要化和格式化模板。
可缩放模板实例(也称为“实例”、“可缩放实例”或“STI”):STI是遵从如下所定义ST的结构的电子表格对象:可缩放格式化模板、可缩放概要化模板、或可缩放概要化和格式化模板。可以将STI视作ST的继承对象(heirobject)。它包含可变数量个元素(至少一个),这些元素包含在每个字段中与父结构相对应、并构成“主体”部分的信息,可选地,加上如ST所定义的、和构成STI的“页眉”部分和“页脚”部分的一个或几个元元素。
元素:元素是属于STI、和由遵从在父结构中(分别在可缩放格式化模板、可缩放概要化模板、或可缩放概要化和格式化模板中)找到的EF、或EP、或(EF,EP)对的基本字段组成的电子表格对象。在不丧失任何一般性的情况下,假设元素总是遵从(EF,EP)对,其中,EF或EP可以退化成空对象。
元元素:元元素是属于STI、和由遵从MEF、或MEP、或(MEF,MEP)对的基本单元格组成的电子表格对象。在不丧失任何一般性的情况下,假设元元素总是遵从(MEF,MEP)对,其中,MEF或MEP可以退化成空对象。
递归元素:RE是属于RST、构成RST的主体部分、和由用于记录ST的名称的基本字段组成的电子表格对象。RE具有与元素的结构相似的结构,但不被实例化成单元格范围,而是被实例化成STI’s的范围。
例子:如图17B所示的RST 2051的RE对应于构成这个RST的主体部分2053、和由分别包含ST的“ST_res_info”和“ST_pb_log”的名称的两个字段组成的结构2056。
递归元元素:RME是属于RST、属于RST的页眉和/或页脚部分、和由用于记录ST的名称的基本字段组成的电子表格对象。RME具有与元元素的结构相似的结构,但不是被实例化成单元格范围,而是被实例化成STI的范围。
例子:如图17B所示的RST 2052的RME对应于属于这个RST的主体部分2052、和由分别包含ST的“ST_cust_data”和“ST_contacts”的名称的两个字段组成的结构2058。
递归可缩放模板(也称为“递归模板”或“RST”):RST是依据{RE+RME}布局定义2维或3维单元格范围的超结构的电子表格对象:字汇“可缩放”指的是为尺寸可变(例如,从最小值到最大值)单元格范围定义给定超结构的RST的能力。RST通过如下来定义超结构:
·指定字段个数;
·引用定义RST的主体部分的RE;和
·可选地,引用一个或几个RME。
在2维环境中,这样的RME位于构成RST“页眉”部分的RE之上,或位于构成RST“页脚”部分的RE之下。RST“页眉”部分或RST的“页脚”部分,或它们二者都有可能是空的。
例子:RST 2051例示在图17B中。它由页眉部分2052、主体部分2053、和页脚部分2054构成。页眉部分包括两个RME 2058和2057,两者都拥有两个字段,和分别包含ST的“ST_cust_data”、“ST_contacts”和“ST_SLA”、“ST_support_team”的名称。主体部分包括一个RE 2056,它拥有两个字段,分别包含ST的“ST_res_info”、“ST_pb_log”的名称。页脚部分包括一个RME2055,它拥有两个字段,分别包含ST的“ST_billing”、“ST_stats”的名称。
递归可缩放模板实例(也称为“递归实例”、“递归可缩放实例”或“RSTI”):RSTI是遵从所定义的RST的结构的电子表格对象。可以将RSTI视作RST的继承对象。它包含可变数量个容器行(container row)(至少一个),这些容器行包含与父RE结构相对应、和构成“主体”部分的一个或多个STI,可选地,加上包含与父RME结构相对应、和构成RSTI的“页眉”部分和“页脚”部分的一个或多个STI的一个或几个其它容器行。
例子:RSTI 2001例示在图17A中。这个RSTI遵从如图17B所示的RST2051。它由页眉部分2002、主体部分2003、和页脚部分2004构成。页眉部分包括两个容器行2012和2011。主体部分包括三个容器行2010、2009和2008。页脚部分包括一个容器行2007。每个容器行包含两个补偿器范围,譬如,可以看作顶容器行2012和右容器列2005的交点的容器范围(containerrange)2014。每个容器范围包含遵从定义成RST 2051的RE或RME成员的一部分的ST的结构的STI。例如,包括在容器行2010和容器列2005的补偿器范围交点内的STI 2034遵从如在RST 2051的RME 2056中定义的那样、名为“ST_pb_log”的ST的结构,并且,本身由页眉部分2015、主体部分2016、和页脚部分2017构成。
容器行:容器行是属于RSTI、和与包含根据RSTI遵从的RST的RE或RME部分的定义构造的STI的单元格范围相对应的电子表格对象。容器行的行数等于它包含的最高STI的行数。容器行也可以称为递归元素实例。容器行在RSTI内可以被看作等效于STI内的元素。例子:容器行2012例示在图17A中,与包括在RSTI 2001内定义的STI 2032和2013的单元格范围相对应。这个容器行的行数等于比STI 2013高的STI 2032的行数。
容器列(container column):容器列是属于RSTI、和与包含在RSTI的容器行内占据相同超结构位置的STI的单元格范围相对应的电子表格对象。容器列的列数等于它包含的最宽STI的列数。例子:容器列2006例示在图17A中,与包括在RSTI 2001内占据最左位置的STI的单元格范围相对应。这个容器列的列数等于STI 2030的列数,STI 2030是RSTI 2001左侧最宽的STI。
容器范围:容器范围是属于RSTI、和与容器行和容器列的交点相对应的电子表格对象。每个容器范围包含占据左上角的单个STI。RSTI内的容器范围可以被看作等效于STI内的单个单元格。
例如:容器范围2014例示在图17A中,与两者都属于RSTI 2001的容器行2012和容器列2005的交点相对应。这个容器范围2014包含STI 2013。
B3.记号
下列记号:∏i∈Sai对应于项ai的乘积,下标i属于集合S。下列记号:LCM({ai})i∈S对应于项ai的最小公倍数(the least common multiplier),下标i属于集合S。如果S由单个元素a构成,那么,LCM({ai})i∈S等于a。下列记号:a Mod b对应于a除以b的余数(Mod是模数)。
C.用于管理RST对象的表格
正如在前面章节中介绍的那样,本发明的优选实施例依赖于管理RST的不同类型对象。将这些对象记录在不同资源库中,以便可以通过作为本发明优选实施例的一部分的不同方法访问和更新它们。这样的资源库被称为表格:
·EF表或简称为EFT;
·EP表或简称为EPT;
·ST表或简称为STT;
·ST描述符表或简称为STDT;
·ST实例化器表或简称为STIT;
·RE表或简称为RET;
·RST表或简称为RSTT;
·RST管理器表或简称为RSTMT;
·RST描述符表或简称为RSTDT;
·RSTI表或简称为RSTIT;
·RSTI描述符表或简称为RSTIDT。
EFT、EPT、STT、STDT、STIT、RET、RSTT、RSTDT、RSTIT、和RSTIDT表作为电子表格盘文件的一部分保存在大容量存储器107上,而RSTMT表临时保存在主存储器102上和RSTEIT表保存在电子表格输出-输入文件上。
C1.EF表
现在参照图7A,根据本发明,EFT表700对应于由几个记录701组成的简单逻辑结构,它们的每一个对应于EF或MEF。每个记录包括六个字段:
·“Name(名称)”702字段用于记录唯一地标识当前记录701描述的EF或MEF的字符串。
·“Last Change Date(最后变化日期)”703字段用于记录当前记录701描述的EF或MEF的最后更新日期。
·“Description Ptr(描述指针)”704字段是指向记录描绘当前记录701描述的EF或MEF的例示单元格范围的存储位置的引用。这个存储位置可以在大容量存储器107上,在主存储器102上,或在其它传统存储器资源库装置上,这不偏离本发明的精神。
·“Row #(行数)”705字段用于记录出现在当前记录701描述的EF或MEF中的行数。这个字段适用于元素或MEF对应于2D结构的3D ST。在采用2D ST的本发明优选实施例中,总是用值1填充这个字段。
·“Column #(列数)”706字段用于记录出现在当前记录701描述的EF或MEF中的列数。
·“Type(类型)”707字段用于记录与当前记录701描述的EF或MEF相关联的不同属性:这是指定当前记录701是否描述EF或MEF的“META(元)”属性708(具有相应值“NO(否)”和“YES(是)”)、和通过专用子字段(709a、709b、709c、709d和709e)指定与其它对象的关系的“REFERENCED(被引用)”属性709。这些子字段被描述成“REFERENCED(被引用)”属性2240的描述的一部分。传统技术可以用于编码这个“Type(类型)”字段中的这些不同属性,譬如,用预定位组合模式(bit pattern)进行逐位XOR(“异或”)运算,但也可以改用任何其它传统手段而不偏离本发明的精神。
C2.EP表
现在参照图7B,根据本发明,EPT表710对应于由几个记录711组成的简单逻辑结构,它们的每一个对应于EP或MEP。每个记录包括六个字段:
·“Name(名称)”712字段用于记录唯一地标识当前记录711描述的EP或MEP的字符串。
·“Last Change Date(最后变化日期)”713字段用于记录当前记录711描述的EP或MEP的最后更新日期。
·“Description Ptr(描述指针)”714字段是指向记录描绘当前记录711描述的EP或MEP的例示单元格范围的存储位置的引用。这个存储位置可以在大容量存储器107上,在主存储器102上,或在其它传统存储器资源库装置上,这不偏离本发明的精神。
·“Row #(行数)”715字段用于记录出现在当前记录711描述的EP或MEP中的行数。这个字段适用于元素或MEP对应于2D结构的3D ST。在采用2D ST的本发明优选实施例中,总是用值1填充这个字段。
·“Column#(列数)”716字段用于记录出现在当前记录711描述的EP或MEP中的列数。
·“Type(类型)”717字段用于记录与当前记录711描述的EP或MEP相关联的不同属性:这是指定当前记录711是否描述EP或MEP的“META”属性718(具有相应值“NO”和“YES”)、和通过专用子字段(719a、719b、719c、719d和719e)指定与其它对象的关系的“REFERENCED(被引用)”属性719。这些子字段被描述成“REFERENCED(被引用)”属性2240的描述的一部分。传统技术可以用于编码这个“Type(类型)”字段中的这些不同属性,譬如,用预定位组合模式进行逐位XOR运算,但也可以改用任何其它传统手段而不偏离本发明的精神。
C3.ST表
现在参照图7C,根据本发明,STT表720对应于由几个记录721组成的简单逻辑结构,它们的每一个对应于ST。每个记录包括六个字段:
·“Name(名称)”722字段用于记录唯一地标识当前记录721描述的ST的字符串。
·“Last Change Date(最后变化日期)”723字段用于记录当前记录721描述的ST的最后更新日期。
·“Description Ptr(描述指针)”724字段是指向记录当前记录721描述的ST的描述的存储位置的引用。这个存储位置可以在大容量存储器107上,在主存储器102上,或在其它传统存储器资源库装置上,这不偏离本发明的精神。这个描述是根据例示在图7D中的STDT表760构造的,也就是说,被构造成数对名称的有序列表,每一对由元素或MEF的名称和元素或MEP的名称组成。
·“Min Element #(最小元素数)”725字段用于记录在遵从当前记录721描述的ST的每个STI中找到的最小元素数。
·“Max Element #(最大元素数)”726字段用于记录在遵从当前记录721描述的ST的每个STI中找到的最大元素数。
·“Type(类型)”727字段用于记录与当前记录721描述的ST相关联的不同属性:这是总是取值“NO”的“META”属性728、和通过专用子字段(729a、729b、729c、729d和729e)指定与其它对象的关系的“REFERENCED(被引用)”属性729。这些子字段被描述成“REFERENCED(被引用)”属性2240的描述的一部分。传统技术可以用于编码这个“Type(类型)”字段中的这些不同属性,譬如,用预定位组合模式进行逐位XOR运算,但也可以改用任何其它传统手段而不偏离本发明的精神。
C4.ST描述符表
现在参照图7D,STDT表760对应于由几对元素或MEF 765和元素或MEP 766组成的简单逻辑结构,这个结构被组织成三个子集:
·可选ST“页眉”部分767,由像顶对761那样的可变个(可能零个)对组成。这些对的每一个由MEF(列765)和MEP(列764)构成。
·由单对组成的必有“主体”部分762,这个单对由EF(列765)和EP(列764)构成。
·可选ST“页脚”部分766,由像底对763那样的可变个(可能零个)对组成。这些对的每一个由MEF(列765)和MEP(列764)构成。
C5.ST实例化器表
现在参照图7E,根据本发明的优选实施例,STIT表750对应于由几个记录751组成的简单逻辑结构,它们的每一个对应于STI。每个记录包括六个字段:
·“Address(地址)”752字段用于定位当前记录751描述的STI:它的值对应于用于记录任何单元格范围的地址的传统字符串。
·“ST”753字段用于记录遵从当前记录751描述的STI的ST的名称。
·“Element #(元素数)”754字段用于记录当前记录751描述的STI内的元素数。
·“Critical(关键的)”755字段用于记录是否认为当前记录751描述的STI是关键性的。它的内容可以取值“YES”或“NO”。
·“Header Size(页眉尺寸)”756字段用于记录构成当前记录751描述的STI的页眉部分的元元素数。
·“Footer Size(页脚尺寸)”757字段用于记录构成当前记录751描述的STI的页脚部分的元元素数。
C6.RE表
现在参照图19A,根据本发明,RET表2210对应于由几个记录2211组成的简单逻辑结构,它们的每一个对应于RE或RME。每个记录包括六个字段:
·“Name(名称)”2212字段用于记录唯一地标识当前记录2211描述的RE或RME的字符串。
·“Last Change Date(最后变化日期)”2213字段用于记录当前记录2211描述的RE或RME的最后更新日期。
·“Description Ptr(描述指针)”2214字段是指向记录描绘当前记录2211描述的RE或RME的例示单元格范围的存储位置的引用。这个存储位置可以在大容量存储器107上,在主存储器102上,或在其它传统存储器资源库装置上,这不偏离本发明的精神。
·“Row #(行数)”2215字段用于记录出现在当前记录2211描述的RE或RME中的行数。这个字段适用于RE或RME对应于2D结构的3D RST。在采用2D RST的本发明优选实施例中,总是用值1填充这个字段。
·“Column #(列数)”2216字段用于记录出现在当前记录2211描述的RE或RME中的列数。
·“Type(类型)”2217字段用于记录与当前记录2211描述的RE或RME相关联的不同属性:这是指定当前记录2211是否描述RE或RME的“META”属性2218(具有相应值“NO”和“YES”)、和通过专用子字段(2219a、2219b、2219c、2219d和2219e)指定与其它对象的关系的“REFERENCED(被引用)”属性2219。这些子字段被描述成“REFERENCED(被引用)”属性2240的描述的一部分。传统技术可以用于编码这个“Type(类型)”字段中的这些不同属性,譬如,用预定位组合模式进行逐位XOR(“异或”)运算,但也可以改用任何其它传统手段而不偏离本发明的精神。
C7.RST表
现在参照图19B,根据本发明,RSTT表2220对应于由几个记录2221组成的简单逻辑结构,它们的每一个对应于RST。每个记录包括六个字段:
·“Name(名称)”2222字段用于记录唯一地标识当前记录2221描述的RST的字符串。
·“Last Change Date(最后变化日期)”2223字段用于记录当前记录2221描述的RST的最后更新日期。
·“Description Ptr(描述指针)”2224字段是指向记录当前记录2221描述的RST的描述的存储位置的引用。这个存储位置可以在大容量存储器107上,在主存储器102上,或在其它传统存储器资源库装置上,这不偏离本发明的精神。这个描述是根据例示在图19D中的RSTDT表2250构造的,也就是说,被构造成RME或RE名称的有序列表。
·“Min Element #(最小元素数)”2225字段用于记录在遵从当前记录2221描述的RST的每个RSTI中找到的最小RE个数。
·“Max Element #(最大元素数)”2226字段用于记录在遵从当前记录2221描述的RST的每个STI中找到的最大RE个数。
·“Type(类型)”2227字段用于记录与当前记录2221所描述的RST相关联的不同属性:这是总是取值“NO”的“META”属性2228、和通过专用子字段(2229a、2229b、2229c、2229d和2229e)指定与其它对象的关系的“REFERENCED(被引用)”属性2229。这些子字段被描述成“REFERENCED(被引用)”属性2240的描述的一部分。传统技术可以用于编码这个“Type”字段中的这些不同属性,譬如,用预定位组合模式进行逐位XOR运算,但也可以改用任何其它传统手段而不偏离本发明的精神。
C8.RST管理器表
现在参照图19C,根据本发明的优选实施例,RSTMT表2230对应于由几个记录2231组成的简单逻辑结构,它们的每一个对应于RST管理器管理的对象。每个记录包括七个字段:
·“Name(名称)”2232字段用于记录唯一地标识当前记录2231描述的对象的字符串。
·“Last Change Date(最后变化日期)”2233字段用于记录当前记录2231描述的对象的最后更新日期。
·“Description Ptr(描述指针)”2234字段是指向记录当前记录2231描述的对象的描述的存储位置的引用。这个存储位置可以在大容量存储器107上,在主存储器102上,或在其它传统存储器资源库装置上,这不偏离本发明的精神。
·“Info Field 1(信息字段1)”2235字段用于记录与当前记录2231描述的对象相关联的第一段信息。
·“Info Field 2(信息字段2)”2236字段用于记录与当前记录2231描述的对象相关联的第二段信息。
·“Type(类型)”2237字段用于记录与当前记录2231描述的对象相关联的不同属性,譬如:
·前面为类似“Type(类型)”字段707、717、727、777、2217、和2227描述的属性“META(元)”2239,以及两个其它属性:
·根据例示RSTMT表2230的例子的图19C,由5(五)子字段构成的属性“REFERENCED(被引用)”2240:
·“OWN REFERENCE(自有引用)”(或简称为OR)子字段2240a。这个子字段是创建记录2231描述的对象时指定的唯一质数。只有当删除记录2231描述的对象时,才释放这个质数。
·“FILIATION REFERENCE(分支引用)”(或简称为FR)子字段2240b。这个子字段根据如下公式来评估,其中,F集合对应于构成记录2231描述的对象的一组对象:
FR=∏i∈FORi×LCM({FRi})i∈F
上面的公式允许动态地将记录2231所描述的对象与构成它的对象联系在一起,因为因子ORi和FRi之一的值的任何改变都自动反映到FR上。如果F集合是空的(例如,当记录2231描述的对象是EP、MEP、EF、或MEF时),那么,FR子字段默认为值1(一)。
·“INSTANCE REFERENCE(实例引用)”(或简称为IR)子字段2240c。当创建记录2231描述的对象时,将这个子字段初始化成值1(一)。此后,每当创建遵从这个对象的新实例时,将这个字段乘以2(二),和每当删除遵从这个对象的现有实例时,将这个字段除以2(二)。
·“REFERENCED OBJECT(所引用对象)”(或简称为RO)子字段2240d。这个子字段是指定记录2231描述的对象是否参与另一个对象的定义的布尔变量。例如,EF、MEF、EP、或MEP可以参与ST的定义。类似地,ST可以参与本身可以参与RST的定义的RE的定义。这个子字段根据如下公式来评估,其中,P集合对应于RST对象的分层结构中,其类型遵从记录2231描述的对象的类型的一组对象:
如果LCM({FRi})i∈PMod OR=0,则RO=“YES”;
否则,RO=“NO”。
上面的公式允许动态地将记录2231描述的对象与属于P集合的对象联系在一起,因为因子FRi之一的值的任何改变都自动反映到RO上。如果记录2231描述的对象是EF、MEF、EP、或MEP,那么,P集合对应于ST的集合。如果记录2231描述的对象是RE,那么,P集合对应于RST的集合。如果记录2231描述的对象是RST,那么,P集合是空的(已经到达顶层),从而RO子字段默认为值“NO(否)”。
·“SELECTED CHILDREN(所选子系)”(或简称为SC)子字段2240e。这个子字段是指定记录2231描述的对象是否参与所选对象的定义的布尔变量。这个子字段根据如下公式来评估,其中,S集合对应于所选对象的集合(具有等于值“YES”的“SELECTED(选定)”属性2242):
如果LCM({FRi})i∈SMod OR=0#OR#object∈S,
则SC=“YES(是)”;
否则,SC=“NO(否)”。
上面的公式允许动态地将记录2231描述的对象与所选对象(属于S集合)联系在一起,因为因子FRi之一的值或S集合的任何改变都自动反映到SC上。
如在表EFT 700、EPT 710、STT 720、RSTEIT 770、RET 2210、和RSTT 2220内定义的那样的其它“REFERENCED(被引用)”属性基于五个子字段的同一个集合。
·反映电子表格用户是否已经在RST管理器对话框2300内选择了相关对象的“SELECTED(选定)”属性2242(具有相应值“YES”和“NO”),以及:
·反映对象是(M)EF,(M)EP,ST,R(M)E,还是RST的“NATURE”属性2241(具有相应值“FORMAT(格式)”,“PROFILE(概要)”,“TEMPLATE(模板)”,“RECELEMENT(递归元素)”或“RECTEMPLATE(递归模板)”)。
传统技术可以用于编码这个“Type(类型)”字段2237中的这些不同属性,譬如,用预定位组合模式进行逐位XOR运算,但也可以改用任何其它传统手段而不偏离本发明的精神。
·“Index(索引)”2238字段用于像通过RST管理器方法进行的那样,分类RSTMT表。
C9.RST描述符表
现在参照图19D,RSTDT表2250对应于由几对RE或RME的名称2254组成的简单逻辑结构,这个结构被组织成三个子集:
·可选RST“页眉”部分2256,由像顶部名称2251那样的可变个(可能零个)RME名称组成。
·由单个RE名称组成的必有“主体”部分2252。
·可选RST“页脚”部分2255,由像底部名称2253那样的可变个(可能零个)RME名称组成。
C10.RSTI表
现在参照图19E,根据本发明的优选实施例,RSTIT表2260对应于由几个记录2261组成的简单逻辑结构,它们的每一个对应于RSTI。每个记录包括六个字段:
·“Address(地址)”2262字段用于定位当前记录2261描述的RSTI:它的值对应于用于记录任何单元格范围的地址的传统字符串。
·“ST”2263字段用于记录遵从当前记录2261描述的RSTI的RST的名称。
·“Element #(元素数)”2264字段用于记录当前记录2261描述的RSTI内的RE的个数。
·“Critical(关键性)”2265字段用于记录是否认为当前记录2261描述的RSTI是关键性的。它的内容可以取值“YES”或“NO”。
·“Header Size(页眉大小)”2266字段用于记录构成当前记录2261描述的RSTI的页眉部分的RME的个数。
·“Footer Size(页脚大小)”2267字段用于记录构成当前记录2261描述的RSTI的页脚部分的RME的个数。
C11.RSTI描述符表
现在参照图19F,根据本发明的优选实施例,RSTIDT表2270对应于由几个记录2271组成的简单逻辑结构,它们的每一个由几个单元格2272组成,它们的每一个对应于RSTI的STI成员。RSTIDT表2270被映射成具有由一个或几个记录2271组成的顶部页眉部分2275(可能空的)、由一个或几个记录2271组成的中间主体部分2274、以及由一个或几个记录2271组成的底部页脚部分2273(可能空的)的相关RSTI的结构。每个记录2271包括一个或多个单独单元格2272,它们的个数对应于每个RE的STI的个数。每个记录2272包括表示RSTI的STI成员的特征的七个字段:
·“Container_range(容器范围)”2276字段用于记录存放记录2272描述的STI的容器范围的地址。参照图17A,如果记录2272描述STI 2013,这个字段记录容器2014的地址(容器行2012和容器列2005)的交点。
·“Container_col(容器列)”2277字段用于记录存放记录2272描述的STI的容器范围的列数。参照图17A,如果记录2272描述STI 2013,这个字段记录列数2028。
·“STI_col(STI列)”2278字段用于记录记录2272描述的STI的列数。参照图17A,如果记录2272描述STI 2013,这个字段记录列数2026。
·“STI_row(STI行)”2279字段用于记录记录2272描述的STI的行数。参照图17A,如果记录2272描述STI 2013,这个字段记录行数2027。
·“ST_name(ST名称)”2280字段用于记录遵从记录2272描述的STI的ST的名称。
·“Container_row(容器行)”2281字段用于记录存放记录2272描述的STI的容器范围的行数。参照图17A,如果记录2272描述STI 2013,这个字段记录行数2029。
·“STIT_rec_ptr(STIT记录指针)”2282字段用于在STIT表750内,指向描述由记录2272所描述的STI的记录751。
C12.表格之间的关系
现在参照图7F,该图一起给出了一些以前引入的表格RSTIT 2260、RSTIDT 2270、RSTT 2220、RSTDT 2250、RET 2210、STIT 750、STT 720、STDT 760、EFT 700和EPT 710,以例示在这些表格之间建立的关系和与RSTI的RSTI 730或STI的STI 797的关系。在这个图内,粗实线箭头例示指向表格或记录的基于指针关系,粗虚线箭头例示指向单元格范围的基于地址关系,细实线箭头例示指向对象的基于名称关系,和细虚线箭头例示指向对象的基于尺寸关系。在图7F中,基于指针、基于地址、和基于名称的关系是根据如下顺序,通过表示在圆圈内的索引标识的:
·从由三个部分“STI Header(STI页眉)”、“STI Body(STI主体)”和“STIFooter(STI页脚)”组成的STI的STI 797开始,在这个STI的STI 797与STIT表750的记录751之间建立第1基于地址关系①。
·然后,在这个记录751与STT表720的记录721之间建立第2基于名称关系②。这个记录721对应于遵从STI 797的ST。
·在这个记录721与描述ST的结构的STDT表760之间建立第3基于指针关系③。STDT表760的每个记录对应于一对元素或MEF名称和元素或MEP名称。
·在元素或MEF名称与EFT表700的记录701之间建立第4基于名称关系④。
·在元素或MEP名称与EPT表710的记录711之间建立第5基于名称关系⑤。
·在记录701与指定格式属性的例示单元格范围798之间建立第6基于指针关系⑥。
·在记录711与指定概要内容的例示单元格范围799之间建立第7基于指针关系⑦。
·现在从由三个部分“RSTI Header”、“RSTI Body”和“RSTI Footer”组成的RSTI 730开始,在这个RSTI 730与RSTIT表2260的记录2261之间建立第8基于地址关系⑧。
·在这个记录2261与描述RSTI 730的结构的RSTIDT表2270之间建立第9基于指针关系⑨。RSTIDT表2270的每个单元格2272包括与RSTI730的给定STI(像STI 797那样)成员有关的几个字段2276、2277、2278、2279、2280、2281和2282。
·因此在RSTIDT表2270的单元格2272的2276字段与包括STI的STI797的容器范围之间建立起第10基于地址关系⑩。
·还在RSTIDT表2270的单元格2272的2282字段与对应于STI的STI797的STIT表750的记录751之间建立起第11基于指针关系①①。
·然后,在记录2261与RSTT表2220的记录2221之间建立第12基于名称关系①②。这个记录2221对应于遵从RSTI 730的RST。
·在这个记录2221与描述RST的结构的RSTDT表2250之间建立第13基于指针关系①③。RSTDT表2250的每个记录对应于RE或RME。
·在RE或RME名称与RET表2210的记录2211之间建立第14基于名称关系①④。
·在记录2211与包含ST的名称的RE描述符单元格范围731之间建立第15基于指针关系①⑤。
·在RE描述符单元格范围731与STT表720的记录721之间建立第16基于名称关系①⑥。
·在RSTIDT表2270的单元格2272与STT表720的记录721之间建立类似的第17基于名称关系①⑦。
D.方案
与刚刚描述过的传统工具不同,本发明的优选实施例以一群方法的形式提供了定义和管理ST的更有功效的、用户友好的和交互式的途径。在优选实施例中,本发明用在清楚地表达成一系列操作的方案内。
·1.第一操作:创建STI或RSTI
第一操作发生在电子表格用户根据这里未详述的一些准则,决定创建遵从ST的结构的STI或创建遵从RST的结构的RSTI的时候。在本发明的优选实施例中,这个操作包括如下步骤:
·a.RST管理器:电子表格用户首先借助于适合用在电子表格环境中的传统手段,譬如,定位设备105或键盘104(但不限于这些),调用称为“RST管理器”的原始专用命令,以便通过专用用户界面看见任何现有EF、或MEF、或EP、或MEP、或RE、或RME、或ST、或RST。这个RST管理器为进一步管理这些实体提供了不同的选择。这可以借助于参照图2所述的用户界面来例示,图2示出了如显示在显示设备106上那样的RST管理器对话框200。在这个RST管理器对话框200内,用户可以在分别指定对象的名称、对象的类型、和它们的最后更新日期的“列表框”213、214和202中看见已经定义的对象(EF、MEF、EP、MEP、RE、RME、ST和RST)。如果已经定义了大量对象,那么,用户可以借助于定位设备105向上或向下点击滚动条203,在它们之间导航,以便显示在列表框213、214和202内的对象在顶部对象和底部对象之间向前向后移动。在本发明的优选实施例中,通过最后更新日期对对象加以分类,但也可以使用任何其它分类方案,这不偏离本发明的精神。然后,用户可以采取几种行动。
用户可以利用定位设备105点击像复选框212那样在RST管理器对话框200左侧的复选框,以便选择或取消选择其名称在列表框213内正好显示在被点击复选框右边的对象。可以选择或取消选择一个或多个对象。列表滚动当然会在复选框上反映出来。一旦进行了选择,如果用户想要从列表框213、214和202中除去所有所选对象,他/她可以利用定位设备105点击“Delete(删除)”按钮207。如果没有其它对象(ST、STI、RE、RME、RST或RSTI)引用这些对象的至少一个,那么,马上删除它们,以便它们不再出现在列表框213、214和202上。如果存在至少一个其它ST、STI、RE、RME、RST或RSTI引用所选对象的至少一个,那么,在显示设备106上显示传统对话框,首先将这种状况告诉用户,其次请他取消删除操作或确认它。如果用户的决定是取消操作,那么,不采取任何行动,否则,马上删除所选对象,以便它们不再出现在列表框213、214和202上。可替代地,如果用户想要编辑假设是唯一的所选对象,他/她可以利用定位设备105点击“Edit(编辑)”按钮211。
如果以前没有选择对象或选择了多个对象,如在RST管理器对话框200内,在位于左侧的复选框中没有复选标记或存在多个复选标记(看得见的或看不见的)所示,那么,在显示设备106上,通过传统手段,譬如,弹出窗口、状态栏消息,或可以改用而不会偏离本发明精神的任何其它类似传统手段,向用户显示警告消息。
如果以前选择了单个对象,如在像复选框212那样,位于左侧的复选框中存在单个复选标记(看得见的或看不见的)所示,那么,首先关闭RST管理器对话框200,此后,考虑这单个所选对象的性质,以确定要打开的新对话框。
如果所选对象是EF或MEF,那么,发出EF编辑器命令,以便EF编辑器方法通过首先在显示设备106上显示如图3所示的EF编辑器对话框301采取控制。在随后的章节中详述这个方案事例的接着步骤。
如果所选对象是EP或MEP,那么,发出EP编辑器命令,以便EP编辑器方法通过首先在显示设备106上显示如图4所示的EP编辑器对话框301采取控制。在随后的章节中详述这个方案事例的接着步骤。
如果所选对象是RE或RME,那么,发出RE编辑器命令,以便RE编辑器方法通过首先在显示设备106上显示如图20B所示的RE编辑器对话框2321采取控制。在随后的章节中详述这个方案事例的接着步骤。
如果所选对象是ST,那么,发出ST编辑器命令,以便ST编辑器方法通过首先在显示设备106上显示如图5所示的ST编辑器对话框501采取控制。在随后的章节中详述这个方案事例的接着步骤。
如果所选对象是RST,那么,发出RST编辑器命令,以便RST编辑器方法通过首先在显示设备106上显示如图6所示的RST编辑器对话框601采取控制。在随后的章节中详述这个方案事例的接着步骤。
可替代地,如果用户想要生成遵从假设是唯一的和分别是ST或RST的所选对象的STI或RSTI,他/她可以利用定位设备105点击“Instanciate(实例化)”按钮204。
如果以前没有选择对象或选择了多个对象,如在RST管理器对话框200内,在像复选框212那样,位于左侧的复选框中没有复选标记或存在多个复选标记(看得见的或看不见的)所示,那么,在显示设备106上,通过传统手段,譬如,弹出窗口、状态栏消息,或可以改用而不会偏离本发明精神的任何其它类似传统手段,向用户显示警告消息。
如果以前选择了单个对象,如在像复选框212那样,位于左侧的复选框中存在单个复选标记(看得见的或看不见的)所示,那么,该方法检验这个对象是否是ST或RST。
如果情况不是这样,那么,在显示设备106上,通过传统手段,譬如,弹出窗口、状态栏消息,或可以改用而不会偏离本发明精神的任何其它类似传统手段,向用户显示警告消息。
如果以前选择了单个ST(相应地,RST),那么,首先关闭RST管理器对话框200,此后,发出ST实例化器(相应地,RST实例化器)命令,以便ST实例化器(相应地,RST实例化器)方法通过首先在显示设备106上显示如图13A(相应地,图20A)所示的ST实例化器对话框1300(相应地,RST实例化器对话框2300)采取控制。在随后的章节中详述这个方案事例的接着步骤。
可替代地,如果用户想要将一组非空对象从当前电子表格文件输出到另一个电子表格文件,他/她可以利用定位设备105点击“Export”按钮206。如果复选框“Including child objects(for Export)(包括子对象(对于输出))”220上已打上复选标记,那么,即使没有通过像复选框212那样,位于左侧的复选框选择所选对象的所有子对象,这些子对象也将从输出操作中受益。
如果以前没有选择对象,如在RST管理器对话框200内,在像复选框212那样,位于左侧的复选框中没有任何复选标记(看得见的或看不见的)所示,那么,在显示设备106上,通过传统手段,譬如,弹出窗口、状态栏消息,或可以改用而不会偏离本发明精神的任何其它类似传统手段,向用户显示警告消息。
如果以前选择了一个或多个对象,如在像复选框212那样,位于左侧的复选框中存在至少一个复选标记(看得见的或看不见的)所示,那么,首先关闭RST管理器对话框200,此后,发出专用RST Export Mananger(RST输出管理器)命令,以便在本发明中未描述的专用方法采取控制以管理输出操作。
可替代地,如果用户想要将一个或几个对象从另一个电子表格文件输入到当前电子表格文件,他/她可以利用定位设备105点击“Import(输入)”按钮205。首先关闭RST管理器对话框200,此后,发出专用RST ImportMananger(RST输入管理器)命令,以便在本发明中未描述的专用方法采取控制以管理输入操作。
可替代地,如果用户想要指定以后可能创建的新对象的类型,他/她可以利用定位设备105在RST Mananger(RST管理器)对话框200的左下侧点击五个选项按钮217“Format(格式)”、209“Profile(概要)”、216“Template(模板)”、218“RE”、和219“Recursive Template(递归模板)”之一。用户拥有将EF、EP、RE、ST或RST指定为此后要创建的新对象的类型的选择。
可替代地,如果用户想要指定是否从当前在电子表格文件中选择的单元格范围中导出此后要创建的新对象,他/她可以利用定位设备105点击叫作“From current selection(来自当前选择)”的复选框208。
可替代地,如果用户想要创建以前借助于像下面那样的五个选项按钮指定了类型的新对象,他/她可以利用定位设备105点击“Create New(新创建)”按钮210:
·“Profile”选项按钮209;
·“Format”选项按钮217;
·“Template”选项按钮216
·“RE”选项按钮218;或
·“Recursive Template”选项按钮219。
如果这五个选项按钮没有一个显示出以前被用户选择,如在RST管理器对话框200内,这五个选项按钮209、216、217、218和219没有一个被打点所示,那么,在显示设备106上,通过传统手段,譬如,弹出窗口、状态栏消息,或可以改用而不会偏离本发明精神的任何其它类似传统手段,向用户显示警告消息。
如果这五个选项按钮209、216、217、218和219之一显示出以前的用户选择,那么,首先关闭RST管理器对话框200,此后,考虑单个所选选项按钮,以确定要打开的新对话框。
如果“Format(格式)”选项按钮217显示出选择,那么,发出EF编辑器命令,以便EF编辑器方法通过首先在显示设备106上显示如图3所示的EF编辑器对话框301采取控制。在随后的章节中详述这个方案事例的接着步骤。
如果“Profile(概要)”选项按钮209显示出选择,那么,发出EP编辑器命令,以便EP编辑器方法通过首先在显示设备106上显示如图4所示的EP编辑器对话框301采取控制。在随后的章节中详述这个方案事例的接着步骤。
如果“Template(模板)”选项按钮216显示出选择,那么,发出ST编辑器命令,以便ST编辑器方法通过首先在显示设备106上显示如图5所示的ST编辑器对话框501采取控制。在随后的章节中详述这个方案事例的接着步骤。
如果“RE”选项按钮218显示出选择,那么,发出RE编辑器命令,以便RE编辑器方法通过首先在显示设备106上显示如图20B所示的RE编辑器对话框2321采取控制。在随后的章节中详述这个方案事例的接着步骤。
如果“Recursive Template(递归模板)”选项按钮219显示出选择,那么,发出RST编辑器命令,以便RST编辑器方法通过首先在显示设备106上显示如图6所示的RST编辑器对话框601采取控制。在随后的章节中详述这个方案事例的接着步骤。
最后,如果用户想要结束RST管理器方法,他/她可以利用定位设备105点击“Done(完成)”按钮201或关闭窗口按钮215。其结果是关闭显示设备106上的RST管理器对话框200。
·b.EF编辑器:根据前面例示RST管理器方法的方案,电子表格用户然后可以借助于适合用在电子表格环境中的传统手段,譬如,定位设备105或键盘104(但不限于这些),调用称为“EF编辑器”的原始专用命令,以便创建新EF;创建新MEF;更新现有EF;或更新现有MEF。Aureglia等人在发明名称为“在电子表格中从一个可缩放模式实例到另一个可缩放模式实例输出-输入输入单元格的内容的系统和方法(System and method in an electronicspreadsheet for exporting-importing the content of input cells from a scalabletemplate instance to another)”的国际专利申请PCT/EP 02/09483(IBM参考文献FR9 2001 0029)中描述了相应方案。
·c.EP编辑器:根据前面例示RST管理器方法的方案,电子表格用户然后可以借助于适合用在电子表格环境中的传统手段,譬如,定位设备105或键盘104(但不限于这些),调用称为“EP编辑器”的原始专用命令,以便创建新EP,创建新MEP,更新现有EP,或更新现有MEP。
Aureglia等人在发明名称为“在电子表格中从一个可缩放模式实例到另一个可缩放模式实例输出-输入输入单元格的内容的系统和方法(System andmethod in an electronic spreadsheet for exporting-importing the content of inputcells from a scalable template instance to another)”的国际专利申请PCT/EP02/09483(IBM参考文献FR9 2001 0029)中描述了相应方案。
·d.RE编辑器:根据前面例示RST管理器方法的方案,电子表格用户然后可以借助于适合用在电子表格环境中的传统手段,譬如,定位设备105或键盘104(但不限于这些),调用称为“RE编辑器”的原始专用命令,以便创建新RE,创建新RME,更新现有RE,或更新现有RME。
这可以借助于参照图20B所述的用户界面来例示,图20B示出了如在显示设备106上显示在电子表格办公应用软件的GUI窗口内那样的RE编辑器对话框2321。
当在显示设备106上显示RE编辑器对话框232时,它包含一些信息段。
第一,通过指定是否是RE或RME的一对选项按钮2330和2331示出编辑对象的性质。电子表格用户可以用定位设备105点击这两个选项按钮2330和2331之一,以便切换RE定义和RME定义。
第二,在文本框2326中指定编辑对象内的字段数。当创建新RE或RME时(电子表格用户以前已经用定位设备105点击了选项按钮218将点打在上面和点击了按钮210,两者都包含在如图2所示的RST管理器对话框200内),文本框2326所示的值对应于在本发明的优选实施例中设置成3的默认值。当编辑现有RE或RME时,文本框2326所示的值对应于以前为这个对象定义的字段数。在所有情况中,电子表格用户可以通过用定位设备105点击旋钮2327,点击在上升侧上或点击在下降侧上,以便可以使值增加或减小(在预定界限内),改变显示在文本框2326中的值。
第三,在标记按钮2324上显示编辑RE或RME的名称。当编辑现有RE或RME时,标记框2324所示的名称对应于以前指定给这个对象的名称。当创建新RE或RME时,那么,显示在标记框2324上的名称对应于在本发明的优选实施例中,采取“New XX(新XX)”形式的默认值,其中,XX是保证指定名称唯一性的计数。
第四,文本框2325和2334一起指定构成编辑RE或RME的ST。文本框2325指定按惯例,为编辑RE或RME的最左边字段取值1,和为编辑RE或RME的最右边字段取与显示在文本框2326上的那个相同的值的字段等级。文本框2324为文本框2325指定其等级的字段指定ST的名称。
RE编辑器对话框2321包含允许电子表格用户采取一些行动的几个图形对象。
第一,电子表格用户可以将新名称指定给当前编辑的RE或RME。为了这个目的,他/她首先利用诸如键盘104之类的传统手段在文本框2325内指定要给予编辑RE或RME的新名称。然后,他/她利用定位设备105点击“Saveas(保存为)”按钮2332。如果输入文本框2325内的指定名称已经指定给现有对象或不是有效名称,那么,在显示设备106上,通过传统手段,譬如,弹出窗口、状态栏消息,或可以改用而不会偏离本发明精神的任何其它类似传统手段,向用户显示警告消息。这个警告信息将这种状况通知电子表格用户,然后,提醒他加以确认。然后,清除文本框2325而不采取进一步行动。如果输入文本框2325内的指定名称还没有指定给现有对象和是有效名称,那么,清除文本框2325,和将编辑对象保存在电子表格文件上也显示在标记框2324内的新名称下。
第二,电子表格用户可以通过用定位设备105点击“Save(保存)”按钮2333,将编辑对象的当前定义保存在电子表格文件上。这个事件的后果是检验更新的RE或RME是否已经被现有RST引用。如果情况不是这样,那么,在显示设备106上,通过传统手段,譬如,弹出窗口、状态栏消息,或可以改用而不会偏离本发明精神的任何其它类似传统手段,向用户显示警告消息。这个警告信息将这种状况通知电子表格用户,然后,提醒他取消操作或继续进行。在第一种情况中,不保存更新的RE或RME定义,而在第二种情况中,将它保存在电子表格文件上。
第三,电子表格用户可以改变构成编辑RE或RME的ST的定义。为了这个目的,他/她通过用定位设备105点击旋钮2329,降低和提高像显示在文本框2335中那样、和ST名称显示在文本框2334中的字段的等级,首先在编辑对象的字段内导航。字段等级所取的值保持在下限为值1(一)和上限为文本框2326的值的区间内。然后,电子表格用户可以通过用定位设备105点击旋钮2328选择适当ST名称,为其等级显示在文本框2335中的字段更新ST的名称。
最后,如果用户想要结束RE编辑器方法,他/她可以利用定位设备105点击“Done(完成)”按钮2323或关闭窗口按钮2322。其结果是关闭显示设备106上的RE编辑器对话框2321。
·e.ST编辑器:根据前面例示RST管理器方法的方案,电子表格用户然后可以借助于适合用在电子表格环境中的传统手段,譬如,定位设备105或键盘104(但不限于这些),调用称为“ST编辑器”的原始专用命令,以便创建新ST或更新现有ST。Aureglia等人在发明名称为“System and method inan electronic spreadsheet for exporting-importing the content of input cells from ascalable template instance to another”的国际专利申请PCT/EP 02/09483(IBM参考文献FR9 2001 0029)中描述了相应方案。
·f.RST编辑器:根据前面例示RST管理器方法的方案,电子表格用户然后可以借助于适合用在电子表格环境中的传统手段,譬如,定位设备105或键盘104(但不限于这些),调用称为“RST编辑器”的原始专用命令,以便创建新RST或更新现有RST。这可以借助于参照图6所述的用户界面来例示,图6示出了如在显示设备106上显示在电子表格办公应用软件的GUI窗口611内那样的RST编辑器对话框601。当在显示设备106上显示RST编辑器对话框601时,当前表格变成在本发明的优选实施例中叫作“EditorSpace(编辑器空间)”615的专用表格。在“Editor Space”615表格内,要编辑的RST在左上角显示成一个单元格范围614,左上单元格在地址B2上。尽管编辑的RST对应于表格内的常规单元格范围614,但适合用在电子表格环境中的传统工具不能用于更新这个单元格范围614。电子表格用户只能利用作为RST编辑器对话框601的一部分的专用手段在例示RST的单元格范围614内导航,和在例示RST的单元格范围614内插入或删除行。“Editor Space”表格615内中的行插入或删除将被禁止。此外,对“Editor Space”表格615加上写保护,以防止用户不小心修改了定义成单元格范围614所例示的RST的一部分的RE或RME的设置。当在显示设备106上显示RST编辑器对话框601时,它包含与单元格范围614所例示的整个RST有关,或与当前在这同一个单元格范围614内选择的单元格所指的RE或RME有关的一些信息段。
第一,当前选择的单元格所指的RE或RME由“RE”组合框610示出。通过用定位设备105点击位于这个“RE”组合框610右侧的箭头,电子表格用户可以显示所定义RE和RME的列表和在所定义RE和RME的列表内导航,然后,选出他/她选择的RE或RME和出现在位于单元格范围614内的当前所选单元格上的行上的他/她的选择。如果电子表格用户通过用定位设备105点击“Up(上)”按钮619,或“Down(下)”按钮616,改变单元格范围614内的所选行,那么,更新显示在组合框610内的名称,以指定与新选行相对应的RE或RME的名称。如果电子表格用户想要将新RME插入RST的页眉部分或页脚部分中,他/她刚才不得不用定位设备105点击“Add(添加)”按钮617,以便将新行插在单元格范围614内当前所选单元格的最后位置之上的所需地方。然后,用显示在窗口611上的新行更新单元格范围614。然后,通过在组合框610内示出默认指定给引入RME的名称更新RST编辑器对话框601。如果电子表格用户想要从RST的页眉部分或页脚部分中除去RME,他/她刚才不得不用定位设备105点击“Delete(删除)”按钮618,以便在单元格范围614内在所需地方除去相应行。然后,单元格范围614内的当前所选单元格变成属于代表在RST内定义的唯一RE的行的那一个,和通过在组合框610内示出在RST内定义的唯一RE的名称更新RST编辑器对话框60。
第二,在“MIN(最小)”文本框606中指定在遵从所编辑的RST的RSTI内允许的最小RE个数。类似地,在“MAX(最大)”文本框609中指定在遵从编辑RST的RSTI内允许的最大RE个数。当创建新RST时(电子表格用户以前已经用定位设备105点击了选项按钮219将点打在上面和点击了按钮210,两者都包含在如图2所示的RST管理器对话框200内),“MIN”文本框606所示的值对应于在本发明的优选实施例中设置成1的默认值,和“MAX”文本框609所示的值对应于在本发明的优选实施例中设置成16的默认值。当编辑现有RST时,文本框606和609所示的值分别对应于如电子表格用户以前定义的那样的、在遵从当前编辑RST的任何RSTI内允许的最小和最大RE个数。在所有情况中,电子表格用户可以通过用定位设备105分别点击旋钮607或旋钮608,点击在上升侧上或点击在下降侧上,以便在保证在“MIN”文本框606中指定的值保持小于等于在“MAX”文本框609中的值的同时,可以使值增加或减小(在预定界限内),改变显示在文本框“MIN”606或文本框“MAX”609中的值。倘若遵从更新RST的某个现有RSTI具有落在新“MIN”-“MAX”区间之外的元素个数,那么,这个RSTI将不受RST更新影响,但任何未来的RE加入或除去都根据“MIN(最小)”-“MAX(最大)”区间的新定义来完成。
第三,在标记按钮604上显示编辑RST的名称。当编辑现有RST时,标记框606所示的名称对应于以前指定给这个对象的名称。当创建新RST时,那么,显示在标记框604上的名称对应于在本发明的优选实施例中,采取“NewXX”形式的默认值,其中,XX是保证指定名称唯一性的计数。
RST编辑器对话框601包括允许电子表格用户采取一些行动的几个图形对象。
第一,如果当前编辑的RST当前由均存在相同个数的字段的RE和RME组成,电子表格用户可以将新名称指定给当这个RST。实际上,在这种情况下,使能“Save as(保存为)”按钮612,以便用定位设备105对它的任何点击都被识别为有效事件。电子表格用户首先利用诸如键盘104之类的传统手段在文本框605内指定要给予编辑RST的新名称。然后,他/她利用定位设备105点击“Save as”按钮612。如果输入文本框605内的指定名称已经指定给现有对象或不是有效名称,那么,在显示设备106上,通过传统手段,譬如,弹出窗口、状态栏消息,或可以改用而不会偏离本发明精神的任何其它类似传统手段,向用户显示警告消息。这个警告信息将这种状况通知电子表格用户,然后,提醒他加以确认。然后,清除文本框605而不采取进一步行动。如果输入文本框605内的指定名称还没有指定给现有对象和是有效名称,那么,清除文本框2325,和将编辑的RST保存在电子表格文件上也显示在标记框604内的新名称下。
第二,如果编辑的RST当前由均存在相同个数的字段的RE和RME组成,电子表格用户可以将这个RST的当前定义保存在电子表格文件上。实际上,在这种情况下,使能“Save”按钮613,以便用定位设备105对它的任何点击都被识别为有效事件。这个事件的后果是检验更新的RST是否已经被现有RSTI引用。如果情况不是这样,那么,将RST的更新定义保存在电子表格文件上。如果情况是这样,那么,在显示设备106上,通过传统手段,譬如,弹出窗口、状态栏消息,或可以改用而不会偏离本发明精神的任何其它类似传统手段,向用户显示警告消息。这个警告信息将这种状况通知电子表格用户,然后,提醒他取消操作或继续进行。在第一种情况中,不保存更新的RST定义,而在第二种情况中,将它保存在电子表格文件上。
最后,如果用户想要结束RST编辑器方法,他/她可以利用定位设备105点击“Done(完成)”按钮603或关闭窗口按钮602。其结果是关闭显示设备106上的RST编辑器对话框601,和返回到最初调用RST编辑器命令时激活的表格。
·g.ST实例化器:根据前面例示RST管理器方法的方案,电子表格用户然后可以借助于适合用在电子表格环境中的传统手段,譬如,定位设备105或键盘104(但不限于这些),调用称为“ST实例化器”的原始专用命令,以便创建遵从所选ST和根据当前所选单元格定位的STI。Aureglia等人在发明名称为“System and method in an electronic spreadsheet for exporting-importingthe content of input cells from a scalable template instance to another”的国际专利申请PCT/EP 02/09483(IBM参考文献FR9 2001 0029)中描述了相应方案。
·h.RST实例化器:根据前面例示RST管理器方法的方案,电子表格用户然后可以借助于适合用在电子表格环境中的传统手段,譬如,定位设备105或键盘104(但不限于这些),调用称为“RST实例化器”的原始专用命令,以便创建遵从所选RST和根据当前所选单元格定位的RSTI。这可以借助于参照图20A所述的用户界面来例示,图20A示出了如显示在显示设备106上那样的RST实例化器对话框2300。当在显示设备106上显示RST实例化器对话框2300时,当前表格仍然保持有效,以便用户可以看见出现在上面的数据。RST实例化器对话框2300包含与实例化操作有关的一些信息段。
第一,将遵从要创建的RSTI的RST的名称显示在标记框2302中。
第二,在文本框2311中示出在RSTI创建时要出现的RE个数。这个数字采取等于如在遵从要创建的RSTI的RST的定义中指定的那样的最小RE个数的默认值。如果电子表格用户想要用另一个RE个数创建RSTI,那么,他/她不得不用定位设备105点击旋钮2303的上侧或下侧,以增加或减小RE的个数。这个RE个数在由如在RST的定义内指定的那样的最小RE个数和最大RE个数(“Name(名称)”字段2222与显示在标记框2302中的名称匹配的RSTT表2220的记录2221内的字段“Min Element #(最小元素数)”2225和“Max Element#(最大元素数)”2226)界定的范围内变化,并且,在可能的更新之后,显示在文本框2311中。
第三,按钮“Cancel(取消)”2308或关闭窗口按钮2301允许电子表格用户关闭RST实例化器对话框2300而不采取进一步行动。通过用定位设备105点击这两个按钮2301和2308之一,RST实例化器对话框2300被关闭和RST实例化操作被中止。
第四,当首先被使能,其次被电子表格用户用定位设备105点击时,按钮“Create Instance(创建实例)”2310成为启动RST实例化操作的触发器。当可以进行实例化操作时,使能这个按钮“Create Instance”2310(意味着该方法认可定位设备105在这个按钮“Create Instance”2310上的点击事件)。这个RST实例化是否可以取决于不同因素:电子表格的当前表格内当前所选单元格的位置、要创建的RSTI的大小、属于与当前所选单元格相同的表格的任何现有STI的存在。是否可以创建具有在文本框2303中指定的大小、遵从其名称由标记框2302指定的RST、左上角位于当前所选单元格上的新RSTI通过作为RST实例化器对话框2300的一部分、取值“YES”或“NO”的几个标记框反映出来:反映新RSTI是否太宽的标记框2304、反映新RSTI是否太高的标记框2305、反映在包括当前所选单元格的表格上是否已经定义了任何现有STI的标记框2306、和反映新RSTI的创建是否可能导致出现在一个或几个电子表格单元格中的任何现有数据丧失的标记框2307。一旦标记框2304、标记框2305、或标记框2306取值“YES”,那么,就认为不可以创建RSTI,从而禁止“Create Instance”按钮2310。如果在这三个标记框中显示值“NO(否)”,那么,可以进行实例化操作,从而使能“Create Instance”按钮2310。当电子表格用户用定位设备105点击时,进行实例化操作,然后,关闭RST实例化器对话框2300。
第五,当首先被使能,其次被电子表格用户用定位设备105点击时,按钮”Create Instance in a new sheet(在新工作表中创建实例)”2309成为启动RST实例化操作的可替代触发器,但是,在作为这个实例化操作的一部分创建的表格中。在本发明的优选实施例中,在包括当前所选单元格的表格之后创建新表格。可以改用任何其它表格位置,这不偏离本发明的精神。当可以在新表格中进行实例化操作时,使能这个按钮“Create Instance in a new sheet”2309(意味着该方法认可定位设备105在这个按钮“Create Instance in a new sheet”2309上的点击事件)。这个RST实例化是否可以取决于不同因素要创建的RSTI的大小。是否可以在新表格中创建具有在文本框2303中指定的大小、遵从其名称由标记框2302指定的新RSTI通过作为RST实例化器对话框2300的一部分、取值“YES(是)”或“N0(否)”的几个标记框反映出来:反映新RSTI是否太宽的标记框2304、和反映新RSTI是否太高的标记框2305。一旦标记框2304、或标记框2305取值“YES”,那么,就认为不可以在新表格中创建RSTI,从而禁止“Create Instance in a new sheet”按钮2309。如果在这两个标记框中显示值“NO”,那么,可以在新表格中进行实例化操作,从而使能“Create Instance in a new sheet”按钮2309。当电子表格用户用定位设备105点击时,进行实例化操作,然后,关闭RST实例化器对话框2300。
·第二操作:从已定义的STI中移除元素
当电子表格用户根据未在此详述的他或她自己的标准而决定从已定义的STI中移除一些元素、或者在已定义的STI内清除一些元素的内容、或者删除整个已定义的STI、或者甚至从当前工作表中删除一些电子表格单元格或列或行时,发生第四操作。对应的场景被描述在Aureglia等人的标题为“Systemand method in an electronic spreadsheet for exporting-importing the content ofinput cells from a scalable template instance to another”的国际专利申请PCT/EP02/09483(IBM参考文献FR9 2001 0029)中。
·第三操作:从已定义的RSTI中移除元素
当电子表格用户根据未在此详述的他或她自己的标准而决定删除整个已定义的RSTI、或者从已定义的RSTI中移除一些RE、或者删除包括在RSTI内的STI内的选定元素、或者清除包括在RSTI内的选定STI内的所有元素的内容、或者清除包括在RSTI内的STI内的选定元素的内容、或者清除包括在当前选定单元格范围内的选定元素的内容,或者甚至从当前工作表中删除一些电子表格单元格或列或行。
在本发明的优选实施例中,该操作包括以下步骤:
·a.电子表格用户首先通过使用传统的装置例如但不限于定点设备105或键盘104选择作为他/她的选择的单元格范围。
·b.RSTI删除管理器
然后,电子表格用户通过在电子表格环境中可用的传统装置,例如(但不限于)
·专用按钮,
·键盘输入快捷键,
·菜单或子菜单条目,
调用被称作“RST删除管理器”的原始特定命令,其丰富了用于在电子表格内删除单元格或行或列的传统装置。在本发明的优选实施例中,通过使用与在传统电子表格中可用的、用于清除单个单元格或单元格范围的内容或者在工作表内移除单元格或行或列的装置相同的一组装置,例如但不限于
·在键盘104上键入“删除”键,或者
·用定点设备105点击“范围”菜单条目的“删除”子菜单条目,或者
·在键盘104上键入“Ctrl-”键,
来调用“RSTI删除管理器”命令。
当调用该命令时,首先执行测试以确定当前选定的单元格是否属于包括已定义的RSTI的工作表。
如果否,则该命令将控制传递到STI删除管理器命令,以便注意可能受到删除操作的影响的任何STI的存在。
如果是,则执行第二测试,以确定当前选定的单元格是否包括在存在于当前工作表上的RSTI内。
如果否,则在禁用了将破坏存在于当前工作表上的RSTI的任何删除模式之后调用在电子表格环境中可用的传统删除过程。例如,如果当前选定的单元格属于存在于当前工作表上的RSTI所占据的行(相应地,列),则禁用行(相应地,列)删除模式。
如果是,则删除操作通过如图16C所示在显示设备106上显示RSTI删除管理器对话框1940而继续,其中RSTI删除管理器对话框1940包含与删除操作相关的一些信息。在下面,包含在与当前选定的单元格相同的工作表上的RSTI将被称作当前RSTI或者简称的cRSTI。
第一,在标签框1950中显示cRSTI所遵循的RST的名称。
第二,通过一组选项按钮来指定不同的可用删除模式:
·选项按钮“在选定范围内删除输入字段”1949在被激活时,允许清除包括在当前选定的单元格范围内的输入字段的内容。当且仅当当前选定的单元格范围包括在被定义为cRSTI的一部分的STI的界限内时,该选项按钮“在选定范围内删除输入字段”1949才被启用。通过参照示出了可能cRSTI结构的图17A,当当前选定的单元格范围对应于单元格范围2018或2019或2020或2021时,选项按钮“在选定范围内删除输入字段”1949被启用,并且当当前选定的单元格范围对应于单元格范围2022或2023或2024或2025时,该选项按钮被禁用。
·选项按钮“在当前STI的选定元素中删除输入字段”1948在被激活时,允许清除在当前选定的单元格所属的STI的当前选定元素内所包括的输入字段的内容。当且仅当当前选定的单元格范围包括在被定义为cRSTI的一部分的STI的界限内时,该选项按钮“在当前STI的选定元素中删除输入字段”1948才被启用。通过参照示出了可能cRSTI结构的图17A,当当前选定的单元格范围对应于单元格范围2018或2019或2020或2021时,选项按钮“在当前STI的选定元素中删除输入字段”1948被启用,并且当当前选定的单元格范围对应于单元格范围2022或2023或2024或2025时,该选项按钮被禁用。
·选项按钮“在当前STI中删除输入字段”1947在被激活时,允许清除包括在当前选定的单元格所属的STI内的所有输入字段的内容。当且仅当当前选定的单元格范围包括在被定义为cRSTI的一部分的STI的界限内时,该选项按钮“在当前STI中删除输入字段”1947才被启用。通过参照示出了可能cRSTI结构的图17A,当当前选定的单元格对应于单元格范围2018或2019或2020或2021或2023或2025时,选项按钮“在当前STI中删除输入字段”1947被启用,并且当当前选定的单元格对应于单元格范围2022或2024时,该选项按钮被禁用。
·选项按钮“在当前STI中删除选定元素”1946在被激活时,允许删除当前选定的单元格范围所属的STI的选定元素。当且仅当当前选定的单元格范围包括在被定义为cRSTI的一部分的STI的主体部分内时,该选项按钮“在当前STI中删除选定元素”1946才被启用。通过参照示出了可能cRSTI结构的图17A,当当前选定的单元格范围对应于单元格范围2018或2019时,选项按钮“在当前STI中删除选定元素”1946被启用,并且当当前选定的单元格范围对应于单元格范围2020或2021或2022或2023或2024或2025时,该选项按钮被禁用。
·选项按钮“在当前容器中删除STI”1945在被激活时,允许删除属于当前选定的单元格所属的容器行的一个或多个STI。当且仅当当前选定的单元格包括在cRSTI的主体部分内时,该选项按钮“在当前容器中删除STI”1945才被启用。通过参照示出了可能cRSTI结构的图17A,当当前选定的单元格对应于单元格范围2018或2019或2022或2023时,选项按钮“在当前容器中删除STI”1945被启用,并且当当前选定的单元格对应于单元格范围2020或2021或2024或2025时,该选项按钮被禁用。
·选项按钮“删除RSTI(保留所包括的STI)”1944允许取消(dequalify)单元格范围cRSTI的资格,使得它变成一组STI,但是不再当作RSTI。该选项按钮“删除RSTI(保留所包括的STI)”1944总是被启用,并且是首先显示RSTI删除管理器对话框1940时的缺省删除模式。
如果电子表格用户希望改变作为“删除RSTI(保留所包括的STI)”的缺省删除模式或者先前改变的删除模式,则他/她使用定点设备105点击六个选项按钮之一(如果被启用):
·“删除RSTI(保留所包括的STI)”1944,或者
·“在当前容器中删除STI”1945,或者
·“在当前STI中删除选定元素”1946,或者
·“在当前STI中删除输入字段”1947,或者
·“在当前STI的选定元素中删除输入字段”1948,或者
·“在选定范围内删除输入字段”1949,
这些选项按钮将单独显示黑点来指定新选择的删除模式。用定点设备105点击被禁用的选项按钮的任何尝试将没有效果。
第三,按钮“取消”1943或者关闭窗口按钮1941允许关闭RST删除管理器对话框1940而不采取进一步的操作。通过用定点设备105点击这两个按钮1941和1942之一,关闭RST删除管理器对话框1940并且中止RSTI删除操作。
第四,按钮“删除”1942在由电子表格用户用定点设备105点击时是启动RSTI删除操作的触发器。因为删除操作总是可能的(至少对于与选项按钮“删除RSTI(保留所包括的STI)”1944对应的缺省模式),所以该按钮“删除”1942总是被启用(意味着该方法识别用定点设备对该按钮“删除”1942的点击事件)。根据由电子表格用户选择的删除模式执行删除操作。这可以通过cRSTI对应于单元格范围2001的图17A的图加以说明。
·如果删除模式对应于选项按钮“删除RSTI(保留所包括的STI)”1944,并且当前选定的单元格范围对应于单元格范围2024,则删除操作包括取消单元格范围2001作为RSTI的资格。但是,形成cRSTI的STI的集合仍然有资格作为STI,并且由此可以受益于相关工具。
·如果删除模式对应于选项按钮“在当前容器中删除STI”1945,并且当前选定的单元格范围对应于单元格范围2022,则删除操作包括从cRSTI中移除行容器2010,从而cRSTI此后将仅仅包含被映射到容器行2009和2008的2个RE(而RME 2012、2011和2007保持不变)。
·如果删除模式对应于选项按钮“在当前STI中删除选定元素”1946,并且当前选定的单元格范围对应于单元格范围2019,则删除操作包括从STI2032中移除占据与当前选定的单元格范围2019相同的行的元素。
·如果删除模式对应于选项按钮“在当前STI中删除输入字段”1947,并且当前选定的单元格范围对应于单元格范围2021,则删除操作包括清除属于STI 2031的所有输入字段。
·如果删除模式对应于选项按钮“在当前STI的选定元素中删除输入字段”1948,并且当前选定的单元格范围对应于单元格范围2018,则删除操作包括清除属于占据与当前选定的单元格范围2018相同的行的STI 2034的元素的所有输入字段。
·如果删除模式对应于选项按钮“在选定范围内删除输入字段”1949,并且当前选定的单元格范围对应于单元格范围2020,则删除操作包括清除属于当前选定的单元格范围2020的STI 2030的输入字段。
一旦删除操作完成,则关闭RSTI删除管理器对话框1940,从而结束命令“RSTI删除管理器”。
E.方法
E1.RST管理器方法
用在本发明优选实施例中的管理EF、MEF、EP、MEP、ST、RE和RST的方法总结在图8的流程图800中。可以将这种方法看作RST管理器命令的处理。
·在步骤801中,该方法处在它的默认状态下,等待启动该进程的事件。
·在步骤802中,作为用户动作的结果,检测RST管理器命令。这个动作可以是,例如:
·键盘104上的特定键组合;
·定位设备105在特定按钮上的点击;或
·本文未作进一步规定的任何其它类似手段。
·在步骤803中,初始化一些局部变量:
·局部变量RSTM_select(选择)被设置成值0(零);
·局部变量RSTM_new(新)被设置成值“NONE(无)”;
·局部变量RSTM_range(范围)被设置成值“NO(否)”;
·局部变量RSTM_index(索引)被设置成值1(一);和
·局部变量RSTM_child(子系)被设置成值“NO”。
·在步骤804中,分析五个表EFT 700、EPT 710、STT 720、RET 2210和RSTT 2220,以导出表RSTMT 2230。对于在这五个表之一中找到的每个相应记录701、711、721、2211、或2221,在RSTMT表2230内创建新记录2231。
现在参照图7A、7B、7C、19A、19B和19C,这个构造通过如下步骤来完成:将定义在记录701(“Name”字段702、“Last Change Date”字段703、“Description Ptr”字段704、“Row#”字段705、“Column#”字段706和“Type”字段707)、记录711(“Name”字段712、“Last Change Date”字段713、“Description Ptr”字段714、“Row#”字段715、“Column#”字段716和“Type”字段717)、记录721(“Name”字段722、“Last Change Date”字段723、“Description Ptr”字段724、“Min Element#”字段725、“Max Element#”字段726和“Type”字段727)、记录2211(“Name”字段2212、“Last ChangeDate”字段2213、“Description Ptr”字段2214、“Row#”字段2215、“Column#”字段2216和“Type”字段2217)、或记录2221(“Name”字段2222、“LastChange Date”字段2223、“Description Ptr”字段2224、“Min Element#”字段2225、“Max Element#”字段2226和“Type”字段2227)中的所有字段依次复制到记录2231(“Name”字段2232、“Last Change Date”字段2233、“Description Ptr”字段2234、“Info Field 1”字段2235、“Info Field 2”字段2236和“Type”字段2237)的相应字段,然后,如果已经从记录701、711、721、2211、或2221分别复制到记录2231,在Type”字段2237中将“SELECTED”属性2242初始化成“NO”,和将“NATURE(性质)”字段2241初始化成值“FORMAT”、“PROFILE”、“TEMPLATE”、“RECELEMENT”、或“RECTEMPLATE”,然后,用对于每个新记录都递增的和从值1(一)开始的计数值初始化最后字段“Index”2238。
·在步骤805中,在显示设备106上显示RST管理器对话框200。
·出现在列表框213顶部的“Name”信息对应于RSTMT表2230中“Index”字段2238等于局部变量RSTM_index的记录2231的“Name”字段2232。这个列表框213内的下面“Name”信息对应于RSTMT表2230的后续记录2231的“Name”字段2232。
·出现在列表框214顶部的“Type”信息是从其“Index”字段2238等于局部变量RSTM_index的RSTMT表2230中的记录2231的“Type”字段2237(属性“NATURE(性质)”2241和“META(元)”2239)中导出的。这个列表框213内的下面“Type”信息从RSTMT表2230的后续记录2231的“Type”字段2237(属性“NATURE”2241和“META”2239)中导出。
·出现在列表框202顶部的“Modified(修饰)”信息对应于其“Index”字段2238等于局部变量RSTM_index的RSTMT表2230中的记录2231的“Last Change Date”字段2233。这个列表框213内的下面“Modified”信息对应于RSTMT表2230的后续记录2231的“Last Change Date”字段2233。
·如果其“Index”字段2238等于局部变量RSTM_index的RSTMT表2230中的记录2231的“Type”字段2237具有等于“YES”的“SELECTED(选定)”属性2242,在复选框212上打上复选标记。列表框213左侧的下面复选框也是从RSTMT表2230的后续记录2231的“Type”字段2237(“SELECTED”属性2242)中导出的。
·当且仅当局部变量RSTM_new等于“FORMAT(格式)”,选项按钮“Format”217显示黑点。当且仅当局部变量RSTM_new等于“PROFILE(概要)”,选项按钮“Profile”209显示黑点。当且仅当局部变量RSTM_new等于“TEMPLATE”,选项按钮“Template(模板)”216显示黑点。当且仅当局部变量RSTM_new等于“RECELEMENT”,选项按钮“RE”218显示黑点。当且仅当局部变量RSTM_new等于“RECTEMPLATE(递归模板)”,选项按钮“Recursive Template”219显示黑点。
·当且仅当局部变量RSTM_range等于“YES”,复选框“From currentselection(来自当前选择)”208显示复选标记。
·当且仅当局部变量RSTM_child等于“YES”,复选框“Includingchild objects(for Export)(包括子系对象(用于输出))”220显示复选标记。
·在步骤806中,该方法等待RST管理器对话框200上的任何用户动作。这样的用户动作通常来自用定位设备105的点击,但也可以采取其它类似形式,譬如,键盘104上的特定键组合(但不限于此),或本文未作进一步规定的任何其它类似手段。
·在步骤807中,检测RST管理器对话框200上的用户动作。
·如果用户动作是点击按钮“Delete(删除)”207,那么,将控制交给步骤808;
·如果用户动作是点击按钮“Import(输入)”205,那么,将控制交给步骤810;
·如果用户动作是点击按钮“Done(完成)”201或关闭窗口按钮201,那么,将控制交给步骤834;
·如果用户动作是点击按钮“Export(输出)”206,那么,将控制交给步骤811;
·如果用户动作是点击滚动条203,向上方向或向下方向,那么,将控制交给步骤814;
·如果用户动作是点击选项按钮“Format”217、“Profile”209、“Template”216、“RE”218、或“Recursive Template”219,那么,将控制交给步骤815;
·如果用户动作是点击复选框“From current selection”209,那么,将控制交给步骤816;
·如果用户动作是点击复选框“Including child objects(for Export)”220,那么,将控制交给步骤841;
·如果用户动作是点击像复选框212那样的顶部复选框,那么,将控制交给步骤817;
·如果用户动作是点击按钮“Instanciate(实例化)”204,那么,将控制交给步骤830;
·如果用户动作是点击按钮“Edit(编辑)”211,那么,将控制交给步骤824;和
·如果用户动作是点击按钮“Create New(新创建)”210,那么,将控制交给步骤818。
·在步骤808中,对“Type”字段2237具有子字段“REFERENCEDOBJECT(所引用对象)”(RO)2240d等于“YES”或子字段“INSTANCEREFERENCE”(IR)2240c大于1(一)的“SELECTED”属性2242的RSTMT表2230的记录2231的每一个进行测试(这个测试确定是否存在一些对象引用所选对象之一,或是否存在一些对象遵从所选对象之一)。
·如果情况是这样,那么,将控制交给步骤835(意味着以前选择的RSTMT表2230的至少一个记录被ST、STI、RE、RST或RSTI引用);
·否则,将控制交给步骤809。
·在步骤809中,如果相应各自“Name”字段702、712、722、2212、和2222与“Type”字段2237具有等于像来自步骤817那样的“YES”的“SELECTED”属性2242的RSTMT表2230的记录2231的“Name”字段匹配,从EFT表700、EPT表710、STT表720、RET表2210、和RSTT表2220中除去每个各自记录701、711、721、2211、和2221。然后,将局部变量RSTM_select重置成值0(零)。然后,将控制交给步骤804,以便重建RSTMT表2230。
·在步骤810中,发出RST Import管理器命令,然后,将控制交给步骤834。
·在步骤811中,进行测试以确定局部变量RSTM_select(选择)是否等于0(零)。
·如果情况是这样,那么,将控制交给步骤813;
·否则,将控制交给步骤812。
·在步骤812中,发出RST Export管理器命令,然后,将控制交给步骤834。
·在步骤813中,发出警告消息通知,以便通知用户在点击“Export”按钮206之前,必须选择至少一个对象。这通常可以通过在显示设备106上将警告消息显示在弹出窗口中或显示在状态栏区域中来完成,但也可以改用任何其它类似手段而不偏离本发明的精神。一旦用户通过传统手段,譬如,用定位设备105点击出现在警告消息弹出窗口内的“OK”按钮,或不偏离本发明精神的任何其它类似手段确认了这个通知消息,将控制交给步骤805。
·在步骤814中,根据定位设备105在滚动条203上指定的方向(向上或向下),和只要其值保持正的和小于等于在RSTMT表2230内定义的记录2231的个数,将局部变量RSTM_index加1(一)或减1(一)。然后,将控制交给步骤805。
·在步骤815中,更新局部变量RSTM_new,以反映用户用定位设备105击中选项按钮。
·如果用户点击了“Format”选项按钮217,那么,局部变量RSTM_new取值“FORMAT”。
·如果用户点击了“Profile”选项按钮209,那么,局部变量RSTM_new取值“PROFILE”。
·如果用户点击了“Template”选项按钮216,那么,局部变量RSTM_new取值“TEMPLATE”。
·如果用户点击了“RE”选项按钮218,那么,局部变量RSTM_new取值“RECELEMENT”。
·如果用户点击了“Recursive Template”选项按钮219,那么,局部变量RSTM_new取值“RECTEMPLATE”。
然后,将控制交给步骤805。
·在步骤816中,更新局部变量RSTM range,以便它的值在“YES”和“NO”之间切换。另外,如果在复选框206中以前不存在或存在复选标记,那么,分别将复选标记加入这同一个复选框206中或从这同一个复选框206中除去复选标记。然后。将控制交给步骤805。
·在步骤817中,该方法更新RSTMT表2230内,发现“Name”字段2232等于位于正好在用户刚刚点击的复选框右侧的列表框213内的字符串的记录2231的“Type”字段2237的值。
如果这个“Type”字段2237的旧值具有等于“YES”的“SELECTED”属性2242,那么,值更新包括使这个“SELECTED”属性2242转变成“NO”;相反,如果“SELECTED”属性2242的旧值等于“NO”,那么,值更新包括使这个“SELECTED”属性2242转变成“YES”。
在第一种情况中,将局部变量RSTM_select减1,和在第二种情况中,将局部变量RSTM_select加1。
并且,在第一种情况中,从用户刚刚点击过的复选框中除去以前存在于这个复选框中的复选标记,和在第二种情况中,在用户刚刚点击过的复选框上显示复选标记。然后,将控制交给步骤805。
·在步骤818中,进行测试以确定局部变量RSTM_new是否等于“NONE”。如果情况是这样,那么,将控制交给步骤819;否则,将控制交给步骤820。
·在步骤819中,发出警告消息通知,以便通知用户在点击“CreateNew”按钮210之前,必须选择至少一个对象(“Format”选项按钮217、“Profile”选项按钮209、“Template”选项按钮216、“RE”选项按钮218、或“Recursive Template”选项按钮219)。这通常可以通过在显示设备106上将警告消息显示在弹出窗口中或显示在状态栏区域中来完成,但也可以改用任何其它类似手段而不偏离本发明的精神。一旦用户通过传统手段,譬如,用定位设备105点击出现在警告消息弹出窗口内的“OK”按钮,或不偏离本发明精神的任何其它类似手段确认了这个通知消息,将控制交给步骤805。
·在步骤820中,进行测试以确定局部变量RSTM_new所取的值。
·如果发现等于“FORMAT”那么,将控制交给步骤821;
·如果发现等于“PROFILE”,那么,将控制交给步骤822;
·如果发现等于“TEMPLATE”,那么,将控制交给步骤823。
·如果发现等于“RECELEMENT”,那么,将控制交给步骤836。
·如果发现等于“RECTEMPLATE”,那么,将控制交给步骤837。
·在步骤821中,发出EF编辑器命令,以及传递两个参数(“NEW”;RSTM_range),然后,将控制交给步骤834。
·在步骤822中,发出EP编辑器命令,以及传递两个参数(“NEW”;RSTM_range),然后,将控制交给步骤834。
·在步骤823中,发出ST编辑器命令,以及传递一个参数(“NEW”),然后,将控制交给步骤834。
·在步骤824中,进行测试以确定局部变量RSTM_select是否等于1(一)。如果情况是这样,那么,将控制交给步骤825;否则,将控制交给步骤829。
·在步骤825中,进行测试以确定如“Type”字段2237指定的那样的所选对象的性质,即,RSTMT表2230的相应记录2231的“NATURE”属性2241。
·如果发现等于“FORMAT”那么,将控制交给步骤826;
·如果发现等于“PROFILE”,那么,将控制交给步骤827;
·如果发现等于“TEMPLATE”,那么,将控制交给步骤828。
·如果发现等于“RECELEMENT”,那么,将控制交给步骤838。
·如果发现等于“RECTEMPLATE”,那么,将控制交给步骤839。
·在步骤826中,发出EP编辑器命令,以及传递一个参数,这个参数等于其“Type”字段2237具有等于“YES”的“SELECTED”属性2242的RSTMT表2230的唯一记录2231的“Name”字段2232,然后,将控制交给步骤834。
·在步骤827中,发出EF编辑器命令,以及传递一个参数,这个参数等于其“Type”字段2237具有等于“YES”的“SELECTED”属性2242的RSTMT表2230的唯一记录2231的“Name”字段2232,然后,将控制交给步骤834。
·在步骤828中,发出ST编辑器命令,以及传递一个参数,这个参数等于其“Type”字段2237具有等于“YES”的“SELECTED”属性2242的RSTMT表2230的唯一记录2231的“Name”字段2232,然后,将控制交给步骤834。
·在步骤829中,发出警告消息通知,以便通知用户在点击“Edit”按钮211或“Instanciate”按钮204之前,必须在ST管理器对话框内选择单个对象(借助于像212那样的复选框)。这通常可以通过在显示设备106上将警告消息显示在弹出窗口中或显示在状态栏区域中来完成,但也可以改用任何其它类似手段而不偏离本发明的精神。一旦用户通过传统手段,譬如,用定位设备105点击出现在警告消息弹出窗口内的“OK”按钮,或不偏离本发明精神的任何其它类似手段确认了这个通知消息,将控制交给步骤805。
·在步骤830中,进行测试以确定局部变量RSTM_select是否等于1(一)。如果情况是这样,那么,将控制交给步骤831;否则,将控制交给步骤829。
·在步骤831中,进行测试以确定如“Type”字段2237指定的那样的所选对象的性质,即,RSTMT表2230的相应记录2231的“NATURE”属性2241。
·如果发现等于“TEMPLATE”,那么,将控制交给步骤832;
·如果发现等于“RECTEMPLATE”,那么,将控制交给步骤840;
·否则使得控制到步骤833。
·在步骤832中,发出ST实例化器命令,以及传递一个参数,这个参数等于其“Type”字段2237具有等于“YES”的“SELECTED”属性2242的RSTMT表2230的唯一记录2231的“Name”字段2232,然后,将控制交给步骤834。
·在步骤833中,发出警告消息通知,以便通知用户在点击“Instanciate”按钮204之前,必须在RST管理器对话框内选择单个ST对象或单个RST对象(借助于像212那样的复选框)。这通常可以通过在显示设备106上将警告消息显示在弹出窗口中或显示在状态栏区域中来完成,但也可以改用任何其它类似手段而不偏离本发明的精神。一旦用户通过传统手段,譬如,用定位设备105点击出现在警告消息弹出窗口内的“OK”按钮,或不偏离本发明精神的任何其它类似手段确认了这个通知消息,将控制交给步骤805。
·在步骤834中,关闭RST管理器对话框200,以便它从显示设备106上消失,将控制交还给最初步骤801,以便处理任何进一步的RST管理器命令。
·在步骤835中,发出警告消息通知,以便通知用户要删除的至少一个对象被另一个对象引用。这通常可以通过在显示设备106上将警告消息显示在弹出窗口中或显示在状态栏区域中来完成,但也可以改用任何其它类似手段而不偏离本发明的精神。然后,提醒用户取消当前“Delete(删除)”操作,或继续进行“Delete”操作。这通常可以通过在显示设备106上将提醒消息显示在弹出窗口中来完成,但也可以改用任何其它类似手段而不偏离本发明的精神。一旦用户通过传统手段,譬如,用定位设备105点击出现在提醒消息弹出窗口内的“Cancel(取消)”或“Continue(继续)”按钮,或不偏离本发明精神的任何其它类似手段作出他的选择,如果电子表格用户的决定是取消“Delete”操作,将控制交给步骤805,或者,如果电子表格用户的决定是继续进行“Delete”操作,将控制交给步骤809。
·在步骤836中,发出RE编辑器命令,以及传递一个参数(“NEW”),然后,将控制交给步骤834。
·在步骤837中,发出RST编辑器命令,以及传递一个参数(“NEW”),然后,将控制交给步骤834。
·在步骤838中,发出RE编辑器命令,以及传递一个参数,这个参数等于其“Type”字段2237具有等于“YES”的“SELECTED”属性2242的RSTMT表2230的唯一记录2231的“Name”字段2232,然后,将控制交给步骤834。
·在步骤839中,发出RST编辑器命令,以及传递一个参数,这个参数等于其“Type”字段2237具有等于“YES”的“SELECTED”属性2242的RSTMT表2230的唯一记录2231的“Name”字段2232,然后,将控制交给步骤834。
·在步骤840中,发出RST实例化器命令,以及传递一个参数,这个参数等于其“Type”字段2237具有等于“YES”的“SELECTED”属性2242的RSTMT表2230的唯一记录2231的“Name”字段2232,然后,将控制交给步骤834。
·在步骤841中,通过切换值“YES”和“NO”更新局部变量RSTM_child的值。然后,将控制交给步骤805。
E2.EF编辑器方法
用在本发明优选实施例中的创建或更新EF或MEF的方法总结在图9的流程图900中。可以将这种方法看作EF编辑器命令的处理。
·在步骤901中,该方法处在它的默认状态下,等待启动该进程的事件。
·在步骤902中,作为用户动作的结果,检测EF编辑器命令。这个动作可以是,例如:
·键盘104上的特定键组合;
·定位设备105在特定按钮上的点击;或
·本文未作进一步规定的任何其它类似手段。
·在步骤903中,检索命令的参数。它们对应于:
·第一必有参数EFE_name,可以取保留值“NEW”,或与如在RSTMT表2230内的记录2231的“Name”字段2232中找到那样的字符串名称相对应的另一个值;和
·第二可选参数EFE_range,只能取两个预定值“YES”和“NO”。当第一必有参数的值与“NEW”不同时,这个第二可选参数必须存在。
将这两个参数记录成局部变量。
·在步骤904中,初始化一些局部变量:将局部变量EFE_meta设置成值“NO”,将局部变量EFE_size(EFE大小)设置成值8(八)。
·在步骤905中,进行测试以确定局部变量EFE_name所取的值。如果发现等于“NEW”,那么,将控制交给步骤909;否则,将控制交给步骤906。
·在步骤906中,查找EFT表700,以定位发现其“Name”字段702等于局部变量EFE_name所取的值的记录701。如果找到这样的记录,那么,将控制交给步骤908;否则,将控制交给步骤907。
·在步骤907中,调用异常管理器,以处理这种“不该发生”状况。这样的操作是实现相关的,可以采取不同的形式,譬如,在显示设备106上显示错误消息弹出窗口。然后,将控制交给步骤925。
·在步骤908中,
·根据在步骤906中找到的记录701的“Type”字段707内“META”属性708的值,将局部变量EFE_meta(EFE元)设置成值“YES(是)”或“NO(否)”;
·将局部变量EFE_size设置成在在步骤906中找到的记录701的“Column#”706中找到的值;和
·将在步骤906中找到的记录701的“Description Ptr”字段704所指的存储位置复制到剪贴板上。
然后,将控制交给步骤912。
·在步骤909中,根据在本发明的优选实施例中采取“New XX”形式的名称字符串,确定新创建EF或MEF的新名称,其中,XX对应于对于以前定义和记录在在各自表格EFT 700、EPT 710、STT 720、RET 2210和RSST 2220的各自记录701、711、721、2211和2221中找到的“Name”字段702、712、722、2212和2222中的所有名称,保证名称唯一性的计数。只要保证新创建名称的唯一性,可以改用任何其它类似传统手段而不偏移本发明的精神。
然后,将新名称记录在局部变量EFE_name中。然后,在主存储器102内分配存储空间,以便以后记录EF或MEF的例示单元格范围。这个分配的存储空间是与当前打开的电子表格文件相对应的存储空间的一部分。
然后,在EFT表700中创建新记录701,和按如下初始化这个新记录701:
·将“Name”字段702设置成局部变量EFE_name的值;
·将“Last Change Date”字段703设置成如中央处理器101所知的系统时间引用;
·将“Description Ptr”字段704设置成刚刚分配的存储位置;
·将“Row#”字段705设置成值1(因为在本发明的优选实施例中,在2D环境下管理ST;在3D环境下,这个字段将携带为创建的EF或MEF定义的行数);
·将“Column#”字段706设置成局部变量EFE_size的值;和
·按如下设置“Type”字段707:将属性“META”708设置成等于局部变量EFE_meta的值,和按如下初始化属性“REFERENCED”709:
·用还没有指定给任何其它“OWN REFERENCE”(OR)子字段709a、719a、729a、780a、2219a、2229a、或2240a的质数初始化OR子字段709a。各种各样的传统技术可以用于识别质数,这里不作进一步详述。
·用值1(一)初始化“FILIATION REFERENCE”(FR)子字段709b。
·用值1(一)初始化“INSTANCE REFERENCE”(IR)子字段709c。
·用如下公式初始化“REFERENCED OBJECT”(RO)子字段709d。
其中,P集合对应于ST的集合:
如果LCM({FRi})i∈pMod OR=0,
则RO=“YES”;
否则,RO=“NO”。
·用如下公式初始化“SELECTED CHILDREN(选定子系)”(SC)子字段709e。其中,S集合对应于所选对象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”属性2242):
如果LCM({FRi})i∈SMod OR=0#OR#EFE_name∈S,
则SC=“YES”;
否则,SC=“NO”。
然后,将控制交给步骤910。
·在步骤910中,进行测试以确定局部变量EFE_range所取的值。如果发现等于“YES”,那么,将控制交给步骤911;否则,将控制交给步骤912。
·在步骤911中,将当前所选的单元格范围复制到剪贴板和将局部变量EFE_size设置成等于所选范围的列数。
·在步骤912中,使“Editor Space(编辑器空间)”表格315成为当前表格,和在这个空白表格上,在固定单元格地址314(如图3所示,在本发明的优选实施例中,地址B2)上粘贴剪贴板的内容,以便用户可以在显示设备106上看见EF或MEF的示例。
·在步骤913中,在显示设备106上显示EF编辑器对话框301。用局部变量EFE_name的值初始化标记框304。
·如果发现局部变量EFE_mata等于“NO”(相应地,“YES”),将黑点填入顶部(相应地,底部)选项按钮310中。
·将局部变量EFE_size的值填入文本框306。
·如果发现局部变量EFE_size等于当前记录701的“Column#”字段706,或如果发现这个记录701的“Type”字段707内的属性“REFERENCED”709拥有等于“NO”的子字段“REFERENCEDOBJECT”709d(RO),使能按钮“Save”312和“Save & Refresh(保存并刷新)”308,以便将来用定位设备105对这两个按钮“Save”312和“Save & Refresh”308的任何点击都被识别为一个有效事件。
·否则(未发现局部变量EFE_size等于当前记录701的“Column#”字段706,或发现这同一个记录701的“Type”字段707内的属性“REFERENCED”709拥有等于“YES”的子字段“REFERENCEDOBJECT”709d(RO),禁止按钮“Save”312和“Save & Refresh”308,以便将来用定位设备105对这两个按钮“Save”312和“Save& Refresh”308的任何点击都不被识别为一个有效事件。
·在步骤914中,该方法等待EF编辑器对话框301上的任何用户动作。这样的用户动作通常来自用定位设备105的点击,但也可以采取其它类似形式,譬如,键盘104上的特定键组合(但不限于此),或本文未作进一步规定的任何其它类似手段。
·在步骤915中,检测EF编辑器对话框301上的用户动作。
·如果用户动作是点击按钮“Save & Refresh”308,那么,将控制交给步骤916;
·如果用户动作是点击按钮“Save”312,那么,将控制交给步骤917;
·如果用户动作是点击按钮“Save as”311,那么,将控制交给步骤918;
·如果用户动作是点击按钮“Clear(清除)”309,那么,将控制交给步骤919;
·如果用户动作是点击旋钮307,那么,将控制交给步骤920;
·如果用户动作是点击两个选项按钮310之一,那么,将控制交给步骤921;
·如果用户动作是点击按钮“Done”303或关闭窗口按钮302,那么,将控制交给步骤925。
·在步骤916中,通过刷新“Name”字段702等于局部变量EFE_name的记录701,更新EFT表700和将它保存成电子表格文件的一部分。为了这个目的,
·将“Last Change Date”字段703设置成如中央处理器101所知的系统时间引用;
·将“Column#”字段706设置成局部变量EFE_size的值;和
·按如下设置“Type”字段707:将属性“META”708设置成等于局部变量EFE_meta的值。
另外,将在“Editor Space(编辑器空间)”表格315上例示EF或MEF的当前定义的单元格范围314复制到“Description Ptr”字段704所指的存储位置。然后,将控制交给步骤922。
·在步骤917中,通过刷新“Name”字段702等于局部变量EFE_name的记录701,更新EFT表700和将它保存成电子表格文件的一部分。为了这个目的,
·将“Last Change Date”字段703设置成如中央处理器101所知的系统时间引用;
·将“Column#”字段706设置成局部变量EFE_size的值;和
·按如下设置“Type”字段707:将属性“META”708设置成等于局部变量EFE_meta的值。
另外,将在“Editor Space”表格315上例示EF或MEF的当前定义的单元格范围314复制到“Description Ptr”字段704所指的存储位置。然后,将控制交给步骤913。
·在步骤918中,对在文本框305中找到的值进行测试,以确定它是否对应于有效新名称。相应准则是实现相关的,只要新推荐名称相对于记录在“Name”字段702、712、722、2212和2222中的所有已定义名称是唯一字符串,可以采取不同形式而不偏离本发明的精神。如果有效性和唯一性都得到证明,那么,将控制交给步骤923;否则,将控制交给步骤924。
·在步骤919中,将当前在电子表格环境下定义的默认属性应用于“EditorSpace”表格315,以便显示的EF或MEF示例接受这些相同的默认属性。然后,将控制交给步骤913。
·在步骤920中,根据定位设备105在旋钮307上指定的方向(向上或向下),和只要其值保持正的和小于等于在本发明的优选实施例中设置成等于254的上限,将局部变量EFE_size加1(一)或减1(一)。然后,将控制交给步骤913。
·在步骤921中,更新局部变量EFE_meta,以便如果已经点击了底部(相应地,顶部)选项按钮310,使它的值变成“YES”(相应地,“NO”)。然后,将控制交给步骤913。
·在步骤922中,发出ST Refresh(ST刷新)管理器命令,以及如下参数:EFE_name、“FORMAT”,然后,将控制交给步骤913。
·在步骤923中,在主存储器102内分配存储空间,以便以后记录EF或MEF的例示单元格范围。这个分配的存储空间是与当前打开的电子表格文件相对应的存储空间的一部分。然后,在保存为电子表格文件的一部分的EFT表700中创建新记录701,和按如下初始化这个新记录701:
·将“Name”字段702设置成在文本框305中找到和在步骤918中得到核实的值;然后,这个字段702变成EFE_name局部变量的新值;
·将“Last Change Date”字段703设置成如中央处理器101所知的系统时间引用;
·将“Description Ptr”字段704设置成刚刚分配的存储位置;
·将“Row#”字段705设置成值1(因为在本发明的优选实施例中,在2D环境下管理ST;在3D环境下,这个字段将携带为创建的EF或MEF定义的行数);
·将“Column#”字段706设置成局部变量EFE_size的值;和
·按如下设置“Type”字段707:将属性“META”708设置成等于局部变量EFE_meta的值,和按如下初始化属性“REFERENCED”709:
·用还没有指定给任何其它“OWN REFERENCE”(OR)子字段709a、或719a、或729a、或780a、或2219a、或2229a、或2240a的质数初始化OR子字段709a。各种各样的传统技术可以用于识别质数,这里不作进一步详述。
·用值1(一)初始化“FILIATION REFERENCE(分支引用)”(FR)子字段709b。
·用值1(一)初始化“INSTANCE REFERENCE(实例引用)”(IR)子字段709c。
·用如下公式初始化“REFERENCED OBJECT(被引用对象)”(RO)子字段709d。其中,P集合对应于ST的集合:
如果LCM({FRi})i∈pMod OR=0,
则RO=“YES”;
否则,RO=“NO”。
·用如下公式初始化“SELECTED CHILDREN(选定子系)”(SC)子字段709e。其中,S集合对应于所选对象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”属性2242):
如果LCM({FRi})i∈SMod OR=0#OR#EFE_name∈S,
则SC=“YES”;
否则,SC=“NO”。
然后,将控制交给步骤913。
·在步骤924中,发出警告消息通知,以便通知用户在点击“Save as”按钮311之前,必须在文本框305中指定有效唯一的名称。这通常可以通过在显示设备106上将警告消息显示在弹出窗口中或显示在状态栏区域中来完成,但也可以改用任何其它类似手段而不偏离本发明的精神。一旦用户通过传统手段,譬如,用定位设备105点击出现在警告消息弹出窗口内的“OK”按钮,或不偏离本发明精神的任何其它类似手段确认了这个通知消息,将控制交给步骤913。
·在步骤925中,关闭EF编辑器对话框301,以便它从显示设备106上消失,然后,从显示的窗口中除去“Editor Space”表格315,以便用在EF编辑器调用时出现的原始表格取代它。最后,将控制交还给最初步骤901,以便处理任何进一步的EF编辑器命令。
E3.EP编辑器方法
用在本发明优选实施例中的创建或更新EP或MEP的方法总结在图10的流程图1000中。可以将这种方法看作EP编辑器命令的处理。
·在步骤1001中,该方法处在它的默认状态下,等待启动该进程的事件。
·在步骤1002中,作为用户动作的结果,检测EP编辑器命令。这个动作可以是,例如:
·键盘104上的特定键组合;
·定位设备105在特定按钮上的点击;或
·本文未作进一步规定的任何其它类似手段。
·在步骤1003中,检索命令的参数。它们对应于:
·第一必有参数EPE_name,可以取保留值“NEW”,或与如在RSTMT表2230内的记录2231的“Name”字段2232中找到那样的字符串名称相对应的另一个值;和
·第二可选参数EPE_range,只能取两个预定值“YES”和“NO”。当第一必有参数的值与“NEW”不同时,这个第二可选参数必须
存在。
将这两个参数记录成局部变量。
·在步骤1004中,初始化一些局部变量:将局部变量EFE_meta设置成值“NO”,将局部变量EFE_size设置成值8(八)。
·在步骤1005中,进行测试以确定局部变量EFE_name所取的值。如果发现等于“NEW”,那么,将控制交给步骤1009;否则,将控制交给步骤1006。
·在步骤1006中,查找EPT表710,以定位发现其“Name”字段712等于局部变量EPE_name所取的值的记录711。如果找到这样的记录,那么,将控制交给步骤1008;否则,将控制交给步骤1007。
·在步骤1007中,调用异常管理器,以处理这种“不该发生”状况。这样的操作是实现相关的,可以采取不同的形式,譬如,在显示设备106上显示错误消息弹出窗口。然后,将控制交给步骤1025。
·在步骤1008中,
·根据在步骤1006中找到的记录711的“Type”字段717内“META”属性718的值,将局部变量EFE_meta设置成值“YES”或“NO”;
·将局部变量EPE_size设置成在在步骤1006中找到的记录711的“Column#”716中找到的值;和
·将在步骤1006中找到的记录711的“Description Ptr”字段714所指的存储位置复制到剪贴板上和局部变量EPE_Desc内。
然后,将控制交给步骤1012。
·在步骤1009中,根据在本发明的优选实施例中采取“New XX”形式的名称字符串,确定新创建EP或MPF的新名称,其中,XX对应于对于以前定义和记录在在各自表格EFT 700、EPT 710、STT 720、RET 2210和RSST2220的各自记录701、711、721、2211和2221中找到的“Name”字段702、712、722、2212和2222中的所有名称,保证名称唯一性的计数。只要保证新创建名称的唯一性,可以改用任何其它类似传统手段而不偏移本发明的精神。
然后,将新名称记录在局部变量EFE_name中。
然后,在主存储器102内分配存储空间,以便以后记录EP或MEP的例示单元格范围。这个分配的存储空间是与当前打开的电子表格文件相对应的存储空间的一部分。然后,在EPT表710中创建新记录711,和按如下初始化这个新记录711:
·将“Name”字段712设置成局部变量EPE_name的值;
·将“Last Change Date”字段713设置成如中央处理器101所知的系统时间引用;
·将“Description Ptr”字段714设置成刚刚分配的存储位置;
·将“Row#”字段715设置成值1(因为在本发明的优选实施例中,在2D环境下管理ST;在3D环境下,这个字段将携带为创建的EP或MEP定义的行数);
·将“Column#”字段716设置成局部变量EPE_size的值;和
·按如下设置“Type”字段717:将属性“META”718设置成等于局部变量EPE_meta的值,和按如下初始化属性“REFERENCED”719:
·用还没有指定给任何其它“OWN REFERENCE”(OR)子字段709a、719a、729a、780a、2219a、2229a、或2240a的质数初始化OR子字段719a。各种各样的传统技术可以用于识别质数,这里不作进一步详述。
·用值1(一)初始化“FILIATION REFERENCE”(FR)子字段719b。
·用值1(一)初始化“INSTANCE REFERENCE”(IR)子字段719c。
·用如下公式初始化“REFERENCED OBJECT”(RO)子字段719d。其中,P集合对应于ST的集合:
如果LCM({FRi})i∈PMod OR=0,
则RO=“YES”;
否则,RO=“NO”。
·用如下公式初始化“SELECTED CHILDREN”(SC)子字段719e。其中,S集合对应于所选对象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”属性2242):
如果LCM({FRi})i∈SMod OR=0#OR#EPE_name∈S,
则SC=“YES”;
否则,SC=“NO”。
然后,将控制交给步骤1010。
·在步骤1010中,进行测试以确定局部变量EPE_range所取的值。如果发现等于“YES”,那么,将控制交给步骤1011;否则,将控制交给步骤1012。
·在步骤1011中,将当前所选的单元格范围复制到剪贴板和将局部变量EPE_size设置成等于所选范围的列数。
·在步骤1012中,使“Editor Space”表格315成为当前表格,和在这个空白表格上,在固定单元格地址314(如图3所示,在本发明的优选实施例中,地址B2)上粘贴剪贴板的内容,以便用户可以在显示设备106上看见EF或MEF的示例。
·在步骤1013中,在显示设备106上显示EP编辑器对话框401。
·用局部变量EPE_name的值初始化标记框404。如果发现局部变量EPE_mata等于“NO”(相应地,“YES”),将黑点填入顶部(相应地,底部)选项按钮410中。
·将局部变量EPE_size的值填入文本框406。
·如果发现局部变量EPE_size等于当前记录711的“Column#”字段716,或如果发现这个记录711的“Type”字段717内的属性“REFERENCED”719拥有等于“NO”的子字段“REFERENCEDOBJECT”719d(RO),使能按钮“Save”412和“Save & Refresh”408,以便将来用定位设备105对这两个按钮“Save”412和“Save& Refresh”408的任何点击都被识别为一个有效事件。
·否则(未发现局部变量EPE_size等于当前记录711的“Column#”字段716,或发现这同一个记录711的“Type”字段717内的属性“REFERENCED”719拥有等于“YES”的子字段“REFERENCEDOBJECT”719d(RO)),禁用按钮“Save”412和“Save & Refresh”408,以便将来用定位设备105对这两个按钮“Save”412和“Save& Refresh”408的任何点击都不被识别为一个事件。
·在步骤1014中,该方法等待EP编辑器对话框401上的任何用户动作。这样的用户动作通常来自用定位设备105的点击,但也可以采取其它类似形式,譬如,键盘104上的特定键组合(但不限于此),或本文未作进一步规定的任何其它类似手段。
·在步骤1015中,检测EP编辑器对话框301上的用户动作。
·如果用户动作是点击按钮“Save & Refresh”408,那么,将控制交给步骤1016;
·如果用户动作是点击按钮“Save”412,那么,将控制交给步骤1017;
·如果用户动作是点击按钮“Save as”411,那么,将控制交给步骤1018;
·如果用户动作是点击按钮“Clear”409,那么,将控制交给步骤1019;
·如果用户动作是点击旋钮407,那么,将控制交给步骤1020;
·如果用户动作是点击两个选项按钮410之一,那么,将控制交给步骤1021;
·如果用户动作是点击按钮“Done”403或关闭窗口按钮402,那么,将控制交给步骤1025。
·在步骤1016中,通过刷新“Name”字段712等于局部变量EPE_name的记录711,更新EPT表710和将它保存成电子表格文件的一部分。为了这个目的,
·将“Last Change Date”字段713设置成如中央处理器101所知的系统时间引用;
·将“Column#”字段716设置成局部变量EPE_size的值;和
·按如下设置“Type”字段717:将属性“META”718设置成等于局部变量EPE_meta的值。
另外,将在“Editor Space”表格415上例示EP或MEP的当前定义的单元格范围414复制到“Description Ptr”字段714所指的存储位置。然后,将控制交给步骤1022。
·在步骤1017中,通过刷新“Name”字段712等于局部变量EPE_name的记录711,更新EPT表710和将它保存成电子表格文件的一部分。为了这个目的,
·将“Last Change Date”字段713设置成如中央处理器101所知的系统时间引用;
·将“Column#”字段716设置成局部变量EPE_size的值;和
·按如下设置“Type”字段717:将属性“META”718设置成等于局部变量EPE_meta的值。
另外,将在“Editor Space”表格415上例示EP或MEP的当前定义的单元格范围414复制到“Description Ptr”字段714所指的存储位置。
然后,用如记录在“Description Ptr”字段714所指的存储位置中那样的当前EP或MEP描述更新局部变量EPE_desc,和将控制交给步骤1013。
·在步骤1018中,对在文本框405中找到的值进行测试,以确定这个值是否对应于有效新名称。相应准则是实现相关的,只要新推荐名称相对于记录在“Name”字段702、712、722、2212和2222中的所有已定义名称是唯一字符串,可以采取不同形式而不偏离本发明的精神。如果有效性和唯一性都得到证明,那么,将控制交给步骤1023;否则,将控制交给步骤1024。
·在步骤1019中,将当前在电子表格环境下定义的默认属性应用于“Editor Space”表格415,以便显示的EP或MEP示例接受这些相同的默认属性。然后,将控制交给步骤1013。
·在步骤1020中,根据定位设备105在旋钮407上指定的方向(向上或向下),和只要其值保持正的和小于等于在本发明的优选实施例中设置成等于254的上限,将局部变量EPE_size加1(一)或减1(一)。然后,将控制交给步骤1013。
·在步骤1021中,更新局部变量EPE_meta,以便如果已经点击了底部(相应地,顶部)选项按钮410,使它的值变成“YES”(相应地,“NO”)。然后,将控制交给步骤1013。
·在步骤1022中,发出ST Refresh(ST刷新)管理器命令,以及如下参数:EPE_name,“PROFILE”和EPE_desc。然后,用如记录在“Description Ptr”字段714所指的存储位置中那样的当前EP或MEP描述更新局部变量EPE_dese,然后,将控制交给步骤1013。
·在步骤1023中,在主存储器102内分配存储空间,以便以后记录EP或MEP的例示单元格范围。这个分配的存储空间是与当前打开的电子表格文件相对应的存储空间的一部分。然后,在保存为电子表格文件的一部分的EPT表710中创建新记录711,和按如下初始化这个新记录711:
·将“Name”字段712设置成在文本框405中找到和在步骤1018中得到核实的值;然后,这个字段712变成EPE_name局部变量的新值;
·将“Last Change Date”字段713设置成如中央处理器101所知的系统时间引用;
·将“Description Ptr”字段714设置成刚刚分配的存储位置;
·将“Row#”字段715设置成值1(因为在本发明的优选实施例中,在2D环境下管理ST;在3D环境下,这个字段将携带为创建的EP或MEP定义的行数);
·将“Column#”字段716设置成局部变量EPE_size的值;和
·按如下设置“Type”字段717:将属性“META”718设置成等于局部变量EPE_meta的值,和按如下初始化属性“REFERENCED”719:
·用还没有指定给任何其它“OWN REFERENCE”(OR)子字段709a、719a、729a、780a、2219a、2229a、或2240a的质数初始化OR子字段719a。各种各样的传统技术可以用于识别质数,这里不作进一步详述。
·用值1(一)初始化“FILIATION REFERENCE”(FR)子字段719b。
·用值1(一)初始化“INSTANCE REFERENCE”(IR)子字段719c。
·用如下公式初始化“REFERENCED OBJECT”(RO)子字段719d。其中,P集合对应于ST的集合:
如果LCM({FRi})i∈PMod OR=0,
则RO=“YES”;
否则,RO=“NO”。
·用如下公式初始化“SELECTED CHILDREN”(SC)子字段719e。其中,S集合对应于所选对象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”属性2242):
如果LCM({FRi})i∈SMod OR=0#OR#EPE_name∈S,
则SC=“YES”;
否则,SC=“NO”。
然后,将控制交给步骤1013。
·在步骤1024中,发出警告消息通知,以便通知用户在点击“Save as(保存为”按钮411之前,必须在文本框405中指定有效唯一的名称。这通常可以通过在显示设备106上将警告消息显示在弹出窗口中或显示在状态栏区域中来完成,但也可以改用任何其它类似手段而不偏离本发明的精神。一旦用户通过传统手段,譬如,用定位设备105点击出现在警告消息弹出窗口内的“OK”按钮,或不偏离本发明精神的任何其它类似手段确认了这个通知消息,将控制交给步骤1013。
·在步骤1025中,关闭EP编辑器对话框401,以便它从显示设备106上消失,然后,从显示窗口中除去“Editor Space”表格415,以便用在EP编辑器调用时出现的原始表格取代它。最后,将控制交还给最初步骤1001,以便处理任何进一步的EP编辑器命令。
E4.ST编辑器方法
用在本发明优选实施例中的创建或更新ST的方法总结在图11的流程图1100中。可以将这种方法看作ST编辑器命令的处理。
·在步骤1101中,该方法处在它的默认状态下,等待启动该进程的事件。
·在步骤1102中,作为用户动作的结果,检测ST编辑器命令。这个动作可以是,例如:
·键盘104上的特定键组合;
·定位设备105在特定按钮上的点击;或
·本文未作进一步规定的任何其它类似手段。
·在步骤1103中,检索命令的参数。它对应于必有参数STE_name,该参数可以取保留值“NEW”,或与如在RSTMT表2230内的记录2231的“Name”字段2232中找到那样的字符串名称相对应的另一个值。将这个参数记录成局部变量。
·在步骤1104中,初始化一些局部变量:将局部变量STE_min设置成默认值1(一),将局部变量STE_max设置成值255。
·在步骤1105中,进行测试以确定局部变量STE_name所取的值。如果发现等于“NEW”,那么,将控制交给步骤1109;否则,将控制交给步骤1106。
·在步骤1106中,查找STT表720,以定位发现其“Name”字段722等于局部变量STE_name所取的值的记录721。如果找到这样的记录,那么,
将控制交给步骤1108;否则,将控制交给步骤1107。
·在步骤1107中,调用异常管理器,以处理这种“不该发生”状况。这样的操作是实现相关的,可以采取不同的形式,譬如,在显示设备106上显示错误消息弹出窗口。然后,将控制交给步骤1128。
·在步骤1108中,
·将局部变量STE_min(STE最小)设置成在在步骤1106中找到的记录721的“Min Element#”字段725中找到的值;
·将局部变量STE_max(STE最大)设置成在在步骤1106中找到的记录721的“Max Element#”字段726中找到的值。
然后,将在步骤1106中找到的记录721的“Description Ptr”字段724所指的存储位置(其中,记录着按照如图7D所示的STDT表760的ST的描述)复制在也遵从相同STDT表760的工作缓冲区中。然后,将这种结构用于在主存储器102内的剪贴板上构建例示复制在工作缓冲区中的ST定义的电子表格单元格范围。这种构造是通过将一系列有序单元格范围装入主存储器102内的剪贴板中实现的,这些单元格范围的每一个依次遵从与从第一对761开始直到最后一对763的每对EF和EP名称相对应的EF(列765)和EP(列764)定义。然后,将控制交给步骤1110。
·在步骤1109中,根据在本发明的优选实施例中采取“New XX”形式的名称字符串,确定新创建ST的新名称,其中,XX对应于对于以前定义和记录在在各自表格EFT 700、EPT 710、STT 720、RET 2210和RSST 2220的各自记录701、711、721、2211和2221中找到的“Name”字段702、712、722、2212和2222中的所有名称,保证名称唯一性的计数。只要保证新创建名称的唯一性,可以改用任何其它类似传统手段而不偏移本发明的精神。然后,将新名称记录在局部变量STE_name(STE名称)中。然后,在主存储器102内分配存储空间,以便以后记录新ST的例示单元格范围。这个分配的存储空间是与当前打开的电子表格文件相对应的存储空间的一部分和遵从如图7D所示的STDT表760。然后,在STT表720中创建新记录721,和按如下初始化这个新记录721:
·将“Name”字段722设置成局部变量STE_name的值;
·将“Last Change Date”字段723设置成如中央处理器101所知的系统时间引用;
·将“Description Ptr”字段724设置成刚刚分配的存储位置;
·将“Min Element#”字段725设置成局部变量STE_min的值;
·将“Max Element#”字段726设置成局部变量STE_max的值;
·按如下设置“Type”字段727:将属性“META”728设置成等于“NO”,和按如下初始化属性“REFERENCED”729:
·用还没有指定给任何其它“OWN REFERENCE”(OR)子字段709a、719a、729a、780a、2219a、2229a、或2240a的质数初始化OR子字段729a。各种各样的传统技术可以用于识别质数,这里不作进一步详述。
·根据如下公式初始化“FILIATION REFERENCE”(FR)子字段729b,其中,根据记录在“Description Ptr”字段724中的结构,F集合对应于构成新ST的EF、MEF、EP、和MEP的集合:
FR=∏i∈FORi×LCM({FRi})i∈F
·用值1(一)初始化“INSTANCE REFERENCE”(IR)子字段729c。
·用如下公式初始化“REFERENCED OBJECT”(RO)子字段729d。其中,P集合对应于RE和RME的集合:
如果LCM({FRi})i∈PMod OR=0,
则RO=“YES”;
否则,RO=“NO”。
·用如下公式初始化“SELECTED CHILDREN”(SC)子字段729e。其中,S集合对应于所选对象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”属性2242):
如果LCM({FRi})i∈SMod OR=0#OR#STE_name∈S,
则SC=“YES”;
否则,SC=“NO”。
然后,在主存储器102中分配工作缓冲区和用与默认EF和默认EP的一对762相对应的默认ST描述初始化工作缓冲区。然后,将这个默认ST描述用于在主存储器102内的剪贴板上构建例示新ST的电子表格单元格范围。这种构造是像在步骤1108的末端说明的那样实现的。然后,将控制交给步骤1110。
·在步骤1110中,使“Editor Space”表格515成为当前表格,和在禁止常规行插入和删除的同时,将这个表格转成写保护模式。然后,选择单元格范围514的左上单元格。然后,将与单元格范围514内的当前所选单元格所在的行相对应的EF或MEF的名称填入局部变量STE_format(STE格式)中。最后,将与单元格范围514内的当前所选单元格所在的行相对应的EP或MEP的名称填入局部变量STE_profile(STE概要)中。
·在步骤1111中,在显示设备106上显示ST编辑器对话框501。
·用局部变量STE_name的值初始化标记框504。
·将局部变量STE_min的值填入文本框506。
·将局部变量STE_max的值填入文本框509。
·将局部变量STE_format的值填入组合框511。
·将局部变量STE_profile的值填入组合框510。
然后,根据记录在存储器剪贴板中的描述更新单元格范围514:在这个空白表格上,在固定单元格地址514(如图5所示,在本发明的优选实施例中,地址B2)上粘贴剪贴板的内容,以便用户可以在显示设备106上,在窗口500内看见ST的示例。然后,进行测试以检验对单元格范围514所例示的ST定义有贡献的所有EF、EP、MEF和MEP是否拥有个数相同的字段。如果情况是这样,那么,使能两个按钮“Save”513和“Save as”512,以便将用定位设备105对这两个按钮“Save”513和“Save as”512之一的点击识别成一个有效事件。否则,禁止两个按钮“Save”513和“Save as”512,以便不将用定位设备105对这两个按钮“Save”513和“Save as”512之一的点击识别成一个有效事件。
·在步骤1112中,该方法等待ST编辑器对话框501上的任何用户动作。这样的用户动作通常来自用定位设备105的点击,但也可以采取其它类似形式,譬如,键盘104上的特定键组合(但不限于此),或本文未作进一步规定的任何其它类似手段。
·在步骤1113中,检测ST编辑器对话框501上的用户动作。
·如果用户动作是点击按钮“Save”513,那么,将控制交给步骤1116;
·如果用户动作是点击按钮“Save as”512,那么,将控制交给步骤1119;
·如果用户动作是点击按钮“Add(添加)”517,那么,将控制交给步骤1124;
·如果用户动作是点击按钮“Delete”518,那么,将控制交给步骤1125;
·如果用户动作是点击按钮“Up”519或按钮“Down”520,那么,将控制交给步骤1126;
·如果用户动作是更新组合框511,那么,将控制交给步骤1114;
·如果用户动作是更新组合框510,那么,将控制交给步骤1115;
·如果用户动作是点击旋钮507,那么,将控制交给步骤1122;
·如果用户动作是点击旋钮508,那么,将控制交给步骤1123;
·如果用户动作是点击按钮“Done”503或关闭窗口按钮502,那么,将控制交给步骤1128。
·在步骤1114中,通过用在文本框511中找到的EF或MEF取代与单元格范围514内的当前所选单元格所例示的元素或元元素相对应的前EF或MEF规定,在工作缓冲区中更新ST描述。然后,还将局部变量STE_format设置成等于在文本框511中找到的名称。然后,将控制交给步骤1111。
·在步骤1115中,通过用在文本框511中找到的EP或MEP取代与单元格范围514内的当前所选单元格所例示的元素或元元素相对应的前EP或MEP规定,在工作缓冲区中更新ST描述。然后,还将局部变量STE_profile设置成等于在文本框511中找到的名称。然后,将控制交给步骤1111。
·在步骤1116中,进行测试以检验当前编辑的ST是否已被现有RE或RME引用,是否已被实例化成STI。为了这个目的,考虑STT表720中“Name”字段722等于局部变量STE_name的记录721的“Type”字段727内的“REFERENCED”属性729。如果“REFERENCED OBJECT”(RO)子字段729d的值等于“NO”和如果“INSTANCE REFERENCE”(IR)子字段729c的值等于1(一),那么,将控制交给步骤1117;否则,将控制交给步骤1118。
·在步骤1117中,通过刷新“Name”字段722等于局部变量STE_name的记录721,更新STT表720。为了这个目的,
·将“Last Change Date”字段723设置成如中央处理器101所知的系统时间引用;
·将“Min Element#”字段725设置成局部变量STE_min的值;和
·将“Max E1ement#”字段726设置成局部变量STE_max的值。
·将如单元格范围514所示、如记录在工作缓冲区中那样、和遵从STDT表760的ST的当前描述复制到“Description Ptr”字段724所指的存储位置上。
·借助于其依赖于属于“Description Ptr”字段724所指的STDT表760的EF、MEF、EP和MEP的集合的定义公式,自动更新被更新成“REFERENCED”属性729的“FILIATION REFERENCE”(FR)子字段729b的“Type”字段727。
·对于在这个STDT表760的列765中找到的每个EF名称或MEF名称,由于根据其定义公式重新计算了子字段“REFERENCEDOBJECT”(RO)709d(在“REFERENCED”属性709内),在“Name”字段702与这个元素或MEF名称匹配的相应记录701内自动更新EFT表700。
·对于在这个STDT表760的列764中找到的每个EP名称或MEP名称,由于根据其定义公式重新计算了子字段“REFERENCEDOBJECT”(RO)719d(在“REFERENCED”属性719内),在“Name”字段712与这个元素或MEP名称匹配的相应记录711内自动更新EPT表710。然后,将控制交给步骤1111。
·在步骤1118中,发出警告消息通知,以便通知用户编辑的ST已被RE或RME引用或已被实例化成现有STI。这通常可以通过在显示设备106上将警告消息显示在弹出窗口中或显示在状态栏区域中来完成,但也可以改用任何其它类似手段而不偏离本发明的精神。然后,提醒用户取消当前“Save”操作或继续进行“Save”操作。这通常可以通过在显示设备106上将提醒消息显示在弹出窗口中来完成,但也可以改用任何其它类似手段而不偏离本发明的精神。一旦用户通过传统手段,譬如,用定位设备105点击出现在提醒消息弹出窗口内的“Cancel”或“Continue”按钮,或不偏离本发明精神的任何其它类似手段作出了他的选择,如果电子表格用户的决定是取消操作,那么,将控制交给步骤1111,或者,如果电子表格用户的决定是继续进行操作,那么,将控制交给步骤1117。
·在步骤1119中,对在文本框505中找到的值进行测试,以确定它是否对应于有效新名称。相应准则是实现相关的,只要新推荐名称相对于记录在“Name”字段702、712、722、2212和2222中的所有已定义名称是唯一字符串,可以采取不同形式而不偏离本发明的精神。如果有效性和唯一性都得到证明,那么,将控制交给步骤1120;否则,将控制交给步骤1121。
·在步骤1120中,在主存储器102内分配存储空间,以便以后记录ST的描述符。这个分配的存储空间是与当前打开的电子表格文件相对应的存储空间的一部分。然后,在STT表720中创建新记录721,和按如下初始化这个新记录721:
·将“Name”字段722设置成在文本框505中找到和在步骤1119中得到核实的值;然后,这个字段722变成STE_name局部变量的新值;
·将“Last Change Date”字段723设置成如中央处理器101所知的系统时间引用;
·将“Description Ptr”字段724设置成刚刚分配的存储位置;
·将“Min Element#”字段725设置成局部变量STE_min的值;
·将“Max Element#”字段726设置成局部变量STE_max的值;
·将如单元格范围514所示、如记录在工作缓冲区中那样、和遵从STDT表760的ST的当前描述复制到“Description Ptr”字段724所指的存储位置上。
·按如下设置“Type”字段727:将属性“META”728设置成等于“NO”,和按如下初始化属性“REFERENCED”729:
·用还没有指定给任何其它“OWN REFERENCE”(OR)子字段709a、719a、729a、780a、2219a、2229a、或2240a的质数初始化OR子字段729a。各种各样的传统技术可以用于识别质数,这里不作进一步详述。
·根据如下公式初始化“FILIATION REFERENCE”(FR)子字段729b,其中,根据记录在“Description Ptr”字段724中的结构,F集合对应于构成新ST的EF、MEF、EP、和MEP的集合:
FR=∏i∈FORi×LCM({FRi})i∈F
·用值1(一)初始化“INSTANCE REFERENCE”(IR)子字段729c。
·用如下公式初始化“REFERENCED OBJECT”(RO)子字段729d。其中,P集合对应于RE和RME的集合:
如果LCM({FRi})i∈PMod OR=0,
则RO=“YES”;
否则,RO=“NO”。
·用如下公式初始化“SELECTED CHILDREN”(SC)子字段729e。其中,S集合对应于所选对象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”属性2242):
如果LCM({FRi})i∈SMod OR=0#OR#STE_name∈S,
则SC=“YES”;
否则,SC=“NO”。
·对于在这个STDT表760的列765中找到的每个EF名称或MEF名称,由于根据其定义公式重新计算了子字段“REFERENCEDOBJECT”(RO)709d(在“REFERENCED”属性709内),在“Name”字段702与这个元素或MEF名称匹配的相应记录701内自动更新EFT表700。
·对于在这个STDT表760的列764中找到的每个EP名称或MEP名称,由于根据其定义公式重新计算了子字段“REFERENCEDOBJECT”(RO)719d(在“REFERENCED”属性719内),在“Name”字段712与这个元素或MEP名称匹配的相应记录711内自动更新EPT表710。
然后,将控制交给步骤1111。
·在步骤1121中,发出警告消息通知,以便通知用户在点击“Save as”按钮512之前,必须在文本框505中指定有效唯一的名称。这通常可以通过在显示设备106上将警告消息显示在弹出窗口中或显示在状态栏区域中来完成,但也可以改用任何其它类似手段而不偏离本发明的精神。一旦用户通过传统手段,譬如,用定位设备105点击出现在警告消息弹出窗口内的“OK”按钮,或不偏离本发明精神的任何其它类似手段确认了这个通知消息,将控制交给步骤1111。
·在步骤1122中,根据定位设备105在旋钮507上指定的方向(向上或向下),和只要其值保持正的和小于等于在本发明的优选实施例中设置成等于254的上限和如文本框509所示的值两者,将局部变量STE_min加1(一)或减1(一)。然后,将控制交给步骤1111。
·在步骤1123中,根据定位设备105在旋钮508上指定的方向(向上或向下),和只要其值保持正的,大于如文本框506所示的值,和小于等于在本发明的优选实施例中设置成等于254的上限,将局部变量STE_max加1(一)或减1(一)。然后,将控制交给步骤1111。
·在步骤1124中,在例示编辑的ST的单元格范围514中,在最后所选单元格以前所处的行上面插入新行。
然后,选择单元格范围514内位于新行上的最左单元格。
然后,在工作缓冲区中,通过引入像其它元元素那样,通过也分别指定给局部变量STE_format和STE_profile、默许给一对默认MEF和默认MEP的一对(MEF 765,MEP 764)描述的新元元素,更新ST定义。另外,将如单元格范围514所示、如记录在工作缓冲区中那样、和遵从STDT表760的ST的当前描述复制到“Description Ptr”字段724所指的存储位置上。然后,将控制交给步骤1111。
·在步骤1125中,从单元格范围514中除去包含所选单元格的行。然后,选择位于单元格范围514内代表定义在编辑的ST内的元素的行上的最左单元格。然后,通过除去由一对(MEF,MEP)描述的删除元元素,更新ST定义。另外,将如单元格范围514所示、如记录在工作缓冲区中那样、和遵从STDT表760的ST的当前描述复制到“Description Ptr”字段724所指的存储位置上。然后,将控制交给步骤1127。
·在步骤1126中,如果电子表格用户用定位设备105点击了“Up”按钮519或“Down”按钮520,并且,如果这种移动不移动远离例示ST的单元格范围514的当前单元格,分别向上或向下移动“Editor Space”表格515内的当前单元格。
·在步骤1127中,将局部变量STE_format和STE_profile分别设置成等于与单元格范围514内的当前所选单元格所示的元素或元元素相对应的EF或MEF的名称和EP或MEP的名称。然后,将控制交给步骤1111。
·在步骤1128中,关闭ST编辑器对话框501,以便它从显示设备106上消失,然后,从显示窗口中除去“Editor Space”表格515,以便用在EP编辑器调用时出现的原始表格取代它。现在再次使能在显示“Editor Space”表格515的同时禁止的所有装置。最后,将控制交还给最初步骤1101,以便处理任何进一步的ST编辑器命令。
E5.RST编辑器方法
用在本发明优选实施例中的创建或更新RST的方法总结在图12的流程图1230中。可以将这种方法看作RST编辑器命令的处理。
·在步骤1231中,该方法处在它的默认状态下,等待启动该进程的事件。
·在步骤1232中,作为用户动作的结果,检测RST编辑器命令。这个动作可以是,例如:
·键盘104上的特定键组合;
·定位设备105在特定按钮上的点击;或
·本文未作进一步规定的任何其它类似手段。
·在步骤1233中,检索命令的参数。它对应于必有参数RSTE_name(RSTE名称),该参数可以取保留值“NEW(新)”,或与如在RSTMT表2230内的记录2231的“Name”字段2232中找到那样的字符串名称相对应的另一个值。将这个参数记录成局部变量。
·在步骤1234中,初始化一些局部变量:将局部变量RSTE_min(RSTE最小)设置成值默认值1(一),将局部变量RSTE_max(RSTE最大)设置成值16。
·在步骤1235中,进行测试以确定局部变量RSTE_name所取的值。如果发现等于“NEW”,那么,将控制交给步骤1239;否则,将控制交给步骤1236。
·在步骤1236中,查找RSTT表2220,以定位发现其“Name”字段2222等于局部变量RSTE_name所取的值的记录2221。如果找到这样的记录,那么,将控制交给步骤1238;否则,将控制交给步骤1237。
·在步骤1237中,调用异常管理器,以处理这种“不该发生”状况。这样的操作是实现相关的,可以采取不同的形式,譬如,在显示设备106上显示错误消息弹出窗口。然后,将控制交给最初步骤1231,以便处理任何进一步的RST编辑器命令。
·在步骤1238中,
·将局部变量RSTE_min设置成在在步骤1236中找到的记录2221的“Min Element#”字段2225中找到的值;
·将局部变量RSTE_max设置成在在步骤1236中找到的记录2221的“Max Element#”字段2226中找到的值。
然后,将在步骤1236中找到的记录2221的“Description Ptr”字段2224所指的存储位置(其中,记录着按照如图19D所示的RSTDT表2250的RST的描述)复制在也遵从相同RSTDT表2250的工作缓冲区中。
然后,将这种结构用于在主存储器102内的剪贴板上构建例示复制在工作缓冲区中的RST定义的电子表格单元格范围,每个单元格依次与从第一个名称2251开始直到最后一个2253的RE或RME名称相对应。然后,将控制交给步骤1240。
·在步骤1239中,根据在本发明的优选实施例中采取“New XX”形式的名称字符串,确定新创建RST的新名称,其中,XX对应于对于以前定义和记录在在各自表格EFT 700、EPT 710、STT 720、RET 2210和RSST 2220的各自记录701、711、721、2211和2221中找到的“Name”字段702、712、722、2212和2222中的所有名称,保证名称唯一性的计数。只要保证新创建名称的唯一性,可以改用任何其它类似传统手段而不偏移本发明的精神。然后,将新名称记录在局部变量RSTE_name中。然后,在主存储器102内分配存储空间,以便以后记录新RST的例示单元格范围。这个分配的存储空间是与当前打开的电子表格文件相对应的存储空间的一部分和遵从如图19D所示的RSTDT表2250。然后,在RSTT表2220中创建新记录2221,和按如下初始化这个新记录2221:
·将“Name”字段2222设置成局部变量RSTE_name的值;
·将“Last Change Date”字段2223设置成如中央处理器101所知的系统时间引用;
·将“Description Ptr”字段2224设置成刚刚分配的存储位置;
·将“Min Element#”字段2225设置成局部变量RSTE_min的值;
·将“Max Element#”字段2226设置成局部变量RSTE_max的值;
·按如下设置“Type”字段2227:将属性“META”2228设置成等于“NO”,和按如下初始化属性“REFERENCED”2229:
·用还没有指定给任何其它“OWN REFERENCE”(OR)子字段709a、719a、729a、780a、2219a、2229a、或2240a的质数初始化OR子字段2229a。各种各样的传统技术可以用于识别质数,这里不作进一步详述。
·根据如下公式初始化“FILIATION REFERENCE”(FR)子字段2229b,其中,根据记录在“Description Ptr”字段2224中的结构,F集合对应于构成新RST的RE和RME的集合:
FR=∏i∈FORi×LCM({FRi})i∈F
·用值1(一)初始化“INSTANCE REFERENCE”(IR)子字段2229c。
·用值“NO”初始化“REFERENCED OBJECT”(RO)子字段2229d。
·用如下公式初始化“SELECTED CHILDREN”(SC)子字段2229e。
其中,S集合对应于所选对象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”属性2242):
如果LCM({FRi})i∈SMod OR=0#OR#RSTE_name∈S,
则SC=“YES”;
否则,SC=“NO”。
然后,在主存储器102中分配工作缓冲区和用与默认RE 2252相对应的默认RST描述初始化工作缓冲区。然后,将这个默认RST描述用于在主存储器102内的剪贴板上构建例示新RST的电子表格单元格范围。这种构造是像在步骤1238的末端说明的那样实现的。然后,将控制交给步骤1240。
·在步骤1240中,使“Editor Space”表格615成为当前表格,和在禁止常规行插入和删除的同时,将这个表格转成写保护模式。然后,选择单元格范围614的左上单元格。然后,将与单元格范围614内的当前所选单元格所在的行相对应的RE的名称填入局部变量RE_name(RE名称)中。
·在步骤1241中,在显示设备106上显示RST编辑器对话框601。
·用局部变量RSTE_name的值初始化标记框604。
·将局部变量RSTE_min的值填入文本框606。
·将局部变量RSTE_max的值填入文本框609。
·将局部变量RE_name的值填入组合框610。
然后,根据记录在存储器剪贴板中的描述更新单元格范围614:在这个空白表格上,在固定单元格地址614(如图6所示,在本发明的优选实施例中,地址B2)上粘贴剪贴板的内容,以便用户可以在显示设备106上,在窗口611内看见RST的示例。
然后,进行测试以检验对单元格范围614所例示的RST定义有贡献的所有RE和RME是否拥有个数相同的字段。如果情况是这样,那么,使能两个按钮“Save”613和“Save as”612,以便将用定位设备105对这两个按钮之一的点击识别成一个有效事件。否则,禁止两个按钮“Save”613和“Saveas”612,以便不将用定位设备105对这两个按钮之一的点击识别成一个有效事件。
·在步骤1242中,该方法等待RST编辑器对话框601上的任何用户动作。这样的用户动作通常来自用定位设备105的点击,但也可以采取其它类似形式,譬如,键盘104上的特定键组合(但不限于此),或本文未作进一步规定的任何其它类似手段。
·在步骤1243中,检测RST编辑器对话框601上的用户动作。
·如果用户动作是点击按钮“Save”613,那么,将控制交给步骤1246;
·如果用户动作是点击按钮“Save as”612,那么,将控制交给步骤1249;
·如果用户动作是点击按钮“Add”617,那么,将控制交给步骤1254;
·如果用户动作是点击按钮“Delete”618,那么,将控制交给步骤1255;
·如果用户动作是点击按钮“Up”619或按钮“Down”616,那么,将控制交给步骤1256;
·如果用户动作是更新组合框610,那么,将控制交给步骤1244;
·如果用户动作是点击旋钮607,那么,将控制交给步骤1252;
·如果用户动作是点击旋钮608,那么,将控制交给步骤1253;
·如果用户动作是点击按钮“Done”603或关闭窗口按钮602,那么,将控制交给步骤1258。
·在步骤1244中,通过用在组合框610中找到的RE或RME取代与单元格范围614内的当前所选单元格所例示的RE或RME相对应的前RE或RME名称,在工作缓冲区中更新RST描述。然后,还将局部变量RE_name设置成等于在组合框610中找到的名称。然后,将控制交给步骤1241。
·在步骤1246中,进行测试以检验当前编辑的RST是否已被现有RSTI引用。为了这个目的,考虑RSTT表2220中“Name”字段2222等于局部变量RSTE_name的记录2221的“Type”字段2227内的“REFERENCED”属性2229的值。如果“INSTANCE REFERENCE”(IR)子字段2229c的值等于1(一),那么,将控制交给步骤1247;否则,将控制交给步骤1248。
·在步骤1247中,通过刷新“Name”字段2222等于局部变量RSTE_name的记录2221,更新RSTT表2220。为了这个目的,
·将“Last Change Date”字段2223设置成如中央处理器101所知的系统时间引用;
·将“Min Element#”字段2225设置成局部变量RSTE_min的值;
·将“Max Element#”字段2226设置成局部变量RSTE_max的值。
·将如单元格范围614所示、如记录在工作缓冲区中那样、和遵从RSTDT表2250的RST的当前描述复制到“Description Ptr”字段2224所指的存储位置上。
·借助于其依赖于属于“Description Ptr”字段2224所指的RSTDT表2250的RE和RME的集合的定义公式,自动更新被更新成“REFERENCED”属性2229的“FILIATION REFERENCE”(FR)子字段2229b的“Type”字段2227。
·对于在这个RSTDT表2250的列2254中找到的每个RE名称或RME名称,由于根据其定义公式重新计算了子字段“REFERENCED OBJECT”(RO)2219d(在“REFERENCED”属性2219内),在“Name”字段2212与这个RE或RME名称匹配的相应记录2211内自动更新RET表2210。
·在步骤1248中,发出警告消息通知,以便通知用户编辑的RST已被实例化成RSTI。这通常可以通过在显示设备106上将警告消息显示在弹出窗口中或显示在状态栏区域中来完成,但也可以改用任何其它类似手段而不偏离本发明的精神。然后,提醒用户取消当前“Save”操作或继续进行“Save”操作。这通常可以通过在显示设备106上将提醒消息显示在弹出窗口中来完成,但也可以改用任何其它类似手段而不偏离本发明的精神。一旦用户通过传统手段,譬如,用定位设备105点击出现在提醒消息弹出窗口内的“Cancel(取消)”或“Continue(继续)”按钮,或不偏离本发明精神的任何其它类似手段作出了他的选择,如果电子表格用户的决定是取消操作,那么,将控制交给步骤1241,或者,如果电子表格用户的决定是继续进行操作,那么,将控制交给步骤1247。
·在步骤1249中,对在文本框605中找到的值进行测试,以确定它是否对应于有效新名称。相应准则是实现相关的,只要新推荐名称相对于记录在“Name”字段702、712、722、2212和2222中的所有已定义名称是唯一字符串,可以采取不同形式而不偏离本发明的精神。如果有效性和唯一性都得到证明,那么,将控制交给步骤1250;否则,将控制交给步骤1251。
·在步骤1250中,在主存储器102内分配存储空间,以便以后记录RST的描述符。这个分配的存储空间是与当前打开的电子表格文件相对应的存储空间的一部分。然后,在RSTT表2220中创建新记录2221,和按如下初始化这个新记录2221:
·将“Name”字段2222设置成在文本框605中找到和在步骤1249中得到核实的值;然后,这个字段2222变成RSTE_name局部变量的新值;
·将“Last Change Date”字段2223设置成如中央处理器101所知的系统时间引用;
·将“Description Ptr”字段2224设置成刚刚分配的存储位置;
·将“Min Element#”字段2225设置成局部变量RSTE_min的值;
·将“Max Element#”字段2226设置成局部变量RSTE_max的值;
·按如下设置“Type”字段2227:将属性“META”2228设置成等于“NO”,和按如下初始化属性“REFERENCED”2229:
·用还没有指定给任何其它“OWN REFERENCE”(OR)子字段709a、719a、729a、780a、2219a、2229a、或2240a的质数初始化OR子字段2229a。各种各样的传统技术可以用于识别质数,这里不作进一步详述。
·根据如下公式初始化“FILIATION REFERENCE”(FR)子字段2229b,其中,根据记录在“Description Ptr”字段2224中的结构,F集合对应于构成新RST的RE和RME的集合:
FR=∏i∈FORi×LCM({FRi})i∈F
·用值1(一)初始化“INSTANCE REFERENCE”(IR)子字段2229c。
·用值“NO”初始化“REFERENCED OBJECT”(RO)子字段2229d。
·用如下公式初始化“SELECTED CHILDREN”(SC)子字段2229e。其中,S集合对应于所选对象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”属性2242):
如果LCM({FRi})i∈SMod OR=0#OR#RSTE_name∈S,
则SC=“YES”;
否则,SC=“NO”。
·将如单元格范围614所示、如记录在工作缓冲区中那样、和遵从RSTDT表2250的RST的当前描述复制到“Description Ptr”字段2224所指的存储位置上。
·对于在这个RSTDT表2250的列2254中找到的每个RE名称或RME名称,由于根据其定义公式重新计算了子字段“REFERENCED OBJECT”(RO)2219d(在“REFERENCED”属性2219内),在“Name”字段2212与这个RE或RME名称匹配的相应记录2211内自动更新RET表2210。
·在步骤1251中,发出警告消息通知,以便通知用户在点击“Save as”按钮612之前,必须在文本框605中指定有效唯一的名称。这通常可以通过在显示设备106上将警告消息显示在弹出窗口中或显示在状态栏区域中来完成,但也可以改用任何其它类似手段而不偏离本发明的精神。一旦用户通过传统手段,譬如,用定位设备105点击出现在警告消息弹出窗口内的“OK”按钮,或不偏离本发明精神的任何其它类似手段确认了这个通知消息,将控制交给步骤1241。
·在步骤1252中,根据定位设备105在旋钮607上指定的方向(向上或向下),和只要其值保持正的和小于等于在本发明的优选实施例中设置成等于254的上限和如文本框609所示的值两者,将局部变量RSTE_min加1(一)或减1(一)。然后,将控制交给步骤1241。
·在步骤1253中,根据定位设备105在旋钮608上指定的方向(向上或向下),和只要其值保持正的,大于如文本框606所示的值,和小于等于在本发明的优选实施例中设置成等于254的上限,将局部变量RSTE_max加1(一)或减1(一)。然后,将控制交给步骤1241。
·在步骤1254中,在例示编辑的RST的单元格范围614中,在最后所选单元格以前所处的行上面插入新行。
然后,选择单元格范围614内位于新行上的最左单元格。
然后,在工作缓冲区中,通过引入像其它元元素那样,通过也指定给局部变量RE_name的名称描述的新RME,更新RST定义。另外,将如单元格范围614所示、如记录在工作缓冲区中那样、和遵从RSTDT表2250的RST的当前描述复制到“Description Ptr”字段2224所指的存储位置上。然后,将控制交给步骤1241。
·在步骤1255中,从单元格范围614中除去包含所选单元格的行,以便选择下一个RE或元元素。然后,通过除去通过其名称识别的删除的RME,更新RST定义。另外,将如单元格范围614所示、如记录在工作缓冲区中那样、和遵从RSTDT表2250的RST的当前描述复制到“Description Ptr”字段2224所指的存储位置上。然后,将控制交给步骤1257。
·在步骤1256中,如果电子表格用户用定位设备105点击了“Up”按钮619或“Down”按钮616,并且,如果这种移动不移动远离例示RST的单元格范围614的当前单元格,分别向上或向下移动“Editor Space”表格615内的当前单元格。
·在步骤1257中,将局部变量RE_name设置成等于与单元格范围614内的当前所选单元格所标识的RE或RME相对应的RE或RME的名称。然后,将控制交给步骤1241。
·在步骤1258中,关闭RST编辑器对话框601,以便它从显示设备106上消失,然后,从显示窗口中除去“Editor Space”表格615,以便用在RST编辑器调用时出现的原始表格取代它。现在再次使能在显示“Editor Space”表格615的同时禁止的所有装置。最后,将控制交还给最初步骤1231,以便处理任何进一步的RST编辑器命令。
E6.ST实例化器方法
用在本发明优选实施例中的创建遵从定义的ST的STI的方法总结在图14A和14B的流程图1400中,其中,后者对应于CreateSTI(创建STI)例程。可以将这种方法看作ST实例化器命令的处理。
·在步骤1401中,该方法处在它的默认状态下,等待启动该进程的事件。
·在步骤1402中,作为用户动作的结果,检测ST实例化器命令。这个动作可以是,例如,键盘104上的特定键组合,定位设备105在特定按钮上的点击,或本文未作进一步规定的任何其它类似手段。
·在步骤1403中,进行测试以检验当前所选的单元格是否包含在存在RSTI的表格内。这个测试可能通过分析RSTIT表2260,以识别其Address(地址)字段2262对应于与当前所选单元格相同的表格的任何记录2261来完成。如果情况是这样,那么,将控制交给步骤1404;否则,将控制交给步骤1405。
·在步骤1404中,发出警告消息通知,以便通知用户在已经存在RSTI的表格上不能单独创建STI。这通常可以通过在显示设备106上将警告消息显示在弹出窗口中或显示在状态栏区域中来完成,但也可以改用任何其它类似手段而不偏离本发明的精神。一旦用户通过传统手段,譬如,用定位设备105点击出现在警告消息弹出窗口内的“OK”按钮,或不偏离本发明精神的任何其它类似手段确认了这个通知消息,将控制交给步骤1401。
·在步骤1405中,首先检索命令参数ST_name:它对应于要创建的STI遵从的ST的名称。这个参数ST_name用于分析STT表720,以便找出其“Name”字段722与参数ST_name匹配的记录721。一旦找到这个记录721,将它的字段“Min Element#”725和“Max Element#”726分别存储成局部变量STI_min和STI_max。然后,将它的字段“Description Ptr”724用于根据引用的STDT表760,确定定义在ST内的元元素的个数、和定义在ST的每个元素或元元素成员内的单元格的个数。将第一个数存储成局部变量STI_meta,和将第二个数存储成局部变量STI_width 1325(代表未来STI的列数)。
然后,用STI_min所取的值初始化另一个局部变量STI_element(元素)。
然后,用默认值“YES”初始化另一个局部变量STI_critical(STI关键性)。
然后,用当前表格1320中的总列数初始化另一个局部变量STI_sheet_width(STI工作表宽度)1321。
然后,用当前表格1320中的总行数初始化另一个局部变量STI_sheet_height(STI工作表高度)1321。
然后,用值OVERLAY(覆盖)初始化另一个局部变量STI_mode(STI模式)。
·在步骤1406中,首先构建或更新一些其它局部变量。首先用局部变量STI_offset_width(STI偏移宽度)1323和STI_offset_height(STI偏移高度)1324表示当前所选单元格1327的位置,局部变量STI_offset_width 1323和STI_offset_height 1324分别对应于当前表格1320的左上单元格与当前所选单元格1327之间的列数和行数。
然后,用作为局部变量STI_meta(STI元)和STI_element之和计算的局部变量STI_height(STI高度)1326表示未来STI的行数。
其次,通过评估它们的地址确定一些工作单元格范围。
首先将与未来STI相对应的单元格范围STI_range(STI范围)1328确定为
当前所选单元格1327作为左上单元格、和行数和列数分别等于STI_height1326和STI_width(STI宽度)1325的单元格范围。
然后,将单元格范围STI_horizontal_flushed_range(STI水平覆盖范围)1330确定为与STI_range 1328共享相同的行、和占据当前表格1320的STI_width 1325个最右列的单元格范围。
然后,将单元格范围STI_horizontal_kept_range(STI水平保持范围)1329确定为与STI_range 1328共享相同的行、和占据位于那两个STI_range 1328和STI_horizontal_flushed_range 1330之间的列的单元格范围。
然后,将单元格范围STI_vertical_flushed_range(STI垂直覆盖范围)1332确定为与STI_range 1328共享相同的列、和占据当前表格1320的STI_height1326个底行的单元格范围。
然后,将单元格范围STI_vertical_kept_range(STI垂直保持范围)1331确定为与STI_range 1328共享相同的列、和占据位于那两个STI_range 1328和STI_vertical_flushed_range 1332之间的行的单元格范围。
·在步骤1407中,进行两种求和以检验未来STI是否恰好在当前表格1320的范围之内。
·如果发现局部变量STI_offset_width 1323与STI_width 1325之和大于局部变量STI_sheet_width 1321,那么,将局部变量STI_too_wide(STI太宽)设置成“YES”;否则,将它设置成“NO”。
·如果发现局部变量STI_offset_height 1324与STI_height 1326之和大于局部变量STI_sheet_height 1322,那么,将局部变量STI_too_high(STI太高)设置成“YES”;否则,将它设置成“NO”。
·在步骤1408中,根据五种可能实例化模式,进行几种测试以评估未来STI的创建对任何已经存在STI或数据的潜在影响。这些测试要求分析STIT表750,和访问每个记录751以掌握每个已定义STI的地址(“Address”字段752)和重要性(“Critical”字段755)。这些测试评估两个给定单元格范围是否部分重叠(意味着在第一单元格范围内存在至少一个属于第二单元格范围的单元格,和至少一个不属于第二单元格范围的单元格)或第一给定单元格范围是否包括在第二给定单元格范围内(意味着属于第一单元格范围的每个单元格也属于第二单元格范围)。不同的传统范围比较技术可以用于评估范围部分重叠或范围包括,这不偏离本发明的精神;在本发明的优选实施例中将不描述它们。
首先,研究OVERLAY(覆盖)实例化模式。
·如果存在至少一个“Critical”字段755取值“YES”和与单元格范围STI_range 1328部分重叠的现有STI,那么,局部测试变量STI_overlay_critical(STI覆盖关键性)取值“YES”;否则,局部测试变量STI_overlay_critical取值“NO”。
·如果存在至少一个“Critical”字段755取值“NO”和与单元格范围STI_range 1328部分重叠的现有STI,那么,局部测试变量STI_overlay_other(STI覆盖其它)取值“YES”;否则,局部测试变量STI_overlay_other取值“NO”。
·如果单元格范围STI_range 1328内的所有单元格都是空的(不包含数据),那么,局部测试变量STI_overlay_data(STI覆盖数据)取值“NO”;否则,局部测试变量STI_overlay_data取值“YES”。
其次,研究HORIZONTAL_INSERT(水平插入)实例化模式。
·如果存在至少一个“Critical”字段755取值“YES”和与由当前所选单元格1327所在的整个行组成的单元格范围部分重叠、或与由最底部STI_height 1326个行构成的单元格范围部分重叠、或包括在由最底部STI_height1326个行构成的单元格范围内的现有STI,那么,局部测试变量STI_horizontal_critical(STI水平关键性)取值“YES”;否则,局部测试变量STI_horizontal_critical取值“NO”。
·如果存在至少一个“Critical”字段755取值“NO”和与由当前所选单元格1327所在的整个行组成的单元格范围部分重叠、或与由最底部STI_height 1326个行构成的单元格范围部分重叠、或包括在由最底部STI_height1326个行构成的单元格范围内的现有STI,那么,局部测试变量STIhorizontal_other(STI水平其它)取值“YES”;否则,局部测试变量STI_horizontal_other取值“NO”。
·如果由最底部STI_height 1326个行构成的单元格范围内的所有单元格都是空的(不包含数据),那么,局部测试变量STI_horizontal_data(STI水平数据)取值“NO”;否则,局部测试变量STI_horizontal_data取值“YES”。
第三,研究HORIZONTAL_INSERT_BY_RANGE(按照范围水平插入)实例化模式。
·如果存在至少一个“Critical”字段755取值“YES”和与并置两个单元格范围STI_range 1328和STI_vertical_kept_range 1331构成的单元格范围部分重叠、或与单元格范围STI_vertical_flushed_range 1332部分重叠、或包括在单元格范围STI_vertical_flushed_range 1332内的现有STI,那么,局部测试变量STI_horizontal_range_critical(STI水平范围关键性)取值“YES”;否则,局部测试变量STI_horizontal_range_critical取值“NO”。
·如果存在至少一个“Critical”字段755取值“NO”和与并置两个单元格范围STI_range 1328和STI_vertical_kept_range 1331构成的单元格范围部分重叠、或与单元格范围STI_vertical_flushed_range 1332部分重叠、或包括在单元格范围STI_vertical_flushed_range 1332内的现有STI,那么,局部测试变量STI_horizontal_range_other(STI水平范围其它)取值“YES”;否则,局部测试变量YESSTI_horizontal_range_other取值“NO”。
·如果单元格范围STI_vertical_flushed_range 1332内的所有单元格都是空的(不包含数据),那么,局部测试变量STI_horizontal_range_data取值“NO”;否则,局部测试变量STI_horizontal_range_data取值“YES”。
第四,研究VERTICAL_INSERT(垂直插入)实例化模式。
·如果存在至少一个“Critical”字段755取值“YES”和与由当前所选单元格1327所在的整个列组成的单元格范围部分重叠、或与由最右侧STI_width 1325个列构成的单元格范围部分重叠、或包括在由最右侧STI_width1325个列构成的单元格范围内的现有STI,那么,局部测试变量STI_vertical_critical(STI垂直关键性)取值“YES”;否则,局部测试变量STI_vertical_critical取值“NO”。
·如果存在至少一个“Critical”字段755取值“NO”和与由当前所选单元格1327所在的所有列组成的单元格范围部分重叠、或与由最右侧STI_width 1325个列构成的单元格范围部分重叠、或包括在由最右侧STI_width1325个列构成的单元格范围内的现有STI,那么,局部测试变量STI_verticalother(STI垂直其它)取值“YES”;否则,局部测试变量STI_vertical_other取值“NO”。
·如果由最右侧STI_width 1325个列构成的单元格范围内的所有单元格都是空的(不包含数据),那么,局部测试变量STI_vertical_data(STI垂直数据)取值“NO”;否则,局部测试变量STI_vertical_data取值“YES”。
第五,研究VERTICAL_INSERT_BY_RANGE(按照范围垂直插入)实例化模式。
·如果存在至少一个“Critical”字段755取值“YES”和与并置两个单元格范围STI_range 1328和STI_horizontal_kept_range 1329构成的单元格范围部分重叠、或与单元格范围STI_horizontal_flushed_range 1330部分重叠、或包括在单元格范围STI_horizontal_flushed_range 1330内的现有STI,那么,局部测试变量STI_vertical_range_critical(STI垂直范围关键性)取值“YES”;否则,局部测试变量STI_vertical_range_critical取值“NO”。
·如果存在至少一个“Critical”字段755取值“NO”和与并置两个单元格范围STI_range 1328和STI_horizontal_kept_range 1329构成的单元格范围部分重叠、或与单元格范围STI_horizontal_flushed_range 1330部分重叠、或包括在单元格范围STI_horizontal_flushed_range 1330内的现有STI,那么,局部测试变量STI_vertical_range_other(STI垂直范围其它)取值“YES”;否则,局部测试变量STI_vertical_range_other取值“NO”。
·如果单元格范围STI_horizontal_flushed_range 1330内的所有单元格都是空的(不包含数据),那么,局部测试变量STI_vertical_range_data(STI垂直范围数据)取值“NO”;否则,局部测试变量STI_vertical_range_data取值“YES”。
·在步骤1409中,在显示设备106上显示ST实例化器对话框1300。如果局部变量STI_critical取值“YES”,“Critical”复选框1314显示复选标记;否则(值“NO(否)”),Critical”复选框1314保持空白显示。用局部变量ST_name初始化标记框1315。将局部变量STI_element的值填入文本框1312。按如下顺序将如下局部变量的值从左到右、从顶行开始逐行填入15个标记框1304:STI_overlay_critical、STI_overlay_other、STI_overlay_data、STI_hori-zontal_critical、STI_horizontal_other、STI_horizontal_data、STI_ho-rizontal_range_citical、STI_horizontal_range_other、STI_horizontal_range_data、STI_vertical_critical、STI_vertical_other、STI_vertical_data、STI_vertical_range_citical、STI_vertical_range_other、和STI_vertical_range_data。
然后,如果局部变量STI_mode取相应值OVERLAY、HORIZONTAL_INSERT、HORIZONTAL_INSERT_BY_RANGE、VERTICAL_INSERT、或VERTICAL_INSERT_BY_RANGE,那么,选项按钮“Overlay”1309、“Horizontal Insert”1308、“Horizontal Insert by Range”1307、“VerticalInsert”1306、或“Vertical Insert by Range”1305独自显示黑点。最后,一旦如下局部变量之一取值“YES(是)”:STI_too_wide、STI_too_high、STI_overlay_critical(只考虑局部变量STI_mode是否等于OVERLAY)、STI_horizontal_critical(只考虑局部变量STI_mode是否等于HORIZONTAL_INSERT)、STI_vertical_critical(只考虑局部变量STI_mode是否等于VERTICAL_INSERT)、STI_horizontal_range_critical(只考虑局部变量STI_mode是否等于HORIZONTAL_INSERT_BY_RANGE)、和STI_vertical_range_critical(只考虑局部变量STI_mode是否等于VERTICAL_INSERT_BY_RANGE),禁用“Create(创建)”按钮1303;否则,使能“Create”按钮1303。
·在步骤1410中,该方法等待ST实例化器对话框1300上、或有关当前所选单元格的任何改变的任何用户动作。这样的用户动作通常来自用定位设备105的点击,但也可以采取其它类似形式,譬如,键盘104上的特定键组合(但不限于此),或本文未作进一步规定的任何其它类似手段。
·在步骤1411中,检测ST实例化器对话框1300上、或有关当前所选单元格的改变的用户动作。
·如果用户动作是点击“Create”按钮1303,那么,将控制交给步骤1416;
·如果用户动作是点击旋钮1313的上部,那么,将控制交给步骤1415;
·如果用户动作是点击旋钮1313的下部,那么,将控制交给步骤1414;
·如果用户动作是点击“Critical(关键性)”按钮1314,那么,将控制交给步骤1413;
·如果用户动作是点击选项按钮1309、1308、1307、1306、和1305之一,那么,将控制交给步骤1412;
·如果用户动作是点击“Cancel”按钮1302或关闭窗口按钮1301,那么,将控制交给步骤1418;
·最后,如果用户动作是改变当前所选单元格的位置,那么,将控制交给步骤1406。
·在步骤1412中,如果电子表格用户用定位设备105分别点击选项按钮1309、1308、1307、1306、或1305,局部变量STI_mode取值OVERLAY、HORIZONTAL_INSERT、HORIZONTAL_INSERT_BY_RANGE、VERTICAL_INSERT、或VERTICAL_INSERT_BY_RANGE。然后,将控制交给步骤1406。
·在步骤1413中,更新局部变量STI_critical,以便在值“YES”和“NO”之间切换。然后,将控制交给步骤1406。
·在步骤1414中,只要其值保持大于等于局部变量STI_min的值,将局部变量STI_element减1(一)。然后,将控制交给步骤1406。
·在步骤1415中,只要其值保持小于等于局部变量STI_max的值,将局部变量STI_element加1(一)。然后,将控制交给步骤1406。
·在步骤1416中,访问STIT表750,以便从中除去与如在步骤1408期间对局部变量STI_mode所代表的插入模式识别的那样,新实例的引入破坏的STI相对应的每个记录751。
然后,更新STT表720,以反映每个STI的除去。对于每个除去的STI,将其“Name”字段722等于与除去STI相对应的STIT表750的记录751的“ST”字段753的记录721的“REFERENCED”属性729的“INSTANCEREFERENCE”(IR)字段729c除以2(二)。
·在步骤1417中,调用例程CreateSTI(创建STI)。
·在步骤1418中,关闭ST实例化器对话框1300,以便它从显示设备106上消失。最后,将控制交还给最初步骤1401,以便处理任何进一步的ST实例化器命令。
如下步骤,即,图14B的所有部分对应于像用在本发明优选实施例中那样的CreateSTI例程的执行。
·在步骤1419中,在STIT表750中引入新记录751。在这个记录751内,用单元格范围STI_range 1328的地址初始化“Address(地址)”字段752,用局部变量ST_name的值初始化“ST”字段753,用局部变量STI_element的值初始化“Element#”字段754,用局部变量STI_critical的值初始化“Critical”字段755,用构成新STI的页眉部分的元元素的个数(这个数字等于与新STI遵从的ST相关联的STDT表760的页眉部分767中的对(pair)数)初始化“Header Size(页眉大小)”字段756,和用构成新STI的页脚部分的元元素的个数(这个数字等于与新STI遵从的ST相关联的STDT表760的页脚部分766中的对数)初始化“Footer Size(页脚大小)”字段757。然后,扫描STT表720,以便识别发现其“Name”字段等于局部变量ST_name的记录721。一旦找到,通过将“INSTANCE REFERENCE”子字段729c乘以2(二),更新这个记录721的“Type”字段727内的“REFERENCED”属性729。
·在步骤1420中,进行测试以检验局部变量STI_mode的值。
·如果发现这个值等于OVERLAY,那么,将控制交给步骤1425;
·如果发现这个值等于HORIZONTAL_INSERT,那么,将控制交给步骤1424;
·如果发现这个值等于HORIZONTAL_INSERT_BY_RANGE,那么,将控制交给步骤14244;
·如果发现这个值等于VERTICAL_INSERT,那么,将控制交给步骤1423;
·如果发现这个值等于VERTICAL_INSERT_BY_RANGE。然后,将控制交给步骤1421。
·在步骤1421中,选择单元格范围STI_range 1328以便成为当前所选单元格范围,该当前所选单元格范围保持在其前者的位置1327上,然后,进行“将列插入所选范围内”的常规操作。
·在步骤1422中,选择单元格范围STI_range 1328以便成为当前所选单元格范围,该当前所选单元格范围保持在其前者的位置1327上,然后,进行“将行插入所选范围内”的常规操作。
·在步骤1423中,选择单元格范围STI_range 1328以便成为当前所选单元格范围,该当前所选单元格范围保持在其前者的位置1327上,然后,进行“列插入”的常规操作。然后,将控制交给步骤1425。
·在步骤1424中,选择单元格范围STI_range 1328以便成为当前所选单元格范围,该当前所选单元格范围保持在其前者的位置1327上,然后,进行“行插入”的常规操作。然后,将控制交给步骤1425。
·在步骤1425中,将局部变量STI_index初始化成局部变量STI_element所取的值。然后,分析STT表720,以便识别其“Name”字段722与局部变量ST_name的值匹配的记录721。在这个记录721内检索允许在存储器中定位与要创建的新STI遵从的ST相关联的STDT表760的“Description Ptr”字段724。然后,将在这个STDT表760内找到的元素或MEF名称和元素或MEP名称的第一对761设置成当前名称对(EF或MEF名称,EP或MEP名称)。
·在步骤1426中,分析EPT表710,以便找出发现其“Name”字段712等于当前对内的EP或MEP名称的记录711。一旦找到这个记录711,检索它的“Description Ptr”字段714,以便在存储器中定位例示EP或MEP的单元格范围。只通过值将这个EP或MEP的描述复制-粘贴到当前所选单元格上,以便STI_range内的相应行接受EP或MEP初始值。然后,分析EFT表700,以便找出发现其“Name”字段702等于当前对内的EF或MEF名称的记录701。一旦找到这个记录701,检索它的“Description Ptr”字段704,以便在存储器中定位例示EF或MEF的单元格范围。只通过属性将这个EF或MEF的描述复制-粘贴到当前所选单元格上,以便STI_range内的相应行接受EF或MEF属性。
·在步骤1427中,进行测试以检验当前对(EF或MEF名称,EP或MEP名称)对应于元素还是元元素。在第一种情况下,将控制交给步骤1428,和在第二种情况下,将控制交给步骤1429。
·在步骤1428中,将局部变量STI_index减1(一)。然后,将控制交给步骤1430。
·在步骤1429中,进行测试以检验当前对(EF或MEF名称,EP或MEP名称)是否是STDT表760内的最后一个763。如果情况是这样,通过使控制返回到例程调用程序完成CreateSTI的执行;否则,将控制交给步骤1431。
·在步骤1430中,进行测试以检验局部变量STI_index是否等于0(零)。如果情况是这样,将控制交给步骤1429;否则,将控制交给步骤1432。
·在步骤1431中,使STDT表760中接在当前一对之后的名称对(EF或MEF名称,EP或MEP名称)成为当前名称对。
·在步骤1432中,将当前所选单元格向下移动一行。然后,将控制交给步骤1426。
E7.STI删除管理器方法
图15A的流程图1800概述了在本发明的优选实施例中使用的用于在STI内删除选定单元格的内容或选定元素、或者甚至删除整个STI的方法。该方法可被看作STI删除管理器命令的处理。
·在步骤1801,该方法处于其缺省状态,等待启动该处理的事件。
·在步骤1802,作为用户操作的结果,检测到STI删除管理器命令。该操作可以例如是键盘104上的特定键组合,或者定点设备105在特定按钮上的点击,或者未在此具体指定的任何其它类似手段。
当检测到STI删除管理器命令时,当前电子表格选择对应于有可能简化到单个单独单元格的单元格范围,其被称作当前选定单元格范围,并且包括当前选定单元格。如果该当前选定单元格不是当前选定单元格范围内的左上单元格,则当前选定单元格范围的左上单元格成为当前选定单元格。
·在步骤1803,执行测试,以检查当前选定单元格是否位于现有STI内。通过解析STIT表750并且在每个记录751中访问“地址”字段752来确定在该字段中指定的单元格范围地址是否包括单独的当前选定单元格的地址,来执行该测试。如果是,则当前选定单元格包含在名称为STDM_instance_range(STDM实例范围)的STI中,并且控制转到步骤1804;否则,控制转到步骤1811。
·在步骤1804,首先检索在步骤1803找到的记录751,以根据其描述当前选定单元格所属的STI STDM_instance_range的字段来初始化局部变量:以字段“ST”753的值初始化局部变量ST_name;以“元素#”字段754的值初始化局部变量STDM_element(STDM元素);以“关键性”字段755的值初始化局部变量STDM_critical(STDM关键性);以“页眉大小”字段756的值初始化局部变量STDM_header_size;以“页脚大小”字段757的值初始化局部变量STDM_footer_size。然后,使用局部变量ST_name来解析STT表720,以便查找其“名称”字段722匹配于参数ST_name的记录721。一旦找到该记录721,则将其字段“最小元素#”725存储为局部变量STDM_min。然后,以值“DELETE_IN_FIELDS_IN_SELECTED_RANGE(在选定范围内删除输入字段)”初始化另一个局部变量STDM_mode。然后,使用当前选定单元格的位置来初始化与单元格范围STDM_instance_range的左上单元格和当前选定单元格之间的行数对应的局部变量STDM_offset_height(STDM偏移高度)。然后,以局部变量STDM_height(STDM高度)表示当前选定的单元格范围STDM_range(STDM范围)的行数。
·在步骤1805,执行一系列测试,以确定当前选定单元格范围相对于当前STI STDM_instance_range的相对位置。首先,如果局部变量STDM_offset_height的值小于局部变量STDM_header_size的值,则局部变量STDM_header_overlap(STDM页眉重叠)取值1(壹);否则,局部变量STDM_header_overlap取值0(零)。然后,如果局部变量STDM_offset_height和STDM_height的值之和被发现大于局部变量STDM_header_size和STDM_element的值之和,则局部变量STDM_footer_overlap(STDM页脚重叠)取值1(壹)。然后,局部变量STDM_body_overlap(STDM主体重叠)取下式的值:STDM_header_overlap×STDM_datal(数据1)+(1-STDM_header_overlap)×STDM_data2(数据2),其中如果局部变量STDM_offset_height和STDM_height的值之和被发现大于(相应地,小于或等于)局部变量STDM_header_size的值,则STDM_data1取值1(相应地,0);并且如果局部变量STDM_offset_height的值被发现小于(相应地,大于或等于)局部变量STDM_header_size和STDM_element的值之和,则STDM_data2取值1(相应地,0)。
·在步骤1806,对被删除元素的数目进行求值,然后验证剩余元素数将不会太小,即低于下限STDM_min(STDM最小)。该被删除元素数被记录在其值由下式给出的局部变量STDM_delete_element_#(STDM删除元素数)中:STDM_body_overlap×(STDM_height-STDM_header_overlap×(STDM_header_size-STDM_offset_height)-STDM_footer_overlap×(STDM_offset_height+SDM_height-STDM_header_size-STDM_element))。
·在步骤1807,如果局部变量STDM_deleted_element#和STDM_min的值之和被发现大于局部变量STDM_element的值,则将第一局部变量STDM_too_small(STDM太小)设为值“是”;否则,该局部变量STDM_too_small取值“否”。然后,如果局部变量STDM_header_overlap和STDM_footer_overlap都取值0(零),则将第二局部变量STDM_outside_body(STDM主体外部)设为值“否”;否则,将该局部变量STDM_outside_body设为值“是”。
·在步骤1808,在显示设备106上显示STI删除管理器对话框1900。如果局部变量STDM_critical(关键性)取值“是”,则“关键性”复选框1910显示选中标记;否则(值“否”),则“关键性”复选框1910保持空白空显示。以局部变量ST_name的值初始化标签框1911。以局部变量STDM_height的值填充文本框1908。以局部变量STDM_too_small的值填充标签框1907,并且以局部变量STDM_outside_body的值填充标签框1904。然后,如果局部变量STDM_mode取各个值
·在选定范围内删除输入字段
(DELETE_IN_FIELDS_IN_SELECTED_RANGE),或
·在选定行内删除输入字段(DELETE_IN_FIELDS_IN_SELECTED_ROW),或
·删除选定元素(DELETE_SELECTED_ELEMENTS),或
·删除选定实例(DELETE_SELECTED_INSTANCE),
则选项按钮1905或1906或1912或1913单独显示黑点。最后,当局部变量STDM_mode等于“删除选定元素”时,一旦以下局部变量之一取值“是”:STDM_too_high(STDM太高)、STDM_outside_body,则禁用“删除”按钮1903;否则,启用“删除”按钮1903。
·在步骤1809,该方法等待ST删除管理器对话框1900上的任何用户操作。这样的用户操作典型地通过用定点设备105点击而产生,但是也可以采取其它类似形式,例如但不限于键盘104上的特定键组合,或者未在此具体指定的任何其它类似装置。
·在步骤1810,检测ST删除管理器对话框1900上的用户操作。
·如果用户操作是对“删除”按钮1903的点击,则控制转到步骤1824;
·如果用户操作是对滚动按钮1909的上部分的点击,则控制转到步骤1821;
·如果用户操作是对滚动按钮1909的下部分的点击,则控制转到步骤1820;
·如果用户操作是对“关键性”复选框1910的点击,则控制转到步骤1822;
·如果用户操作是对选项按钮1906或1905或1912或1913之一的点击,则控制转到步骤1823;
·如果用户操作是对“取消”按钮1902或关闭窗口按钮1901的点击,则控制转到步骤1830;
·在步骤1811,以值“内容删除”(CONTENT_DELETE)初始化局部变量STDM_mode(STDM模式)。然后,分别以局部变量STDM_height(STDM高度)和STDM_width(STDM宽度)表示当前选定单元格范围STDM_range(STDM范围)的行数和列数。然后,将单元格范围STDM_right_range(STDM右侧范围)确定为与STDM_range共享相同行且占据位于单元格范围STDM_range右侧的列的单元格范围。然后,将单元格范围STDM_bottom_range(STDM底部范围)确定为与STDM_range共享相同列且占据位于STDM_range的行之下的行的单元格范围。然后,将单元格范围STDM_left_range(STDM左侧范围)确定为与STDM_range共享相同行且占据位于单元格范围STDM_range的左侧的列的单元格范围。然后,将单元格范围STDM_top_tange(STDM顶部范围)确定为与STDM_range共享相同列且占据位于STDM_range的行之上的行的单元格范围。
·在步骤1812,执行若干测试,以便根据四种可能的删除模式评测删除对任何已经存在的STI或数据的潜在影响。这些测试要求解析STIT表750,并且访问每个记录751以了解每一个已经定义的STI的地址(“地址”字段752)和重要性(“关键性”字段755)。这些测试评测两个给定的单元格范围是否部分重叠(意味着在第一单元格范围中存在至少一个属于第二单元格范围的单元格,以及至少一个不属于第二单元格范围的单元格),或者第一给定单元格范围是否包括在第二给定单元格范围内(意味着属于第一单元格范围的每一个单元格也属于第二单元格范围)。可以使用不同的传统范围比较技术来评测范围部分重叠或者范围包含,而不脱离本发明的精神;在本发明的优选实施例中将不描述它们。
第一,研究“水平删除”(HORIZONTAL_DELETE)删除模式。
·如果存在至少一个现有的STI,其“关键性”字段755取值“是”并且与由当前选定的单元格范围STDM_range所在的全部行构成的单元格范围部分重叠,或者包括在由当前选定的单元格范围STDM_range所在的全部行构成的单元格范围中,则局部测试变量STDM_horizontal_critical(STDM水平关键性)取值“是”;否则局部测试变量STDM_horizontal_critical取值“否”。
·如果存在至少一个现有的STI,其“关键性”字段755取值“否”并且与由当前选定的单元格范围STDM_range所在的全部行构成的单元格范围部分重叠,或者包括在由当前选定的单元格范围STDM_range所在的全部行构成的单元格范围中,则局部测试变量STDM_horizontal_other(STDM水平其它)取值“是”;否则局部测试变量STDM_horizontal_other取值“否”。
·如果由当前选定的单元格范围STDM_range所在的全部行构成的单元格范围内的所有单元格都为空(没有包含任何数据),则局部测试变量STDM_horizontal_data(STDM水平数据)取值“否”;否则,局部测试变量STDM_horizontal_data取值“是”。
第二,研究“按照范围水平删除”(HORIZONTAL_DELETE_BY_RANGE)删除模式。
·如果存在至少一个现有的STI,其“关键性”字段755取值“是”并且与由两个单元格范围STDM_range和STDM_bottom_range的串接组成的单元格范围部分重叠,或者与单元格范围STDM_range部分重叠或者包括在其中,则局部测试变量STDM_horizontal_range_critical(STDM水平范围关键性)取值“是”;否则局部测试变量STDM_horizontal_range_critical取值“否”。
·如果存在至少一个现有的STI,其“关键性”字段755取值“否”并且与由两个单元格范围STDM_range和STDM_bottom_range的串接组成的单元格范围部分重叠,或者与单元格范围STDM_range部分重叠或者包括在其中,则局部测试变量STDM_horizontal_range_other(STDM水平范围其它)取值“是”;否则局部测试变量STDM_horizontal_range_other取值“否”。
·如果单元格范围STDM_range内的所有单元格都为空(没有包含任何数据),则局部测试变量STDM_horizontal_range_data(STDM水平范围数据)取值“否”;否则,局部测试变量STDM_horizontal_range_data取值“是”。
第三,研究“垂直删除”(VERTICAL_DELETE)删除模式。
·如果存在至少一个现有的STI,其“关键性”字段755取值“是”并且与由当前选定的单元格范围STDM_range所在的全部列构成的单元格范围部分重叠,或者包括在由当前选定的单元格范围STDM_range所在的全部列构成的单元格范围中,则局部测试变量STDM_vertical_critical(STDM垂直关键性)取值“是”;否则局部测试变量STDM_vertical_critical取值“否”。
·如果存在至少一个现有的STI,其“关键性”字段755取值“否”并且与由当前选定的单元格范围STDM_range所在的全部列构成的单元格范围部分重叠,或者包括在由当前选定的单元格范围STDM_range所在的全部列构成的单元格范围中,则局部测试变量STDM_vertical_other(STDM垂直其它)取值“是”;否则局部测试变量STDM_vertical_other取值“否”。
·如果由当前选定的单元格范围STDM_range所在的全部列构成的单元格范围内的所有单元格都为空(没有包含任何数据),则局部测试变量STDM_vertical_data(STDM垂直数据)取值“否”;否则,局部测试变量STDM_vertical_data取值“是”。
第四,研究“按照范围垂直删除”(VERTICAL_DELETE_BY_RANGE)删除模式。
·如果存在至少一个现有的STI,其“关键性”字段755取值“是”并且与由两个单元格范围STDM_range和STDM_right_range的串接组成的单元格范围部分重叠,或者与单元格范围STDM_range部分重叠或者包括在其中,则局部测试变量STDM_vertical_range_critical(STDM垂直范围关键性)取值“是”;否则局部测试变量STDM_vertical_range_critical取值“否”。
·如果存在至少一个现有的STI,其“关键性”字段755取值“否”并且与由两个单元格范围STDM_range和STDM_right_range的串接组成的单元格范围部分重叠,或者与单元格范围STDM_range部分重叠或者包括在其中,则局部测试变量STDM_vertical_range_other(STDM垂直范围其它)取值“是”;否则局部测试变量STDM_vertical_range_other取值“否”。
·如果单元格范围STDM_range内的所有单元格都为空(没有包含任何数据),则局部测试变量STDM_vertical_range_data(STDM垂直范围数据)取值“否”;否则,局部测试变量STDM_vertical_range_data取值“是”。
第五,调查“内容删除”(CONTENT_DELETE)删除模式。
·如果存在至少一个现有的STI,其“关键性”字段755取值“是”并且其与单元格范围STDM_range的交集包含至少一个被指定为“输出”单元格的元素或元元素单元格,则局部测试变量STDM_content_critical(STDM内容关键性)取值“是”;否则局部测试变量STDM_content_critical取值“否”。
·如果存在至少一个现有的STI,其“关键性”字段755取值“否”并且其与单元格范围STDM_range的交集包含至少一个被指定为“输出”单元格的元素或元元素单元格,则局部测试变量STDM_content_other(STDM内容其它)取值“是”;否则局部测试变量STDM_content_other取值“否”。
·如果单元格范围STDM_range内的所有单元格都为空(没有包含任何数据),则局部测试变量STDM_content_data(STDM内容数据)取值“否”;否则,局部测试变量STDM_content_data取值“是”。
·在步骤1813,执行测试,以根据在步骤1812期间分配给以下局部变量的值检查对任何现有STI的删除影响:
·STDM_horizontal_critical,
·STDM_horizontal_other,
·STDM_horizontal_range_critical,
·STDM_horizontal_range_other,
·STDM_vertical_critical,
·STDM_vertical_other,
·STDM_vertical_range_critical,
·STDM_vertical_range_other,
·STDM_content_critical,
·STDM_content_other。
如果这些局部变量都不取值“是”,则控制转到步骤1814;否则,如果这些局部变量中的至少一个取值“是”,则控制转到步骤1815。
·在步骤1814,触发在传统的电子表格环境中使用和定义的传统删除方法,然后控制返回到初始步骤1801,以便处理任何将来的STI删除管理器命令。
·在步骤1815,在显示设备106上显示ST删除管理器对话框1920。以保留值“无”初始化标签框1929。从顶行开始逐行地从左到右按照下面次序以下面局部变量的值填充15个标签框1924:
·STDM_content_critical,
·STDM_content_other,
·STDM_content_data,
·STDM_horizontal_critical,
·STDM_horizontal_other,
·STDM_horizontal_data,
·STDM_horizontal_range_critical,
·STDM_horizontal_range_other,
·STDM_horizontal_range_data,
·STDM_vertical_critical,
·STDM_vertical_other,
·STDM_vertical_data,
·STDM_vertical_range_critical,
·STDM_vertical_range_other,
·STDM_vertical_range_data。
然后,如果局部变量STDM_mode取各个值“内容删除”或“水平删除”或“按照范围水平删除”或“垂直删除”或“按照范围垂直删除”,则选项按钮1930或1928或1927或1926或1925单独显示黑点。
最后,一旦下面局部变量之一取值“是”,则禁用“删除”按钮1923:
·STDM_content_critical(仅考虑是否局部变量STDM_mode等于“内容删除”),
·STDM_horizontal_critical(仅考虑是否局部变量STDM_mode等于“水平删除”),
·STDM_vertical_critical(仅考虑是否局部变量STDM_mode等于“垂直删除”),
·STDM_horizontal_range_critical(仅考虑是否局部变量STDM_mode等于“按照范围水平删除”),
·STDM_vertical_range_critical(仅考虑是否局部变量STDM_mode等于“按照范围垂直删除”);
否则,启用“删除”按钮1923。
·在步骤1816,该方法等待ST插入管理器对话框1920上的任何用户操作。这样的用户操作典型地通过用定点设备105点击而产生,但是也可以采取其它类似形式,例如但不限于键盘104上的特定键组合或者未在此具体指定的任何其它类似装置。
·在步骤1817,检测ST插入管理器对话框1920上的用户操作。如果用户操作是对“删除”按钮1923的点击,则控制转到步骤1819;如果用户操作是对选项按钮1930或1928或1927或1926或1925之一的点击,则控制转到步骤1818;如果用户操作是对“取消”按钮1922或者关闭窗口按钮1921的点击,则控制转到步骤1830。
·在步骤1818,如果电子表格用户用定点设备105分别点击了选项按钮1930或1928或1927或1926或1925,则局部变量STDM mode取值“内容删除”或“水平删除”或“按照范围水平删除”或“垂直删除”或“按照范围垂直删除”。然后,控制转到步骤1815。
·在步骤1819,访问STIT表750,以便从其中移除与在步骤1812期间针对由局部变量STDM_mode表示的删除模式而识别的由于删除操作而遭到破坏的STI对应的每一个记录751。然后,更新STT表720以反映每个STI的移除。对于每个被移除的STI,将记录721的“被引用”属性729的“实例引用”(IR)字段729c除以2(二),其中记录721的“名称”字段722等于STIT表750中与被移除的STI对应的记录751的“ST”字段753。然后,控制转到步骤1825。
·在步骤1820,只要局部变量STDM_height的值保持严格为正,就将局部变量STDM_height递减1(壹)。如果完成了递减,则通过从当前选择中移除最后的行来减小当前选定的单元格范围STDM_range。然后,控制转到步骤1805。
·在步骤1821,只要局部变量STDM_height的值保持小于局部变量STDM_element的值,就将局部变量STDM_height递增1(壹)。如果完成了递增,则通过将最后一行之下的新行增加到当前选择来扩大当前选定的单元格范围STDM_range。然后控制转移到步骤1805。
·在步骤1822,更新局部变量STDM_critical,以便在值“是”和“否”之间交换。另外,如果在“关键性”复选框1910中先前不存在或存在选中标记,则分别在这一复选框内添加选中标记或者从其中删除选中标记。然后,以局部变量STDM_critical的值更新在步骤1803找到的STIT表750的记录751内的字段“关键性”755。然后,控制转到步骤1805。
·在步骤1823,如果电子表格用户用定点设备105分别点击了选项按钮1905或1906或1912或1913,则局部变量STDM_mode取值“在选定范围内删除输入字段”或“在选定行内删除输入字段”或“删除选定元素”或“删除选定实例”。然后,控制转到步骤1805。
·在步骤1824,执行测试,以检查局部变量STDM_mode的值。
·如果该值被发现等于“在选定范围内删除输入字段”,则控制转到步骤1826;
·如果该值被发现等于“在选定行内删除输入字段”,则控制转到步骤1827;
·如果该值被发现等于“删除选定元素”,则控制转到步骤1828;
·如果该值被发现等于“删除选定实例”,则控制转到步骤1829。
·在步骤1825,执行测试,以检查局部变量STDM_mode的值。
·如果该值被发现等于“水平删除”,则控制转到步骤1831;
·如果该值被发现等于“按照范围水平删除”,则控制转到步骤1833;
·如果该值被发现等于“垂直删除”,则控制转到步骤1832;
·如果该值被发现等于“按照范围垂直删除”,则控制转到步骤1834;
·如果该值被发现等于“内容删除”,则控制转到步骤1837。
·在步骤1826,清除属于当前选定的单元格范围STDM_range的“输入”单元格。为此,访问在步骤1803识别的STIT表750的记录751的“ST”字段753,以获得关于ST的STDT表760的存储器指针,其中ST的STDT表760为STI的每个元元素和每个元素指定相关EP是什么,这又表示哪些单元格是“输入”单元格,并且哪些单元格是“输出”单元格。然后,逐一地选择单元格范围STDM_range的每行,并且对于每个选定行,从STDT表760检索对应的元素或MEP,以确定哪些单元格是“输入”单元格。为此,临时局部变量STDM_out_fields(STDM输出字段)存储被指定为“输入”或“输出”单元格的所有单元格的相对位置,作为输入或输出值的有序集合。例如,在由5个单元格构成的EP中,其中只有第三个和第五个单元格是“输出”单元格,该局部变量STDM_out_fields取值(输入,输入,输出,输入,输出)。对于该相同例子,如果选定的单元格范围仅仅占据STI的第二、第三和第四列,则忽略第一单元格,因为虽然它是“输入”单元格,但是它落在单元格范围STDM_range的限制之外,从而仅考虑第二和第四单元格。一旦确定了属于单元格范围STDM_range的“输入”单元格,则通过清除它们的内容来更新这些单元格。
·在步骤1827,更新当前选定的单元格范围STDM_range,以便将其列与由STI STDM_instance_range占据的列对齐。然后,控制转到步骤1826。
·在步骤1828,从当前STI STDM_instance_range中移除属于当前选定的单元格范围STDM_range的各行的元素。为此,首先选择由与单元格范围STDM_instance_range相同的列组成、且其行位于单元格范围STDM_range的底行(不包括)和单元格范围STDM_instance_range的底行(包括)之间的单元格范围。然后,逐行地向上移动该选定单元格范围,直到其顶行占据与先前单元格范围STDM_range的顶行相同的行的位置为止。对于该移动的每个步骤,移除单元格范围STDM_range内的行,从而在结束时移除了单元格范围STDM_range的所有行。然后,控制转到步骤1836。
·在步骤1829,与STI STDM_instance_range对应的单元格范围成为常规单元格范围,并且释放其STI资格。为此,清除该单元格范围STDM_instance_range的所有单元格的内容,然后该整个单元格范围接收在当前电子表格文件内定义的缺省显示属性。然后,控制转到步骤1835。
·在步骤1830,关闭ST删除管理器对话框1900或1920,使得它从显示设备106消失。最后,控制返回到初始步骤1801,以便处理任何将来的STI删除管理器命令。
·在步骤1831,选择单元格范围STDM_range,以使其成为当前选定的单元格范围,以便选择STDM_height行,然后执行常规的“行删除”操作。
然后,控制转到步骤1830。
·在步骤1832,选择单元格范围STDM_range,以使其成为当前选定的单元格范围,以便选择STDM_width列,然后执行常规的“列删除”操作。然后,控制转到步骤1830。
·在步骤1833,选择单元格范围STDM_range,以使其成为当前选定的单元格范围,以便选择STDM_height行,然后执行常规的“选定范围内的行删除”操作。然后,控制转到步骤1830。
·在步骤1834,选择单元格范围STDM_rahge,以使其成为当前选定的单元格范围,以便选择STDM_widt列,然后执行常规的“选定范围内的列删除”操作。然后,控制转到步骤1830。
·在步骤1835,从STIT表750中移除在步骤1803识别的记录751。然后,更新STT表720以反映该STI的移除。在将控制转到步骤1830之前,将记录721的“被引用(REFERENCED)”属性729的“实例引用(INSTANCEREFERENCE)”(IR)字段729c除以2(二),其中记录721的“名称”字段722等于与被移除的STI对应的STIT表750的记录751的“ST”字段753。
·在步骤1836,通过在所有剩余元素中恢复“输出”单元格来更新当前STI STDM_instance_range,以便防止由于元素删除的任何破坏。首先,解析STT表720,以识别其“名称”字段722匹配于局部变量ST_name的值的记录721。在该记录721内检索“描述指针(Description Ptr)”字段724,其允许在存储器中定位与当前STI STDM_instance_range所遵循的ST相关联的STDT表760。然后,访问该STDT表760内的元素对762,以检索记录在局部变量STDM_profile(STDM概要)中的EP。然后,解析EPT表710以识别其“名称”字段712匹配于局部变量STDM_profile的记录711。一旦找到,则使用“描述指针”字段714来在存储器中访问EP的描述,其表示哪些单元格是“输入”单元格,并且哪些单元格是“输出”单元格。为此,临时局部变量STDM_out_fields存储被指定为“输出”单元格的所有单元格的相对位置,作为输入或输出值的有序集合。例如,对于由5个单元格构成的EP,其中只有第三个和第五个单元格是“输出”单元格,该局部变量STDM_out_fields取值(输入,输入,输出,输入,输出)。然后,将(其“名称”712字段匹配于局部变量STDM_profile的EPT表710的记录711的“描述指针”字段714所指向的)说明性单元格范围的每个“输出”单元格单独复制和粘贴到STISTDM_instance_range的顶元素的单元格上,其中该单元格具有该元素内的相同相对列偏移(对应于在局部变量STDM_out_fields中取值“输出”的位置)。然后,选择STI STDM_instance_range的顶元素作为当前选定的单元格范围。然后,如果该选择内的每个单元格对应于在局部变量STDM_out_fields中取值“输入”的位置,则单独地将其取消选择。在该选择内,将最左单元格设为当前选定的单元格。在此阶段,当前选择对应于所有“输出”单元格的集合。然后,扩展当前选择,以使其尽可能多的包括顶元素之下所需数目的行,使得它遍及STI STDM_instance_range的所有元素。然后,进行传统的“下复制”操作,以将第一行复制到下面行,从而当前STI STDM_instance_range的所有“输出”单元格接收正确的内容。最后,以局部变量STDM_element和STDM_height之差更新在步骤1803找到的STIT表750的记录751内的“元素#”字段754。最后,控制转到步骤1830。
·在步骤1837,清除包括在当前选定的单元格范围STDM_range内的每一个单元格的内容。然后,控制转到步骤1830。
E8.RSTI删除管理器方法
图15B的流程图1840概述了在本发明的优选实施例中使用的用于删除RSTI内的对象的方法。该方法可被看作STI删除管理器命令的处理。
·在步骤1841,该方法处于其缺省状态,等待启动该处理的事件。
·在步骤1842,作为用户操作的结果,检测到RSTI删除管理器命令。该操作可以例如是键盘104上的特定键组合、或者定点设备105在特定按钮上的点击、或者未在此具体指定的任何其它类似装置。
·在步骤1843,初始化一些局部变量:
·局部变量csr(“当前选定范围”)是与当前选定的单元格范围对应的单元格范围。
·局部变量csc(“当前选定单元格”)是与当前选定的单元格对应的单独单元格。
·局部变量cRSTITr(“当前RSTIT记录”)对应于RSTIT表2260中其“地址”字段2262属于与局部变量单元格范围csc相同的工作表的记录2261(若存在的话)。如果RSTIT表2260不包含具有占据与局部变量单元格范围csc相同的工作表的“地址”字段2262的任何记录2261,则局部变量cRSTITr缺省为值“空”。
·局部变量rir(“递归实例范围”)是其地址由cRSTITr记录2261的“地址”字段2262给出的单元格范围2001(如果不为“空”的话)。如果局部变量cRSTITr取值“空”,则局部变量rir也缺省为值“空”。
·局部变量cRSTIDT(“当前RSTIDT”)是cRSTITr记录2261的“RSTIDT Ptr”字段2265所指向的RSTIDT表2270(如果不为空的话)。如果局部变量cRSTITr取值“空”,则局部变量cRSTIDT也缺省为值“空”。
·如果局部变量rir不等于“空”,则以RSTI rir所遵循的RST的名称初始化局部变量RST_name。该名称由其“地址”字段2262属于与单元格范围csc相同的工作表的RSTIT表2260中的cRSTITr记录2261的“RST”字段2263给出。
·局部变量ir(“实例范围”)是对应于(若存在的话)包含当前选定单元格csc的STI的单元格范围。如果当前选定单元格csc不属于STI,则局部变量ir取设为“空”的缺省值。该局部变量ir的初始化通过比较局部变量csc的地址与STIT表750的每个记录751的“地址”字段752来确定。例如,通过参照图17A,如果局部变量csc对应于单元格范围2024或2022之一,则局部变量ir取值空,并且如果局部变量csc对应于单元格范围2018或2019或2020或2021或2023或2025之一,则局部变量ir对应于相应的单元格范围2034或2032或2030或2031或2033或2013。
·如果当前选定单元格csc分别处于或不处于rir单元格范围2001的主体部分2003内,则局部变量ccirb(“递归主体中的当前单元格”)是取值真或假的布尔变量。例如,通过参照图17A,如果局部变量csc对应于单元格范围2018或2020或2022或2023之一,则局部变量ccirb取值真,并且如果局部变量csc对应于单元格范围2019或2021或2024或2025之一,则局部变量ccirb取值假。
·如果局部变量ccirb等于真,则局部变量cr(“容器行”)对应于当前选定单元格csc所在的容器行单元格范围。如果局部变量ccirb等于值“空”,则局部变量cr也缺省为值“空”。例如,通过参照图17A,如果局部变量csc对应于单元格范围2019或2021或2024或2025之一,则局部变量cr取值空,而如果局部变量csc对应于单元格范围2023或2020或2018或2022之一,则它对应于相应的单元格范围2008或2009或2010或2010。
·局部变量csii(“实例中的当前选择”)是布尔变量,如果选定单元格范围csr分别包括或者不包括在STI内,则其取值真或假。例如,通过参照图17A,如果局部变量csr对应于单元格范围2018或2019或2020或2021之一,则局部变量csii取值真,而如果局部变量csr对应于单元格范围2022或2023或2024或2025之一,则取值假。
·局部变量ccii(“实例中的当前单元格”)是布尔变量,如果当前选定单元格csc分别包括或者不包括在STI内,则其取值真或假。例如,通过参照图17A,如果局部变量csc对应于单元格范围2018或2019或2020或2021或2023或2025之一,则局部变量ccii取值真,而如果局部变量csc对应于单元格范围2022或2024之一,则取值假。
·局部变量csib(“主体中的当前选择”)是布尔变量,如果选定单元格范围csr分别包括或不包括在STI的主体部分内,则取值真或假。例如,通过参照图17A,如果局部变量csr对应于单元格范围2018或2019之一,则局部变量csib取值真,而如果局部变量csr对应于单元格范围2020或2021或2022或2023或2024或2025之一,则取值假。
·以值“del_rec_inst(删除递归实例)”初始化局部变量RSTIDM_mode。
·在步骤1844,执行测试,以确定局部变量rir是否为空。如果是,则控制转到步骤1845;否则,控制转到步骤1846。
·在步骤1845,调用STI删除管理器命令(作为子例程)。当该命令完成,并且将控制返回到当前处理时,则控制转到初始步骤1841,以便处理任何将来的RSTI删除管理器命令。
·在步骤1846,执行测试,以确定由局部变量csc表示的单元格是否是由局部变量rir表示的单元格范围的一部分。如果是,则控制转到步骤1848;否则,控制转到步骤1847。
·在步骤1847,在禁用了可能污染RSTI范围rir的任何删除模式之后,遵循在现有的电子表格环境中可用的传统删除方法。如下识别这些污染删除模式:
·如果单元格范围csr与单元格范围rir共享某些行,则禁用传统的行删除模式。
·如果单元格范围csr与单元格范围rir共享某些列,则禁用传统的列删除模式。
·如果单元格范围csr与单元格范围rir共享某些单元格,则禁用传统的单元格内容删除模式。
然后,控制转到初始步骤1841,以便处理任何将来的RSTI删除管理器命令。
·在步骤1848,根据一些局部变量的值,在显示设备106上显示RSTI删除管理器对话框1940。
·以局部变量RST_name的值填充文本框1950。
·如果局部变量RSTIDM_mode取各个值“del_rec_inst”或“del_cont”或“del_elem”或“del_inst_IN”或“del_elem_IN”或“del_select_IN”,则以黑点填充选项按钮1944或1945或1946或1947或1948或1949,而属于对话框1940的其它选项按钮保持空。
·如果局部变量ccirb等于真,则启用选项按钮1945,从而用定点设备105对其的任何将来点击都将被识别为有效事件。如果局部变量ccirb等于假,则禁用选项按钮1945,从而用定点设备105对其的任何将来点击都将不被识别为有效事件。
·如果局部变量csib等于真,则启用选项按钮1946,从而用定点设备105对其的任何将来点击都将被识别为有效事件。如果局部变量csib等于假,则禁用选项按钮1946,从而用定点设备105对其的任何将来点击都将不被识别为有效事件。
·如果局部变量csii等于真,则启用选项按钮1948和1949,从而用定点设备105对它们的任何将来点击都将被识别为有效事件。如果局部变量csii等于假,则禁用选项按钮1948和1949,从而用定点设备105对它们的任何将来点击都将不被识别为有效事件。
·如果局部变量ccii等于真,则启用选项按钮1947,从而用定点设备105对其的任何将来点击都将被识别为有效事件。如果局部变量ccii等于假,则禁用选项按钮1947,从而用定点设备105对其的任何将来点击都将不被识别为有效事件。
·在步骤1849,该方法等待RSTI删除管理器对话框1940上的任何用户操作。这样的用户操作典型地通过用定点设备105点击而产生,但是也可以采取其它类似形式,例如但不限于键盘104上的特定键组合或者未在此具体指定的任何其它类似手段。
·在步骤1850,检测RSTI删除管理器对话框1940上的用户操作。
·如果用户操作是用定点设备105对被启用的选项按钮1944或1945或1946或1947或1948或1949之一的点击,则控制转到步骤1851。
·如果用户操作是用定点设备105对“删除”按钮1942的点击,则控制转到步骤1853。
·如果用户操作是用定点设备105对“取消”按钮1943或关闭窗口按钮1941的点击,则控制转到步骤1852。
·在步骤1851,根据在步骤1850由用户点击的被启用的选项按钮,更新局部变量RSTIDM_mode:
·如果用户点击了选项按钮1944,则局部变量RSTIDM_mode取值“del_rec_inst”。
·如果用户点击了选项按钮1945,则局部变量RSTIDM_mode取值“del_cont”。
·如果用户点击了选项按钮1946,则局部变量RSTIDM_mode取值“del_elem”。
·如果用户点击了选项按钮1947,则局部变量RSTIDM_mode取值“del_inst_IN”。
·如果用户点击了选项按钮1948,则局部变量RSTIDM_mode取值“del_elem_IN”。
·如果用户点击了选项按钮1949,则局部变量RSTIDM_mode取值“del_select_IN”。
然后,控制转到步骤1848。
·在步骤1852,在显示设备106上关闭RSTI删除管理器对话框1940,然后,控制转到初始步骤1841,以便处理任何将来的RSTI删除管理器命令。
·在步骤1853,执行测试,以检查局部变量RSTIDM_mode是否取值“del_rec_inst”。如果是,则控制转到步骤1854;否则,控制转到步骤1855。
·在步骤1854,从RSTI表RSTIT 2260中移除该表RSTIT 2260的当前记录cRSTITr 2261,并且删除记录cRSTITr 2261的“RSTIDT Ptr”字段2265所指向的相关RSTI描述符表RSTIDT 2270。然后,扫描RSTT表2220,以识别其“名称”字段2222被发现等于局部变量RST_name的记录2221。一旦找到,则通过将“实例引用”子字段2229c除以2(二)来更新该记录2221的“类型”字段2227内的“被引用”属性2229。
·在步骤1855,执行测试,以检查局部变量RSTIDM_mode是否取值“del_cont”。如果是,则控制转到步骤1856;否则,控制转到步骤1858。
·在步骤1856,通过移除容器行cr所占据的行来从当前工作表中删除容器行cr。
·在步骤1857,通过移除其“地址”字段752指到容器行cr之内的所有记录751来更新STIT表750。然后,通过移除与被删除的容器行cr对应的记录2271来更新RSTIDT表cRSTIDT 2270。然后,控制转到步骤1852。
·在步骤1858,执行测试,以检查局部变量RSTIDM_mode是否取值“del_elem”。如果是,则控制转到步骤1859;否则,控制转到步骤1861。
·在步骤1859,从STI ir中移除属于当前选定单元格范围csr的各行的元素。为此,首先选择由与单元格范围ir相同的列组成并且其行位于单元格范围csr的底行(不包括)和单元格范围ir的底行(包括)之间的单元格范围。然后,逐行地向上移动该选定单元格范围,直到其顶行占据与先前单元格范围esr的顶行相同行的位置为止。对于该移动的每个步骤,移除单元格范围csr ir内的行,从而在结束时移除了单元格范围csr的所有行。如果该元素移除的结果是在容器行单元格范围cr的底部留下一个空行或多个空行,则移除该空行或该多个空行。
·在步骤1860,通过在所有剩余元素中恢复“输出”单元格来更新STI ir,以防止由于元素删除的任何破坏。后续方法与在STI删除管理器命令的步骤1836所述的方法相同,并且这里不再重复。然后,通过更新对应于STI ir的记录751来改变STIT表750。更新“地址”字段752来反映ir的新范围地址,并且更新“元素#”字段754来反映STI ir内的新元素数。然后,通过在记录2271中修改与修改后的STI ir和(可能地)修改后的容器行cr对应的属性,更新RSTIDT表cRSTIDT 2270。在与STI ir相关联的单元格2280内,更新属性“STI_row(行)”2279来反映STI ir内的新行数,更新属性“Container_row(容器行)”2281来反映新的容器行数,并且更新“Container_range(容器范围)”属性2276来反映包括STI ir的容器的新地址。如果在步骤1859的结束时移除了一行或多行,则还通过类似地修改属性“Container_row(容器行)”2281和“Container_range(容器范围)”2276来更新相同记录2271的其它单元格2280。然后,控制转到步骤1852。
·在步骤1861,执行测试,以检查局部变量RSTIDM_mode是否取值“del_elem_IN”。如果是,则控制转到步骤1862;否则,控制转到步骤1863。
·在步骤1862,更新当前选定单元格范围csr,以便将其列与STI ir所占据的列对齐。然后,控制转到步骤1865。
·在步骤1863,执行测试,以检查局部变量RSTIDM_mode是否取值“del_inst_IN”。如果是,则控制转到步骤1864;否则,控制转到步骤1865。
·在步骤1864,将当前选定单元格范围csr设成等于局部变量单元格范围ir,使得ir变为新的当前选定单元格范围。
·在步骤1865,清除属于当前选定单元格范围csr的“输入”单元格。后面的方法与在STI删除管理器命令的步骤1826所述的方法相同,并且这里不再重复。然后,控制转到步骤1852。
E9.RST实例化器方法
用在本发明优选实施例中的实例化RST的方法总结在图18A和18B的流程图2100中。可以将这种方法看作RST实例化器命令的处理。
·在步骤2101中,该方法处在它的默认状态下,等待启动该进程的事件。
·在步骤2102中,作为用户动作的结果,检测RST实例化器命令。这个动作可以是,例如,键盘104上的特定键组合,定位设备105在特定按钮上的点击,或本文未作进一步规定的任何其它类似手段。
·在步骤2103中,检索命令参数和初始化一些局部变量:
·将命令参数记录在RST_name(RST名称)变量中。
·用值0(零)初始化局部变量Element#(元素数)。
·用默认值FLASE(假)初始化局部变量too_wide(太宽)。
·用默认值FLASE值初始化局部变量too_high(太高)。
·用表格(工作表)上最大可用列数初始化局部变量Max_col(最大列)。
·用表格上的最大可用行数初始化局部变量Max_row(最大行)。
·用默认值FLASE值初始化局部变量STI_present。
·用默认值FLASE值初始化局部变量RSTI_busy(RSTI忙)。
·将局部变量RSTI_top_left_cell(RSTI左上单元格)初始化成当前所选单元格。
·在步骤2104中,分析RSTT表2220,以便识别“Name”字段2222等于命令参数RST_name的记录2221(由局部变量Curr_RSTT_rec标识)。然后,将局部变量RSTI_E#设置成等于这个记录Curr_RSTT_rec 2221的“MinElement#”字段2225的值。
·在步骤2105中,将局部变量Curr_RSTDT设置成等于记录Curr_RSTT_rec 2221的“Description Ptr”字段2224所指的RSTDT表2250。然后,将局部变量Curr_RSTDT_rec设置成等于Curr_RSTDT表2250的第1单单元格记录2251。然后,将局部变量Curr_RET_rec设置成等于“Name”字段2212等于局部变量Curr_RSTDT_rec、RET表2210的记录2211。然后,将局部变量Curr_RED_RoC设置成等于记录Curr_RET_rec 2211的“Description Ptr”字段2214所指的单元格范围。
·在步骤2106中,将RSTIDT表2270装入存储器中和通过局部变量Curr_RSTIDT命名它。这个表格具有等于Curr_RSTDT表2250的行数加局部变量RSTI_E#的值减1(一)的行数。这个表格具有等于Curr_RED_RoC的列数的列数。然后,将局部变量Curr_RSTIDT_rec初始化成Curr_RSTIDT表2270的第1记录2271。
·在步骤2107中,将局部变量Curr_RSTIDT_cell初始化成Curr_RSTIDT_rec 2271的第1单元格2280。然后,将局部变量Curr_REC_Roc_cell初始化成Curr_REC_Roc单元格范围的第1单元格。
·在步骤2108中,将Curr_RSTIDT_cell 2280的“STI_col”字段2278设置成等于当用等于局部变量Curr_REC_Roc_cell的值的唯一参数调用时,函数STI_col返回的值。然后,将Curr_RSTIDT_cell 2280的“STI_row”字段2279设置成等于当用分别等于局部变量Curr_REC_Roc_cell的值和0(零)的两个参数调用时,函数STI_row返回的值。然后,将Curr_RSTIDT_cell 2280的“ST_name”字段2280设置成等于局部变量Curr_REC_Roc_cell的值。
·在步骤2109中,进行测试以检验局部变量Curr_RSTIDT_cell 2280所代表的单元格是否是局部变量Curr_RSTIDT_rec 2271所代表的记录的最后一个单元格。如果情况是这样,那么,将控制交给步骤2111;否则,将控制交给步骤2110。
·在步骤2110中,使位于局部变量Curr_RSTIDT_cell 2280所代表的单元格右边的单元格成为新Curr_RSTIDT_cell 2280。然后,使位于局部变量Curr_RET_RoC_cell所代表的单元格右边的单元格成为新Curr_RET_RoC_cell。然后,将控制交给步骤2108。
·在步骤2111中,进行测试以检验局部变量Curr_RET_rec 2211所代表的记录是否是描述RE的局部变量Curr_RET_rec 2211。如果Curr_RET_rec记录2211的“Type”字段2217的“META”属性2218等于值“NO”,就可以确定它。如果情况是这样,那么,将控制交给步骤2112;否则,将控制交给步骤2114。
·在步骤2112中,将局部变量Element#加1(一)。
·在步骤2113中,进行测试以确定局部变量Element#是否等于局部变量RSTI_E#。如果情况是这样,那么,将控制交给步骤2114;否则,将控制交给步骤2115。
·在步骤2114中,进行测试以检验局部变量Curr_RSTIDT_cell 2280所代表的单元格是否是Curr_RSTIDT_rec 2271所代表的记录的最后一个单元格。如果情况是这样,那么,将控制交给步骤2116;否则,将控制交给步骤2117。
·在步骤2115中,使Curr_RSTIDT表2270中接在Curr_RSTIDT_rec记录2271之后的记录成为新Curr_RSTIDT_rec记录2271。那么,将控制交给步骤2107。
·在步骤2116中,使Curr_RSTIDT表2270中接在Curr_RSTIDT_rec记录之后的记录成为新Curr_RSTIDT_rec记录。那么,将控制交给步骤2115。
·在步骤2117中,对于属于Curr_RSTIDT表2270的每个单元格Curr_RSTIDT_cell 2280,将“container_row”属性2281设置成等于位于Curr_RSTIDT表2270内与Curr_RSTIDT_cell同一行上的单元格Same_row_cell的“STI_row”属性2279的最大值。然后,对于属于Curr_RSTIDT表2270的每个单元格Curr_RSTIDT_cell 2280,将“container_col”属性2277设置成等于位于Curr_RSTIDT表2270内与Curr_RSTIDT_cell同一列上的单元格Same_col_cell的“STI_col”属性2278的最大值。
·在步骤2118中,将局部变量RSTI_col设置成等于属于Curr_RSTIDT表2270的第1行的单元格的“container_col”属性2277之和。然后,将局部变量RSTI_row设置成等于属于Curr_RSTIDT表2270的第1列的单元格的“container_row”属性2281之和。
·在步骤2119中,进行测试以确定局部变量RSTI_col与单独单元格RSTI_top_left_cell的列索引之和减去1(一)是否严格大于局部变量Max_col。如果情况是这样,那么,将控制交给步骤2120;否则,将控制交给步骤2121。
·在步骤2120中,将局部变量too_wide设置成等于值TRUE。
·在步骤2121中,进行测试以确定局部变量RSTI_row与单独单元格RSTI_top_left_cell的行索引之和减去1(一)是否严格大于局部变量Max_row。如果情况是这样,那么,将控制交给步骤2122;否则,将控制交给步骤2123。
·在步骤2122中,将局部变量too_high设置成等于值TRUE。
·在步骤2123中,进行测试以确定是否存在与单独单元格RSTI_top_left_cell出现在相同表格上的现有STI。这个测试可以简单地通过分析STIT表750,以便用指向与单独单元格RSTI_top_left_cell相同的表格的“Address”字段752识别任何记录751来完成。如果情况是这样,那么,将控制交给步骤2124;否则,将控制交给步骤2125。
·在步骤2124中,将局部变量STI_present设置成等于值TRUE。
·在步骤2125中,将局部变量STI_range初始化成RSTI_top_left_cell作为左上单元格、行数等于局部变量RSTI_row的值、和列数等于局部变量RSTI_col的值的单元格范围。
·在步骤2126中,进行测试以检验是否存在出现在单元格范围RSTI_range内的数据。如果情况是这样,将控制交给步骤2127;否则,将控制交给步骤2128。
·在步骤2127中,将局部变量RSTI_busy设置成等于值TRUE。
·在步骤2128中,在显示设备106上显示RST实例化器对话框2300。在这个对话框2300内,将局部变量RST_name的值填入文本字段2302,将局部变量RSTI_E#的值填入文本字段2311,将局部变量too_wide的值填入文本字段2304,将局部变量too_high的值填入文本字段2305,将局部变量STI_present的值填入文本字段2306,和将局部变量RSTI_busy的值填入文本字段2307。当且仅当三个局部变量too_wide、too_high和STI_present取相同值FALSE(假),使能“Create Instance(创建实例)”按钮2310。当且仅当两个局部变量too_wide和too_high取相同值FALSE,使能“Create Instance in a newsheet(在新工作表中创建实例)”按钮2309。
·在步骤2129中,该方法等于RST实例化器对话框2300上的任何用户动作。这样的用户动作通常来自用定位设备105的点击,但也可以采取其它类似形式,譬如,键盘104上的特定键组合(但不限于此),或本文未作进一步规定的任何其它类似手段。
·在步骤2130中,检测RST实例化器对话框2300上的用户动作。
·如果用户动作是用定位设备105点击旋钮2303的“Up”箭头上,那么,将控制交给步骤2133。
·如果用户动作是用定位设备105点击旋钮2303的“Down”箭头上,那么,将控制交给步骤2134。
·如果用户动作是用定位设备105点击“Create Instance”按钮2310,那么,将控制交给步骤2138。
·如果用户动作是用定位设备105点击“Create Instance in a newsheet”按钮2309,那么,将控制交给步骤2136。
·如果用户动作是用定位设备105点击“Cancel”按钮2308或关闭窗口按钮2301,那么,将控制交给步骤2131。
·在步骤2131中,从存储器中释放单元格范围Curr_RSTIDT。
·在步骤2132中,在显示设备106上关闭RST实例化器对话框2300,然后,将控制交还给最初步骤2101,以便处理任何未来的RST实例化器命令。
·在步骤2133中,将局部变量RSTI_E#加1(一)。
·在步骤2134中,将局部变量RSTI_E#减1(一)。
·在步骤2135中,从存储器中释放单元格范围Curr_RSTIDT。那么,将控制交给步骤2105。
·在步骤2136中,创建新表格和将其命名为curr_sheet。
·在步骤2137中,使表格curt_sheet的左上单元格成为新单独单元格RSTI_top_left_cell。
·在步骤2138中,用值OVERLAY初始化局部变量STI_mode。然后,用值YES初始化局部变量STI_critical。然后,将局部变量Curr_RSTIDT_rec初始化成Curr_RSTIDT表2270的第1记录2271。然后,将局部变量Curr_RSTIDT_cell初始化成记录Curr_RSTIDT_rec 2271的第1单元格2280。然后,将局部变量Curr_cell初始化成等于RSTI_top_left_cell。
·在步骤2139中,将Curr_RSTIDT_cell 2280的“container_range”属性2276初始化成单独单元格Curr_cell作为左上单元格、行数等于“con-tainer_row”属性2281的值、列数等于“container_col(容器列)”属性2277的值的单元格范围。
·在步骤2140中,将局部变量STI_range设置成等于Curr_RSTIDT_cell2280的“container_range”属性2276。然后,将局部变量ST_name设置成等于Curr_RSTIDT_cell 2280的“ST_name”属性2280。然后,将局部变量ST_element设置成等于“Name”字段722等于ST_name的STT表720的记录721的“Min Element#”属性2225。
·在步骤2141中,调用CreateSTI命令(作为一个子例程)。当这个命令已完成和使控制返回到当前进程时,将控制交给下一步骤2142。
·在步骤2142中,将Curr_RSTIDT_cell 2280的“STIT_rec_ptr”设置成指向刚刚在前一步骤2141期间创建的STIT记录751。
·在步骤2143中,进行测试以检验局部变量Curr_RSTIDT_cell 2280所代表的单元格是否是局部变量Curr_RSTIDT_rec 2271所代表的记录的最后一个单元格。如果情况是这样,那么,将控制交给步骤2143;否则,将控制交给步骤2144。
·在步骤2144中,将单独单元格curr_cell向右移动等于Curr_RSTIDT_cell 2280的“container_col”属性2277的值的列数。然后,使位于单独单元格Curr_RSTIDT_cell 2280右边的单元格成为新Curr_RSTIDT_cell 2280。
·在步骤2145中,进行测试以检验局部变量Curr_RSTIDT_rec 2271所代表的记录是否是局部变量Curr_RSTIDT 2270所代表的RSTIDT表的最后一个记录。如果情况是这样,那么,将控制交给步骤2147;否则,将控制交给步骤2146。
·在步骤2146中,将单独单元格RSTI_top_left_cell向下移动等于Curr_RSTIDT_cell 2280的“container_row”属性2281的值的行数。然后,将单独单元格curr_cell设置成等于单独单元格RSTI_top_left_cell。然后,使Curr_RSTIDT 2270中接在Curr_RSTIDT_rec之后的记录2271成为新Curr_RSTIDT_rec 2271。然后,使Curr_RSTIDT_rec 2271的第1单元格成为新单独单元格Curr_RSTIDT_cell 2280。
·在步骤2147中,在RSTIT表2260中创建新记录2261,以便描述刚刚创建的RSTI。将rir单元格范围2001的地址填入“Address”字段2262。将局部变量RST_name填入“RST”字段2263。将局部变量Element#填入“Element#”字段2264。将局部变量Curr_RSTIDT填入“RSTIDT Ptr”字段2265。将构成RSTI页眉2002的容器行的行数填入“Header Size”字段2266。将构成RSTI页脚2204的容器行的行数填入“Footer Size”字段2267。然后,扫描RSTT表2220,以便识别发现“Name”字段2222等于局部变量RST_name的记录2221。一旦找到,通过将“INSTANCE REFERENCE”子字段2229c乘以2(二),更新这个记录2221的“Type”字段2227内的“REFERENCED”属性2229。然后,将控制交给步骤2132。
E10.RE编辑器方法
用在本发明优选实施例中的创建或更新RE或元元素的方法总结在图20C的流程图2340中。可以将这种方法看作RE编辑器命令的处理。
·在步骤2341中,该方法处在它的默认状态下,等待启动该进程的事件。
·在步骤2342中,作为用户动作的结果,检测RE编辑器命令。这个动作可以是,例如:
·键盘104上的特定键组合;
·定位设备105在特定按钮上的点击;或
·在此本文未作进一步规定的任何其它类似手段。
·在步骤2343中,检索命令的参数。它对应于必有参数RE_name,该参数可以取保留值“NEW”,或与如在RSTMT表2230内的记录2231的“Name”字段2232中找到那样的字符串名称相对应的另一个值。将这个参数记录成局部变量。
·在步骤2344中,初始化一些局部变量:将局部变量RE_meta设置成值“NO”,将局部变量RE_size设置成值3(三),和将局部变量RE_rank(RE排序)设置成值1(壹)。
·在步骤2345中,进行测试以确定局部变量RE_name所取的值。如果发现等于“NEW”,那么,将控制交给步骤2349;否则,将控制交给步骤2346。
·在步骤2346中,查找RET表2210,以定位发现其“Name”字段2223等于局部变量RE_name所取的值的记录2211。如果找到这样的记录,那么,将控制交给步骤2348;否则,将控制交给步骤2347。
·在步骤2347中,调用异常管理器,以处理这种“不该发生”状况。这样的操作是实现相关的,可以采取不同的形式,譬如,在显示设备106上显示错误消息弹出窗口。然后,将控制交给步骤2341。
·在步骤2348中,
·根据在步骤2346中找到的记录2211的“Type”字段2217内“META”属性2218的值,将局部变量RE_meta设置成值“YES”或“NO”;
·将局部变量RE_size设置成在在步骤2346中找到的记录2211的“Column#”字段2216中找到的值;和
·将在步骤2346中找到的记录2211的“Description Ptr”字段2214所指的存储位置复制到记录成局部变量RE_buffer(RE缓冲器)的临时缓冲区上。
然后,将控制交给步骤2350。
·在步骤2349中,根据在本发明的优选实施例中采取“New XX”形式的名称字符串,确定新创建RE的新名称,其中,XX对应于对于以前定义和记录在在各自表格EFT 700、EPT 710、STT 720、RET 2210和RSST 2220的各自记录701、711、721、2211和2221中找到的“Name”字段702、712、722、2212和2222中的所有名称,保证名称唯一性的计数。只要保证新创建名称的唯一性,可以改用任何其它类似传统手段而不偏移本发明的精神。然后,将新名称记录在局部变量RE_name中。然后,在主存储器102内分配存储空间,以便以后记录新RE或RME的例示单元格范围。这个记录成局部变量RE_buffer的分配存储空间是与当前打开的电子表格文件相对应的存储空间的一部分。然后,在RET表2210中创建新记录2211,和按如下初始化这个新记录2211:
·将“Name”字段2212设置成局部变量RE_name的值;
·将“Last Change Date”字段2213设置成如中央处理器101所知的系统时间引用;
·将“Description Ptr”字段2214设置成刚刚分配的存储位置RE_buffer;
·将“Row#”字段2215设置成值1(因为在本发明的优选实施例中,在2D环境下管理RST;在3D环境下,这个字段将携带为创建的RE定义的行数);
·将“Column#”字段2216设置成局部变量RE_size的值;和
·按如下设置“Type”字段2217:将属性“META”2218设置成等于局部变量RE_meta的值,和按如下初始化属性“REFERENCED”2219:
·用还没有指定给任何其它“OWN REFERENCE”(OR)子字段709a、719a、729a、780a、2219a、2229a、或2240a的质数初始化OR子字段2219a。各种各样的传统技术可以用于识别质数,这里不作进一步详述。
·根据如下公式初始化“FILIATION REFERENCE”(FR)子字段2219b,其中,根据记录在“Description Ptr”字段2214中的结构,F集合对应于构成新RE或元元素的ST的集合:
FR=∏i∈FORi×LCM({FRi})i∈F
·用值1(一)初始化“INSTANCE REFERENCE”(IR)子字段2219c。
·用如下公式初始化“REFERENCED OBJECT”(RO)子字段2219d。其中,P集合对应于RST的集合:
如果LCM({F Ri})i∈PMod OR=0,
则RO=“YES”;
否则,RO=“NO”。
·用如下公式初始化“SELECTED CHILDREN”(SC)子字段2219e。其中,S集合对应于所选对象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”属性2242):
如果LCM({FRi})i∈SMod OR=0#OR#RE_name∈S,
则SC=“YES”;
否则,SC=“NO”。
然后,将控制交给步骤2350。
·在步骤2350中,在显示设备106上显示RE编辑器对话框2321。
·用局部变量RE_name的值初始化标记框2324。
·如果发现局部变量RE_meta等于“NO”(相应地,“YES”),将黑点填入顶部选项按钮2331(相应地,底部选项按钮2330)。
·将局部变量RE_size的值填入文本框2326。
·如果发现局部变量RE_size等于当前记录2211的“Column#”字段2216,或如果发现这个记录2211的“Type”字段2217内的属性“REFERENCED”2219拥有等于“NO”的子字段“REFERENCEDOBJECT”2219d(RO),使能按钮“Save”2333,以便将来用定位设备105对这个按钮“Save”2333的任何点击都被识别为一个有效事件。
·否则(未发现局部变量RE_size(RE大小)等于当前记录2211的“Column#”字段2216,或发现这同一个记录2211的“Type”字段2217内的属性“REFERENCED”2219拥有等于“YES”的子字段“REFERENCED OBJECT”2219d(RO),禁止按钮“Save”2333,以便将来用定位设备105对这个按钮“Save”2333的任何点击都不被识别为一个有效事件。
·用局部变量RE_rank的值初始化文本框2335。
·用属于RE_buffer和其偏移等于RE_rank的单元格的内容初始化列表框2334。在这个列表框2334中可用的名称的列表(通过点击旋钮2328)由记录在STT表720中的ST的名称构成。
·在步骤2351中,该方法等待RE编辑器对话框2321上的任何用户动作。这样的用户动作通常来自用定位设备105的点击,但也可以采取其它类似形式,譬如,键盘104上的特定键组合(但不限于此),或本文未作进一步规定的任何其它类似手段。
·在步骤2352中,检测RE编辑器对话框2321上的用户动作。
·如果用户动作是点击旋钮2328,以便选择ST名称,那么,将控制交给步骤2353;
·如果用户动作是点击按钮“Save”2333,那么,将控制交给步骤2354;
·如果用户动作是点击按钮“Save as”2332,那么,将控制交给步骤2355;
·如果用户动作是点击旋钮2329,那么,将控制交给步骤2358;
·如果用户动作是点击旋钮2327,那么,将控制交给步骤2359;
·如果用户动作是点击两个选项按钮2330或2331之一,那么,将控制交给步骤2360;
·如果用户动作是点击按钮“Done”2323或关闭窗口按钮2322,那么,将控制交给步骤2361。
·在步骤2353中,通过将偏移等于局部变量RE_rank的值的单元格的内容设置成等于列表框2334的内容,更新局部变量RE_buffer。然后,将控制交给步骤2350。
·在步骤2354中,通过刷新“Name”字段2212等于局部变量RE_name的记录2211,更新SET表2210,和将它保存成电子表格文件的一部分。为了这个目的,
·将“Last Change Date”字段2213设置成如中央处理器101所知的系统时间引用;
·将“Column#”字段2216设置成局部变量RE_size的值;和
·按如下设置“Type”字段2217:将属性“META”2218设置成等于局部变量RE_meta的值。
另外,将例示RE或元元素的当前定义的单元格范围RE_buffer复制到“Description Ptr”字段2214所指的存储位置上。然后,将控制交给步骤2350。
·在步骤2355中,对在文本框2325中找到的值进行测试,以确定它是否对应于有效新名称。相应准则是实现相关的,只要新推荐名称相对于记录在“Name”字段702、712、722、2212和2222中的所有已定义名称是唯一字符串,可以采取不同形式而不偏离本发明的精神。如果有效性和唯一性都得到证明,那么,将控制交给步骤2356;否则,将控制交给步骤2357。
·在步骤2356中,在主存储器102内分配存储空间,以便以后记录EF或MEF的例示单元格范围。这个分配的存储空间是与当前打开的电子表格文件相对应的存储空间的一部分。然后,在保存成电子表格文件的一部分的RET表2210中创建新记录2211,和按如下初始化这个新记录2211:
·将“Name”字段2212设置成在文本框2325中找到和在步骤2355中得到核实的值;
·将“Last Change Date”字段2213设置成如中央处理器101所知的系统时间引用;
·将“Description Ptr”字段724设置成刚刚分配的存储位置;
·将“Row#”字段2215设置成值1(因为在本发明的优选实施例中,在2D环境下管理RST;在3D环境下,这个字段将携带为创建的RE定义的行数);
·将“Column#”字段2216设置成局部变量RE_size的值;和
·按如下设置“Type”字段2217:将属性“META”2218设置成等于局部变量RE_meta的值,和按如下初始化属性“REFERENCED”2219:
·用还没有指定给任何其它“OWN REFERENCE”(OR)子字段709a、719a、729a、780a、2219a、2229a、或2240a的质数初始化OR子字段2219a。各种各样的传统技术可以用于识别质数,这里不作进一步详述。
·根据如下公式初始化“FILIATION REFERENCE”(FR)子字段2219b,其中,根据记录在“Description Ptr”字段2214中的结构,F集合对应于构成新RE或元元素的ST的集合:
FR=∏i∈FORi×LCM({FRi})i∈F
·用值1(一)初始化“INSTANCE REFERENCE”(IR)子字段2219c。
·用如下公式初始化“REFERENCED OBJECT”(RO)子字段2219d。其中,P集合对应于RST的集合:
如果LCM({F Ri})i∈PMod OR=0,
则RO=“YES”;
否则,RO=“NO”。
·用如下公式初始化“SELECTED CHILDREN”(SC)子字段2219e。其中,S集合对应于所选对象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”属性2242):
如果LCM({FRi})i∈SMod OR=0#OR#RE_name∈S,
则SC=“YES”;
否则,SC=“NO”。
然后,将控制交给步骤2350。
·在步骤2357中,发出警告消息通知,以便通知用户在点击“Save as”按钮2332之前,必须在文本框2325中指定有效唯一的名称。这通常可以通过在显示设备106上将警告消息显示在弹出窗口中或显示在状态栏区域中来完成,但也可以改用任何其它类似手段而不偏离本发明的精神。一旦用户通过传统手段,譬如,用定位设备105点击出现在警告消息弹出窗口内的“OK”按钮,或不偏离本发明精神的任何其它类似手段确认了这个通知消息,将控制交给步骤2350。
·在步骤2358中,如果用户用定位设备106点击了旋钮2329的向下这一侧,只要局部变量RE_rank严格保持正的,将它减1(一),和如果用户用定位设备106点击了旋钮2329的向上这一侧,只要局部变量RE_rank小于等于局部变量RE_size的值,将它加1(一)。然后,将控制交给步骤2350。
·在步骤2359中,根据定位设备105在旋钮2359上指定的方向(向上或向下),和只要其值保持正的,和小于等于在本发明的优选实施例中设置成等于254的上限,将局部变量RE_size加1(一)或减1(一)。然后,将控制交给步骤2350。
·在步骤2360中,更新局部变量RE_meta,以便如果已经点击了底部选项按钮2330(相应地,顶部选项按钮2331),使它的值变成“YES”(相应地,“NO”)。然后,将控制交给步骤2350。
·在步骤2361中,关闭RE编辑器对话框2321,以便它从显示设备106上消失。最后,将控制交还给最初步骤2341,以便处理任何未来的ST编辑器命令。
E11.STI列/行计数器方法
用在本发明优选实施例中的计数STI内的列数或行数的方法总结在图21A和21B的流程图2400和2420中。可以将这些方法看作STI_Row和STI_col函数的处理。
·在步骤2401中,第一方法处在它的默认状态下,等待对STI_Row函数的调用。
·在步骤2402中,作为用户动作的结果,检测STI_Row函数调用。该函数用名为ST_Name和STI_Element的两个参数调用。
·在步骤2403中,将STT表720的第1记录721设置成Curr_Record。
·在步骤2404中,将记录Curr_Record 721的字段Name 722、Min Element#、和Max Element#分别设置成局部变量Curr_Name、Curr_Min和Curr_Max。
·在步骤2405中,进行测试以检测局部变量Curr_Name是否等于函数参数ST_Name。如果情况是这样,那么,将控制交给步骤2409;否则,将控制交给步骤2406。
·在步骤2406中,进行测试以检测记录Curr_Record 721是否是STT表720的最后一个记录。如果情况是这样,那么,将控制交给步骤2408;否则,将控制交给步骤2407。
·在步骤2407中,使STT表720中接在Curr_Record之后的记录成为新记录Curr_Record 721。然后,将控制交给步骤2404。
·在步骤2408中,将局部变量STI_Row设置成等于0(零)。然后,将控制交给步骤2412。
·在步骤2409中,将记录Curr_Record 721的description Ptr 724所指的单元格范围设置成STDT_address(STDT地址)。
·在步骤2410中,将局部变量Element_Nbr设置成等于以局部变量Curr_Max为上界、以局部变量Curr_Min为下界的输入参数STI_Element。
·在步骤2411中,将局部变量STI_row设置成等于单元格范围STDT_adress的行数加局部变量STI_Element的值减1(一)。
·在步骤2412中,随着控制返回到函数调用程序完成STI_row函数的执行。
·在步骤2421中,第二方法处在它的默认状态下,等待对STI_Col函数的调用。
·在步骤2422中,作为用户动作的结果,检测STI_Col函数调用。该函数用名为ST_Name的一个参数调用。
·在步骤2423中,将STT表720的第1记录721设置成Curr_Record。
·在步骤2424中,将记录Curr_Record 721的字段Name 722设置成局部变量Curr_Name。
·在步骤2425中,进行测试以检测局部变量Curr_Name是否等于函数参数ST_Name。如果情况是这样,那么,将控制交给步骤2429;否则,将控制交给步骤2426。
·在步骤2426中,进行测试以检测记录Curr_Record 721是否是STT表720的最后一个记录。如果情况是这样,那么,将控制交给步骤2428;否则,将控制交给步骤2427。
·在步骤2427中,使STT表720中接在Curr_Record之后的记录成为新记录Curr_Record 721。然后,将控制交给步骤2424。
·在步骤2428中,将局部变量STI_Col设置成等于0(零)。然后,将控制交给步骤2431。
·在步骤2429中,将记录Curr_Record 721的description Ptr 724所指的单元格范围设置成STDT_address。
·在步骤2430中,将局部变量STI_Col设置成等于单元格范围STDT_adress的列数。
·在步骤2431中,随着控制返回到函数调用程序,完成STI_col函数的执行。
可替代实施例
根据本发明的方法和系统可以有利地应用在将信息元素组织成垂直构造的两维表的那些环境中。根据本发明的方法和系统可以有利地应用在将信息元素组织成多于两维的多维表的那些环境中。虽然通过参照优选实施例具体显示和描述了本发明,但本领域的普通技术人员应该明白,可以在形式和详细上作出各种各样的改变而不偏离本发明的精神和范围。

Claims (26)

1.一种包括多个数据的多维电子数据表中的方法,用于管理递归可缩放模板实例中的删除操作;递归可缩放模板实例包括沿着第一数据表维排序且对齐、并且根据递归可缩放模板而结构化的可变数目的连续递归元素实例;所述递归可缩放模板包括递归元素,其包含一个或多个可缩放模板;每个递归元素实例具有沿着所述第一数据表维的可变大小,以及沿着第二数据表维的相同大小;递归元素实例包括一个或多个可缩放模板实例;每个递归元素实例的每个可缩放模板实例沿着所述第一数据表维而对齐;每个递归元素实例内的每个可缩放模板实例沿着第二数据表维而对齐;可缩放模板实例包括根据可缩放模板而结构化的可变数目的元素;元素被定义为数据范围;数据范围包括一个或多个数据;所述方法包括以下步骤:
·检测用于删除在递归元素实例的可缩放模板实例中选择的一个或多个连续元素的删除命令;
·识别:
·在其中删除所述一个或多个选定元素的可缩放模板实例;
·可缩放模板实例中要删除的一个或多个选定元素;
·与所述可缩放模板实例相关联的可缩放模板;
·识别:
·递归可缩放模板实例和包括所识别的可缩放模板实例的递归元素实例;
·在所识别的可缩放模板实例中删除该一个或多个选定元素;所识别的可缩放模板实例的所有剩余元素保持连续;
·根据所述递归元素实例中的最大可缩放模板实例的大小,沿着所述第一数据表维调整所识别的递归元素实例的大小;所识别的递归可缩放模板实例的所有剩余递归元素实例保持连续。
2.根据权利要求1所述的方法,其中所述递归可缩放模板实例还包括页眉部分和/或页脚部分;递归可缩放模板实例的页眉部分包括预定义数目的递归元元素;递归可缩放模板实例的页脚部分包括预定义数目的递归元元素;递归元元素包括一个或多个可缩放模板;所述方法还包括以下步骤:
·检测用于删除在递归元元素实例的可缩放模板实例中选择的一个或多个连续元素的删除命令;
·识别:
·在其中删除所述一个或多个选定元素的可缩放模板实例;
·可缩放模板实例中的所述一个或多个选定元素;
·与所述可缩放模板实例相关联的可缩放模板;
·识别:
·递归可缩放模板实例和包括所识别的可缩放模板实例的递归元元素实例;
·在所识别的可缩放模板实例中删除所述一个或多个选定元素;所识别的可缩放模板实例的所有剩余元素保持连续;
·根据所述递归元元素实例中的最大可缩放模板实例的大小,沿着所述第一数据表维调整所识别的递归元元素实例的大小;所识别的递归可缩放模板实例的所有剩余递归元素实例和递归元元素实例保持连续。
3.根据权利要求1和2中的任一项所述的方法,还包括以下步骤:
·检测用于在递归可缩放模板实例中删除一个或多个选定的连续递归元素实例的删除命令;
·识别:
·在其中删除所述一个或多个递归元素实例的递归可缩放模板实例;
·在递归可缩放模板实例中要删除的一个或多个递归元素实例;
·与所述递归可缩放模板实例相关联的递归可缩放模板;
·在递归可缩放模板实例中删除所述一个或多个选定的连续递归元素实例;所识别的递归可缩放模板实例的所有剩余递归元素实例保持连续。
4.根据权利要求2所述的方法,还包括以下步骤:
·防止在递归可缩放模板实例中删除一个或多个递归元元素实例。
5.根据权利要求1和2中的任一项所述的方法,还包括以下步骤:
·检测用于删除递归可缩放模板实例的删除命令;
·识别与所述递归可缩放模板实例相关联的递归可缩放模板和所述递归可缩放模板实例;
·删除所述递归可缩放模板实例。
6.根据权利要求5所述的方法,其中在递归可缩放模板实例中删除可缩放模板实例中的一个或多个连续元素、或者删除一个或多个连续递归元素实例的所述步骤还包括以下步骤:
·确定该删除是否破坏数据表中的任何其它现有递归可缩放模板实例,当递归元素实例不再根据相关递归可缩放模板而结构化时,该递归可缩放模板实例被破坏。
7.根据权利要求6所述的方法,其中确定该删除是否破坏数据表中的任何其它现有递归可缩放模板实例的所述步骤还包括以下步骤:
·如果该删除破坏被定义为关键实例的任何递归可缩放模板实例,则取消删除。
8.根据权利要求6所述的方法,针对每个递归可缩放模板实例,包括以下步骤:
·将所述一个或多个递归可缩放模板实例的每一个定义为关键实例或非关键实例。
9.根据权利要求8所述的方法,其中在递归可缩放模板实例中删除可缩放模板实例中的一个或多个连续元素、或者删除一个或多个连续递归元素实例的所述步骤还包括以下步骤:
·确定该删除是否破坏数据表中的任何其它现有可缩放模板实例,当元素不再根据相关可缩放模板而结构化时,可缩放模板实例被破坏。
10.根据权利要求9所述的方法,其中确定该删除是否破坏数据表中的任何其它现有可缩放模板实例的所述步骤还包括以下步骤:
·如果该删除破坏被定义为关键实例的任何可缩放模板实例,则取消删除。
11.根据权利要求1和2中的任一项所述的方法,其中所述多维电子数据表是包括沿着每维由单元格地址标识的多个单元格的电子表格。
12.根据权利要求11所述的方法,其中可缩放模板实例包括可变数目的连续元素,所述连续元素具有相同大小,沿着给定电子表格维而排序且对齐,并且根据可缩放模板而结构化;元素被定义为单元格范围;所述可缩放模板包括元素格式和/或元素概要;元素格式为每个元素内的每个单元格定义一个或多个格式属性;元素概要为每个元素内的每个单元格定义单元格内容和单元格目的地;所述单元格目的地指定单元格是用于接收输入的输入单元格还是用于产生结果的输出单元格。
13.根据权利要求12所述的方法,其中在所识别的可缩放模板实例中删除一个或多个选定元素;所识别的可缩放模板实例的所有剩余元素保持连续的步骤还包括以下步骤:
·根据在可缩放模板中定义的元素概要,结构化可缩放模板实例的每个剩余元素的每个输出单元格;
·将可缩放模板实例内的每个剩余元素的每个输入单元格的内容保持不变。
14.一种系统,用于在多个数据的多维电子数据表中,管理递归可缩放模板实例中的删除操作;递归可缩放模板实例包括沿着第一数据表维排序且对齐、并且根据递归可缩放模板而结构化的可变数目的连续递归元素实例;所述递归可缩放模板包括递归元素,其包含一个或多个可缩放模板;每个递归元素实例具有沿着所述第一数据表维的可变大小,以及沿着第二数据表维的相同大小;递归元素实例包括一个或多个可缩放模板实例;每个递归元素实例的每个可缩放模板实例沿着所述第一数据表维而对齐;每个递归元素实例内的每个可缩放模板实例沿着第二数据表维而对齐;可缩放模板实例包括根据可缩放模板而结构化的可变数目的元素;元素被定义为数据范围;数据范围包括一个或多个数据;所述系统包括:
·检测装置,用于检测用于删除在递归元素实例的可缩放模板实例中选择的一个或多个连续元素的删除命令;
·第一识别装置,用于识别:
·在其中删除所述一个或多个选定元素的可缩放模板实例;
·可缩放模板实例中要删除的一个或多个选定元素;
·与所述可缩放模板实例相关联的可缩放模板;
·第二识别装置,用于识别:
·递归可缩放模板实例和包括所识别的可缩放模板实例的递归元素实例;
·删除装置,用于在所识别的可缩放模板实例中删除该一个或多个选定元素;所识别的可缩放模板实例的所有剩余元素保持连续;
·调整装置,用于根据所述递归元素实例中的最大可缩放模板实例的大小,沿着所述第一数据表维调整所识别的递归元素实例的大小;所识别的递归可缩放模板实例的所有剩余递归元素实例保持连续。
15.根据权利要求14所述的系统,其中所述递归可缩放模板实例还包括页眉部分和/或页脚部分;递归可缩放模板实例的页眉部分包括预定义数目的递归元元素;递归可缩放模板实例的页脚部分包括预定义数目的递归元元素;递归元元素包括一个或多个可缩放模板;以及其中:
·该检测装置检测用于删除在递归元元素实例的可缩放模板实例中选择的一个或多个连续元素的删除命令;
·该第一识别装置识别:
·在其中删除所述一个或多个选定元素的可缩放模板实例;
·可缩放模板实例中的所述一个或多个选定元素;
·与所述可缩放模板实例相关联的可缩放模板;
·该第二识别装置识别:
·递归可缩放模板实例和包括所识别的可缩放模板实例的递归元元素实例;
·该删除装置在所识别的可缩放模板实例中删除所述一个或多个选定元素;所识别的可缩放模板实例的所有剩余元素保持连续;
·该调整装置根据所述递归元元素实例中的最大可缩放模板实例的大小,沿着所述第一数据表维调整所识别的递归元元素实例的大小;所识别的递归可缩放模板实例的所有剩余递归元素实例和递归元元素实例保持连续。
16.根据权利要求14和15中的任一项所述的系统,其中:
·该检测装置检测用于在递归可缩放模板实例中删除一个或多个选定的连续递归元素实例的删除命令;
·该第一识别装置识别:
·在其中删除所述一个或多个递归元素实例的递归可缩放模板实例;
·在递归可缩放模板实例中要删除的一个或多个递归元素实例;
·与所述递归可缩放模板实例相关联的递归可缩放模板;
·该删除装置在递归可缩放模板实例中删除所述一个或多个选定的连续递归元素实例;所识别的递归可缩放模板实例的所有剩余递归元素实例保持连续。
17.根据权利要求15所述的系统,其中:
·该删除装置防止在递归可缩放模板实例中删除一个或多个递归元元素实例。
18.根据权利要求14和15中的任一项所述的系统,其中:
·该检测装置检测用于删除递归可缩放模板实例的删除命令;
·该第二识别装置识别与所述递归可缩放模板实例相关联的递归可缩放模板和所述递归可缩放模板实例;
·该删除装置删除所述递归可缩放模板实例。
19.根据权利要求18所述的系统,其中该删除装置在递归可缩放模板实例中删除可缩放模板实例中的一个或多个连续元素、或者删除一个或多个连续递归元素实例的所述步骤还包括以下步骤:
·确定该删除是否破坏数据表中的任何其它现有递归可缩放模板实例,当递归元素实例不再根据相关递归可缩放模板而结构化时,该递归可缩放模板实例被破坏。
20.根据权利要求19所述的系统,其中确定该删除是否破坏数据表中的任何其它现有递归可缩放模板实例的所述步骤还包括以下步骤:
·如果该删除破坏被定义为关键实例的任何递归可缩放模板实例,则取消删除。
21.根据权利要求20所述的系统,还包括定义装置,其针对每个递归可缩放模板实例,执行以下操作:
·将所述一个或多个递归可缩放模板实例的每一个定义为关键实例或非关键实例。
22.根据权利要求21所述的系统,其中该删除装置在递归可缩放模板实例中删除可缩放模板实例中的一个或多个连续元素、或者删除一个或多个连续递归元素实例的所述步骤还包括以下步骤:
·确定该删除是否破坏数据表中的任何其它现有可缩放模板实例,当元素不再根据相关可缩放模板而结构化时,可缩放模板实例被破坏。
23.根据权利要求22所述的系统,其中确定该删除是否破坏数据表中的任何其它现有可缩放模板实例的所述步骤还包括以下步骤:
·如果该删除破坏被定义为关键实例的任何可缩放模板实例,则取消删除。
24.根据权利要求14和15中的任一项所述的系统,其中所述多维电子数据表是包括沿着每维由单元格地址标识的多个单元格的电子表格。
25.根据权利要求24所述的系统,其中可缩放模板实例包括可变数目的连续元素,所述连续元素具有相同大小,沿着给定电子表格维而排序且对齐,并且根据可缩放模板而结构化;元素被定义为单元格范围;所述可缩放模板包括元素格式和/或元素概要;元素格式为每个元素内的每个单元格定义一个或多个格式属性;元素概要为每个元素内的每个单元格定义单元格内容和单元格目的地;所述单元格目的地指定单元格是用于接收输入的输入单元格还是用于产生结果的输出单元格。
26.根据权利要求25所述的系统,其中该删除装置在所识别的可缩放模板实例中删除一个或多个选定元素;所识别的可缩放模板实例的所有剩余元素保持连续的步骤还包括以下步骤:
·根据在可缩放模板中定义的元素概要,结构化可缩放模板实例的每个剩余元素的每个输出单元格;
·将可缩放模板实例内的每个剩余元素的每个输入单元格的内容保持不变。
CNB2004800103943A 2003-04-18 2004-02-27 管理递归可缩放模板实例中的删除操作的数据表中的系统和方法 Expired - Fee Related CN100388271C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03368039.8 2003-04-18
EP03368039 2003-04-18

Publications (2)

Publication Number Publication Date
CN1774711A CN1774711A (zh) 2006-05-17
CN100388271C true CN100388271C (zh) 2008-05-14

Family

ID=33186006

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800103943A Expired - Fee Related CN100388271C (zh) 2003-04-18 2004-02-27 管理递归可缩放模板实例中的删除操作的数据表中的系统和方法

Country Status (7)

Country Link
US (1) US7487436B2 (zh)
EP (1) EP1618489B1 (zh)
CN (1) CN100388271C (zh)
AT (1) ATE344947T1 (zh)
DE (1) DE602004003140T2 (zh)
HK (1) HK1090722A1 (zh)
WO (1) WO2004092978A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI571811B (zh) * 2015-11-05 2017-02-21 財團法人資訊工業策進會 流程模型整合系統之變數定義更改裝置與方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631014B2 (en) * 2006-04-27 2009-12-08 International Business Machines Corporation Method and apparatus for fast deletion of physically clustered data
US20070288883A1 (en) * 2006-06-09 2007-12-13 International Business Machines Corporation Method for consolidated launching of multiple tasks
US8302073B2 (en) * 2006-06-15 2012-10-30 International Business Machines Corporation Moving and copying dependencies along with source code
US7870536B2 (en) 2006-06-15 2011-01-11 International Business Machines Corporation Computer implemented method and system for sharing resources among hierarchical containers of resources
CN104217032B (zh) * 2014-09-28 2017-10-03 北京国双科技有限公司 数据库维度的处理方法及装置
US20170220659A1 (en) * 2016-01-29 2017-08-03 Arista Networks, Inc. System and method of key range deletions

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5033009A (en) * 1989-03-03 1991-07-16 Dubnoff Steven J System for generating worksheet files for electronic spreadsheets
US20010049683A1 (en) * 1997-07-04 2001-12-06 Masazumi Yoshikawa Data calculator performing automatic recalculation based on data structure network
WO2003014987A2 (en) * 2001-08-09 2003-02-20 International Business Machines Corporation Spreadsheet system and method for transferring the content of input cells between scalable template instances

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5272628A (en) 1990-04-16 1993-12-21 Microsoft Corporation Method and system for aggregating tables having dissimilar formats
US5613131A (en) 1993-01-29 1997-03-18 Microsoft Corporation Auto-formatting of tables in a spreadsheet program
FR2721728B1 (fr) 1994-06-28 1996-07-26 Bull Sa Procédé et dispositif de génération automatique de feuilles de calcul.
US5754858A (en) 1996-05-01 1998-05-19 Microsoft Corporation Customizable application project generation process and system
US7089256B2 (en) * 2000-07-11 2006-08-08 Knowledge Dynamics, Inc. Universal data editor
US7051276B1 (en) * 2000-09-27 2006-05-23 Microsoft Corporation View templates for HTML source documents
US6988241B1 (en) * 2000-10-16 2006-01-17 International Business Machines Corporation Client side, web-based spreadsheet
US7246311B2 (en) * 2003-07-17 2007-07-17 Microsoft Corporation System and methods for facilitating adaptive grid-based document layout

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5033009A (en) * 1989-03-03 1991-07-16 Dubnoff Steven J System for generating worksheet files for electronic spreadsheets
US20010049683A1 (en) * 1997-07-04 2001-12-06 Masazumi Yoshikawa Data calculator performing automatic recalculation based on data structure network
WO2003014987A2 (en) * 2001-08-09 2003-02-20 International Business Machines Corporation Spreadsheet system and method for transferring the content of input cells between scalable template instances

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Similarity inheritance:a new model of inheritance forspreadsheet VPLs. DJANG R W ET AL.Proceedings of the 1998 IEEE Symposium on Visual Languages. 1998
Similarity inheritance:a new model of inheritance forspreadsheet VPLs. DJANG R W ET AL.Proceedings of the 1998 IEEE Symposium on Visual Languages. 1998 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI571811B (zh) * 2015-11-05 2017-02-21 財團法人資訊工業策進會 流程模型整合系統之變數定義更改裝置與方法

Also Published As

Publication number Publication date
CN1774711A (zh) 2006-05-17
US20060206496A1 (en) 2006-09-14
DE602004003140T2 (de) 2007-04-19
EP1618489B1 (en) 2006-11-08
US7487436B2 (en) 2009-02-03
EP1618489A2 (en) 2006-01-25
ATE344947T1 (de) 2006-11-15
DE602004003140D1 (de) 2006-12-21
WO2004092978A3 (en) 2005-08-18
HK1090722A1 (en) 2006-12-29
WO2004092978A2 (en) 2004-10-28

Similar Documents

Publication Publication Date Title
CN100378723C (zh) 在数据表中管理递归可缩放模板实例中的插入操作的系统和方法
US8230321B2 (en) System in an electronic spreadsheet for displaying and/or hiding range of cells
US6292810B1 (en) Polymorphic enhanced modeling
US8095867B2 (en) System and computer program product for copying and pasting displayed elements of a range of cells in an electronic spreadsheet
US7178098B2 (en) Method and system in an electronic spreadsheet for handling user-defined options in a copy/cut—paste operation
TW535072B (en) Method, system, and program for implementing scrollable cursors in a database
US5572644A (en) System and methods for multi-dimensional information processing
US7392478B2 (en) Method and system in an electronic spreadsheet for handling graphical objects referring to working ranges of cells in a copy/cut and paste operation
US7275207B2 (en) System and method in an electronic spreadsheet for displaying and/or hiding range of cells
US7971134B2 (en) Method and system in an electronic spreadsheet for persistently filling by samples a range of cells
US20100293449A1 (en) Method for expanding and collapsing data cells in a spreadsheet report
KR20100027151A (ko) 태스크-관련 스프레드시트 워크시트
JP2013211040A (ja) 情報処理装置並びにファイル管理方法
CN100367275C (zh) 用于在数据表中创建递归可缩放模板实例的装置和方法
CN100388271C (zh) 管理递归可缩放模板实例中的删除操作的数据表中的系统和方法
US20030188258A1 (en) System and method in an electronic spreadsheet for displaying and/or hiding range of cells
JP6948492B2 (ja) 情報管理装置並びにファイル管理方法
WO2004092976A2 (en) System and method in a data table for exporting and importing recursive scalable templates
JP5718542B2 (ja) 情報処理装置並びにファイル管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1090722

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1090722

Country of ref document: HK

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080514

Termination date: 20190227