CN1777887A - 用于创建递归可缩放模板实例的数据表中的系统和方法 - Google Patents
用于创建递归可缩放模板实例的数据表中的系统和方法 Download PDFInfo
- Publication number
- CN1777887A CN1777887A CNA2004800104359A CN200480010435A CN1777887A CN 1777887 A CN1777887 A CN 1777887A CN A2004800104359 A CNA2004800104359 A CN A2004800104359A CN 200480010435 A CN200480010435 A CN 200480010435A CN 1777887 A CN1777887 A CN 1777887A
- Authority
- CN
- China
- Prior art keywords
- recurrence
- scalable template
- recursive
- sti
- field
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 193
- 238000012217 deletion Methods 0.000 claims description 17
- 230000037430 deletion Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims 2
- 230000000875 corresponding effect Effects 0.000 description 155
- 230000009471 action Effects 0.000 description 113
- 238000012360 testing method Methods 0.000 description 74
- 230000008859 change Effects 0.000 description 40
- 230000008569 process Effects 0.000 description 38
- 238000009432 framing Methods 0.000 description 32
- 238000010586 diagram Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 20
- 238000012545 processing Methods 0.000 description 19
- 230000033228 biological regulation Effects 0.000 description 18
- 238000012423 maintenance Methods 0.000 description 8
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 8
- 230000002596 correlated effect Effects 0.000 description 5
- 230000014759 maintenance of location Effects 0.000 description 5
- 238000013508 migration Methods 0.000 description 5
- 230000005012 migration Effects 0.000 description 5
- 238000011160 research Methods 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- LTXREWYXXSTFRX-QGZVFWFLSA-N Linagliptin Chemical compound N=1C=2N(C)C(=O)N(CC=3N=C4C=CC=CC4=C(C)N=3)C(=O)C=2N(CC#CC)C=1N1CCC[C@@H](N)C1 LTXREWYXXSTFRX-QGZVFWFLSA-N 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000010008 shearing Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006386 neutralization reaction Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Image Generation (AREA)
- Electron Beam Exposure (AREA)
Abstract
本发明涉及一种包括多个数据的多维电子数据表中的方法、系统和程序,其用于创建一个或多个递归可缩放模板实例;递归可缩放模板实例包括沿着第一数据表维排序且对齐并且根据递归可缩放模板而结构化的可变数目的连续递归元素实例;递归元素实例被定义为包括一个或多个可缩放模板实例;可缩放模板实例包括根据可缩放模板而结构化的可变数目的元素;元素被定义为数据范围;数据范围包括一个或多个数据;递归可缩放模板包括递归元素,其包括一个或多个可缩放模板。该方法针对要创建的每个递归可缩放模板实例包括以下步骤:选择递归可缩放模板;定义用于创建递归可缩放模板实例的位置;在所定义的位置创建沿着第一数据表维排序且对齐的一个或多个连续递归元素实例;每个递归元素实例具有沿着所述第一数据表维的可变大小,以及沿着第二数据表维的相同大小;根据为递归可缩放模板定义的递归元素结构化每个递归元素实例;沿着所述第一数据表维对齐每个递归元素实例的每个可缩放模板实例;沿着所述第二数据表维在每个递归元素实例内对齐每个可缩放模板实例。
Description
技术领域
本发明涉及通过数字计算机的信息处理领域,特别涉及一种数据表优选地是电子表格中的方法和系统,其用于创建递归可缩放模板实例。
背景技术
电子表格的一种基本价值是将数据组织成行和列,同时自动化繁琐的计算。被组织成行和列的这样一组数据的典型、常见和有价值的例子是单元格范围。即使单元格范围在电子表格环境内接收正式和严格的定义,但是它足够灵活,使得信息可以包含在单个单元格范围或者若干单元格范围的集合中。因此,单元格范围是相当有用的对象。单元格范围可以作为整个实体来定义和处理。例如,它可以在电子表格内从一处被拷贝到另一处,或者从一个电子表格文件被拷贝到另一个电子表格文件。单元格范围广泛地用于在电子表格领域内开发的应用中。非常频繁地,单元格范围根据某种结构来布置,这样变成结构化单元格范围。每个单元格的内容被定义在元素内,其中元素被定义为一行结构化单元格范围,然后重复相同种类的元素特定次数,以便存储/处理可变数目的信息片断。时常地,使用类似结构化单元格范围的若干实例。在没有其它工具实际上可用的当前背景下,通过剪切/复制和粘贴操作频繁地创建这样的类似结构化单元格范围的实例。为了对数量不断增长的信息保持高级别的智能控制,人类需要组织或结构化该信息。分级模型由于允许嵌套结构而经常被使用。这种分级结构的典型且公知的例子是计算机操作系统如DOS或微软Windows(视窗)的目录树。根目录可以包含文件和/或多个目录,这些目录本身也可以包含文件和/或多个目录等等。递归性帮助结构化信息并且保持对其的智能控制。递归性的这一需要在电子表格环境中也适用于结构化单元格范围。当在电子表格文件中定义和使用结构化单元格范围的若干实例时,经常地根据可以在不同电子表格文件之间或者甚至在单个电子表格文件内复制的特定超结构布置或“结构化单元格范围数组”来结构化它们自身。在这样的结构化单元格范围数组内,常见的是,查找遵循相同中间超结构的若干结构化单元格范围、以及遵循其它中间超结构的一些其它结构化单元格范围。然后,可以把结构化单元格范围数组视作结构化单元格范围的聚集中间超结构的集合。在传统电子表格的当前背景下,频繁地通过剪切/复制和粘贴操作创建这种结构化单元格范围数组的实例。
创建结构化单元格范围的新实例是复杂和费时的,这特别是因为传统的单元格范围显示了较强的限制:
·(i)结构信息(如列数、行数)、格式信息(如字体风格、颜色或边框)、以及内容信息(例如,公式或者原始-或情报-数据)被混合,
·(ii)单元格范围的大小在给定时刻是固定的。
因此,当电子表格用户想要创建具有相同结构的另一个单元格范围时,他/她需要连续执行几个操作。他/她需要:
1.复制-粘贴现有的结构化单元格范围,
2.区分包含原始或情报数据的区域和包含通用内容如公式的区域,
3.清空被拷贝原始数据的被拷贝结构化单元格范围,同时试图保持结构、格式和通用内容,
4.根据他的新需要,调整被拷贝结构化单元格范围的大小。
5.最终,以缺省值填充原始数据区域,以便减轻随后的数据输入。
此外,在复制和粘贴结构化单元格范围之前,用户必须为被拷贝的结构化单元格范围准备地方,这样存在覆写因此丢失在目的地处预先存在的信息的风险。尤其是当所操纵的结构化单元格范围在大小和复杂性上增长时,该操作链很快就变得繁琐、费时且易于出错。
当涉及递归时,创建结构化单元格范围数组的新实例甚至更加复杂和费时,这具体是因为结构化单元格范围数组涉及双重级别的结构:
·在较低级别,必须创建结构化单元格范围的多个并且甚至是不同的实例的集合。如前所述,该操作本身就由于传统单元格范围的限制而复杂、费时且易于出错。
·在较高级别,结构化单元格范围实例的创建将要求电子表格用户执行若干操作:
1.识别用作创建新实例的引用的结构化单元格范围数组的现有实例。
2.在目的地处准备地方来保存新实例,其中存在可能覆写因而丢失任何预先存在的信息的风险。
3.将结构化单元格范围数组的引用实例拷贝-粘贴到目的地。
4.根据他/她的新需要,调整新创建的结构化单元格范围数组实例的结构,这是通过在该数组内删除或引入结构化单元格范围实例的一个或几个中间超结构来实现的。
5.清除包括在该数组内的结构化单元格范围的每个实例的内容。
6.最终,以相关的缺省值填充结构化单元格范围的每个实例。
Steven J.Dubnoff于1989年3月3日的发明名称为“System for generatingworksheet files for 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示出了根据本发明优选实施例的RSTI的逻辑结构。
·图15B示出了根据本发明优选实施例的RST的逻辑结构。
·图16A和16B组成了示出根据本发明优选实施例的用于创建RSTI的优选方法的流程图。
·图17A、17B、17C、17D、17E和17F分别示出了RE表(RET)、RST表(RSTT)、RST管理器表(RSTMT)、RST描述符表(RSTDT)、RSTI表(RSTIT)以及RSTI描述符表(RSTIDT)的结构。
·图18A示出了根据本发明优选实施例的用于创建RSTI的优选电子表格用户界面。
·图18B示出了根据本发明优选实施例的用于编辑RE的优选电子表格用户界面。
·图18C是示出根据本发明优选实施例的用于编辑RST中的RE的优选方法的流程图。
·图19A是示出根据本发明优选实施例的用于计算包括在STI中的行数的优选方法的流程图。
·图19B是示出根据本发明优选实施例的用于计算包括在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 ofinput cells from a scalable template instance to another(用于将输入单元格内容从可缩放模板实例输出-输入到另一个的电子表格中的系统和方法)”的国际专利申请PCT/EP 02/09483(IBM参考文献FR92001 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内插入一个或多个元素。
·从STI中移除一个或多个元素。
上述功能集由一组工具支持:
·“RST管理器”方法或简称的RSTM方法;
·“EF编辑器”方法或简称的EFE方法;
·“EP编辑器”方法或简称的EPE方法;
·“ST编辑器”方法或简称的STE方法;
·“ST实例化器”方法或简称的STI方法;
递归可缩放模板(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。因此,这样的对象首先以“结构化单元格范围数组”的名称来引入。现在参照图15A和15B,将使用该RST和RSTI的简单例子来说明本申请。首先参照图15B,名称为“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_biling(ST结算)”的ST的结构记录这个客户的结算状态,和根据名为“ST_stats(ST统计)”的ST的结构,记录客户管理资源的问题统计。
然后,参照图15B,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。时常,还使用相似递归构造的单元格范围的几个实例。在如上所述的和如图15A所示的我们例子的逻辑内,在新表格中为每个客户创建相似递归构造的单元格范围。在当前没有其它工具真正可用的电子表格环境的背景下,经常通过剪切/复制和粘贴操作来创建这样相似递归构造的单元格范围的实例。我们已经描述过用于创建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客户资源库”的几个实例。现在参照图15B,定义“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_info”、和第六ST的“ST_pb_log”的结构。
·定义包含前两个ST的RE 2056的结构。
·(iv)通过如下步骤定义“NSP客户资源库”的页脚部分2054:
·定义第一ST的“ST_billing”、和第二ST的“ST_stats”的结构。
·定义包含前两个ST’s的RME 2055的结构。
根据上面的RST 2051,可以以对用户而言非常有限的成本创建像如图15A所示的那个那样的一个或几个RSTI,并因此,避免了许多出错风险。
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的范围。
例子:如图15B所示的RST 2051的RE对应于构成这个RST的主体部分2053、和由分别包含ST的“ST_res_info”和“ST_pb_log”的名称的两个字段组成的结构2056。
递归元元素:RME是属于RST、属于RST的页眉和/或页脚部分、和由用于记录ST的名称的基本字段组成的电子表格对象。RME具有与元元素的结构相似的结构,但不是被实例化成单元格范围,而是被实例化成STI的范围。
例子:如图15B所示的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例示在图15B中。它由页眉部分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例示在图15A中。这个RSTI遵从如图15B所示的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例示在图15A中,与包括在RSTI 2001内定义的STI2032和2013的单元格范围相对应。这个容器行的行数等于比STI 2013高的STI 2032的行数。
容器列(container column):容器列是属于RSTI、和与包会在RSTI的容器行内占据相同超结构位置的STI的单元格范围相对应的电子表格对象。容器列的列数等于它包含的最宽STI的列数。
例子:容器列2006例示在图15A中,与包括在RSTI 2001内占据最左位置的STI的单元格范围相对应。这个容器列的列数等于STI 2030的列数,STI2030是RSTI 2001左侧最宽的STI。
容器范围:容器范围是属于RSTI、和与容器行和容器列的交点相对应的电子表格对象。每个容器范围包含占据左上角的单个STI。RSTI内的容器范围可以被看作等效于STI内的单个单元格。
例如:容器范围2014例示在图15A中,与两者都属于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 E1ement#(最小元素数)”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表
现在参照图17A,根据本发明,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表
现在参照图17B,根据本发明,RSTT表2220对应于由几个记录2221组成的简单逻辑结构,它们的每一个对应于RST。每个记录包括六个字段:
·“Name(名称)”2222字段用于记录唯一地标识当前记录2221描述的RST的字符串。
·“Last Change Date(最后变化日期)”2223字段用于记录当前记录2221描述的RST的最后更新日期。
·“Description Ptr(描述指针)”2224字段是指向记录当前记录2221描述的RST的描述的存储位置的引用。这个存储位置可以在大容量存储器107上,在主存储器102上,或在其它传统存储器资源库装置上,这不偏离本发明的精神。这个描述是根据例示在图17D中的RSTDT表2250构造的,也就是说,被构造成RME或RE名称的有序列表。
·“Min Element#(最小元素数)”2225字段用于记录在遵从当前记录2221描述的RST的每个RSTI中找到的最小RE个数。
·“Max E1ement#(最大元素数)”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管理器表
现在参照图17C,根据本发明的优选实施例,RSTMT表2230对应于由几个记录2231组成的简单逻辑结构,它们的每一个对应于RST管理器管理的对象。每个记录包括七个字段:
·“Name(名称)”2232字段用于记录唯一地标识当前记录2231描述的对象的字符串。
·“Last Change Date(最后变化日期)”2233字段用于记录当前记录2231描述的对象的最后更新日期。
·“DescriptionPtr(描述指针)”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的例子的图17C,由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描述符表
现在参照图17D,RSTDT表2250对应于由几对RE或RME的名称2254组成的简单逻辑结构,这个结构被组织成三个子集:
·可选RST“页眉”部分2256,由像顶部名称2251那样的可变个(可能零个)RME名称组成。
·由单个RE名称组成的必有“主体”部分2252。
·可选RST“页脚”部分2255,由像底部名称2253那样的可变个(可能零个)RME名称组成。
C10.RSTI表
现在参照图17E,根据本发明的优选实施例,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描述符表
现在参照图17F,根据本发明的优选实施例,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的容器范围的地址。参照图15A,如果记录2272描述STI 2013,这个字段记录容器2014的地址(容器行2012和容器列2005)的交点。
·“Container_col(容器列)”2277字段用于记录存放记录2272描述的STI的容器范围的列数。参照图15A,如果记录2272描述STI 2013,这个字段记录列数2028。
·“STI_col(STI列)”2278字段用于记录记录2272描述的STI的列数。参照图15A,如果记录2272描述STI 2013,这个字段记录列数2026。
·“STI_row(STI行)”2279字段用于记录记录2272描述的STI的行数。
参照图15A,如果记录2272描述STI 2013,这个字段记录行数2027。
·“ST_name(ST名称)”2280字段用于记录遵从记录2272描述的STI的ST的名称。
·“Container_row(容器行)”2281字段用于记录存放记录2272描述的STI的容器范围的行数。参照图15A,如果记录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上显示如图18B所示的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(相应地,图18A)所示的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上显示如图18B所示的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 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)中描述了相应方案。
·d.RE编辑器:根据前面例示RST管理器方法的方案,电子表格用户然后可以借助于适合用在电子表格环境中的传统手段,譬如,定位设备105或键盘104(但不限于这些),调用称为“RE编辑器”的原始专用命令,以便创建新RE,创建新RME,更新现有RE,或更新现有RME。这可以借助于参照图18B所述的用户界面来例示,图18B示出了如在显示设备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和RMF组成,电子表格用户可以将新名称指定给当这个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。这可以借助于参照图18A所述的用户界面来例示,图18A示出了如显示在显示设备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(是)”或“NO(否)”的几个标记框反映出来:反映新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内引入新元素时,发生第二操作。对应的场景被描述在申请人为Aureglia等人、标题为“System and method in an electronic spreadsheet forexporting-importing the content of input cells from a scalable template instance toanother”的国际专利申请PCT/EP 02/09483(IBM参考文献FR9 2001 0029)中。
·第三操作:从已定义的STI中移除元素
当电子表格用户根据未在此详述的他或她自己的标准而决定从已定义的STI中移除一些元素、或者在已定义的STI内清除一些元素的内容、或者删除整个已定义的STI、或者甚至从当前工作表中删除一些电子表格单元格或列或行时,发生第四操作。对应的场景被描述在申请人为Aureglia等人、标题为“System and method in an electronic spreadsheet for exporting-importing thecontent of input cells from a scalable template instance to another”的国际专利申请PCT/EP 02/09483(IBM参考文献FR920010029)中。
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、17A、17B和17C,这个构造通过如下步骤来完成:将定义在记录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”。
·如果用户点击了“Templae”选项按钮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#EPEPE_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=O,
则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 Element#”字段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所指的存储位置(其中,记录着按照如图17D所示的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的例示单元格范围。这个分配的存储空间是与当前打开的电子表格文件相对应的存储空间的一部分和遵从如图17D所示的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和“Save as”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_height 1326和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覆盖数据)取值局部测试变量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,那么,局部测试变量STI_horizontal_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”;否则,局部测试变量STI_horizontal_range_other取值“NO”。
·如果单元格范围STI_vertical_fushed_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”。
·如果存在至少一个“Criticai”字段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、“HorizontalInsert”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.RST实例化器方法
用在本发明优选实施例中的实例化RST的方法总结在图16A和16B的流程图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中,使表格curr_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。
E8.RE编辑器方法
用在本发明优选实施例中的创建或更新RE或元元素的方法总结在图18C的流程图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({FRi})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({FRi})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编辑器命令。
E9.STI列/行计数器方法
用在本发明优选实施例中的计数STI内的列数或行数的方法总结在图19A和19B的流程图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 (24)
1.一种在包括多个数据的多维电子数据表中的方法,用于创建一个或多个递归可缩放模板实例;递归可缩放模板实例包括沿着第一数据表维排序且对齐并且根据递归可缩放模板而结构化的可变数目的连续递归元素实例;递归元素实例被定义为包括一个或多个可缩放模板实例;可缩放模板实例包括根据可缩放模板而结构化的可变数目的元素;元素被定义为数据范围;数据范围包括一个或多个数据;递归可缩放模板包括递归元素,其包括一个或多个可缩放模板;针对要创建的每个递归可缩放模板实例,所述方法包括以下步骤:
·选择递归可缩放模板;
·定义用于创建递归可缩放模板实例的位置;
·在所定义的位置创建沿着第一数据表维排序且对齐的一个或多个连续递归元素实例;每个递归元素实例具有沿着所述第一数据表维的可变大小,以及沿着第二数据表维的相同大小;
·根据为递归可缩放模板定义的递归元素结构化每个递归元素实例;
·沿着所述第一数据表维对齐每个递归元素实例的每个可缩放模板实例;
·沿着所述第二数据表维在每个递归元素实例内对齐每个可缩放模板实例。
2.根据前一权利要求所述的方法,所述方法包括以下预先步骤:
·创建或更新一个或多个递归元素;
创建或更新一个或多个递归元素的步骤针对每个递归元素还包括步骤:
·指定一个或多个可缩放模板;
·创建或更新一个或多个递归可缩放模板,所述步骤针对每个递归可缩放模板还包括以下步骤:
·指定递归元素。
3.根据前述权利要求中的任一项所述的方法,其中创建沿着第一数据表维对齐的可变数目的连续且有序的递归元素实例的步骤针对每个递归元素实例包括以下步骤:
·实例化在递归可缩放模板内指定的递归元素中所指定的一个或多个可缩放模板。
4.根据前述权利要求中的任一项所述的方法,其中所述递归可缩放模板实例还包括页眉部分和/或页脚部分;递归可缩放模板的页眉部分包括预定义数目的递归元元素;可缩放模板的页脚部分包括预定义数目的递归元元素;递归元元素包括一个或多个可缩放模板;所述方法还包括以下步骤:
·创建或更新一个或多个递归元元素;所述步骤针对每个递归元元素还包括以下步骤:
·指定一个或多个可缩放模板。
5.根据前述权利要求中的任一项所述的方法,其中创建或更新递归可缩放模板的步骤还包括以下步骤:
·定义递归可缩放模板页眉部分和/或递归可缩放模板页脚部分,
·定义递归可缩放模板页眉部分的步骤包括以下步骤:
·以给定的次序指定预定义数目的递归元元素;
·定义递归可缩放模板页脚部分的步骤包括以下步骤:
·以给定的次序指定预定义数目的递归元元素。
6.根据前述权利要求中的任一项所述的方法,其中创建递归可缩放模板实例、其中所述递归可缩放模板实例包括根据递归可缩放模板的主体部分而结构化的可变数目的递归元素实例的步骤包括以下预先步骤:
·创建预定义数目的连续且有序的递归元元素实例,所述递归元元素实例沿着第一数据表维而对齐,并且根据在递归可缩放模板的页眉部分中指定的一个或多个递归元元素而结构化。
7.根据前述权利要求中的任一项所述的方法,其中创建递归可缩放模板实例、其中所述递归可缩放模板实例包括根据递归可缩放模板的主体部分而结构化的可变数目的递归元素实例的步骤包括以下后继步骤:
·创建预定义数目的连续且有序的递归元元素实例,所述递归元元素实例沿着第一数据表维而对齐,并且根据在递归可缩放模板的页脚部分中指定的一个或多个递归元元素而结构化。
8.根据前一权利要求所述的方法,针对每个递归元素实例和递归元元素实例,包括以下步骤:
·根据所述递归元素实例和递归元元素实例的最大可缩放模板实例的大小,沿着所述第一数据表维调整递归元素实例和递归元元素实例的大小。
9.根据前述权利要求中的任一项所述的方法,其中创建或更新一个或多个递归元素以及可选的一个或多个递归元元素的步骤针对每个递归元素或递归元元素还包括以下步骤:
·向该递归元素或递归元元素分配:
·标识符,最好是名称;
·可选地,与最后更新的日期对应的最后变化日期;以及
·可选地,用于确定它是递归元素还是递归元元素的类型。
10.根据前述权利要求中的任一项所述的方法,还包括以下步骤:
·向每个递归元素和递归元元素分配:
·用于确定是否至少一个递归可缩放模板引用该递归元素或递归元元素的装置;
·用于确定是否至少一个递归可缩放模板实例引用该递归元素或递归元元素的装置。
11.根据前述权利要求中的任一项所述的方法,其中创建或更新一个或多个递归可缩放模板的步骤针对每个递归可缩放模板还包括以下步骤:
·向该递归可缩放模板分配:
·标识符,最好是名称;
·可选地,与该递归可缩放模板的最后更新的日期对应的最后变化日期;以及
·可选地,指定是否至少一个递归可缩放模板实例引用所述递归可缩放模板的指示符。
12.根据前述权利要求中的任一项所述的方法,还包括以下步骤:
·通过专用用户界面显示任何现有递归元素、或递归元元素、或递归可缩放模板的标识符、可选地显示其类型,并且可选地显示其最后更新的日期;
·检测用户对递归元素、递归元元素或递归可缩放模板的选择,以便编辑:
·如果选择了递归元素,则编辑选定的递归元素;
·如果选择了递归元元素,则编辑选定的递归元元素;
·如果选择了递归可缩放模板,则编辑选定的递归可缩放模板。
13.根据前述权利要求中的任一项所述的方法,还包括以下步骤:
·通过专用用户界面显示任何现有递归元素、或递归元元素、或递归可缩放模板的标识符,可选地显示其类型,并且可选地显示其最后更新的日期;
·检测用户对递归元素、递归元元素、或递归可缩放模板的选择,以便删除:
·如果选择了递归元素并且如果没有递归可缩放模板引用所述选定递归元素,则删除选定递归元素;
·如果选择了递归元元素并且如果没有递归可缩放模板引用所述选定递归元元素,则删除选定递归元元素;
·如果选择了递归可缩放模板并且如果没有递归可缩放模板实例引用所述选定递归可缩放模板,则删除选定递归可缩放模板。
14.根据前述权利要求中的任一项所述的方法,其中创建或更新一个或多个递归元元素的步骤还包括以下步骤:
·为所述递归元元素指定等于包括在为递归可缩放模板指定的递归元素中的可缩放模板数的可缩放模板数。
15.根据前述权利要求中的任一项所述的方法,还包括以下步骤:
·在相同递归可缩放模板实例中创建连续的递归元素实例和一个或多个递归元元素实例,所述递归元素实例和一个或多个元元素实例具有沿着所述第二维的相同大小。
16.根据前述权利要求中的任一项所述的方法,其中在相同递归可缩放模板实例中创建递归元素实例和一个或多个递归元元素实例的步骤还包括以下步骤:
·沿着所述第一数据表维对齐每个递归元素实例和每个递归元元素实例的每个可缩放模板实例。
17.根据前述权利要求中的任一项所述的方法,其中创建递归可缩放模板实例的步骤包括以下预先步骤:
·检查所述递归可缩放模板实例不破坏数据表上的任何现有递归可缩放模板实例或现有可缩放模板实例。
18.根据前述权利要求中的任一项所述的方法,其中所述多维电子数据表是包括沿着每维由单元格地址标识的多个单元格的电子表格。
19.根据前一权利要求所述的方法,其中可缩放模板实例包括可变数目的连续元素,所述连续元素具有相同大小,沿着给定电子表格维而排序且对齐,并且根据可缩放模板而结构化;元素被定义单元格范围;所述可缩放模板包括元素格式和/或元素概要;元素格式为每个元素内的每个单元格定义一个或多个格式属性;元素概要为每个元素内的每个单元格定义单元格内容;所述方法还包括以下步骤:
·创建或更新一个或多个元素格式和/或一个或多个元素概要,创建或更新一个或多个元素格式的步骤针对每个元素格式还包括步骤:
·指定格式说明性单元格范围;
·针对属于所述格式说明性单元格范围的每个单元格,定义一个或多个格式属性;
创建或更新一个或多个元素概要的步骤针对每个元素概要还包括步骤:
·指定概要说明性单元格范围;
·针对属于所述概要说明性单元格范围的每个单元格,定义单元格内容;
·创建或更新一个或多个可缩放模板,所述步骤针对每个可缩放模板还包括以下步骤:
·指定元素格式和/或元素概要;
·创建一个或多个可缩放模板实例,所述步骤针对每个可缩放模板实例还包括以下步骤:
·选择可缩放模板;
·定义用于创建可缩放模板实例的位置;
·在所定义的位置创建沿着给定电子表格维排序且对齐的一个或多个连续元素;
·根据可缩放模板中定义的元素格式和/或元素概要结构化每个元素。
20.根据前一权利要求所述的方法,其中针对属于所述格式说明性单元格范围的每个单元格定义一个或多个格式属性的步骤还包括以下步骤:
·针对属于所述格式说明性单元格范围的每个单元格,定义一个或多个:
·背景属性;和/或
·对齐属性;和/或
·字体属性;和/或
·线属性;和/或
·保护属性。
21.根据权利要求19至20中的任一项所述的方法,其中针对属于所述概要说明性单元格范围的每个单元格定义单元格内容的步骤还包括步骤:
·针对属于所述概要说明性单元格范围的每个单元格,定义:
·公式,所述公式引用一个或多个单元格;或
·缺省值。
22.根据权利要求19至21中的任一项所述的方法,其中针对属于所述概要说明性单元格范围的每个单元格定义单元格内容的步骤还包括步骤:
·针对属于所述概要说明性单元格范围的每个单元格,定义单元格目的地,所述单元格目的地指定单元格是用于接收输入的输入单元格还是用于产生结果的输出单元格。
23.一种计算机系统,包括被适配成执行根据前述权利要求中的任一项所述的方法的各步骤的装置。
24.一种计算机程序,包括用于在根据前一权利要求所述的系统上执行所述计算机程序时、执行根据权利要求1至22中的任一项所述的方法的各步骤的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP03368037 | 2003-04-18 | ||
EP03368037.2 | 2003-04-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1777887A true CN1777887A (zh) | 2006-05-24 |
CN100367275C CN100367275C (zh) | 2008-02-06 |
Family
ID=33186004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800104359A Expired - Lifetime CN100367275C (zh) | 2003-04-18 | 2004-02-27 | 用于在数据表中创建递归可缩放模板实例的装置和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7636882B2 (zh) |
EP (1) | EP1618491B1 (zh) |
CN (1) | CN100367275C (zh) |
AT (1) | ATE345533T1 (zh) |
DE (1) | DE602004003230T2 (zh) |
WO (1) | WO2004092977A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109873684A (zh) * | 2017-12-01 | 2019-06-11 | 晨星半导体股份有限公司 | 信号接收装置及其信号处理方法 |
CN113688298A (zh) * | 2021-08-24 | 2021-11-23 | 北京房江湖科技有限公司 | 数据的呈现方法和存储介质 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004007638A1 (de) * | 2004-02-17 | 2005-09-01 | Xapio Gmbh | Verfahren zum Erzeugen von Quellcode in einer prozeduralen, reentrantfähigen Programmiersprache aus einer Spreadsheet-Darstellung |
US7500179B2 (en) * | 2004-08-04 | 2009-03-03 | Microsoft Corporation | Method for optimizing space allocation in table layout |
SE0600876L (sv) | 2006-04-20 | 2007-10-21 | Sandvik Intellectual Property | Verktyg och skär för spånavskiljande bearbetning med primära och sekundära ingreppsmedel med rotationssymmetrisk form |
US8024492B2 (en) * | 2008-12-23 | 2011-09-20 | Schneider Electric USA, Inc. | System for managing a power monitoring system containing a multiplicity of intelligent electronic devices |
US8291313B1 (en) * | 2009-08-26 | 2012-10-16 | Adobe Systems Incorporated | Generation of a container hierarchy from a document design |
US20110137917A1 (en) * | 2009-12-03 | 2011-06-09 | International Business Machines Corporation | Retrieving a data item annotation in a view |
US8375012B1 (en) * | 2011-08-10 | 2013-02-12 | Hewlett-Packard Development Company, L.P. | Computer indexes with multiple representations |
US20140075278A1 (en) * | 2012-09-12 | 2014-03-13 | International Business Machines Coporation | Spreadsheet schema extraction |
CN105786299B (zh) * | 2014-12-22 | 2019-09-06 | 远光软件股份有限公司 | 一种信息处理方法及装置 |
Family Cites Families (15)
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 |
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 |
US5632009A (en) * | 1993-09-17 | 1997-05-20 | Xerox Corporation | Method and system for producing a table image showing indirect data representations |
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 |
JP3058129B2 (ja) * | 1997-07-04 | 2000-07-04 | 日本電気株式会社 | データ計算装置及びプログラムを記録した機械読み取り可能な記録媒体 |
US6292811B1 (en) * | 1997-09-19 | 2001-09-18 | Modernsoft, Inc. | Populating cells of an electronic financial statement |
CN1111814C (zh) * | 1998-04-06 | 2003-06-18 | 刘莎 | 开放式全息模板式人机对话语言翻译方法及全息语义标注系统 |
US7089256B2 (en) * | 2000-07-11 | 2006-08-08 | Knowledge Dynamics, Inc. | Universal data editor |
AU2002222963B2 (en) * | 2000-07-13 | 2007-05-10 | Oracle International Corporation | Performing spreadsheet-like calculations in a database system |
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 |
US7415664B2 (en) * | 2001-08-09 | 2008-08-19 | International Business Machines Corporation | System and method in a spreadsheet for exporting-importing the content of input cells from a scalable template instance to another |
US7246311B2 (en) * | 2003-07-17 | 2007-07-17 | Microsoft Corporation | System and methods for facilitating adaptive grid-based document layout |
-
2004
- 2004-02-27 CN CNB2004800104359A patent/CN100367275C/zh not_active Expired - Lifetime
- 2004-02-27 WO PCT/EP2004/003048 patent/WO2004092977A2/en active IP Right Grant
- 2004-02-27 DE DE602004003230T patent/DE602004003230T2/de not_active Expired - Lifetime
- 2004-02-27 AT AT04715322T patent/ATE345533T1/de not_active IP Right Cessation
- 2004-02-27 EP EP04715322A patent/EP1618491B1/en not_active Expired - Lifetime
- 2004-02-27 US US10/553,494 patent/US7636882B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109873684A (zh) * | 2017-12-01 | 2019-06-11 | 晨星半导体股份有限公司 | 信号接收装置及其信号处理方法 |
CN109873684B (zh) * | 2017-12-01 | 2021-05-18 | 联发科技股份有限公司 | 信号接收装置及其信号处理方法 |
CN113688298A (zh) * | 2021-08-24 | 2021-11-23 | 北京房江湖科技有限公司 | 数据的呈现方法和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2004092977A2 (en) | 2004-10-28 |
DE602004003230D1 (de) | 2006-12-28 |
EP1618491B1 (en) | 2006-11-15 |
CN100367275C (zh) | 2008-02-06 |
US7636882B2 (en) | 2009-12-22 |
WO2004092977A3 (en) | 2005-08-18 |
US20060206497A1 (en) | 2006-09-14 |
DE602004003230T2 (de) | 2007-09-06 |
ATE345533T1 (de) | 2006-12-15 |
EP1618491A2 (en) | 2006-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1774712A (zh) | 在数据表中管理递归可缩放模板实例中的插入操作的系统和方法 | |
CN1282937C (zh) | 数据媒体处理装置及数据媒体处理方法 | |
CN1168033C (zh) | 数据结构编辑装置及其编辑方法 | |
CN1204515C (zh) | 自由格式数据处理的方法和设备 | |
CN1679026A (zh) | Web服务设备和方法 | |
CN1170240C (zh) | 结构化文档检索显示方法和装置 | |
CN101040292A (zh) | 数据管理装置及其方法 | |
CN1592905A (zh) | 自动产生数据库查询的系统和方法 | |
CN1875345A (zh) | 在编译过程中表示和检查程序组件的一致性的可扩展类型系统 | |
CN1073540A (zh) | 管理类方法名 | |
CN1689022A (zh) | 可扩展标记语言流化转换器 | |
CN100342691C (zh) | 多模式对话处理方法 | |
CN1755674A (zh) | 用于同步合成,显示及处理文本和图象文件的方法和设备 | |
CN1073276A (zh) | 语言的中性对象 | |
CN1828517A (zh) | 文档处理装置和文档处理方法 | |
CN101034349A (zh) | 基于功能设计的数据库应用系统开发平台 | |
CN1749958A (zh) | 使用形状的公用图表 | |
CN1744036A (zh) | 报告软件中支持定制图形表示的系统和方法 | |
CN1795453A (zh) | 实时墨迹作图 | |
CN1607524A (zh) | 包含可变数据的文档或版面的选择性预览和校对 | |
CN1609855A (zh) | 查询优化系统和方法 | |
CN1804835A (zh) | 多级设备性能分层结构 | |
CN1379346A (zh) | 数字内容作成系统以及数字内容作成程序 | |
CN101030138A (zh) | 应用构架 | |
CN1541362A (zh) | WebJINS各种信息刊物自动编辑系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211119 Address after: New York, United States Patentee after: Qindarui Co. Address before: New York grams of Armand Patentee before: International Business Machines Corp. |
|
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20080206 |