亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

管理遞歸可縮放模板實(shí)例中的刪除操作的數(shù)據(jù)表中的系統(tǒng)和方法

文檔序號(hào):6481694閱讀:300來(lái)源:國(guó)知局
專利名稱:管理遞歸可縮放模板實(shí)例中的刪除操作的數(shù)據(jù)表中的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明涉及通過(guò)數(shù)字計(jì)算機(jī)的信息處理領(lǐng)域,特別涉及一種數(shù)據(jù)表優(yōu)選地是電子表格(spreadsheet)中的方法和系統(tǒng),其用于管理遞歸可縮放模板實(shí)例中的刪除操作。
背景技術(shù)
電子表格的一種基本價(jià)值是將數(shù)據(jù)組織成行和列,同時(shí)自動(dòng)化繁瑣的計(jì)算。被組織成行和列的這樣一組數(shù)據(jù)的典型、常見(jiàn)和有價(jià)值的例子是單元格范圍。即使單元格范圍在電子表格環(huán)境內(nèi)接收正式和嚴(yán)格的定義,但是它足夠靈活,使得信息可以包含在單個(gè)單元格范圍或者若干單元格范圍的集合中。因此,單元格范圍是相當(dāng)有用的對(duì)象。單元格范圍可以作為整個(gè)實(shí)體來(lái)定義和處理。例如,它可以在電子表格內(nèi)從一處被拷貝到另一處,或者從一個(gè)電子表格文件被拷貝到另一個(gè)電子表格文件。單元格范圍廣泛地用于在電子表格領(lǐng)域內(nèi)開發(fā)的應(yīng)用中。非常頻繁地,單元格范圍根據(jù)某種結(jié)構(gòu)來(lái)布置,這樣變成結(jié)構(gòu)化單元格范圍。每個(gè)單元格的內(nèi)容被定義在元素內(nèi),其中元素被定義為一行結(jié)構(gòu)化單元格范圍,然后重復(fù)相同種類的元素特定次數(shù),以便存儲(chǔ)/處理可變數(shù)目的信息片斷。時(shí)常地,使用類似結(jié)構(gòu)化單元格范圍的若干實(shí)例。在沒(méi)有其它工具實(shí)際上可用的當(dāng)前背景下,通過(guò)剪切/復(fù)制和粘貼操作頻繁地創(chuàng)建這樣的類似結(jié)構(gòu)化單元格范圍的實(shí)例。為了對(duì)數(shù)量不斷增長(zhǎng)的信息保持高級(jí)別的智能控制,人類需要組織或結(jié)構(gòu)化該信息。分級(jí)模型由于允許嵌套結(jié)構(gòu)而經(jīng)常被使用。這種分級(jí)結(jié)構(gòu)的典型且公知的例子是計(jì)算機(jī)操作系統(tǒng)如DOS或微軟Windows(視窗)的目錄樹。根目錄可以包含文件和/或多個(gè)目錄,這些目錄本身也可以包含文件和/或多個(gè)目錄等等。遞歸性幫助結(jié)構(gòu)化信息并且保持對(duì)其的智能控制。遞歸性的這一需要在電子表格環(huán)境中也適用于結(jié)構(gòu)化單元格范圍。當(dāng)在電子表格文件中定義和使用結(jié)構(gòu)化單元格范圍的若干實(shí)例時(shí),經(jīng)常地根據(jù)可以在不同電子表格文件之間或者甚至在單個(gè)電子表格文件內(nèi)復(fù)制的特定超結(jié)構(gòu)布置或“結(jié)構(gòu)化單元格范圍數(shù)組”來(lái)結(jié)構(gòu)化它們自身。在這樣的結(jié)構(gòu)化單元格范圍數(shù)組內(nèi),常見(jiàn)的是,查找遵循相同中間超結(jié)構(gòu)的若干結(jié)構(gòu)化單元格范圍、以及遵循其它中間超結(jié)構(gòu)的一些其它結(jié)構(gòu)化單元格范圍。然后,可以把結(jié)構(gòu)化單元格范圍數(shù)組視作結(jié)構(gòu)化單元格范圍的聚集中間超結(jié)構(gòu)的集合。在傳統(tǒng)電子表格的當(dāng)前背景下,頻繁地通過(guò)剪切/復(fù)制和粘貼操作創(chuàng)建這種結(jié)構(gòu)化單元格范圍數(shù)組的實(shí)例。
創(chuàng)建結(jié)構(gòu)化單元格范圍的新實(shí)例是復(fù)雜和費(fèi)時(shí)的,這特別是因?yàn)閭鹘y(tǒng)的單元格范圍顯示了較強(qiáng)的限制·(i)結(jié)構(gòu)信息(如列數(shù)、行數(shù))、格式信息(如字體風(fēng)格、顏色或邊框)、以及內(nèi)容信息(例如,公式或者原始-或情報(bào)-數(shù)據(jù))被混合,·(ii)單元格范圍的大小在給定時(shí)刻是固定的。
因此,當(dāng)電子表格用戶想要?jiǎng)?chuàng)建具有相同結(jié)構(gòu)的另一個(gè)單元格范圍時(shí),他/她需要連續(xù)執(zhí)行幾個(gè)操作。他/她需要1.復(fù)制-粘貼現(xiàn)有的結(jié)構(gòu)化單元格范圍,2.區(qū)分包含原始或情報(bào)數(shù)據(jù)的區(qū)域和包含通用內(nèi)容如公式的區(qū)域,3.清空被拷貝原始數(shù)據(jù)的被拷貝結(jié)構(gòu)化單元格范圍,同時(shí)試圖保持結(jié)構(gòu)、格式和通用內(nèi)容,4.根據(jù)他的新需要,調(diào)整被拷貝結(jié)構(gòu)化單元格范圍的大小。
5.最終,以缺省值填充原始數(shù)據(jù)區(qū)域,以便減輕隨后的數(shù)據(jù)輸入。
此外,在復(fù)制和粘貼結(jié)構(gòu)化單元格范圍之前,用戶必須為被拷貝的結(jié)構(gòu)化單元格范圍準(zhǔn)備地方,這樣存在覆寫因此丟失在目的地處預(yù)先存在的信息的風(fēng)險(xiǎn)。尤其是當(dāng)所操縱的結(jié)構(gòu)化單元格范圍在大小和復(fù)雜性上增長(zhǎng)時(shí),該操作鏈很快就變得繁瑣、費(fèi)時(shí)且易于出錯(cuò)。
更新結(jié)構(gòu)化單元格范圍也極其經(jīng)常地是復(fù)雜、費(fèi)時(shí)且易于出錯(cuò)的。這種更新包括添加新元素和修改現(xiàn)有元素。在電子表格環(huán)境中可以執(zhí)行幾種修改而沒(méi)有任何特定問(wèn)題。然而,對(duì)于某些修改例如插入就不是這種情況。例如,如果借助于傳統(tǒng)功能如電子表格行插入方法來(lái)增加行,則所創(chuàng)建的行將為空。這意味著需要輸入每一個(gè)元素的每一個(gè)單元格的值。輸入數(shù)據(jù)或者執(zhí)行拷貝/粘貼操作對(duì)于用戶意味著較大的工作量,而每個(gè)元素的內(nèi)容在一定程度上是已知的,但是應(yīng)當(dāng)遵循結(jié)構(gòu)化單元格范圍的一般結(jié)構(gòu)。而且,諸如行插入功能的正常電子表格功能可能危及一些相鄰元素的內(nèi)容。危及相鄰元素的插入的較好例子是將行插入在單元格范圍中,其中在每一個(gè)行上,諸如C17或更一般的(Cn)的單元格通過(guò)諸如C16+B17或者更一般的(Cn-1)+(Bn)的公式而指向前一行中的單元格。在行16和17之間的行插入之后,單元格C18中的公式變成C16+B18而非一般公式C17+B18,或者更一般地,在行(n-1)和(n)之間的行插入之后,單元格(Cn+1)中的公式變成(Cn-1)+(Bn+1)而非一般公式(Cn)+(Bn+1)。作為第二例子,存在必須貫穿結(jié)構(gòu)化單元格范圍一致地進(jìn)行修改的情況?,F(xiàn)在,這只能通過(guò)施加于要被修改的確切區(qū)域的特定拷貝-粘貼操作來(lái)完成。尤其是當(dāng)所操縱的結(jié)構(gòu)化單元格范圍在大小和復(fù)雜性上增加時(shí),這可以證實(shí)是非常困難的。
刪除結(jié)構(gòu)化單元格范圍的元素是易于出錯(cuò)的操作。實(shí)際上,諸如行刪除功能的普通電子表格功能可能危及一些相鄰元素的內(nèi)容,從而導(dǎo)致未決定的引用(#REF結(jié)果),或者更糟的是,導(dǎo)致可能難以識(shí)別的錯(cuò)誤公式。解決該問(wèn)題需要附加的“上下文智能”,其考慮發(fā)生元素刪除的結(jié)構(gòu)化單元格范圍的結(jié)構(gòu)。當(dāng)用戶在電子表格中選擇一個(gè)或多個(gè)單元格之后調(diào)用傳統(tǒng)刪除功能的時(shí)候,出現(xiàn)另一種需要。如果該選擇屬于結(jié)構(gòu)化單元格范圍,則借助于菜單或通過(guò)按“刪除”鍵調(diào)用刪除功能對(duì)于用戶想要執(zhí)行什么可能產(chǎn)生歧義。消除該歧義現(xiàn)在只能通過(guò)選擇要被刪除的確切區(qū)域來(lái)完成,尤其是隨著所操縱的結(jié)構(gòu)化單元格范圍在大小和復(fù)雜性上增長(zhǎng),這可以證實(shí)是非常困難的。解決該問(wèn)題需要附加的“上下文智能”,以便檢測(cè)該情形,利用結(jié)構(gòu)化單元格范圍的結(jié)構(gòu),并且向用戶提供相關(guān)的選項(xiàng)。
當(dāng)涉及遞歸時(shí),創(chuàng)建結(jié)構(gòu)化單元格范圍數(shù)組的新實(shí)例甚至更加復(fù)雜和費(fèi)時(shí),這具體是因?yàn)榻Y(jié)構(gòu)化單元格范圍數(shù)組涉及雙重級(jí)別的結(jié)構(gòu)·在較低級(jí)別,必須創(chuàng)建結(jié)構(gòu)化單元格范圍的多個(gè)并且甚至是不同的實(shí)例的集合。如前所述,該操作本身就由于傳統(tǒng)單元格范圍的限制而復(fù)雜、費(fèi)時(shí)且易于出錯(cuò)。
·在較高級(jí)別,結(jié)構(gòu)化單元格范圍實(shí)例的創(chuàng)建將要求電子表格用戶執(zhí)行若干操作1.識(shí)別用作創(chuàng)建新實(shí)例的引用的結(jié)構(gòu)化單元格范圍數(shù)組的現(xiàn)有實(shí)例。
2.在目的地處準(zhǔn)備地方來(lái)保存新實(shí)例,其中存在可能覆寫因而丟失任何預(yù)先存在的信息的風(fēng)險(xiǎn)。
3.將結(jié)構(gòu)化單元格范圍數(shù)組的引用實(shí)例拷貝-粘貼到目的地。
4.根據(jù)他/她的新需要,調(diào)整新創(chuàng)建的結(jié)構(gòu)化單元格范圍數(shù)組實(shí)例的結(jié)構(gòu),這是通過(guò)在該數(shù)組內(nèi)刪除或引入結(jié)構(gòu)化單元格范圍實(shí)例的一個(gè)或幾個(gè)中間超結(jié)構(gòu)來(lái)實(shí)現(xiàn)的。
5.清除包括在該數(shù)組內(nèi)的結(jié)構(gòu)化單元格范圍的每個(gè)實(shí)例的內(nèi)容。
6.最終,以相關(guān)的缺省值填充結(jié)構(gòu)化單元格范圍的每個(gè)實(shí)例。
刪除包括在結(jié)構(gòu)化單元格范圍數(shù)組的實(shí)例中的對(duì)象是易于出錯(cuò)的操作。除了當(dāng)刪除各個(gè)單元格或單元格范圍時(shí)創(chuàng)建未決定的引用的前述風(fēng)險(xiǎn)之外,當(dāng)在遞歸結(jié)構(gòu)中選擇單元格范圍之后調(diào)用刪除操作時(shí),在電子表格環(huán)境中可用的傳統(tǒng)工具也并不熱心幫助電子表格用戶。實(shí)際上,如果這樣的選定單元格范圍屬于結(jié)構(gòu)化單元格范圍數(shù)組的實(shí)例,則刪除操作的范圍保持有歧義刪除屬于選定單元格范圍的輸入(IN)字段的內(nèi)容,或者刪除與選定單元格范圍重疊的結(jié)構(gòu)化單元格范圍實(shí)例的元素,或者甚至刪除包括選定單元格范圍的結(jié)構(gòu)化單元格范圍數(shù)組的整個(gè)實(shí)例。為了消除該歧義,電子表格用戶必須小心地甄別然后選擇確切的相關(guān)單元格范圍,以便刪除操作準(zhǔn)確地匹配他的需要。當(dāng)結(jié)構(gòu)化單元格范圍數(shù)組變大且復(fù)雜時(shí),前面操作變得明顯困難且易于出錯(cuò)。解決該問(wèn)題需要另外的附加“上下文智能”來(lái)檢測(cè)該情形,利用結(jié)構(gòu)化單元格范圍數(shù)組的雙重級(jí)別結(jié)構(gòu),并且向用戶提供相關(guān)選項(xiàng)。Steven J.Dubnoff于1989年3月3日的發(fā)明名稱為“System for generating worksheet filesfor electronic spreadsheets(用于生成電子表格的工作表文件)”的美國(guó)專利5,033,009是令人感興趣的現(xiàn)有技術(shù)文檔。該發(fā)明提出了通過(guò)工作表文件生成器可被集成以便生成工作表文件的模式數(shù)據(jù)和變量數(shù)據(jù)的概念。然而,該發(fā)明顯示了很多限制,從而阻止了它解決上面提出的一組問(wèn)題,其中特別是·它旨在從兩個(gè)輸入文件的集合產(chǎn)生新輸出電子表格,同時(shí)在用戶應(yīng)用環(huán)境內(nèi)需要?jiǎng)?chuàng)建和操縱該用戶所熟悉的現(xiàn)有電子表格文件內(nèi)的新實(shí)體。
·它沒(méi)有包含與常規(guī)電子表格工具不同的允許直接更新輸出電子表格的機(jī)制。
·它沒(méi)有包含在同一電子表格文件內(nèi)操縱可變數(shù)目的不同結(jié)構(gòu)和這些結(jié)構(gòu)的每一個(gè)的可變數(shù)目的實(shí)例的能力。粒度局限于電子表格文件,而所需粒度是結(jié)構(gòu)化單元格范圍的粒度。
·所謂的“文件格式規(guī)范”實(shí)際上混合結(jié)構(gòu)信息(如行和列的數(shù)目和相對(duì)位置)、表現(xiàn)信息(例如,字體、顏色、背景等)、內(nèi)容信息(如公式等)。

發(fā)明內(nèi)容
如在獨(dú)立權(quán)利要求中所限定的那樣,本發(fā)明涉及一種包括多個(gè)數(shù)據(jù)的多維電子數(shù)據(jù)表(優(yōu)選地是電子表格)中的方法、系統(tǒng)和程序,其用于管理遞歸可縮放模板實(shí)例中的刪除操作;遞歸可縮放模板實(shí)例包括沿著第一數(shù)據(jù)表維排序且對(duì)齊并、且根據(jù)遞歸可縮放模板而結(jié)構(gòu)化的可變數(shù)目的連續(xù)遞歸元素實(shí)例;所述遞歸可縮放模板包括遞歸元素,其包含一個(gè)或多個(gè)可縮放模板;每個(gè)遞歸元素實(shí)例具有沿著所述第一數(shù)據(jù)表維的可變大小,以及沿著第二數(shù)據(jù)表維的相同大小;遞歸元素實(shí)例包括一個(gè)或多個(gè)可縮放模板實(shí)例;每個(gè)遞歸元素實(shí)例的每個(gè)可縮放模板實(shí)例沿著所述第一數(shù)據(jù)表維而對(duì)齊;每個(gè)遞歸元素實(shí)例內(nèi)的每個(gè)可縮放模板實(shí)例沿著第二數(shù)據(jù)表維而對(duì)齊;可縮放模板實(shí)例包括根據(jù)可縮放模板而結(jié)構(gòu)化的可變數(shù)目的元素;元素被定義為數(shù)據(jù)范圍;數(shù)據(jù)范圍包括一個(gè)或多個(gè)數(shù)據(jù)。該方法包括以下步驟·檢測(cè)用于刪除在遞歸元素實(shí)例的可縮放模板實(shí)例中選擇的一個(gè)或多個(gè)連續(xù)元素的刪除命令;·識(shí)別·在其中刪除所述一個(gè)或多個(gè)選定元素的可縮放模板實(shí)例;·可縮放模板實(shí)例中要?jiǎng)h除的一個(gè)或多個(gè)選定元素;·與所述可縮放模板實(shí)例相關(guān)聯(lián)的可縮放模板;·識(shí)別·遞歸可縮放模板實(shí)例和包括所識(shí)別的可縮放模板實(shí)例的遞歸元素實(shí)例;·在所識(shí)別的可縮放模板實(shí)例中刪除該一個(gè)或多個(gè)選定元素;所識(shí)別的可縮放模板實(shí)例的所有剩余元素保持連續(xù);·根據(jù)所述遞歸元素實(shí)例中的最大可縮放模板實(shí)例的大小,沿著所述第一數(shù)據(jù)表維調(diào)整所識(shí)別的遞歸元素實(shí)例的大??;所識(shí)別的遞歸可縮放模板實(shí)例的所有剩余遞歸元素實(shí)例保持連續(xù)。
在特定實(shí)施例中,該方法包括另外的步驟·檢測(cè)用于在遞歸可縮放模板實(shí)例中刪除一個(gè)或多個(gè)選定連續(xù)遞歸元素實(shí)例的刪除命令;·識(shí)別
·在其中刪除所述一個(gè)或多個(gè)遞歸元素實(shí)例的遞歸可縮放模板實(shí)例;·在遞歸可縮放模板實(shí)例中要?jiǎng)h除的一個(gè)或多個(gè)遞歸元素實(shí)例;·與所述遞歸可縮放模板實(shí)例相關(guān)聯(lián)的遞歸可縮放模板;·在遞歸可縮放模板實(shí)例中刪除該一個(gè)或多個(gè)選定連續(xù)遞歸元素實(shí)例;所識(shí)別的遞歸可縮放模板實(shí)例的所有剩余遞歸元素實(shí)例保持連續(xù)。
在所附從屬權(quán)利要求中提供了本發(fā)明的另外實(shí)施例。
首字母縮略詞為了更加簡(jiǎn)潔起見(jiàn),將使用以下首字母縮略詞。
·EF代表元素格式·EP代表元素概要(profile)·MEF代表元元素格式·MEP代表元元素概要·RE代表遞歸元素·RME代表遞歸元元素·RST代表遞歸可縮放模板·RSTI代表遞歸可縮放模板實(shí)例·ST代表可縮放模板·STI代表可縮放模板實(shí)例


圖1A是可以實(shí)施本發(fā)明的計(jì)算機(jī)系統(tǒng)的示意圖。
圖1B是用于實(shí)現(xiàn)本發(fā)明的包括操作系統(tǒng)、應(yīng)用軟件和用戶界面的軟件系統(tǒng)的示意圖。
圖2示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于管理RST的優(yōu)選電子表格用戶界面。
圖3示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于編輯EF的優(yōu)選電子表格用戶界面。
圖4示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于編輯EP的優(yōu)選電子表格用戶界面。
圖5示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于編輯ST的優(yōu)選電子表格用戶界面。
圖6示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于編輯RST的優(yōu)選電子表格用戶界面。
圖7A、7B、7C、7D、7E分別示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的、EF表(EFT)、EP表(EPT)、ST表(STT)、ST描述符表(STDT)、STI表(STIT)的結(jié)構(gòu)。
圖7F給出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的、在表EFT、EPT、STT、STDT、STIT、RET、RSTT、RSTDT、RSTIT和RSTIDT之間建立的關(guān)系的圖示。
圖8是示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于管理RST對(duì)象的優(yōu)選方法的流程圖。
圖9是示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于編輯EF和MEF的優(yōu)選方法的流程圖。
圖10是示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于編輯EP和MEP的優(yōu)選方法的流程圖。
圖11是示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于編輯ST的優(yōu)選方法的流程圖。
圖12是示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于編輯RST的優(yōu)選方法的流程圖。
圖13A示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于創(chuàng)建STI的優(yōu)選電子表格用戶界面。
圖13B示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的ST實(shí)例化。
圖14A是示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于實(shí)例化ST的優(yōu)選方法的流程圖。
圖14B是示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于創(chuàng)建STI的優(yōu)選方法的流程圖。
圖15A是示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于管理STI中的刪除的優(yōu)選方法的流程圖。
圖15B是示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于管理RSTI中的刪除的優(yōu)選方法的流程圖。
圖16A和16B每一個(gè)示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于管理STI中的刪除的優(yōu)選電子表格用戶界面。
圖16C示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于管理RSTI中的刪除的優(yōu)選電子表格用戶界面。
圖17A示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的RSTI的邏輯結(jié)構(gòu)。
圖17B示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的RST的邏輯結(jié)構(gòu)。
圖18A和18B組成了示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于創(chuàng)建RSTI的優(yōu)選方法的流程圖。
圖19A、19B、19C、19D、19E和19F分別示出了RE表(RET)、RST表(RSTT)、RST管理器表(RSTMT)、RST描述符表(RSTDT)、RSTI表(RSTIT)以及RSTI描述符表(RSTIDT)的結(jié)構(gòu)。
圖20A示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于創(chuàng)建RSTI的優(yōu)選電子表格用戶界面。
圖20B示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于編輯RE的優(yōu)選電子表格用戶界面。
圖20C是示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于編輯RST中的RE的優(yōu)選方法的流程圖。
圖21A是示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于計(jì)算包括在STI中的行數(shù)的優(yōu)選方法的流程圖。
圖21B是示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于計(jì)算包括在STI中的列數(shù)的優(yōu)選方法的流程圖。
具體實(shí)施例方式
系統(tǒng)硬件如圖1A所示,本發(fā)明可被實(shí)施在計(jì)算機(jī)系統(tǒng)100上,其中計(jì)算機(jī)系統(tǒng)100包括中央處理器101、主存儲(chǔ)器102、輸入/輸出控制器103、鍵盤104、定點(diǎn)設(shè)備105(例如,鼠標(biāo)、跟蹤球、筆式設(shè)備等)、顯示設(shè)備106以及大容量存儲(chǔ)裝置107(例如,硬盤)。附加的輸入/輸出設(shè)備如打印設(shè)備108可以根據(jù)需要而包括在系統(tǒng)100中。如圖所示,系統(tǒng)100的各個(gè)組件通過(guò)系統(tǒng)總線110或類似架構(gòu)通信。在優(yōu)選實(shí)施例中,計(jì)算機(jī)系統(tǒng)100包括可從若干廠商(包括國(guó)際商業(yè)機(jī)器-IBM公司,阿芒克,紐約)獲得的IBM兼容個(gè)人計(jì)算機(jī)。如圖1B所示,提供了計(jì)算機(jī)軟件系統(tǒng)150以便引導(dǎo)計(jì)算機(jī)系統(tǒng)100的操作。存儲(chǔ)在系統(tǒng)存儲(chǔ)器102和盤存儲(chǔ)器107中的軟件系統(tǒng)150包括內(nèi)核或操作系統(tǒng)151以及外殼或界面153??梢浴把b載”(即從存儲(chǔ)裝置107傳輸?shù)酱鎯?chǔ)器102中)一個(gè)或多個(gè)應(yīng)用程序如應(yīng)用軟件152以便由系統(tǒng)100執(zhí)行。系統(tǒng)100通過(guò)用戶界面153接收用戶命令和數(shù)據(jù);然后,可以根據(jù)來(lái)自操作模塊151和/或應(yīng)用模塊152的指令由系統(tǒng)100作用于這些輸入。優(yōu)選地是圖形用戶界面(GUI)的界面153還用來(lái)顯示結(jié)果,由此用戶可以提供附加的輸入或者終止會(huì)話。在優(yōu)選實(shí)施例中,操作系統(tǒng)151和界面153是可從微軟公司(位于雷蒙德,華盛頓)獲得的Microsft Win95。另一方面,應(yīng)用模塊152包括如下面更詳細(xì)描述的本發(fā)明的電子表格筆記簿。
界面下面描述將集中于本發(fā)明的優(yōu)選實(shí)施例,其實(shí)現(xiàn)在Aureglia等人的發(fā)明名稱為“System and method in an electronic spreadsheet for exporting-importingthe content of input cells from a scalable template instance to another(用于將輸入單元格內(nèi)容從可縮放模板實(shí)例輸出-輸入到另一個(gè)的電子表格中的系統(tǒng)和方法)”的國(guó)際專利申請(qǐng)PCT/EP 02/09483(IBM參考文獻(xiàn)FR9 2001 0029)中描述的用戶界面。
遞歸可縮放模板管理A.介紹可縮放模板(ST)的概念傳統(tǒng)的電子表格包括允許電子表格用戶容易地將數(shù)據(jù)組織成行和列、同時(shí)自動(dòng)化繁瑣的計(jì)算的內(nèi)置裝置。這組所組織的數(shù)據(jù)可以包括在單個(gè)單元格范圍中或者若干單元格范圍的集合中。單元格范圍是電子表格環(huán)境中相當(dāng)有用且廣泛使用的對(duì)象。它可以作為整個(gè)實(shí)體來(lái)定義和處理。根據(jù)在國(guó)際專利申請(qǐng)PCT/EP 02/09483(IBM參考文獻(xiàn)FR9 2001 0029)中描述的發(fā)明,允許電子表格用戶執(zhí)行以下操作的系統(tǒng)和方法是可用的·為單元格范圍定義結(jié)構(gòu),包括·(i)由一個(gè)或多個(gè)元元素構(gòu)成的可選頁(yè)眉部分;·(ii)由一個(gè)或多個(gè)元素構(gòu)成的強(qiáng)制主體部分;·(iii)由一個(gè)或多個(gè)元元素構(gòu)成的可選頁(yè)腳部分;頁(yè)眉部分的每個(gè)元元素的結(jié)構(gòu)可以通過(guò)MEF按照屬性以及通過(guò)MEP按照內(nèi)容來(lái)定義。
主體部分的所有元素的結(jié)構(gòu)可以通過(guò)EF按照屬性以及通過(guò)EP按照內(nèi)容來(lái)定義。
頁(yè)腳部分的每個(gè)元元素的結(jié)構(gòu)可以通過(guò)MEF按照屬性以及通過(guò)MEP按照內(nèi)容來(lái)定義。
該結(jié)構(gòu)被稱作ST??偠灾?,ST通過(guò)指定字段數(shù)來(lái)定義結(jié)構(gòu),這是通過(guò)參考定義所有主體元素的EF和EP的組合,以及可選地通過(guò)參考定義頁(yè)眉部分或頁(yè)腳部分的每個(gè)元元素的MEF和MEP的一個(gè)或幾個(gè)組合來(lái)實(shí)現(xiàn)的。
·管理ST以及在其下定義的被稱作EF、EP、MEF和MEP的對(duì)象。
·創(chuàng)建或更新EF、MEF。
·創(chuàng)建或更新EP、MEP。
·創(chuàng)建或更新ST。
·遵循已定義的ST創(chuàng)建STI。
·從STI中移除一個(gè)或多個(gè)元素。
上述功能集由一組工具支持·“RST管理器”方法或簡(jiǎn)稱的RSTM方法;·“EF編輯器”方法或簡(jiǎn)稱的EFE方法;·“EP編輯器”方法或簡(jiǎn)稱的EPE方法;·“ST編輯器”方法或簡(jiǎn)稱的STE方法;·“ST實(shí)例化器”方法或簡(jiǎn)稱的STI方法;·“STI刪除管理器”方法或簡(jiǎn)稱的STIDM方法。
遞歸可縮放模板(RST)的概念在介紹了ST和STI的概念之后,RST和RSTI的概念變得更易于掌握。實(shí)際上,RST可以被看作兩級(jí)結(jié)構(gòu)。最高級(jí)別在邏輯上相當(dāng)于ST的結(jié)構(gòu),作為可以在邏輯上被映射到元素和元元素(meta-element)的結(jié)構(gòu)化RE和RME的集合。RST的遞歸性質(zhì)出現(xiàn)在較低的結(jié)構(gòu)級(jí)別,因?yàn)镽E和RME是本身包括STI(而非傳統(tǒng)的電子表格單元格,如同元素和元元素的情況那樣)的對(duì)象。換句話說(shuō),RST是ST的分層結(jié)構(gòu)。當(dāng)實(shí)例化(instanciate)RST時(shí),可以清楚表達(dá)相同的類似性來(lái)描述所得到RSTI的結(jié)構(gòu)。在較高級(jí)別,RSTI呈現(xiàn)在邏輯上相當(dāng)于STI的結(jié)構(gòu)、但是由容器范圍而非各個(gè)單元格組成的結(jié)構(gòu)。在每個(gè)容器范圍內(nèi),較低級(jí)別的結(jié)構(gòu)以STI的形式存在。結(jié)果,RSTI可以被看作本身包含STI來(lái)代替?zhèn)鹘y(tǒng)單元格的STI。因此,這樣的對(duì)象首先以“結(jié)構(gòu)化單元格范圍數(shù)組”的名稱來(lái)引入。現(xiàn)在參照?qǐng)D17A和17B,將使用該RST和RSTI的簡(jiǎn)單例子來(lái)說(shuō)明本申請(qǐng)。
首先參照?qǐng)D17B,名稱為“RST_customer(客戶)”的RST 2051定義由網(wǎng)絡(luò)服務(wù)提供者遵循以便記錄與接收連網(wǎng)服務(wù)的客戶對(duì)應(yīng)的所有各種數(shù)據(jù)的結(jié)構(gòu)。該RST圍繞包括以下部分的結(jié)構(gòu)來(lái)組織·頁(yè)眉部分2052,其中根據(jù)名稱為“ST_cust_data(ST客戶數(shù)據(jù))”的ST的結(jié)構(gòu)來(lái)記錄客戶數(shù)據(jù)(例如,公司名稱、地址、業(yè)務(wù)、合同時(shí)間表等),其中根據(jù)名稱為“ST_contacts(ST聯(lián)系人)”的ST的結(jié)構(gòu)來(lái)記錄客戶聯(lián)系點(diǎn)(例如,CEO、CIO、CFO、經(jīng)理等),其中根據(jù)名稱為“ST_SLA”的ST的結(jié)構(gòu)來(lái)記錄合同服務(wù)級(jí)別協(xié)定,并且其中根據(jù)名稱為“ST_support_team”的ST的結(jié)構(gòu)來(lái)記錄客戶支持團(tuán)隊(duì)(例如,過(guò)渡經(jīng)理、運(yùn)送經(jīng)理、解決方案經(jīng)理等)。
·主體部分2053,其中,根據(jù)名為“ST_res_info(ST服務(wù)信息)”的ST的結(jié)構(gòu),為從服務(wù)供應(yīng)商接受服務(wù)的每個(gè)客戶資源記錄管理這個(gè)資源所需的信息(譬如,位置、IP地址、配置文件等),和根據(jù)名為“ST_pb_log(ST問(wèn)題日志)”的ST的結(jié)構(gòu)記錄同一資源的當(dāng)前問(wèn)題日志。
·頁(yè)腳部分2054,其中,根據(jù)名為“ST_billing(ST結(jié)算)”的ST的結(jié)構(gòu)記錄這個(gè)客戶的結(jié)算狀態(tài),和根據(jù)名為“ST_stats(ST統(tǒng)計(jì))”的ST的結(jié)構(gòu),記錄客戶管理資源的問(wèn)題統(tǒng)計(jì)。
然后,參照?qǐng)D17B,RSTI 2001遵從RST 2051的結(jié)構(gòu)“RST_customer”。實(shí)際上,它也圍繞著包括頁(yè)眉部分2002、主體部分2003、和頁(yè)腳部分2004的結(jié)構(gòu)來(lái)組織。頁(yè)眉部分2002包含本身根據(jù)RST頁(yè)眉部分2052的結(jié)構(gòu)來(lái)組織、和遵從ST的“ST_cust_data”、“ST_contacts”、“ST_SLA”、和“ST_support_team(ST支持團(tuán)隊(duì))”的結(jié)構(gòu)的4個(gè)STI。主體部分2003由3個(gè)不同記錄2010、2009、和2008構(gòu)成,它們的每一個(gè)根據(jù)RST主體部分2053的結(jié)構(gòu)來(lái)組織,RST主體部分2053的結(jié)構(gòu)包括遵從ST的“ST_res_info”和“ST_cpb_log”的結(jié)構(gòu)的2個(gè)STI。最后,頁(yè)腳部分2004包含本身根據(jù)RST頁(yè)腳部分2054的結(jié)構(gòu)來(lái)組織并遵從ST的“ST_billing”和“ST_stats”的結(jié)構(gòu)的2個(gè)STI。
時(shí)常,還使用相似遞歸構(gòu)造的單元格范圍的幾個(gè)實(shí)例。在如上所述的和如圖17A所示的我們例子的邏輯內(nèi),在新表格中為每個(gè)客戶創(chuàng)建相似遞歸構(gòu)造的單元格范圍。在當(dāng)前沒(méi)有其它工具真正可用的電子表格環(huán)境的背景下,經(jīng)常通過(guò)剪切/復(fù)制和粘貼操作來(lái)創(chuàng)建這樣相似遞歸構(gòu)造的單元格范圍的實(shí)例。我們已經(jīng)描述過(guò)用于創(chuàng)建STI的傳統(tǒng)工具的局限性。由于RSTI的雙重結(jié)構(gòu),創(chuàng)建RSTI甚至更加困難和更易于出錯(cuò)。實(shí)際上,操縱這樣遞歸對(duì)象時(shí)出現(xiàn)的額外困難就是確定應(yīng)該進(jìn)行給定操作(譬如,復(fù)制-粘貼遞歸對(duì)象,識(shí)別遞歸對(duì)象內(nèi)包含行數(shù)據(jù)或結(jié)構(gòu)專用數(shù)據(jù)的區(qū)域,調(diào)整遞歸對(duì)象的尺寸,騰空遞歸對(duì)象內(nèi)的一些字段,糾正由作用于遞歸對(duì)象的以前操作所導(dǎo)致的任何錯(cuò)誤,以及將默認(rèn)值填入遞歸對(duì)象內(nèi)的一些字段中)的結(jié)構(gòu)級(jí)別。而且,在對(duì)遞歸構(gòu)造的單元格范圍進(jìn)行復(fù)制和粘貼操作之前,用戶必須在目的地位置上為所復(fù)制的遞歸構(gòu)造的單元格范圍預(yù)備地方,因?yàn)槿绻贿@樣做的話,就存在因蓋寫而喪失這個(gè)位置上先前存在的信息的風(fēng)險(xiǎn)。上述的操作鏈迅速地變得單調(diào)乏味、漫長(zhǎng)和易于出錯(cuò),主要由于當(dāng)使用傳統(tǒng)工具時(shí),遞歸構(gòu)造的單元格范圍的尺寸和復(fù)雜度會(huì)迅速達(dá)到人的極限。在本發(fā)明的優(yōu)選實(shí)施例中,通過(guò)使電子表格用戶進(jìn)行如下操作,提供了對(duì)這些問(wèn)題的用戶友好解決方案,這些操作為·為單元格范圍定義超結(jié)構(gòu),包括·(i)由一個(gè)或多個(gè)RME組成的可選頁(yè)眉部分;·(ii)由一個(gè)RE組成的必有主體部分;·(iii)由一個(gè)或多個(gè)RME組成的可選頁(yè)腳部分。
頁(yè)眉部分的每個(gè)RME的結(jié)構(gòu)被定義成每一個(gè)對(duì)應(yīng)于ST的超結(jié)構(gòu)字段的有序集合(collection)。主體部分的所有RE的結(jié)構(gòu)被定義成每一個(gè)對(duì)應(yīng)于ST的超結(jié)構(gòu)字段的有序集合。頁(yè)腳部分的每個(gè)RME的結(jié)構(gòu)被定義成每一個(gè)對(duì)應(yīng)于ST的超結(jié)構(gòu)字段的有序集合。這種超結(jié)構(gòu)被稱為RST??傊琑ST通過(guò)指定字段個(gè)數(shù)、通過(guò)引用定義主體部分的RE、和可選地,通過(guò)引用定義頁(yè)眉部分或頁(yè)腳部分的一個(gè)或幾個(gè)RME’s來(lái)定義超結(jié)構(gòu)。
·管理RST’s和稱為RE’s和RME’s的在它下面定義的對(duì)象。
·創(chuàng)建或更新RE’s。
·創(chuàng)建或更新RME’s。
·創(chuàng)建或更新RST。
·創(chuàng)建遵從定義的RST的RSTI。
如下的一組工具支持上面的一組功能·“RST管理器”方法,或簡(jiǎn)稱為RSTM方法;·“RE編輯器”方法,或簡(jiǎn)稱為REE方法;·“RST編輯器”方法,或簡(jiǎn)稱為RSTE方法;·“RST實(shí)例化器”方法,或簡(jiǎn)稱為RSTI方法。
在如下章節(jié)中,更詳細(xì)地描述這組功能。
在我們的例子中,RST被發(fā)展成定義“NSP客戶資源庫(kù)(repository)”的通用結(jié)構(gòu),因此,便于創(chuàng)建所述“NSP客戶資源庫(kù)”的幾個(gè)實(shí)例?,F(xiàn)在參照?qǐng)D17B,定義“NSP客戶資源庫(kù)”的結(jié)構(gòu)的RST·(i)指定超結(jié)構(gòu)字段的個(gè)數(shù),在我們的例子中,為2(兩)個(gè)。
·(ii)通過(guò)如下步驟定義“NSP客戶資源庫(kù)”的頁(yè)眉部分2052·定義第一ST的“ST_cust_data”、和第二ST的“ST_contacts”的結(jié)構(gòu)。
·定義包含前兩個(gè)ST’s的第一RME 2058的結(jié)構(gòu)。
·定義第三ST的“ST_SLA”、和第四ST的“ST_support_team”的結(jié)構(gòu)。
·定義包含前兩個(gè)ST’s的第二RME 2057的結(jié)構(gòu)。
·(iii)通過(guò)如下步驟定義“NSP客戶資源庫(kù)”的主體部分2053·定義第五ST的“ST_res_info”、和第六ST的“ST_pb_log”的結(jié)構(gòu)。
·定義包含前兩個(gè)ST的RE 2056的結(jié)構(gòu)。
·(iv)通過(guò)如下步驟定義“NSP客戶資源庫(kù)”的頁(yè)腳部分2054·定義第一ST的“ST_billing”、和第二ST的“ST_stats”的結(jié)構(gòu)。
·定義包含前兩個(gè)ST’s的RME 2055的結(jié)構(gòu)。
根據(jù)上面的RST 2051,可以以對(duì)用戶而言非常有限的成本創(chuàng)建像如圖17A所示的那個(gè)那樣的一個(gè)或幾個(gè)RSTI,并因此,避免了許多出錯(cuò)風(fēng)險(xiǎn)。
從RSTI刪除對(duì)象,刪除RSTI刪除RSTI的元素也是易于出錯(cuò)的操作。對(duì)于我們的“NSP客戶存儲(chǔ)庫(kù)”的例子,電子表格用戶可能不得不例如處理客戶支持團(tuán)隊(duì)中的成員退休或者現(xiàn)有客戶管理資源的移除、或者問(wèn)題日志中重復(fù)問(wèn)題的刪除。如前所述,除了刪除STI內(nèi)的現(xiàn)有元素的固有困難之外,刪除RST內(nèi)的現(xiàn)有信息片斷還由于以下原因而甚至更具有挑戰(zhàn)性·被刪除的對(duì)象可能被定義在不同的結(jié)構(gòu)級(jí)別。例如,刪除退休的客戶支持團(tuán)隊(duì)成員或者問(wèn)題日志中的重復(fù)問(wèn)題將包括從已定義的STI(分別地,“支持團(tuán)隊(duì)”和“問(wèn)題日志”STI)中移除現(xiàn)有元素,而移除現(xiàn)有客戶管理資源將要求根據(jù)相關(guān)RE 2056的結(jié)構(gòu)在RSTI 2001的主體部分2003內(nèi)刪除一對(duì)STI的“資源信息”和“問(wèn)題日志”。由于任何錯(cuò)誤將不得不通過(guò)保持RSTI的兩級(jí)結(jié)構(gòu)來(lái)恢復(fù),因此電子表格用戶必須執(zhí)行謹(jǐn)慎的刪除操作。
由于刪除現(xiàn)有對(duì)象而產(chǎn)生的副作用在RSTI的較低結(jié)構(gòu)級(jí)別(例如,通過(guò)破壞被定義為RSTI的一部分的STI)、或者也在較高結(jié)構(gòu)級(jí)別通過(guò)破壞組成RSTI的各個(gè)STI的組織而可能是有害的。前一情況在STI內(nèi)的刪除操作的描述中已經(jīng)得到解決。當(dāng)電子表格用戶需要在RSTI 2001的主體部分2003的頂部處移除現(xiàn)有客戶管理資源時(shí),可以說(shuō)明后一情況。在這種情況下,必須從RSTI 2001中移除頂部“資源信息”STI和頂部“問(wèn)題日志”STI 2034。由于兩個(gè)被移除的STI的高度不必相等,因此刪除操作的結(jié)果最有可能屬于主體部分2003的兩個(gè)較低現(xiàn)有STI將不再水平對(duì)齊,因此破壞了RSTI 2001的超結(jié)構(gòu)。
在本發(fā)明的優(yōu)選實(shí)施例中,通過(guò)允許電子表格執(zhí)行以下操作來(lái)提出用戶友好的對(duì)這些問(wèn)題的解決方案·在通過(guò)調(diào)用傳統(tǒng)刪除功能而觸發(fā)自動(dòng)提示時(shí),選擇要?jiǎng)h除什么(單元格內(nèi)容或STI元素或RE或整個(gè)RSTI),·在RSTI內(nèi)刪除選定單元格內(nèi)的輸入字段的內(nèi)容、或者選定元素內(nèi)的輸入字段的內(nèi)容、或者選定STI內(nèi)的輸入字段的內(nèi)容、或者整個(gè)選定元素、或者選定的RE,同時(shí)保持RSTI的總體完整性,或者·刪除整個(gè)RSTI。
上述功能被稱作“RSTI刪除管理器”方法,或者簡(jiǎn)稱的RSTIDM方法,并且在下面章節(jié)中更詳細(xì)地定義該功能。
B.概念和詞匯這個(gè)章節(jié)的目的是形式化在本發(fā)明的范圍內(nèi)定義的一些概念(與對(duì)象相關(guān)聯(lián))和一些詞匯。在如下的描述中,假設(shè)電子表格采取二維(2D)形式,以便可以在2D環(huán)境下描述表格和結(jié)構(gòu)。此外,假設(shè)表格垂直組織,以便表格標(biāo)題(heading)在表格的頂部,而不是在它的左側(cè)。這樣就可以非常清晰地描述作為本發(fā)明組成部分的各種各樣原始概念、對(duì)象和方法,但這不會(huì)對(duì)本發(fā)明的范圍構(gòu)成限制。也就是說(shuō),下面的描述可以推廣到水平組織的2D表格的環(huán)境或3D表格的環(huán)境,而不偏離本發(fā)明的精神。
B1.基本定義結(jié)構(gòu)化單元格范圍結(jié)構(gòu)化單元格范圍是遵從將數(shù)據(jù)組織成行和列的某種結(jié)構(gòu)的單元格范圍。列定義旨在每一行上包含相同類型的信息的字段。行定義記錄(或元素)。
表格字表格可以用于指定結(jié)構(gòu)化單元格范圍。
字段字段是數(shù)據(jù)庫(kù)或表格中包括每個(gè)記錄(或元素)的相同類型信息的帶標(biāo)記列。例如,客戶表可以包含標(biāo)有名稱、地址和電話號(hào)碼(tel#)的字段。
推廣之,在給定記錄(或元素)中,給定字段指的是位于記錄(或元素)和給定字段(帶標(biāo)記列)的交點(diǎn)上的單元格。
上面的定義用于列定義字段和行定義記錄的2D環(huán)境。可以在行定義字段和列定義記錄的2D環(huán)境中調(diào)換它們。也可以在例如頁(yè)定義記錄的3D環(huán)境中調(diào)換它們。
輸入/輸出單元格當(dāng)假設(shè)用于記錄用戶提供的信息時(shí),將單元格指定成“輸入”單元格。當(dāng)假設(shè)用于生成信息(一般通過(guò)其變量(argument)直接或間接引用“輸入”單元格的公式獲得)時(shí),將單元格指定成“輸出”單元格。
B2.對(duì)象定義定義如下對(duì)象有助于理解本發(fā)明。
元素格式EF是用格式屬性定義2維或3維單元格范圍內(nèi)的元素的結(jié)構(gòu)的電子表格對(duì)象,這些屬性為·背景屬性(顏色、圖案等);·對(duì)齊屬性(水平、垂直、文本環(huán)繞、跨列對(duì)齊等);·字體屬性(大小、顏色等);·線屬性(類型、顏色等);·字段保護(hù);和·任何其它傳統(tǒng)格式屬性。
元元素(Meta-Element)格式MEF是依據(jù)格式屬性定義2維或3維單元格范圍內(nèi)的元元素的結(jié)構(gòu)的電子表格對(duì)象,這些屬性為·背景屬性(顏色、圖案等);·對(duì)齊屬性(水平、垂直、文本環(huán)繞、單元格合并等);·字體屬性(大小、顏色等);·線屬性(類型、顏色等);
·字段保護(hù);和·任何其它傳統(tǒng)格式屬性。
元素概要EP是依據(jù)內(nèi)容和目的地定義2維或3維單元格范圍內(nèi)的元素的結(jié)構(gòu)的電子表格對(duì)象·根據(jù)包括在同一元素的其它字段中、或同一STI的另一個(gè)元素或元元素的其它字段中、或甚至STI之外的其它字段中的數(shù)據(jù)計(jì)算的字段的公式。
·在元素創(chuàng)建時(shí)指定的字段默認(rèn)值。
·單元格的目的地(為“輸入”單元格輸入的數(shù)據(jù)或?yàn)椤拜敵觥眴卧裆傻臄?shù)據(jù))。
元元素概要MEP是依據(jù)內(nèi)容和目的地定義2維或3維范圍內(nèi)的元元素的結(jié)構(gòu)的電子表格對(duì)象,這些內(nèi)容和目的地·用于根據(jù)包括在同一元素的其它單元格中、或在同一STI的另一個(gè)元素或元元素的其它單元格中、或甚至在STI之外的其它單元格中的數(shù)據(jù)計(jì)算的單元格的公式。
·在元元素創(chuàng)建時(shí)賦予的單元格默認(rèn)值。
·單元格的目的地(為“輸入”單元格輸入的數(shù)據(jù)或?yàn)椤拜敵觥眴卧裆傻臄?shù)據(jù))。
可縮放模板(也稱為“模板”或“ST”)ST是依據(jù){元素+元元素}布局定義2維或3維單元格范圍的結(jié)構(gòu)的電子表格對(duì)象。字(word)“可縮放”指的是為尺寸可變(例如,從最小值到最大值)單元格范圍定義給定結(jié)構(gòu)的ST的能力。ST通過(guò)如下來(lái)定義結(jié)構(gòu)·指定字段個(gè)數(shù);·引用定義每個(gè)主體元素的一對(duì)EF和/或EP;和·可選地,引用一對(duì)或幾對(duì)MEF和/或MEP。
在2維環(huán)境中,這樣的MEF’s/MEP’s位于構(gòu)成ST“頁(yè)眉”部分的EF/EP之上,或位于構(gòu)成ST“頁(yè)腳”部分的EF/EP之下。ST“頁(yè)眉”部分或ST“頁(yè)腳”部分,或它們二者都有可能是空的。
當(dāng)元素和元元素引用(reference)只由EP和MEP構(gòu)成時(shí),那么,ST只攜帶內(nèi)容信息,因此,可以被命名為可縮放概要化模板。
當(dāng)元素和元元素引用只由EF和MEF構(gòu)成時(shí),那么,ST只攜帶格式信息,因此,可以被命名為可縮放格式化模板。
當(dāng)元素和元元素引用由EP’s和EF’s兩者的任何組合構(gòu)成時(shí),那么,ST攜帶概要和格式信息,因此,可以被命名為可縮放概要化和格式化模板。
可縮放模板實(shí)例(也稱為“實(shí)例”、“可縮放實(shí)例”或“STI”)STI是遵從如下所定義ST的結(jié)構(gòu)的電子表格對(duì)象可縮放格式化模板、可縮放概要化模板、或可縮放概要化和格式化模板??梢詫TI視作ST的繼承對(duì)象(heirobject)。它包含可變數(shù)量個(gè)元素(至少一個(gè)),這些元素包含在每個(gè)字段中與父結(jié)構(gòu)相對(duì)應(yīng)、并構(gòu)成“主體”部分的信息,可選地,加上如ST所定義的、和構(gòu)成STI的“頁(yè)眉”部分和“頁(yè)腳”部分的一個(gè)或幾個(gè)元元素。
元素元素是屬于STI、和由遵從在父結(jié)構(gòu)中(分別在可縮放格式化模板、可縮放概要化模板、或可縮放概要化和格式化模板中)找到的EF、或EP、或(EF,EP)對(duì)的基本字段組成的電子表格對(duì)象。在不喪失任何一般性的情況下,假設(shè)元素總是遵從(EF,EP)對(duì),其中,EF或EP可以退化成空對(duì)象。
元元素元元素是屬于STI、和由遵從MEF、或MEP、或(MEF,MEP)對(duì)的基本單元格組成的電子表格對(duì)象。在不喪失任何一般性的情況下,假設(shè)元元素總是遵從(MEF,MEP)對(duì),其中,MEF或MEP可以退化成空對(duì)象。
遞歸元素RE是屬于RST、構(gòu)成RST的主體部分、和由用于記錄ST的名稱的基本字段組成的電子表格對(duì)象。RE具有與元素的結(jié)構(gòu)相似的結(jié)構(gòu),但不被實(shí)例化成單元格范圍,而是被實(shí)例化成STI’s的范圍。
例子如圖17B所示的RST 2051的RE對(duì)應(yīng)于構(gòu)成這個(gè)RST的主體部分2053、和由分別包含ST的“ST_res_info”和“ST_pb_log”的名稱的兩個(gè)字段組成的結(jié)構(gòu)2056。
遞歸元元素RME是屬于RST、屬于RST的頁(yè)眉和/或頁(yè)腳部分、和由用于記錄ST的名稱的基本字段組成的電子表格對(duì)象。RME具有與元元素的結(jié)構(gòu)相似的結(jié)構(gòu),但不是被實(shí)例化成單元格范圍,而是被實(shí)例化成STI的范圍。
例子如圖17B所示的RST 2052的RME對(duì)應(yīng)于屬于這個(gè)RST的主體部分2052、和由分別包含ST的“ST_cust_data”和“ST_contacts”的名稱的兩個(gè)字段組成的結(jié)構(gòu)2058。
遞歸可縮放模板(也稱為“遞歸模板”或“RST”)RST是依據(jù){RE+RME}布局定義2維或3維單元格范圍的超結(jié)構(gòu)的電子表格對(duì)象字匯“可縮放”指的是為尺寸可變(例如,從最小值到最大值)單元格范圍定義給定超結(jié)構(gòu)的RST的能力。RST通過(guò)如下來(lái)定義超結(jié)構(gòu)·指定字段個(gè)數(shù);·引用定義RST的主體部分的RE;和·可選地,引用一個(gè)或幾個(gè)RME。
在2維環(huán)境中,這樣的RME位于構(gòu)成RST“頁(yè)眉”部分的RE之上,或位于構(gòu)成RST“頁(yè)腳”部分的RE之下。RST“頁(yè)眉”部分或RST的“頁(yè)腳”部分,或它們二者都有可能是空的。
例子RST 2051例示在圖17B中。它由頁(yè)眉部分2052、主體部分2053、和頁(yè)腳部分2054構(gòu)成。頁(yè)眉部分包括兩個(gè)RME 2058和2057,兩者都擁有兩個(gè)字段,和分別包含ST的“ST_cust_data”、“ST_contacts”和“ST_SLA”、“ST_support_team”的名稱。主體部分包括一個(gè)RE 2056,它擁有兩個(gè)字段,分別包含ST的“ST_res_info”、“ST_pb_log”的名稱。頁(yè)腳部分包括一個(gè)RME2055,它擁有兩個(gè)字段,分別包含ST的“ST_billing”、“ST_stats”的名稱。
遞歸可縮放模板實(shí)例(也稱為“遞歸實(shí)例”、“遞歸可縮放實(shí)例”或“RSTI”)RSTI是遵從所定義的RST的結(jié)構(gòu)的電子表格對(duì)象??梢詫STI視作RST的繼承對(duì)象。它包含可變數(shù)量個(gè)容器行(container row)(至少一個(gè)),這些容器行包含與父RE結(jié)構(gòu)相對(duì)應(yīng)、和構(gòu)成“主體”部分的一個(gè)或多個(gè)STI,可選地,加上包含與父RME結(jié)構(gòu)相對(duì)應(yīng)、和構(gòu)成RSTI的“頁(yè)眉”部分和“頁(yè)腳”部分的一個(gè)或多個(gè)STI的一個(gè)或幾個(gè)其它容器行。
例子RSTI 2001例示在圖17A中。這個(gè)RSTI遵從如圖17B所示的RST2051。它由頁(yè)眉部分2002、主體部分2003、和頁(yè)腳部分2004構(gòu)成。頁(yè)眉部分包括兩個(gè)容器行2012和2011。主體部分包括三個(gè)容器行2010、2009和2008。頁(yè)腳部分包括一個(gè)容器行2007。每個(gè)容器行包含兩個(gè)補(bǔ)償器范圍,譬如,可以看作頂容器行2012和右容器列2005的交點(diǎn)的容器范圍(containerrange)2014。每個(gè)容器范圍包含遵從定義成RST 2051的RE或RME成員的一部分的ST的結(jié)構(gòu)的STI。例如,包括在容器行2010和容器列2005的補(bǔ)償器范圍交點(diǎn)內(nèi)的STI 2034遵從如在RST 2051的RME 2056中定義的那樣、名為“ST_pb_log”的ST的結(jié)構(gòu),并且,本身由頁(yè)眉部分2015、主體部分2016、和頁(yè)腳部分2017構(gòu)成。
容器行容器行是屬于RSTI、和與包含根據(jù)RSTI遵從的RST的RE或RME部分的定義構(gòu)造的STI的單元格范圍相對(duì)應(yīng)的電子表格對(duì)象。容器行的行數(shù)等于它包含的最高STI的行數(shù)。容器行也可以稱為遞歸元素實(shí)例。容器行在RSTI內(nèi)可以被看作等效于STI內(nèi)的元素。例子容器行2012例示在圖17A中,與包括在RSTI 2001內(nèi)定義的STI 2032和2013的單元格范圍相對(duì)應(yīng)。這個(gè)容器行的行數(shù)等于比STI 2013高的STI 2032的行數(shù)。
容器列(container column)容器列是屬于RSTI、和與包含在RSTI的容器行內(nèi)占據(jù)相同超結(jié)構(gòu)位置的STI的單元格范圍相對(duì)應(yīng)的電子表格對(duì)象。容器列的列數(shù)等于它包含的最寬STI的列數(shù)。例子容器列2006例示在圖17A中,與包括在RSTI 2001內(nèi)占據(jù)最左位置的STI的單元格范圍相對(duì)應(yīng)。這個(gè)容器列的列數(shù)等于STI 2030的列數(shù),STI 2030是RSTI 2001左側(cè)最寬的STI。
容器范圍容器范圍是屬于RSTI、和與容器行和容器列的交點(diǎn)相對(duì)應(yīng)的電子表格對(duì)象。每個(gè)容器范圍包含占據(jù)左上角的單個(gè)STI。RSTI內(nèi)的容器范圍可以被看作等效于STI內(nèi)的單個(gè)單元格。
例如容器范圍2014例示在圖17A中,與兩者都屬于RSTI 2001的容器行2012和容器列2005的交點(diǎn)相對(duì)應(yīng)。這個(gè)容器范圍2014包含STI 2013。
B3.記號(hào)下列記號(hào)∏i∈Sai對(duì)應(yīng)于項(xiàng)ai的乘積,下標(biāo)i屬于集合S。下列記號(hào)LCM({ai})i∈S對(duì)應(yīng)于項(xiàng)ai的最小公倍數(shù)(the least common multiplier),下標(biāo)i屬于集合S。如果S由單個(gè)元素a構(gòu)成,那么,LCM({ai})i∈S等于a。下列記號(hào)a Mod b對(duì)應(yīng)于a除以b的余數(shù)(Mod是模數(shù))。
C.用于管理RST對(duì)象的表格正如在前面章節(jié)中介紹的那樣,本發(fā)明的優(yōu)選實(shí)施例依賴于管理RST的不同類型對(duì)象。將這些對(duì)象記錄在不同資源庫(kù)中,以便可以通過(guò)作為本發(fā)明優(yōu)選實(shí)施例的一部分的不同方法訪問(wèn)和更新它們。這樣的資源庫(kù)被稱為表格·EF表或簡(jiǎn)稱為EFT;·EP表或簡(jiǎn)稱為EPT;·ST表或簡(jiǎn)稱為STT;·ST描述符表或簡(jiǎn)稱為STDT;·ST實(shí)例化器表或簡(jiǎn)稱為STIT;·RE表或簡(jiǎn)稱為RET;
·RST表或簡(jiǎn)稱為RSTT;·RST管理器表或簡(jiǎn)稱為RSTMT;·RST描述符表或簡(jiǎn)稱為RSTDT;·RSTI表或簡(jiǎn)稱為RSTIT;·RSTI描述符表或簡(jiǎn)稱為RSTIDT。
EFT、EPT、STT、STDT、STIT、RET、RSTT、RSTDT、RSTIT、和RSTIDT表作為電子表格盤文件的一部分保存在大容量存儲(chǔ)器107上,而RSTMT表臨時(shí)保存在主存儲(chǔ)器102上和RSTEIT表保存在電子表格輸出-輸入文件上。
C1.EF表現(xiàn)在參照?qǐng)D7A,根據(jù)本發(fā)明,EFT表700對(duì)應(yīng)于由幾個(gè)記錄701組成的簡(jiǎn)單邏輯結(jié)構(gòu),它們的每一個(gè)對(duì)應(yīng)于EF或MEF。每個(gè)記錄包括六個(gè)字段·“Name(名稱)”702字段用于記錄唯一地標(biāo)識(shí)當(dāng)前記錄701描述的EF或MEF的字符串。
·“Last Change Date(最后變化日期)”703字段用于記錄當(dāng)前記錄701描述的EF或MEF的最后更新日期。
·“Description Ptr(描述指針)”704字段是指向記錄描繪當(dāng)前記錄701描述的EF或MEF的例示單元格范圍的存儲(chǔ)位置的引用。這個(gè)存儲(chǔ)位置可以在大容量存儲(chǔ)器107上,在主存儲(chǔ)器102上,或在其它傳統(tǒng)存儲(chǔ)器資源庫(kù)裝置上,這不偏離本發(fā)明的精神。
·“Row#(行數(shù))”705字段用于記錄出現(xiàn)在當(dāng)前記錄701描述的EF或MEF中的行數(shù)。這個(gè)字段適用于元素或MEF對(duì)應(yīng)于2D結(jié)構(gòu)的3D ST。在采用2D ST的本發(fā)明優(yōu)選實(shí)施例中,總是用值1填充這個(gè)字段。
·“Column#(列數(shù))”706字段用于記錄出現(xiàn)在當(dāng)前記錄701描述的EF或MEF中的列數(shù)。
·“Type(類型)”707字段用于記錄與當(dāng)前記錄701描述的EF或MEF相關(guān)聯(lián)的不同屬性這是指定當(dāng)前記錄701是否描述EF或MEF的“META(元)”屬性708(具有相應(yīng)值“NO(否)”和“YES(是)”)、和通過(guò)專用子字段(709a、709b、709c、709d和709e)指定與其它對(duì)象的關(guān)系的“REFERENCED(被引用)”屬性709。這些子字段被描述成“REFERENCED(被引用)”屬性2240的描述的一部分。傳統(tǒng)技術(shù)可以用于編碼這個(gè)“Type(類型)”字段中的這些不同屬性,譬如,用預(yù)定位組合模式(bit pattern)進(jìn)行逐位XOR(“異或”)運(yùn)算,但也可以改用任何其它傳統(tǒng)手段而不偏離本發(fā)明的精神。
C2.EP表現(xiàn)在參照?qǐng)D7B,根據(jù)本發(fā)明,EPT表710對(duì)應(yīng)于由幾個(gè)記錄711組成的簡(jiǎn)單邏輯結(jié)構(gòu),它們的每一個(gè)對(duì)應(yīng)于EP或MEP。每個(gè)記錄包括六個(gè)字段·“Name(名稱)”712字段用于記錄唯一地標(biāo)識(shí)當(dāng)前記錄711描述的EP或MEP的字符串。
·“Last Change Date(最后變化日期)”713字段用于記錄當(dāng)前記錄711描述的EP或MEP的最后更新日期。
·“Description Ptr(描述指針)”714字段是指向記錄描繪當(dāng)前記錄711描述的EP或MEP的例示單元格范圍的存儲(chǔ)位置的引用。這個(gè)存儲(chǔ)位置可以在大容量存儲(chǔ)器107上,在主存儲(chǔ)器102上,或在其它傳統(tǒng)存儲(chǔ)器資源庫(kù)裝置上,這不偏離本發(fā)明的精神。
·“Row #(行數(shù))”715字段用于記錄出現(xiàn)在當(dāng)前記錄711描述的EP或MEP中的行數(shù)。這個(gè)字段適用于元素或MEP對(duì)應(yīng)于2D結(jié)構(gòu)的3D ST。在采用2D ST的本發(fā)明優(yōu)選實(shí)施例中,總是用值1填充這個(gè)字段。
·“Column #(列數(shù))”716字段用于記錄出現(xiàn)在當(dāng)前記錄711描述的EP或MEP中的列數(shù)。
·“Type(類型)”717字段用于記錄與當(dāng)前記錄711描述的EP或MEP相關(guān)聯(lián)的不同屬性這是指定當(dāng)前記錄711是否描述EP或MEP的“META”屬性718(具有相應(yīng)值“NO”和“YES”)、和通過(guò)專用子字段(719a、719b、719c、719d和719e)指定與其它對(duì)象的關(guān)系的“REFERENCED(被引用)”屬性719。這些子字段被描述成“REFERENCED(被引用)”屬性2240的描述的一部分。傳統(tǒng)技術(shù)可以用于編碼這個(gè)“Type(類型)”字段中的這些不同屬性,譬如,用預(yù)定位組合模式進(jìn)行逐位XOR運(yùn)算,但也可以改用任何其它傳統(tǒng)手段而不偏離本發(fā)明的精神。
C3.ST表現(xiàn)在參照?qǐng)D7C,根據(jù)本發(fā)明,STT表720對(duì)應(yīng)于由幾個(gè)記錄721組成的簡(jiǎn)單邏輯結(jié)構(gòu),它們的每一個(gè)對(duì)應(yīng)于ST。每個(gè)記錄包括六個(gè)字段·“Name(名稱)”722字段用于記錄唯一地標(biāo)識(shí)當(dāng)前記錄721描述的ST的字符串。
·“Last Change Date(最后變化日期)”723字段用于記錄當(dāng)前記錄721描述的ST的最后更新日期。
·“Description Ptr(描述指針)”724字段是指向記錄當(dāng)前記錄721描述的ST的描述的存儲(chǔ)位置的引用。這個(gè)存儲(chǔ)位置可以在大容量存儲(chǔ)器107上,在主存儲(chǔ)器102上,或在其它傳統(tǒng)存儲(chǔ)器資源庫(kù)裝置上,這不偏離本發(fā)明的精神。這個(gè)描述是根據(jù)例示在圖7D中的STDT表760構(gòu)造的,也就是說(shuō),被構(gòu)造成數(shù)對(duì)名稱的有序列表,每一對(duì)由元素或MEF的名稱和元素或MEP的名稱組成。
·“Min Element #(最小元素?cái)?shù))”725字段用于記錄在遵從當(dāng)前記錄721描述的ST的每個(gè)STI中找到的最小元素?cái)?shù)。
·“Max Element #(最大元素?cái)?shù))”726字段用于記錄在遵從當(dāng)前記錄721描述的ST的每個(gè)STI中找到的最大元素?cái)?shù)。
·“Type(類型)”727字段用于記錄與當(dāng)前記錄721描述的ST相關(guān)聯(lián)的不同屬性這是總是取值“NO”的“META”屬性728、和通過(guò)專用子字段(729a、729b、729c、729d和729e)指定與其它對(duì)象的關(guān)系的“REFERENCED(被引用)”屬性729。這些子字段被描述成“REFERENCED(被引用)”屬性2240的描述的一部分。傳統(tǒng)技術(shù)可以用于編碼這個(gè)“Type(類型)”字段中的這些不同屬性,譬如,用預(yù)定位組合模式進(jìn)行逐位XOR運(yùn)算,但也可以改用任何其它傳統(tǒng)手段而不偏離本發(fā)明的精神。
C4.ST描述符表現(xiàn)在參照?qǐng)D7D,STDT表760對(duì)應(yīng)于由幾對(duì)元素或MEF 765和元素或MEP 766組成的簡(jiǎn)單邏輯結(jié)構(gòu),這個(gè)結(jié)構(gòu)被組織成三個(gè)子集·可選ST“頁(yè)眉”部分767,由像頂對(duì)761那樣的可變個(gè)(可能零個(gè))對(duì)組成。這些對(duì)的每一個(gè)由MEF(列765)和MEP(列764)構(gòu)成。
·由單對(duì)組成的必有“主體”部分762,這個(gè)單對(duì)由EF(列765)和EP(列764)構(gòu)成。
·可選ST“頁(yè)腳”部分766,由像底對(duì)763那樣的可變個(gè)(可能零個(gè))對(duì)組成。這些對(duì)的每一個(gè)由MEF(列765)和MEP(列764)構(gòu)成。
C5.ST實(shí)例化器表現(xiàn)在參照?qǐng)D7E,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,STIT表750對(duì)應(yīng)于由幾個(gè)記錄751組成的簡(jiǎn)單邏輯結(jié)構(gòu),它們的每一個(gè)對(duì)應(yīng)于STI。每個(gè)記錄包括六個(gè)字段·“Address(地址)”752字段用于定位當(dāng)前記錄751描述的STI它的值對(duì)應(yīng)于用于記錄任何單元格范圍的地址的傳統(tǒng)字符串。
·“ST”753字段用于記錄遵從當(dāng)前記錄751描述的STI的ST的名稱。
·“Element #(元素?cái)?shù))”754字段用于記錄當(dāng)前記錄751描述的STI內(nèi)的元素?cái)?shù)。
·“Critical(關(guān)鍵的)”755字段用于記錄是否認(rèn)為當(dāng)前記錄751描述的STI是關(guān)鍵性的。它的內(nèi)容可以取值“YES”或“NO”。
·“Header Size(頁(yè)眉尺寸)”756字段用于記錄構(gòu)成當(dāng)前記錄751描述的STI的頁(yè)眉部分的元元素?cái)?shù)。
·“Footer Size(頁(yè)腳尺寸)”757字段用于記錄構(gòu)成當(dāng)前記錄751描述的STI的頁(yè)腳部分的元元素?cái)?shù)。
C6.RE表現(xiàn)在參照?qǐng)D19A,根據(jù)本發(fā)明,RET表2210對(duì)應(yīng)于由幾個(gè)記錄2211組成的簡(jiǎn)單邏輯結(jié)構(gòu),它們的每一個(gè)對(duì)應(yīng)于RE或RME。每個(gè)記錄包括六個(gè)字段·“Name(名稱)”2212字段用于記錄唯一地標(biāo)識(shí)當(dāng)前記錄2211描述的RE或RME的字符串。
·“Last Change Date(最后變化日期)”2213字段用于記錄當(dāng)前記錄2211描述的RE或RME的最后更新日期。
·“Description Ptr(描述指針)”2214字段是指向記錄描繪當(dāng)前記錄2211描述的RE或RME的例示單元格范圍的存儲(chǔ)位置的引用。這個(gè)存儲(chǔ)位置可以在大容量存儲(chǔ)器107上,在主存儲(chǔ)器102上,或在其它傳統(tǒng)存儲(chǔ)器資源庫(kù)裝置上,這不偏離本發(fā)明的精神。
·“Row #(行數(shù))”2215字段用于記錄出現(xiàn)在當(dāng)前記錄2211描述的RE或RME中的行數(shù)。這個(gè)字段適用于RE或RME對(duì)應(yīng)于2D結(jié)構(gòu)的3D RST。在采用2D RST的本發(fā)明優(yōu)選實(shí)施例中,總是用值1填充這個(gè)字段。
·“Column #(列數(shù))”2216字段用于記錄出現(xiàn)在當(dāng)前記錄2211描述的RE或RME中的列數(shù)。
·“Type(類型)”2217字段用于記錄與當(dāng)前記錄2211描述的RE或RME相關(guān)聯(lián)的不同屬性這是指定當(dāng)前記錄2211是否描述RE或RME的“META”屬性2218(具有相應(yīng)值“NO”和“YES”)、和通過(guò)專用子字段(2219a、2219b、2219c、2219d和2219e)指定與其它對(duì)象的關(guān)系的“REFERENCED(被引用)”屬性2219。這些子字段被描述成“REFERENCED(被引用)”屬性2240的描述的一部分。傳統(tǒng)技術(shù)可以用于編碼這個(gè)“Type(類型)”字段中的這些不同屬性,譬如,用預(yù)定位組合模式進(jìn)行逐位XOR(“異或”)運(yùn)算,但也可以改用任何其它傳統(tǒng)手段而不偏離本發(fā)明的精神。
C7.RST表現(xiàn)在參照?qǐng)D19B,根據(jù)本發(fā)明,RSTT表2220對(duì)應(yīng)于由幾個(gè)記錄2221組成的簡(jiǎn)單邏輯結(jié)構(gòu),它們的每一個(gè)對(duì)應(yīng)于RST。每個(gè)記錄包括六個(gè)字段·“Name(名稱)”2222字段用于記錄唯一地標(biāo)識(shí)當(dāng)前記錄2221描述的RST的字符串。
·“Last Change Date(最后變化日期)”2223字段用于記錄當(dāng)前記錄2221描述的RST的最后更新日期。
·“Description Ptr(描述指針)”2224字段是指向記錄當(dāng)前記錄2221描述的RST的描述的存儲(chǔ)位置的引用。這個(gè)存儲(chǔ)位置可以在大容量存儲(chǔ)器107上,在主存儲(chǔ)器102上,或在其它傳統(tǒng)存儲(chǔ)器資源庫(kù)裝置上,這不偏離本發(fā)明的精神。這個(gè)描述是根據(jù)例示在圖19D中的RSTDT表2250構(gòu)造的,也就是說(shuō),被構(gòu)造成RME或RE名稱的有序列表。
·“Min Element #(最小元素?cái)?shù))”2225字段用于記錄在遵從當(dāng)前記錄2221描述的RST的每個(gè)RSTI中找到的最小RE個(gè)數(shù)。
·“Max Element #(最大元素?cái)?shù))”2226字段用于記錄在遵從當(dāng)前記錄2221描述的RST的每個(gè)STI中找到的最大RE個(gè)數(shù)。
·“Type(類型)”2227字段用于記錄與當(dāng)前記錄2221所描述的RST相關(guān)聯(lián)的不同屬性這是總是取值“NO”的“META”屬性2228、和通過(guò)專用子字段(2229a、2229b、2229c、2229d和2229e)指定與其它對(duì)象的關(guān)系的“REFERENCED(被引用)”屬性2229。這些子字段被描述成“REFERENCED(被引用)”屬性2240的描述的一部分。傳統(tǒng)技術(shù)可以用于編碼這個(gè)“Type”字段中的這些不同屬性,譬如,用預(yù)定位組合模式進(jìn)行逐位XOR運(yùn)算,但也可以改用任何其它傳統(tǒng)手段而不偏離本發(fā)明的精神。
C8.RST管理器表現(xiàn)在參照?qǐng)D19C,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,RSTMT表2230對(duì)應(yīng)于由幾個(gè)記錄2231組成的簡(jiǎn)單邏輯結(jié)構(gòu),它們的每一個(gè)對(duì)應(yīng)于RST管理器管理的對(duì)象。每個(gè)記錄包括七個(gè)字段·“Name(名稱)”2232字段用于記錄唯一地標(biāo)識(shí)當(dāng)前記錄2231描述的對(duì)象的字符串。
·“Last Change Date(最后變化日期)”2233字段用于記錄當(dāng)前記錄2231描述的對(duì)象的最后更新日期。
·“Description Ptr(描述指針)”2234字段是指向記錄當(dāng)前記錄2231描述的對(duì)象的描述的存儲(chǔ)位置的引用。這個(gè)存儲(chǔ)位置可以在大容量存儲(chǔ)器107上,在主存儲(chǔ)器102上,或在其它傳統(tǒng)存儲(chǔ)器資源庫(kù)裝置上,這不偏離本發(fā)明的精神。
·“Info Field 1(信息字段1)”2235字段用于記錄與當(dāng)前記錄2231描述的對(duì)象相關(guān)聯(lián)的第一段信息。
·“Info Field 2(信息字段2)”2236字段用于記錄與當(dāng)前記錄2231描述的對(duì)象相關(guān)聯(lián)的第二段信息。
·“Type(類型)”2237字段用于記錄與當(dāng)前記錄2231描述的對(duì)象相關(guān)聯(lián)的不同屬性,譬如·前面為類似“Type(類型)”字段707、717、727、777、2217、和2227描述的屬性“META(元)”2239,以及兩個(gè)其它屬性·根據(jù)例示RSTMT表2230的例子的圖19C,由5(五)子字段構(gòu)成的屬性“REFERENCED(被引用)”2240·“OWN REFERENCE(自有引用)”(或簡(jiǎn)稱為OR)子字段2240a。這個(gè)子字段是創(chuàng)建記錄2231描述的對(duì)象時(shí)指定的唯一質(zhì)數(shù)。只有當(dāng)刪除記錄2231描述的對(duì)象時(shí),才釋放這個(gè)質(zhì)數(shù)。
·“FILIATION REFERENCE(分支引用)”(或簡(jiǎn)稱為FR)子字段2240b。這個(gè)子字段根據(jù)如下公式來(lái)評(píng)估,其中,F(xiàn)集合對(duì)應(yīng)于構(gòu)成記錄2231描述的對(duì)象的一組對(duì)象FR=∏i∈FORi×LCM({FRi})i∈F上面的公式允許動(dòng)態(tài)地將記錄2231所描述的對(duì)象與構(gòu)成它的對(duì)象聯(lián)系在一起,因?yàn)橐蜃覱Ri和FRi之一的值的任何改變都自動(dòng)反映到FR上。如果F集合是空的(例如,當(dāng)記錄2231描述的對(duì)象是EP、MEP、EF、或MEF時(shí)),那么,F(xiàn)R子字段默認(rèn)為值1(一)。
·“INSTANCE REFERENCE(實(shí)例引用)”(或簡(jiǎn)稱為IR)子字段2240c。當(dāng)創(chuàng)建記錄2231描述的對(duì)象時(shí),將這個(gè)子字段初始化成值1(一)。此后,每當(dāng)創(chuàng)建遵從這個(gè)對(duì)象的新實(shí)例時(shí),將這個(gè)字段乘以2(二),和每當(dāng)刪除遵從這個(gè)對(duì)象的現(xiàn)有實(shí)例時(shí),將這個(gè)字段除以2(二)。
·“REFERENCED OBJECT(所引用對(duì)象)”(或簡(jiǎn)稱為RO)子字段2240d。這個(gè)子字段是指定記錄2231描述的對(duì)象是否參與另一個(gè)對(duì)象的定義的布爾變量。例如,EF、MEF、EP、或MEP可以參與ST的定義。類似地,ST可以參與本身可以參與RST的定義的RE的定義。這個(gè)子字段根據(jù)如下公式來(lái)評(píng)估,其中,P集合對(duì)應(yīng)于RST對(duì)象的分層結(jié)構(gòu)中,其類型遵從記錄2231描述的對(duì)象的類型的一組對(duì)象如果LCM({FRi})i∈PMod OR=0,則RO=“YES”;否則,RO=“NO”。
上面的公式允許動(dòng)態(tài)地將記錄2231描述的對(duì)象與屬于P集合的對(duì)象聯(lián)系在一起,因?yàn)橐蜃覨Ri之一的值的任何改變都自動(dòng)反映到RO上。如果記錄2231描述的對(duì)象是EF、MEF、EP、或MEP,那么,P集合對(duì)應(yīng)于ST的集合。如果記錄2231描述的對(duì)象是RE,那么,P集合對(duì)應(yīng)于RST的集合。如果記錄2231描述的對(duì)象是RST,那么,P集合是空的(已經(jīng)到達(dá)頂層),從而RO子字段默認(rèn)為值“NO(否)”。
·“SELECTED CHILDREN(所選子系)”(或簡(jiǎn)稱為SC)子字段2240e。這個(gè)子字段是指定記錄2231描述的對(duì)象是否參與所選對(duì)象的定義的布爾變量。這個(gè)子字段根據(jù)如下公式來(lái)評(píng)估,其中,S集合對(duì)應(yīng)于所選對(duì)象的集合(具有等于值“YES”的“SELECTED(選定)”屬性2242)如果LCM({FRi})i∈SMod OR=0#OR#object∈S,則SC=“YES(是)”;否則,SC=“NO(否)”。
上面的公式允許動(dòng)態(tài)地將記錄2231描述的對(duì)象與所選對(duì)象(屬于S集合)聯(lián)系在一起,因?yàn)橐蜃覨Ri之一的值或S集合的任何改變都自動(dòng)反映到SC上。
如在表EFT 700、EPT 710、STT 720、RSTEIT 770、RET 2210、和RSTT 2220內(nèi)定義的那樣的其它“REFERENCED(被引用)”屬性基于五個(gè)子字段的同一個(gè)集合。
·反映電子表格用戶是否已經(jīng)在RST管理器對(duì)話框2300內(nèi)選擇了相關(guān)對(duì)象的“SELECTED(選定)”屬性2242(具有相應(yīng)值“YES”和“NO”),以及·反映對(duì)象是(M)EF,(M)EP,ST,R(M)E,還是RST的“NATURE”屬性2241(具有相應(yīng)值“FORMAT(格式)”,“PROFILE(概要)”,“TEMPLATE(模板)”,“RECELEMENT(遞歸元素)”或“RECTEMPLATE(遞歸模板)”)。
傳統(tǒng)技術(shù)可以用于編碼這個(gè)“Type(類型)”字段2237中的這些不同屬性,譬如,用預(yù)定位組合模式進(jìn)行逐位XOR運(yùn)算,但也可以改用任何其它傳統(tǒng)手段而不偏離本發(fā)明的精神。
·“Index(索引)”2238字段用于像通過(guò)RST管理器方法進(jìn)行的那樣,分類RSTMT表。
C9.RST描述符表現(xiàn)在參照?qǐng)D19D,RSTDT表2250對(duì)應(yīng)于由幾對(duì)RE或RME的名稱2254組成的簡(jiǎn)單邏輯結(jié)構(gòu),這個(gè)結(jié)構(gòu)被組織成三個(gè)子集·可選RST“頁(yè)眉”部分2256,由像頂部名稱2251那樣的可變個(gè)(可能零個(gè))RME名稱組成。
·由單個(gè)RE名稱組成的必有“主體”部分2252。
·可選RST“頁(yè)腳”部分2255,由像底部名稱2253那樣的可變個(gè)(可能零個(gè))RME名稱組成。
C10.RSTI表現(xiàn)在參照?qǐng)D19E,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,RSTIT表2260對(duì)應(yīng)于由幾個(gè)記錄2261組成的簡(jiǎn)單邏輯結(jié)構(gòu),它們的每一個(gè)對(duì)應(yīng)于RSTI。每個(gè)記錄包括六個(gè)字段·“Address(地址)”2262字段用于定位當(dāng)前記錄2261描述的RSTI它的值對(duì)應(yīng)于用于記錄任何單元格范圍的地址的傳統(tǒng)字符串。
·“ST”2263字段用于記錄遵從當(dāng)前記錄2261描述的RSTI的RST的名稱。
·“Element #(元素?cái)?shù))”2264字段用于記錄當(dāng)前記錄2261描述的RSTI內(nèi)的RE的個(gè)數(shù)。
·“Critical(關(guān)鍵性)”2265字段用于記錄是否認(rèn)為當(dāng)前記錄2261描述的RSTI是關(guān)鍵性的。它的內(nèi)容可以取值“YES”或“NO”。
·“Header Size(頁(yè)眉大小)”2266字段用于記錄構(gòu)成當(dāng)前記錄2261描述的RSTI的頁(yè)眉部分的RME的個(gè)數(shù)。
·“Footer Size(頁(yè)腳大小)”2267字段用于記錄構(gòu)成當(dāng)前記錄2261描述的RSTI的頁(yè)腳部分的RME的個(gè)數(shù)。
C11.RSTI描述符表現(xiàn)在參照?qǐng)D19F,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,RSTIDT表2270對(duì)應(yīng)于由幾個(gè)記錄2271組成的簡(jiǎn)單邏輯結(jié)構(gòu),它們的每一個(gè)由幾個(gè)單元格2272組成,它們的每一個(gè)對(duì)應(yīng)于RSTI的STI成員。RSTIDT表2270被映射成具有由一個(gè)或幾個(gè)記錄2271組成的頂部頁(yè)眉部分2275(可能空的)、由一個(gè)或幾個(gè)記錄2271組成的中間主體部分2274、以及由一個(gè)或幾個(gè)記錄2271組成的底部頁(yè)腳部分2273(可能空的)的相關(guān)RSTI的結(jié)構(gòu)。每個(gè)記錄2271包括一個(gè)或多個(gè)單獨(dú)單元格2272,它們的個(gè)數(shù)對(duì)應(yīng)于每個(gè)RE的STI的個(gè)數(shù)。每個(gè)記錄2272包括表示RSTI的STI成員的特征的七個(gè)字段·“Container_range(容器范圍)”2276字段用于記錄存放記錄2272描述的STI的容器范圍的地址。參照?qǐng)D17A,如果記錄2272描述STI 2013,這個(gè)字段記錄容器2014的地址(容器行2012和容器列2005)的交點(diǎn)。
·“Container_col(容器列)”2277字段用于記錄存放記錄2272描述的STI的容器范圍的列數(shù)。參照?qǐng)D17A,如果記錄2272描述STI 2013,這個(gè)字段記錄列數(shù)2028。
·“STI_col(STI列)”2278字段用于記錄記錄2272描述的STI的列數(shù)。參照?qǐng)D17A,如果記錄2272描述STI 2013,這個(gè)字段記錄列數(shù)2026。
·“STI_row(STI行)”2279字段用于記錄記錄2272描述的STI的行數(shù)。參照?qǐng)D17A,如果記錄2272描述STI 2013,這個(gè)字段記錄行數(shù)2027。
·“ST_name(ST名稱)”2280字段用于記錄遵從記錄2272描述的STI的ST的名稱。
·“Container_row(容器行)”2281字段用于記錄存放記錄2272描述的STI的容器范圍的行數(shù)。參照?qǐng)D17A,如果記錄2272描述STI 2013,這個(gè)字段記錄行數(shù)2029。
·“STIT_rec_ptr(STIT記錄指針)”2282字段用于在STIT表750內(nèi),指向描述由記錄2272所描述的STI的記錄751。
C12.表格之間的關(guān)系現(xiàn)在參照?qǐng)D7F,該圖一起給出了一些以前引入的表格RSTIT 2260、RSTIDT 2270、RSTT 2220、RSTDT 2250、RET 2210、STIT 750、STT 720、STDT 760、EFT 700和EPT 710,以例示在這些表格之間建立的關(guān)系和與RSTI的RSTI 730或STI的STI 797的關(guān)系。在這個(gè)圖內(nèi),粗實(shí)線箭頭例示指向表格或記錄的基于指針關(guān)系,粗虛線箭頭例示指向單元格范圍的基于地址關(guān)系,細(xì)實(shí)線箭頭例示指向?qū)ο蟮幕诿Q關(guān)系,和細(xì)虛線箭頭例示指向?qū)ο蟮幕诔叽珀P(guān)系。在圖7F中,基于指針、基于地址、和基于名稱的關(guān)系是根據(jù)如下順序,通過(guò)表示在圓圈內(nèi)的索引標(biāo)識(shí)的·從由三個(gè)部分“STI Header(STI頁(yè)眉)”、“STI Body(STI主體)”和“STIFooter(STI頁(yè)腳)”組成的STI的STI 797開始,在這個(gè)STI的STI 797與STIT表750的記錄751之間建立第1基于地址關(guān)系①。
·然后,在這個(gè)記錄751與STT表720的記錄721之間建立第2基于名稱關(guān)系②。這個(gè)記錄721對(duì)應(yīng)于遵從STI 797的ST。
·在這個(gè)記錄721與描述ST的結(jié)構(gòu)的STDT表760之間建立第3基于指針關(guān)系③。STDT表760的每個(gè)記錄對(duì)應(yīng)于一對(duì)元素或MEF名稱和元素或MEP名稱。
·在元素或MEF名稱與EFT表700的記錄701之間建立第4基于名稱關(guān)系④。
·在元素或MEP名稱與EPT表710的記錄711之間建立第5基于名稱關(guān)系⑤。
·在記錄701與指定格式屬性的例示單元格范圍798之間建立第6基于指針關(guān)系⑥。
·在記錄711與指定概要內(nèi)容的例示單元格范圍799之間建立第7基于指針關(guān)系⑦。
·現(xiàn)在從由三個(gè)部分“RSTI Header”、“RSTI Body”和“RSTI Footer”組成的RSTI 730開始,在這個(gè)RSTI 730與RSTIT表2260的記錄2261之間建立第8基于地址關(guān)系⑧。
·在這個(gè)記錄2261與描述RSTI 730的結(jié)構(gòu)的RSTIDT表2270之間建立第9基于指針關(guān)系⑨。RSTIDT表2270的每個(gè)單元格2272包括與RSTI730的給定STI(像STI 797那樣)成員有關(guān)的幾個(gè)字段2276、2277、2278、2279、2280、2281和2282。
·因此在RSTIDT表2270的單元格2272的2276字段與包括STI的STI797的容器范圍之間建立起第10基于地址關(guān)系⑩。
·還在RSTIDT表2270的單元格2272的2282字段與對(duì)應(yīng)于STI的STI797的STIT表750的記錄751之間建立起第11基于指針關(guān)系①①。
·然后,在記錄2261與RSTT表2220的記錄2221之間建立第12基于名稱關(guān)系①②。這個(gè)記錄2221對(duì)應(yīng)于遵從RSTI 730的RST。
·在這個(gè)記錄2221與描述RST的結(jié)構(gòu)的RSTDT表2250之間建立第13基于指針關(guān)系①③。RSTDT表2250的每個(gè)記錄對(duì)應(yīng)于RE或RME。
·在RE或RME名稱與RET表2210的記錄2211之間建立第14基于名稱關(guān)系①④。
·在記錄2211與包含ST的名稱的RE描述符單元格范圍731之間建立第15基于指針關(guān)系①⑤。
·在RE描述符單元格范圍731與STT表720的記錄721之間建立第16基于名稱關(guān)系①⑥。
·在RSTIDT表2270的單元格2272與STT表720的記錄721之間建立類似的第17基于名稱關(guān)系①⑦。
D.方案與剛剛描述過(guò)的傳統(tǒng)工具不同,本發(fā)明的優(yōu)選實(shí)施例以一群方法的形式提供了定義和管理ST的更有功效的、用戶友好的和交互式的途徑。在優(yōu)選實(shí)施例中,本發(fā)明用在清楚地表達(dá)成一系列操作的方案內(nèi)。
·1.第一操作創(chuàng)建STI或RSTI第一操作發(fā)生在電子表格用戶根據(jù)這里未詳述的一些準(zhǔn)則,決定創(chuàng)建遵從ST的結(jié)構(gòu)的STI或創(chuàng)建遵從RST的結(jié)構(gòu)的RSTI的時(shí)候。在本發(fā)明的優(yōu)選實(shí)施例中,這個(gè)操作包括如下步驟
·a.RST管理器電子表格用戶首先借助于適合用在電子表格環(huán)境中的傳統(tǒng)手段,譬如,定位設(shè)備105或鍵盤104(但不限于這些),調(diào)用稱為“RST管理器”的原始專用命令,以便通過(guò)專用用戶界面看見(jiàn)任何現(xiàn)有EF、或MEF、或EP、或MEP、或RE、或RME、或ST、或RST。這個(gè)RST管理器為進(jìn)一步管理這些實(shí)體提供了不同的選擇。這可以借助于參照?qǐng)D2所述的用戶界面來(lái)例示,圖2示出了如顯示在顯示設(shè)備106上那樣的RST管理器對(duì)話框200。在這個(gè)RST管理器對(duì)話框200內(nèi),用戶可以在分別指定對(duì)象的名稱、對(duì)象的類型、和它們的最后更新日期的“列表框”213、214和202中看見(jiàn)已經(jīng)定義的對(duì)象(EF、MEF、EP、MEP、RE、RME、ST和RST)。如果已經(jīng)定義了大量對(duì)象,那么,用戶可以借助于定位設(shè)備105向上或向下點(diǎn)擊滾動(dòng)條203,在它們之間導(dǎo)航,以便顯示在列表框213、214和202內(nèi)的對(duì)象在頂部對(duì)象和底部對(duì)象之間向前向后移動(dòng)。在本發(fā)明的優(yōu)選實(shí)施例中,通過(guò)最后更新日期對(duì)對(duì)象加以分類,但也可以使用任何其它分類方案,這不偏離本發(fā)明的精神。然后,用戶可以采取幾種行動(dòng)。
用戶可以利用定位設(shè)備105點(diǎn)擊像復(fù)選框212那樣在RST管理器對(duì)話框200左側(cè)的復(fù)選框,以便選擇或取消選擇其名稱在列表框213內(nèi)正好顯示在被點(diǎn)擊復(fù)選框右邊的對(duì)象??梢赃x擇或取消選擇一個(gè)或多個(gè)對(duì)象。列表滾動(dòng)當(dāng)然會(huì)在復(fù)選框上反映出來(lái)。一旦進(jìn)行了選擇,如果用戶想要從列表框213、214和202中除去所有所選對(duì)象,他/她可以利用定位設(shè)備105點(diǎn)擊“Delete(刪除)”按鈕207。如果沒(méi)有其它對(duì)象(ST、STI、RE、RME、RST或RSTI)引用這些對(duì)象的至少一個(gè),那么,馬上刪除它們,以便它們不再出現(xiàn)在列表框213、214和202上。如果存在至少一個(gè)其它ST、STI、RE、RME、RST或RSTI引用所選對(duì)象的至少一個(gè),那么,在顯示設(shè)備106上顯示傳統(tǒng)對(duì)話框,首先將這種狀況告訴用戶,其次請(qǐng)他取消刪除操作或確認(rèn)它。如果用戶的決定是取消操作,那么,不采取任何行動(dòng),否則,馬上刪除所選對(duì)象,以便它們不再出現(xiàn)在列表框213、214和202上。可替代地,如果用戶想要編輯假設(shè)是唯一的所選對(duì)象,他/她可以利用定位設(shè)備105點(diǎn)擊“Edit(編輯)”按鈕211。
如果以前沒(méi)有選擇對(duì)象或選擇了多個(gè)對(duì)象,如在RST管理器對(duì)話框200內(nèi),在位于左側(cè)的復(fù)選框中沒(méi)有復(fù)選標(biāo)記或存在多個(gè)復(fù)選標(biāo)記(看得見(jiàn)的或看不見(jiàn)的)所示,那么,在顯示設(shè)備106上,通過(guò)傳統(tǒng)手段,譬如,彈出窗口、狀態(tài)欄消息,或可以改用而不會(huì)偏離本發(fā)明精神的任何其它類似傳統(tǒng)手段,向用戶顯示警告消息。
如果以前選擇了單個(gè)對(duì)象,如在像復(fù)選框212那樣,位于左側(cè)的復(fù)選框中存在單個(gè)復(fù)選標(biāo)記(看得見(jiàn)的或看不見(jiàn)的)所示,那么,首先關(guān)閉RST管理器對(duì)話框200,此后,考慮這單個(gè)所選對(duì)象的性質(zhì),以確定要打開的新對(duì)話框。
如果所選對(duì)象是EF或MEF,那么,發(fā)出EF編輯器命令,以便EF編輯器方法通過(guò)首先在顯示設(shè)備106上顯示如圖3所示的EF編輯器對(duì)話框301采取控制。在隨后的章節(jié)中詳述這個(gè)方案事例的接著步驟。
如果所選對(duì)象是EP或MEP,那么,發(fā)出EP編輯器命令,以便EP編輯器方法通過(guò)首先在顯示設(shè)備106上顯示如圖4所示的EP編輯器對(duì)話框301采取控制。在隨后的章節(jié)中詳述這個(gè)方案事例的接著步驟。
如果所選對(duì)象是RE或RME,那么,發(fā)出RE編輯器命令,以便RE編輯器方法通過(guò)首先在顯示設(shè)備106上顯示如圖20B所示的RE編輯器對(duì)話框2321采取控制。在隨后的章節(jié)中詳述這個(gè)方案事例的接著步驟。
如果所選對(duì)象是ST,那么,發(fā)出ST編輯器命令,以便ST編輯器方法通過(guò)首先在顯示設(shè)備106上顯示如圖5所示的ST編輯器對(duì)話框501采取控制。在隨后的章節(jié)中詳述這個(gè)方案事例的接著步驟。
如果所選對(duì)象是RST,那么,發(fā)出RST編輯器命令,以便RST編輯器方法通過(guò)首先在顯示設(shè)備106上顯示如圖6所示的RST編輯器對(duì)話框601采取控制。在隨后的章節(jié)中詳述這個(gè)方案事例的接著步驟。
可替代地,如果用戶想要生成遵從假設(shè)是唯一的和分別是ST或RST的所選對(duì)象的STI或RSTI,他/她可以利用定位設(shè)備105點(diǎn)擊“Instanciate(實(shí)例化)”按鈕204。
如果以前沒(méi)有選擇對(duì)象或選擇了多個(gè)對(duì)象,如在RST管理器對(duì)話框200內(nèi),在像復(fù)選框212那樣,位于左側(cè)的復(fù)選框中沒(méi)有復(fù)選標(biāo)記或存在多個(gè)復(fù)選標(biāo)記(看得見(jiàn)的或看不見(jiàn)的)所示,那么,在顯示設(shè)備106上,通過(guò)傳統(tǒng)手段,譬如,彈出窗口、狀態(tài)欄消息,或可以改用而不會(huì)偏離本發(fā)明精神的任何其它類似傳統(tǒng)手段,向用戶顯示警告消息。
如果以前選擇了單個(gè)對(duì)象,如在像復(fù)選框212那樣,位于左側(cè)的復(fù)選框中存在單個(gè)復(fù)選標(biāo)記(看得見(jiàn)的或看不見(jiàn)的)所示,那么,該方法檢驗(yàn)這個(gè)對(duì)象是否是ST或RST。
如果情況不是這樣,那么,在顯示設(shè)備106上,通過(guò)傳統(tǒng)手段,譬如,彈出窗口、狀態(tài)欄消息,或可以改用而不會(huì)偏離本發(fā)明精神的任何其它類似傳統(tǒng)手段,向用戶顯示警告消息。
如果以前選擇了單個(gè)ST(相應(yīng)地,RST),那么,首先關(guān)閉RST管理器對(duì)話框200,此后,發(fā)出ST實(shí)例化器(相應(yīng)地,RST實(shí)例化器)命令,以便ST實(shí)例化器(相應(yīng)地,RST實(shí)例化器)方法通過(guò)首先在顯示設(shè)備106上顯示如圖13A(相應(yīng)地,圖20A)所示的ST實(shí)例化器對(duì)話框1300(相應(yīng)地,RST實(shí)例化器對(duì)話框2300)采取控制。在隨后的章節(jié)中詳述這個(gè)方案事例的接著步驟。
可替代地,如果用戶想要將一組非空對(duì)象從當(dāng)前電子表格文件輸出到另一個(gè)電子表格文件,他/她可以利用定位設(shè)備105點(diǎn)擊“Export”按鈕206。如果復(fù)選框“Including child objects(for Export)(包括子對(duì)象(對(duì)于輸出))”220上已打上復(fù)選標(biāo)記,那么,即使沒(méi)有通過(guò)像復(fù)選框212那樣,位于左側(cè)的復(fù)選框選擇所選對(duì)象的所有子對(duì)象,這些子對(duì)象也將從輸出操作中受益。
如果以前沒(méi)有選擇對(duì)象,如在RST管理器對(duì)話框200內(nèi),在像復(fù)選框212那樣,位于左側(cè)的復(fù)選框中沒(méi)有任何復(fù)選標(biāo)記(看得見(jiàn)的或看不見(jiàn)的)所示,那么,在顯示設(shè)備106上,通過(guò)傳統(tǒng)手段,譬如,彈出窗口、狀態(tài)欄消息,或可以改用而不會(huì)偏離本發(fā)明精神的任何其它類似傳統(tǒng)手段,向用戶顯示警告消息。
如果以前選擇了一個(gè)或多個(gè)對(duì)象,如在像復(fù)選框212那樣,位于左側(cè)的復(fù)選框中存在至少一個(gè)復(fù)選標(biāo)記(看得見(jiàn)的或看不見(jiàn)的)所示,那么,首先關(guān)閉RST管理器對(duì)話框200,此后,發(fā)出專用RST Export Mananger(RST輸出管理器)命令,以便在本發(fā)明中未描述的專用方法采取控制以管理輸出操作。
可替代地,如果用戶想要將一個(gè)或幾個(gè)對(duì)象從另一個(gè)電子表格文件輸入到當(dāng)前電子表格文件,他/她可以利用定位設(shè)備105點(diǎn)擊“Import(輸入)”按鈕205。首先關(guān)閉RST管理器對(duì)話框200,此后,發(fā)出專用RST ImportMananger(RST輸入管理器)命令,以便在本發(fā)明中未描述的專用方法采取控制以管理輸入操作。
可替代地,如果用戶想要指定以后可能創(chuàng)建的新對(duì)象的類型,他/她可以利用定位設(shè)備105在RST Mananger(RST管理器)對(duì)話框200的左下側(cè)點(diǎn)擊五個(gè)選項(xiàng)按鈕217“Format(格式)”、209“Profile(概要)”、216“Template(模板)”、218“RE”、和219“Recursive Template(遞歸模板)”之一。用戶擁有將EF、EP、RE、ST或RST指定為此后要?jiǎng)?chuàng)建的新對(duì)象的類型的選擇。
可替代地,如果用戶想要指定是否從當(dāng)前在電子表格文件中選擇的單元格范圍中導(dǎo)出此后要?jiǎng)?chuàng)建的新對(duì)象,他/她可以利用定位設(shè)備105點(diǎn)擊叫作“From current selection(來(lái)自當(dāng)前選擇)”的復(fù)選框208。
可替代地,如果用戶想要?jiǎng)?chuàng)建以前借助于像下面那樣的五個(gè)選項(xiàng)按鈕指定了類型的新對(duì)象,他/她可以利用定位設(shè)備105點(diǎn)擊“Create New(新創(chuàng)建)”按鈕210·“Profile”選項(xiàng)按鈕209;·“Format”選項(xiàng)按鈕217;·“Template”選項(xiàng)按鈕216·“RE”選項(xiàng)按鈕218;或·“Recursive Template”選項(xiàng)按鈕219。
如果這五個(gè)選項(xiàng)按鈕沒(méi)有一個(gè)顯示出以前被用戶選擇,如在RST管理器對(duì)話框200內(nèi),這五個(gè)選項(xiàng)按鈕209、216、217、218和219沒(méi)有一個(gè)被打點(diǎn)所示,那么,在顯示設(shè)備106上,通過(guò)傳統(tǒng)手段,譬如,彈出窗口、狀態(tài)欄消息,或可以改用而不會(huì)偏離本發(fā)明精神的任何其它類似傳統(tǒng)手段,向用戶顯示警告消息。
如果這五個(gè)選項(xiàng)按鈕209、216、217、218和219之一顯示出以前的用戶選擇,那么,首先關(guān)閉RST管理器對(duì)話框200,此后,考慮單個(gè)所選選項(xiàng)按鈕,以確定要打開的新對(duì)話框。
如果“Format(格式)”選項(xiàng)按鈕217顯示出選擇,那么,發(fā)出EF編輯器命令,以便EF編輯器方法通過(guò)首先在顯示設(shè)備106上顯示如圖3所示的EF編輯器對(duì)話框301采取控制。在隨后的章節(jié)中詳述這個(gè)方案事例的接著步驟。
如果“Profile(概要)”選項(xiàng)按鈕209顯示出選擇,那么,發(fā)出EP編輯器命令,以便EP編輯器方法通過(guò)首先在顯示設(shè)備106上顯示如圖4所示的EP編輯器對(duì)話框301采取控制。在隨后的章節(jié)中詳述這個(gè)方案事例的接著步驟。
如果“Template(模板)”選項(xiàng)按鈕216顯示出選擇,那么,發(fā)出ST編輯器命令,以便ST編輯器方法通過(guò)首先在顯示設(shè)備106上顯示如圖5所示的ST編輯器對(duì)話框501采取控制。在隨后的章節(jié)中詳述這個(gè)方案事例的接著步驟。
如果“RE”選項(xiàng)按鈕218顯示出選擇,那么,發(fā)出RE編輯器命令,以便RE編輯器方法通過(guò)首先在顯示設(shè)備106上顯示如圖20B所示的RE編輯器對(duì)話框2321采取控制。在隨后的章節(jié)中詳述這個(gè)方案事例的接著步驟。
如果“Recursive Template(遞歸模板)”選項(xiàng)按鈕219顯示出選擇,那么,發(fā)出RST編輯器命令,以便RST編輯器方法通過(guò)首先在顯示設(shè)備106上顯示如圖6所示的RST編輯器對(duì)話框601采取控制。在隨后的章節(jié)中詳述這個(gè)方案事例的接著步驟。
最后,如果用戶想要結(jié)束RST管理器方法,他/她可以利用定位設(shè)備105點(diǎn)擊“Done(完成)”按鈕201或關(guān)閉窗口按鈕215。其結(jié)果是關(guān)閉顯示設(shè)備106上的RST管理器對(duì)話框200。
·b.EF編輯器根據(jù)前面例示RST管理器方法的方案,電子表格用戶然后可以借助于適合用在電子表格環(huán)境中的傳統(tǒng)手段,譬如,定位設(shè)備105或鍵盤104(但不限于這些),調(diào)用稱為“EF編輯器”的原始專用命令,以便創(chuàng)建新EF;創(chuàng)建新MEF;更新現(xiàn)有EF;或更新現(xiàn)有MEF。Aureglia等人在發(fā)明名稱為“在電子表格中從一個(gè)可縮放模式實(shí)例到另一個(gè)可縮放模式實(shí)例輸出-輸入輸入單元格的內(nèi)容的系統(tǒng)和方法(System and method in an electronicspreadsheet for exporting-importing the content of input cells from a scalabletemplate instance to another)”的國(guó)際專利申請(qǐng)PCT/EP 02/09483(IBM參考文獻(xiàn)FR9 2001 0029)中描述了相應(yīng)方案。
·c.EP編輯器根據(jù)前面例示RST管理器方法的方案,電子表格用戶然后可以借助于適合用在電子表格環(huán)境中的傳統(tǒng)手段,譬如,定位設(shè)備105或鍵盤104(但不限于這些),調(diào)用稱為“EP編輯器”的原始專用命令,以便創(chuàng)建新EP,創(chuàng)建新MEP,更新現(xiàn)有EP,或更新現(xiàn)有MEP。
Aureglia等人在發(fā)明名稱為“在電子表格中從一個(gè)可縮放模式實(shí)例到另一個(gè)可縮放模式實(shí)例輸出-輸入輸入單元格的內(nèi)容的系統(tǒng)和方法(System andmethod in an electronic spreadsheet for exporting-importing the content of inputcells from a scalable template instance to another)”的國(guó)際專利申請(qǐng)PCT/EP02/09483(IBM參考文獻(xiàn)FR9 2001 0029)中描述了相應(yīng)方案。
·d.RE編輯器根據(jù)前面例示RST管理器方法的方案,電子表格用戶然后可以借助于適合用在電子表格環(huán)境中的傳統(tǒng)手段,譬如,定位設(shè)備105或鍵盤104(但不限于這些),調(diào)用稱為“RE編輯器”的原始專用命令,以便創(chuàng)建新RE,創(chuàng)建新RME,更新現(xiàn)有RE,或更新現(xiàn)有RME。
這可以借助于參照?qǐng)D20B所述的用戶界面來(lái)例示,圖20B示出了如在顯示設(shè)備106上顯示在電子表格辦公應(yīng)用軟件的GUI窗口內(nèi)那樣的RE編輯器對(duì)話框2321。
當(dāng)在顯示設(shè)備106上顯示RE編輯器對(duì)話框232時(shí),它包含一些信息段。
第一,通過(guò)指定是否是RE或RME的一對(duì)選項(xiàng)按鈕2330和2331示出編輯對(duì)象的性質(zhì)。電子表格用戶可以用定位設(shè)備105點(diǎn)擊這兩個(gè)選項(xiàng)按鈕2330和2331之一,以便切換RE定義和RME定義。
第二,在文本框2326中指定編輯對(duì)象內(nèi)的字段數(shù)。當(dāng)創(chuàng)建新RE或RME時(shí)(電子表格用戶以前已經(jīng)用定位設(shè)備105點(diǎn)擊了選項(xiàng)按鈕218將點(diǎn)打在上面和點(diǎn)擊了按鈕210,兩者都包含在如圖2所示的RST管理器對(duì)話框200內(nèi)),文本框2326所示的值對(duì)應(yīng)于在本發(fā)明的優(yōu)選實(shí)施例中設(shè)置成3的默認(rèn)值。當(dāng)編輯現(xiàn)有RE或RME時(shí),文本框2326所示的值對(duì)應(yīng)于以前為這個(gè)對(duì)象定義的字段數(shù)。在所有情況中,電子表格用戶可以通過(guò)用定位設(shè)備105點(diǎn)擊旋鈕2327,點(diǎn)擊在上升側(cè)上或點(diǎn)擊在下降側(cè)上,以便可以使值增加或減小(在預(yù)定界限內(nèi)),改變顯示在文本框2326中的值。
第三,在標(biāo)記按鈕2324上顯示編輯RE或RME的名稱。當(dāng)編輯現(xiàn)有RE或RME時(shí),標(biāo)記框2324所示的名稱對(duì)應(yīng)于以前指定給這個(gè)對(duì)象的名稱。當(dāng)創(chuàng)建新RE或RME時(shí),那么,顯示在標(biāo)記框2324上的名稱對(duì)應(yīng)于在本發(fā)明的優(yōu)選實(shí)施例中,采取“New XX(新XX)”形式的默認(rèn)值,其中,XX是保證指定名稱唯一性的計(jì)數(shù)。
第四,文本框2325和2334一起指定構(gòu)成編輯RE或RME的ST。文本框2325指定按慣例,為編輯RE或RME的最左邊字段取值1,和為編輯RE或RME的最右邊字段取與顯示在文本框2326上的那個(gè)相同的值的字段等級(jí)。文本框2324為文本框2325指定其等級(jí)的字段指定ST的名稱。
RE編輯器對(duì)話框2321包含允許電子表格用戶采取一些行動(dòng)的幾個(gè)圖形對(duì)象。
第一,電子表格用戶可以將新名稱指定給當(dāng)前編輯的RE或RME。為了這個(gè)目的,他/她首先利用諸如鍵盤104之類的傳統(tǒng)手段在文本框2325內(nèi)指定要給予編輯RE或RME的新名稱。然后,他/她利用定位設(shè)備105點(diǎn)擊“Saveas(保存為)”按鈕2332。如果輸入文本框2325內(nèi)的指定名稱已經(jīng)指定給現(xiàn)有對(duì)象或不是有效名稱,那么,在顯示設(shè)備106上,通過(guò)傳統(tǒng)手段,譬如,彈出窗口、狀態(tài)欄消息,或可以改用而不會(huì)偏離本發(fā)明精神的任何其它類似傳統(tǒng)手段,向用戶顯示警告消息。這個(gè)警告信息將這種狀況通知電子表格用戶,然后,提醒他加以確認(rèn)。然后,清除文本框2325而不采取進(jìn)一步行動(dòng)。如果輸入文本框2325內(nèi)的指定名稱還沒(méi)有指定給現(xiàn)有對(duì)象和是有效名稱,那么,清除文本框2325,和將編輯對(duì)象保存在電子表格文件上也顯示在標(biāo)記框2324內(nèi)的新名稱下。
第二,電子表格用戶可以通過(guò)用定位設(shè)備105點(diǎn)擊“Save(保存)”按鈕2333,將編輯對(duì)象的當(dāng)前定義保存在電子表格文件上。這個(gè)事件的后果是檢驗(yàn)更新的RE或RME是否已經(jīng)被現(xiàn)有RST引用。如果情況不是這樣,那么,在顯示設(shè)備106上,通過(guò)傳統(tǒng)手段,譬如,彈出窗口、狀態(tài)欄消息,或可以改用而不會(huì)偏離本發(fā)明精神的任何其它類似傳統(tǒng)手段,向用戶顯示警告消息。這個(gè)警告信息將這種狀況通知電子表格用戶,然后,提醒他取消操作或繼續(xù)進(jìn)行。在第一種情況中,不保存更新的RE或RME定義,而在第二種情況中,將它保存在電子表格文件上。
第三,電子表格用戶可以改變構(gòu)成編輯RE或RME的ST的定義。為了這個(gè)目的,他/她通過(guò)用定位設(shè)備105點(diǎn)擊旋鈕2329,降低和提高像顯示在文本框2335中那樣、和ST名稱顯示在文本框2334中的字段的等級(jí),首先在編輯對(duì)象的字段內(nèi)導(dǎo)航。字段等級(jí)所取的值保持在下限為值1(一)和上限為文本框2326的值的區(qū)間內(nèi)。然后,電子表格用戶可以通過(guò)用定位設(shè)備105點(diǎn)擊旋鈕2328選擇適當(dāng)ST名稱,為其等級(jí)顯示在文本框2335中的字段更新ST的名稱。
最后,如果用戶想要結(jié)束RE編輯器方法,他/她可以利用定位設(shè)備105點(diǎn)擊“Done(完成)”按鈕2323或關(guān)閉窗口按鈕2322。其結(jié)果是關(guān)閉顯示設(shè)備106上的RE編輯器對(duì)話框2321。
·e.ST編輯器根據(jù)前面例示RST管理器方法的方案,電子表格用戶然后可以借助于適合用在電子表格環(huán)境中的傳統(tǒng)手段,譬如,定位設(shè)備105或鍵盤104(但不限于這些),調(diào)用稱為“ST編輯器”的原始專用命令,以便創(chuàng)建新ST或更新現(xiàn)有ST。Aureglia等人在發(fā)明名稱為“System and method inan electronic spreadsheet for exporting-importing the content of input cells from ascalable template instance to another”的國(guó)際專利申請(qǐng)PCT/EP 02/09483(IBM參考文獻(xiàn)FR9 2001 0029)中描述了相應(yīng)方案。
·f.RST編輯器根據(jù)前面例示RST管理器方法的方案,電子表格用戶然后可以借助于適合用在電子表格環(huán)境中的傳統(tǒng)手段,譬如,定位設(shè)備105或鍵盤104(但不限于這些),調(diào)用稱為“RST編輯器”的原始專用命令,以便創(chuàng)建新RST或更新現(xiàn)有RST。這可以借助于參照?qǐng)D6所述的用戶界面來(lái)例示,圖6示出了如在顯示設(shè)備106上顯示在電子表格辦公應(yīng)用軟件的GUI窗口611內(nèi)那樣的RST編輯器對(duì)話框601。當(dāng)在顯示設(shè)備106上顯示RST編輯器對(duì)話框601時(shí),當(dāng)前表格變成在本發(fā)明的優(yōu)選實(shí)施例中叫作“EditorSpace(編輯器空間)”615的專用表格。在“Editor Space”615表格內(nèi),要編輯的RST在左上角顯示成一個(gè)單元格范圍614,左上單元格在地址B2上。盡管編輯的RST對(duì)應(yīng)于表格內(nèi)的常規(guī)單元格范圍614,但適合用在電子表格環(huán)境中的傳統(tǒng)工具不能用于更新這個(gè)單元格范圍614。電子表格用戶只能利用作為RST編輯器對(duì)話框601的一部分的專用手段在例示RST的單元格范圍614內(nèi)導(dǎo)航,和在例示RST的單元格范圍614內(nèi)插入或刪除行?!癊ditor Space”表格615內(nèi)中的行插入或刪除將被禁止。此外,對(duì)“Editor Space”表格615加上寫保護(hù),以防止用戶不小心修改了定義成單元格范圍614所例示的RST的一部分的RE或RME的設(shè)置。當(dāng)在顯示設(shè)備106上顯示RST編輯器對(duì)話框601時(shí),它包含與單元格范圍614所例示的整個(gè)RST有關(guān),或與當(dāng)前在這同一個(gè)單元格范圍614內(nèi)選擇的單元格所指的RE或RME有關(guān)的一些信息段。
第一,當(dāng)前選擇的單元格所指的RE或RME由“RE”組合框610示出。通過(guò)用定位設(shè)備105點(diǎn)擊位于這個(gè)“RE”組合框610右側(cè)的箭頭,電子表格用戶可以顯示所定義RE和RME的列表和在所定義RE和RME的列表內(nèi)導(dǎo)航,然后,選出他/她選擇的RE或RME和出現(xiàn)在位于單元格范圍614內(nèi)的當(dāng)前所選單元格上的行上的他/她的選擇。如果電子表格用戶通過(guò)用定位設(shè)備105點(diǎn)擊“Up(上)”按鈕619,或“Down(下)”按鈕616,改變單元格范圍614內(nèi)的所選行,那么,更新顯示在組合框610內(nèi)的名稱,以指定與新選行相對(duì)應(yīng)的RE或RME的名稱。如果電子表格用戶想要將新RME插入RST的頁(yè)眉部分或頁(yè)腳部分中,他/她剛才不得不用定位設(shè)備105點(diǎn)擊“Add(添加)”按鈕617,以便將新行插在單元格范圍614內(nèi)當(dāng)前所選單元格的最后位置之上的所需地方。然后,用顯示在窗口611上的新行更新單元格范圍614。然后,通過(guò)在組合框610內(nèi)示出默認(rèn)指定給引入RME的名稱更新RST編輯器對(duì)話框601。如果電子表格用戶想要從RST的頁(yè)眉部分或頁(yè)腳部分中除去RME,他/她剛才不得不用定位設(shè)備105點(diǎn)擊“Delete(刪除)”按鈕618,以便在單元格范圍614內(nèi)在所需地方除去相應(yīng)行。然后,單元格范圍614內(nèi)的當(dāng)前所選單元格變成屬于代表在RST內(nèi)定義的唯一RE的行的那一個(gè),和通過(guò)在組合框610內(nèi)示出在RST內(nèi)定義的唯一RE的名稱更新RST編輯器對(duì)話框60。
第二,在“MIN(最小)”文本框606中指定在遵從所編輯的RST的RSTI內(nèi)允許的最小RE個(gè)數(shù)。類似地,在“MAX(最大)”文本框609中指定在遵從編輯RST的RSTI內(nèi)允許的最大RE個(gè)數(shù)。當(dāng)創(chuàng)建新RST時(shí)(電子表格用戶以前已經(jīng)用定位設(shè)備105點(diǎn)擊了選項(xiàng)按鈕219將點(diǎn)打在上面和點(diǎn)擊了按鈕210,兩者都包含在如圖2所示的RST管理器對(duì)話框200內(nèi)),“MIN”文本框606所示的值對(duì)應(yīng)于在本發(fā)明的優(yōu)選實(shí)施例中設(shè)置成1的默認(rèn)值,和“MAX”文本框609所示的值對(duì)應(yīng)于在本發(fā)明的優(yōu)選實(shí)施例中設(shè)置成16的默認(rèn)值。當(dāng)編輯現(xiàn)有RST時(shí),文本框606和609所示的值分別對(duì)應(yīng)于如電子表格用戶以前定義的那樣的、在遵從當(dāng)前編輯RST的任何RSTI內(nèi)允許的最小和最大RE個(gè)數(shù)。在所有情況中,電子表格用戶可以通過(guò)用定位設(shè)備105分別點(diǎn)擊旋鈕607或旋鈕608,點(diǎn)擊在上升側(cè)上或點(diǎn)擊在下降側(cè)上,以便在保證在“MIN”文本框606中指定的值保持小于等于在“MAX”文本框609中的值的同時(shí),可以使值增加或減小(在預(yù)定界限內(nèi)),改變顯示在文本框“MIN”606或文本框“MAX”609中的值。倘若遵從更新RST的某個(gè)現(xiàn)有RSTI具有落在新“MIN”-“MAX”區(qū)間之外的元素個(gè)數(shù),那么,這個(gè)RSTI將不受RST更新影響,但任何未來(lái)的RE加入或除去都根據(jù)“MIN(最小)”-“MAX(最大)”區(qū)間的新定義來(lái)完成。
第三,在標(biāo)記按鈕604上顯示編輯RST的名稱。當(dāng)編輯現(xiàn)有RST時(shí),標(biāo)記框606所示的名稱對(duì)應(yīng)于以前指定給這個(gè)對(duì)象的名稱。當(dāng)創(chuàng)建新RST時(shí),那么,顯示在標(biāo)記框604上的名稱對(duì)應(yīng)于在本發(fā)明的優(yōu)選實(shí)施例中,采取“NewXX”形式的默認(rèn)值,其中,XX是保證指定名稱唯一性的計(jì)數(shù)。
RST編輯器對(duì)話框601包括允許電子表格用戶采取一些行動(dòng)的幾個(gè)圖形對(duì)象。
第一,如果當(dāng)前編輯的RST當(dāng)前由均存在相同個(gè)數(shù)的字段的RE和RME組成,電子表格用戶可以將新名稱指定給當(dāng)這個(gè)RST。實(shí)際上,在這種情況下,使能“Save as(保存為)”按鈕612,以便用定位設(shè)備105對(duì)它的任何點(diǎn)擊都被識(shí)別為有效事件。電子表格用戶首先利用諸如鍵盤104之類的傳統(tǒng)手段在文本框605內(nèi)指定要給予編輯RST的新名稱。然后,他/她利用定位設(shè)備105點(diǎn)擊“Save as”按鈕612。如果輸入文本框605內(nèi)的指定名稱已經(jīng)指定給現(xiàn)有對(duì)象或不是有效名稱,那么,在顯示設(shè)備106上,通過(guò)傳統(tǒng)手段,譬如,彈出窗口、狀態(tài)欄消息,或可以改用而不會(huì)偏離本發(fā)明精神的任何其它類似傳統(tǒng)手段,向用戶顯示警告消息。這個(gè)警告信息將這種狀況通知電子表格用戶,然后,提醒他加以確認(rèn)。然后,清除文本框605而不采取進(jìn)一步行動(dòng)。如果輸入文本框605內(nèi)的指定名稱還沒(méi)有指定給現(xiàn)有對(duì)象和是有效名稱,那么,清除文本框2325,和將編輯的RST保存在電子表格文件上也顯示在標(biāo)記框604內(nèi)的新名稱下。
第二,如果編輯的RST當(dāng)前由均存在相同個(gè)數(shù)的字段的RE和RME組成,電子表格用戶可以將這個(gè)RST的當(dāng)前定義保存在電子表格文件上。實(shí)際上,在這種情況下,使能“Save”按鈕613,以便用定位設(shè)備105對(duì)它的任何點(diǎn)擊都被識(shí)別為有效事件。這個(gè)事件的后果是檢驗(yàn)更新的RST是否已經(jīng)被現(xiàn)有RSTI引用。如果情況不是這樣,那么,將RST的更新定義保存在電子表格文件上。如果情況是這樣,那么,在顯示設(shè)備106上,通過(guò)傳統(tǒng)手段,譬如,彈出窗口、狀態(tài)欄消息,或可以改用而不會(huì)偏離本發(fā)明精神的任何其它類似傳統(tǒng)手段,向用戶顯示警告消息。這個(gè)警告信息將這種狀況通知電子表格用戶,然后,提醒他取消操作或繼續(xù)進(jìn)行。在第一種情況中,不保存更新的RST定義,而在第二種情況中,將它保存在電子表格文件上。
最后,如果用戶想要結(jié)束RST編輯器方法,他/她可以利用定位設(shè)備105點(diǎn)擊“Done(完成)”按鈕603或關(guān)閉窗口按鈕602。其結(jié)果是關(guān)閉顯示設(shè)備106上的RST編輯器對(duì)話框601,和返回到最初調(diào)用RST編輯器命令時(shí)激活的表格。
·g.ST實(shí)例化器根據(jù)前面例示RST管理器方法的方案,電子表格用戶然后可以借助于適合用在電子表格環(huán)境中的傳統(tǒng)手段,譬如,定位設(shè)備105或鍵盤104(但不限于這些),調(diào)用稱為“ST實(shí)例化器”的原始專用命令,以便創(chuàng)建遵從所選ST和根據(jù)當(dāng)前所選單元格定位的STI。Aureglia等人在發(fā)明名稱為“System and method in an electronic spreadsheet for exporting-importingthe content of input cells from a scalable template instance to another”的國(guó)際專利申請(qǐng)PCT/EP 02/09483(IBM參考文獻(xiàn)FR9 2001 0029)中描述了相應(yīng)方案。
·h.RST實(shí)例化器根據(jù)前面例示RST管理器方法的方案,電子表格用戶然后可以借助于適合用在電子表格環(huán)境中的傳統(tǒng)手段,譬如,定位設(shè)備105或鍵盤104(但不限于這些),調(diào)用稱為“RST實(shí)例化器”的原始專用命令,以便創(chuàng)建遵從所選RST和根據(jù)當(dāng)前所選單元格定位的RSTI。這可以借助于參照?qǐng)D20A所述的用戶界面來(lái)例示,圖20A示出了如顯示在顯示設(shè)備106上那樣的RST實(shí)例化器對(duì)話框2300。當(dāng)在顯示設(shè)備106上顯示RST實(shí)例化器對(duì)話框2300時(shí),當(dāng)前表格仍然保持有效,以便用戶可以看見(jiàn)出現(xiàn)在上面的數(shù)據(jù)。RST實(shí)例化器對(duì)話框2300包含與實(shí)例化操作有關(guān)的一些信息段。
第一,將遵從要?jiǎng)?chuàng)建的RSTI的RST的名稱顯示在標(biāo)記框2302中。
第二,在文本框2311中示出在RSTI創(chuàng)建時(shí)要出現(xiàn)的RE個(gè)數(shù)。這個(gè)數(shù)字采取等于如在遵從要?jiǎng)?chuàng)建的RSTI的RST的定義中指定的那樣的最小RE個(gè)數(shù)的默認(rèn)值。如果電子表格用戶想要用另一個(gè)RE個(gè)數(shù)創(chuàng)建RSTI,那么,他/她不得不用定位設(shè)備105點(diǎn)擊旋鈕2303的上側(cè)或下側(cè),以增加或減小RE的個(gè)數(shù)。這個(gè)RE個(gè)數(shù)在由如在RST的定義內(nèi)指定的那樣的最小RE個(gè)數(shù)和最大RE個(gè)數(shù)(“Name(名稱)”字段2222與顯示在標(biāo)記框2302中的名稱匹配的RSTT表2220的記錄2221內(nèi)的字段“Min Element #(最小元素?cái)?shù))”2225和“Max Element #(最大元素?cái)?shù))”2226)界定的范圍內(nèi)變化,并且,在可能的更新之后,顯示在文本框2311中。
第三,按鈕“Cancel(取消)”2308或關(guān)閉窗口按鈕2301允許電子表格用戶關(guān)閉RST實(shí)例化器對(duì)話框2300而不采取進(jìn)一步行動(dòng)。通過(guò)用定位設(shè)備105點(diǎn)擊這兩個(gè)按鈕2301和2308之一,RST實(shí)例化器對(duì)話框2300被關(guān)閉和RST實(shí)例化操作被中止。
第四,當(dāng)首先被使能,其次被電子表格用戶用定位設(shè)備105點(diǎn)擊時(shí),按鈕“Create Instance(創(chuàng)建實(shí)例)”2310成為啟動(dòng)RST實(shí)例化操作的觸發(fā)器。當(dāng)可以進(jìn)行實(shí)例化操作時(shí),使能這個(gè)按鈕“Create Instance”2310(意味著該方法認(rèn)可定位設(shè)備105在這個(gè)按鈕“Create Instance”2310上的點(diǎn)擊事件)。這個(gè)RST實(shí)例化是否可以取決于不同因素電子表格的當(dāng)前表格內(nèi)當(dāng)前所選單元格的位置、要?jiǎng)?chuàng)建的RSTI的大小、屬于與當(dāng)前所選單元格相同的表格的任何現(xiàn)有STI的存在。是否可以創(chuàng)建具有在文本框2303中指定的大小、遵從其名稱由標(biāo)記框2302指定的RST、左上角位于當(dāng)前所選單元格上的新RSTI通過(guò)作為RST實(shí)例化器對(duì)話框2300的一部分、取值“YES”或“NO”的幾個(gè)標(biāo)記框反映出來(lái)反映新RSTI是否太寬的標(biāo)記框2304、反映新RSTI是否太高的標(biāo)記框2305、反映在包括當(dāng)前所選單元格的表格上是否已經(jīng)定義了任何現(xiàn)有STI的標(biāo)記框2306、和反映新RSTI的創(chuàng)建是否可能導(dǎo)致出現(xiàn)在一個(gè)或幾個(gè)電子表格單元格中的任何現(xiàn)有數(shù)據(jù)喪失的標(biāo)記框2307。一旦標(biāo)記框2304、標(biāo)記框2305、或標(biāo)記框2306取值“YES”,那么,就認(rèn)為不可以創(chuàng)建RSTI,從而禁止“Create Instance”按鈕2310。如果在這三個(gè)標(biāo)記框中顯示值“NO(否)”,那么,可以進(jìn)行實(shí)例化操作,從而使能“Create Instance”按鈕2310。當(dāng)電子表格用戶用定位設(shè)備105點(diǎn)擊時(shí),進(jìn)行實(shí)例化操作,然后,關(guān)閉RST實(shí)例化器對(duì)話框2300。
第五,當(dāng)首先被使能,其次被電子表格用戶用定位設(shè)備105點(diǎn)擊時(shí),按鈕”Create Instance in anew sheet(在新工作表中創(chuàng)建實(shí)例)”2309成為啟動(dòng)RST實(shí)例化操作的可替代觸發(fā)器,但是,在作為這個(gè)實(shí)例化操作的一部分創(chuàng)建的表格中。在本發(fā)明的優(yōu)選實(shí)施例中,在包括當(dāng)前所選單元格的表格之后創(chuàng)建新表格??梢愿挠萌魏纹渌砀裎恢茫@不偏離本發(fā)明的精神。當(dāng)可以在新表格中進(jìn)行實(shí)例化操作時(shí),使能這個(gè)按鈕“Create Instance in a new sheet”2309(意味著該方法認(rèn)可定位設(shè)備105在這個(gè)按鈕“Create Instance in a new sheet”2309上的點(diǎn)擊事件)。這個(gè)RST實(shí)例化是否可以取決于不同因素要?jiǎng)?chuàng)建的RSTI的大小。是否可以在新表格中創(chuàng)建具有在文本框2303中指定的大小、遵從其名稱由標(biāo)記框2302指定的新RSTI通過(guò)作為RST實(shí)例化器對(duì)話框2300的一部分、取值“YES(是)”或“NO(否)”的幾個(gè)標(biāo)記框反映出來(lái)反映新RSTI是否太寬的標(biāo)記框2304、和反映新RSTI是否太高的標(biāo)記框2305。一旦標(biāo)記框2304、或標(biāo)記框2305取值“YES”,那么,就認(rèn)為不可以在新表格中創(chuàng)建RSTI,從而禁止“Create Instance in a new sheet”按鈕2309。如果在這兩個(gè)標(biāo)記框中顯示值“NO”,那么,可以在新表格中進(jìn)行實(shí)例化操作,從而使能“Create Instance in a new sheet”按鈕2309。當(dāng)電子表格用戶用定位設(shè)備105點(diǎn)擊時(shí),進(jìn)行實(shí)例化操作,然后,關(guān)閉RST實(shí)例化器對(duì)話框2300。
·第二操作從已定義的STI中移除元素當(dāng)電子表格用戶根據(jù)未在此詳述的他或她自己的標(biāo)準(zhǔn)而決定從已定義的STI中移除一些元素、或者在已定義的STI內(nèi)清除一些元素的內(nèi)容、或者刪除整個(gè)已定義的STI、或者甚至從當(dāng)前工作表中刪除一些電子表格單元格或列或行時(shí),發(fā)生第四操作。對(duì)應(yīng)的場(chǎng)景被描述在Aureglia等人的標(biāo)題為“Systemand method in an electronic spreadsheet for exporting-importing the content ofinput cells from a scalable template instance to another”的國(guó)際專利申請(qǐng)PCT/EP02/09483(IBM參考文獻(xiàn)FR9 2001 0029)中。
·第三操作從已定義的RSTI中移除元素當(dāng)電子表格用戶根據(jù)未在此詳述的他或她自己的標(biāo)準(zhǔn)而決定刪除整個(gè)已定義的RSTI、或者從已定義的RSTI中移除一些RE、或者刪除包括在RSTI內(nèi)的STI內(nèi)的選定元素、或者清除包括在RSTI內(nèi)的選定STI內(nèi)的所有元素的內(nèi)容、或者清除包括在RSTI內(nèi)的STI內(nèi)的選定元素的內(nèi)容、或者清除包括在當(dāng)前選定單元格范圍內(nèi)的選定元素的內(nèi)容,或者甚至從當(dāng)前工作表中刪除一些電子表格單元格或列或行。
在本發(fā)明的優(yōu)選實(shí)施例中,該操作包括以下步驟·a.電子表格用戶首先通過(guò)使用傳統(tǒng)的裝置例如但不限于定點(diǎn)設(shè)備105或鍵盤104選擇作為他/她的選擇的單元格范圍。
·b.RSTI刪除管理器然后,電子表格用戶通過(guò)在電子表格環(huán)境中可用的傳統(tǒng)裝置,例如(但不限于)·專用按鈕,·鍵盤輸入快捷鍵,·菜單或子菜單條目,調(diào)用被稱作“RST刪除管理器”的原始特定命令,其豐富了用于在電子表格內(nèi)刪除單元格或行或列的傳統(tǒng)裝置。在本發(fā)明的優(yōu)選實(shí)施例中,通過(guò)使用與在傳統(tǒng)電子表格中可用的、用于清除單個(gè)單元格或單元格范圍的內(nèi)容或者在工作表內(nèi)移除單元格或行或列的裝置相同的一組裝置,例如但不限于·在鍵盤104上鍵入“刪除”鍵,或者·用定點(diǎn)設(shè)備105點(diǎn)擊“范圍”菜單條目的“刪除”子菜單條目,或者·在鍵盤104上鍵入“Ctrl-”鍵,來(lái)調(diào)用“RSTI刪除管理器”命令。
當(dāng)調(diào)用該命令時(shí),首先執(zhí)行測(cè)試以確定當(dāng)前選定的單元格是否屬于包括已定義的RSTI的工作表。
如果否,則該命令將控制傳遞到STI刪除管理器命令,以便注意可能受到刪除操作的影響的任何STI的存在。
如果是,則執(zhí)行第二測(cè)試,以確定當(dāng)前選定的單元格是否包括在存在于當(dāng)前工作表上的RSTI內(nèi)。
如果否,則在禁用了將破壞存在于當(dāng)前工作表上的RSTI的任何刪除模式之后調(diào)用在電子表格環(huán)境中可用的傳統(tǒng)刪除過(guò)程。例如,如果當(dāng)前選定的單元格屬于存在于當(dāng)前工作表上的RSTI所占據(jù)的行(相應(yīng)地,列),則禁用行(相應(yīng)地,列)刪除模式。
如果是,則刪除操作通過(guò)如圖16C所示在顯示設(shè)備106上顯示RSTI刪除管理器對(duì)話框1940而繼續(xù),其中RSTI刪除管理器對(duì)話框1940包含與刪除操作相關(guān)的一些信息。在下面,包含在與當(dāng)前選定的單元格相同的工作表上的RSTI將被稱作當(dāng)前RSTI或者簡(jiǎn)稱的cRSTI。
第一,在標(biāo)簽框1950中顯示cRSTI所遵循的RST的名稱。
第二,通過(guò)一組選項(xiàng)按鈕來(lái)指定不同的可用刪除模式·選項(xiàng)按鈕“在選定范圍內(nèi)刪除輸入字段”1949在被激活時(shí),允許清除包括在當(dāng)前選定的單元格范圍內(nèi)的輸入字段的內(nèi)容。當(dāng)且僅當(dāng)當(dāng)前選定的單元格范圍包括在被定義為cRSTI的一部分的STI的界限內(nèi)時(shí),該選項(xiàng)按鈕“在選定范圍內(nèi)刪除輸入字段”1949才被啟用。通過(guò)參照示出了可能cRSTI結(jié)構(gòu)的圖17A,當(dāng)當(dāng)前選定的單元格范圍對(duì)應(yīng)于單元格范圍2018或2019或2020或2021時(shí),選項(xiàng)按鈕“在選定范圍內(nèi)刪除輸入字段”1949被啟用,并且當(dāng)當(dāng)前選定的單元格范圍對(duì)應(yīng)于單元格范圍2022或2023或2024或2025時(shí),該選項(xiàng)按鈕被禁用。
·選項(xiàng)按鈕“在當(dāng)前STI的選定元素中刪除輸入字段”1948在被激活時(shí),允許清除在當(dāng)前選定的單元格所屬的STI的當(dāng)前選定元素內(nèi)所包括的輸入字段的內(nèi)容。當(dāng)且僅當(dāng)當(dāng)前選定的單元格范圍包括在被定義為cRSTI的一部分的STI的界限內(nèi)時(shí),該選項(xiàng)按鈕“在當(dāng)前STI的選定元素中刪除輸入字段”1948才被啟用。通過(guò)參照示出了可能cRSTI結(jié)構(gòu)的圖17A,當(dāng)當(dāng)前選定的單元格范圍對(duì)應(yīng)于單元格范圍2018或2019或2020或2021時(shí),選項(xiàng)按鈕“在當(dāng)前STI的選定元素中刪除輸入字段”1948被啟用,并且當(dāng)當(dāng)前選定的單元格范圍對(duì)應(yīng)于單元格范圍2022或2023或2024或2025時(shí),該選項(xiàng)按鈕被禁用。
·選項(xiàng)按鈕“在當(dāng)前STI中刪除輸入字段”1947在被激活時(shí),允許清除包括在當(dāng)前選定的單元格所屬的STI內(nèi)的所有輸入字段的內(nèi)容。當(dāng)且僅當(dāng)當(dāng)前選定的單元格范圍包括在被定義為cRSTI的一部分的STI的界限內(nèi)時(shí),該選項(xiàng)按鈕“在當(dāng)前STI中刪除輸入字段”1947才被啟用。通過(guò)參照示出了可能cRSTI結(jié)構(gòu)的圖17A,當(dāng)當(dāng)前選定的單元格對(duì)應(yīng)于單元格范圍2018或2019或2020或2021或2023或2025時(shí),選項(xiàng)按鈕“在當(dāng)前STI中刪除輸入字段”1947被啟用,并且當(dāng)當(dāng)前選定的單元格對(duì)應(yīng)于單元格范圍2022或2024時(shí),該選項(xiàng)按鈕被禁用。
·選項(xiàng)按鈕“在當(dāng)前STI中刪除選定元素”1946在被激活時(shí),允許刪除當(dāng)前選定的單元格范圍所屬的STI的選定元素。當(dāng)且僅當(dāng)當(dāng)前選定的單元格范圍包括在被定義為cRSTI的一部分的STI的主體部分內(nèi)時(shí),該選項(xiàng)按鈕“在當(dāng)前STI中刪除選定元素”1946才被啟用。通過(guò)參照示出了可能cRSTI結(jié)構(gòu)的圖17A,當(dāng)當(dāng)前選定的單元格范圍對(duì)應(yīng)于單元格范圍2018或2019時(shí),選項(xiàng)按鈕“在當(dāng)前STI中刪除選定元素”1946被啟用,并且當(dāng)當(dāng)前選定的單元格范圍對(duì)應(yīng)于單元格范圍2020或2021或2022或2023或2024或2025時(shí),該選項(xiàng)按鈕被禁用。
·選項(xiàng)按鈕“在當(dāng)前容器中刪除STI”1945在被激活時(shí),允許刪除屬于當(dāng)前選定的單元格所屬的容器行的一個(gè)或多個(gè)STI。當(dāng)且僅當(dāng)當(dāng)前選定的單元格包括在cRSTI的主體部分內(nèi)時(shí),該選項(xiàng)按鈕“在當(dāng)前容器中刪除STI”1945才被啟用。通過(guò)參照示出了可能cRSTI結(jié)構(gòu)的圖17A,當(dāng)當(dāng)前選定的單元格對(duì)應(yīng)于單元格范圍2018或2019或2022或2023時(shí),選項(xiàng)按鈕“在當(dāng)前容器中刪除STI”1945被啟用,并且當(dāng)當(dāng)前選定的單元格對(duì)應(yīng)于單元格范圍2020或2021或2024或2025時(shí),該選項(xiàng)按鈕被禁用。
·選項(xiàng)按鈕“刪除RSTI(保留所包括的STI)”1944允許取消(dequalify)單元格范圍cRSTI的資格,使得它變成一組STI,但是不再當(dāng)作RSTI。該選項(xiàng)按鈕“刪除RSTI(保留所包括的STI)”1944總是被啟用,并且是首先顯示RSTI刪除管理器對(duì)話框1940時(shí)的缺省刪除模式。
如果電子表格用戶希望改變作為“刪除RSTI(保留所包括的STI)”的缺省刪除模式或者先前改變的刪除模式,則他/她使用定點(diǎn)設(shè)備105點(diǎn)擊六個(gè)選項(xiàng)按鈕之一(如果被啟用)·“刪除RSTI(保留所包括的STI)”1944,或者·“在當(dāng)前容器中刪除STI”1945,或者
·“在當(dāng)前STI中刪除選定元素”1946,或者·“在當(dāng)前STI中刪除輸入字段”1947,或者·“在當(dāng)前STI的選定元素中刪除輸入字段”1948,或者·“在選定范圍內(nèi)刪除輸入字段”1949,這些選項(xiàng)按鈕將單獨(dú)顯示黑點(diǎn)來(lái)指定新選擇的刪除模式。用定點(diǎn)設(shè)備105點(diǎn)擊被禁用的選項(xiàng)按鈕的任何嘗試將沒(méi)有效果。
第三,按鈕“取消”1943或者關(guān)閉窗口按鈕1941允許關(guān)閉RST刪除管理器對(duì)話框1940而不采取進(jìn)一步的操作。通過(guò)用定點(diǎn)設(shè)備105點(diǎn)擊這兩個(gè)按鈕1941和1942之一,關(guān)閉RST刪除管理器對(duì)話框1940并且中止RSTI刪除操作。
第四,按鈕“刪除”1942在由電子表格用戶用定點(diǎn)設(shè)備105點(diǎn)擊時(shí)是啟動(dòng)RSTI刪除操作的觸發(fā)器。因?yàn)閯h除操作總是可能的(至少對(duì)于與選項(xiàng)按鈕“刪除RSTI(保留所包括的STI)”1944對(duì)應(yīng)的缺省模式),所以該按鈕“刪除”1942總是被啟用(意味著該方法識(shí)別用定點(diǎn)設(shè)備對(duì)該按鈕“刪除”1942的點(diǎn)擊事件)。根據(jù)由電子表格用戶選擇的刪除模式執(zhí)行刪除操作。這可以通過(guò)cRSTI對(duì)應(yīng)于單元格范圍2001的圖17A的圖加以說(shuō)明。
·如果刪除模式對(duì)應(yīng)于選項(xiàng)按鈕“刪除RSTI(保留所包括的STI)”1944,并且當(dāng)前選定的單元格范圍對(duì)應(yīng)于單元格范圍2024,則刪除操作包括取消單元格范圍2001作為RSTI的資格。但是,形成cRSTI的STI的集合仍然有資格作為STI,并且由此可以受益于相關(guān)工具。
·如果刪除模式對(duì)應(yīng)于選項(xiàng)按鈕“在當(dāng)前容器中刪除STI”1945,并且當(dāng)前選定的單元格范圍對(duì)應(yīng)于單元格范圍2022,則刪除操作包括從cRSTI中移除行容器2010,從而cRSTI此后將僅僅包含被映射到容器行2009和2008的2個(gè)RE(而RME 2012、2011和2007保持不變)。
·如果刪除模式對(duì)應(yīng)于選項(xiàng)按鈕“在當(dāng)前STI中刪除選定元素”1946,并且當(dāng)前選定的單元格范圍對(duì)應(yīng)于單元格范圍2019,則刪除操作包括從STI2032中移除占據(jù)與當(dāng)前選定的單元格范圍2019相同的行的元素。
·如果刪除模式對(duì)應(yīng)于選項(xiàng)按鈕“在當(dāng)前STI中刪除輸入字段”1947,并且當(dāng)前選定的單元格范圍對(duì)應(yīng)于單元格范圍2021,則刪除操作包括清除屬于STI 2031的所有輸入字段。
·如果刪除模式對(duì)應(yīng)于選項(xiàng)按鈕“在當(dāng)前STI的選定元素中刪除輸入字段”1948,并且當(dāng)前選定的單元格范圍對(duì)應(yīng)于單元格范圍2018,則刪除操作包括清除屬于占據(jù)與當(dāng)前選定的單元格范圍2018相同的行的STI 2034的元素的所有輸入字段。
·如果刪除模式對(duì)應(yīng)于選項(xiàng)按鈕“在選定范圍內(nèi)刪除輸入字段”1949,并且當(dāng)前選定的單元格范圍對(duì)應(yīng)于單元格范圍2020,則刪除操作包括清除屬于當(dāng)前選定的單元格范圍2020的STI 2030的輸入字段。
一旦刪除操作完成,則關(guān)閉RSTI刪除管理器對(duì)話框1940,從而結(jié)束命令“RSTI刪除管理器”。
E.方法E1.RST管理器方法用在本發(fā)明優(yōu)選實(shí)施例中的管理EF、MEF、EP、MEP、ST、RE和RST的方法總結(jié)在圖8的流程圖800中。可以將這種方法看作RST管理器命令的處理。
·在步驟801中,該方法處在它的默認(rèn)狀態(tài)下,等待啟動(dòng)該進(jìn)程的事件。
·在步驟802中,作為用戶動(dòng)作的結(jié)果,檢測(cè)RST管理器命令。這個(gè)動(dòng)作可以是,例如·鍵盤104上的特定鍵組合;·定位設(shè)備105在特定按鈕上的點(diǎn)擊;或·本文未作進(jìn)一步規(guī)定的任何其它類似手段。
·在步驟803中,初始化一些局部變量·局部變量RSTM_select(選擇)被設(shè)置成值0(零);·局部變量RSTM_new(新)被設(shè)置成值“NONE(無(wú))”;·局部變量RSTM_range(范圍)被設(shè)置成值“NO(否)”;·局部變量RSTM_index(索引)被設(shè)置成值1(一);和·局部變量RSTM_child(子系)被設(shè)置成值“NO”。
·在步驟804中,分析五個(gè)表EFT 700、EPT 710、STT 720、RET 2210和RSTT 2220,以導(dǎo)出表RSTMT 2230。對(duì)于在這五個(gè)表之一中找到的每個(gè)相應(yīng)記錄701、711、721、2211、或2221,在RSTMT表2230內(nèi)創(chuàng)建新記錄2231。
現(xiàn)在參照?qǐng)D7A、7B、7C、19A、19B和19C,這個(gè)構(gòu)造通過(guò)如下步驟來(lái)完成將定義在記錄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)中的所有字段依次復(fù)制到記錄2231(“Name”字段2232、“Last Change Date”字段2233、“Description Ptr”字段2234、“Info Field 1”字段2235、“Info Field 2”字段2236和“Type”字段2237)的相應(yīng)字段,然后,如果已經(jīng)從記錄701、711、721、2211、或2221分別復(fù)制到記錄2231,在Type”字段2237中將“SELECTED”屬性2242初始化成“NO”,和將“NATURE(性質(zhì))”字段2241初始化成值“FORMAT”、“PROFILE”、“TEMPLATE”、“RECELEMENT”、或“RECTEMPLATE”,然后,用對(duì)于每個(gè)新記錄都遞增的和從值1(一)開始的計(jì)數(shù)值初始化最后字段“Index”2238。
·在步驟805中,在顯示設(shè)備106上顯示RST管理器對(duì)話框200。
·出現(xiàn)在列表框213頂部的“Name”信息對(duì)應(yīng)于RSTMT表2230中“Index”字段2238等于局部變量RSTM_index的記錄2231的“Name”字段2232。這個(gè)列表框213內(nèi)的下面“Name”信息對(duì)應(yīng)于RSTMT表2230的后續(xù)記錄2231的“Name”字段2232。
·出現(xiàn)在列表框214頂部的“Type”信息是從其“Index”字段2238等于局部變量RSTM_index的RSTMT表2230中的記錄2231的“Type”字段2237(屬性“NATURE(性質(zhì))”2241和“META(元)”2239)中導(dǎo)出的。這個(gè)列表框213內(nèi)的下面“Type”信息從RSTMT表2230的后續(xù)記錄2231的“Type”字段2237(屬性“NATURE”2241和“META”2239)中導(dǎo)出。
·出現(xiàn)在列表框202頂部的“Modified(修飾)”信息對(duì)應(yīng)于其“Index”字段2238等于局部變量RSTM_index的RSTMT表2230中的記錄2231的“Last Change Date”字段2233。這個(gè)列表框213內(nèi)的下面“Modified”信息對(duì)應(yīng)于RSTMT表2230的后續(xù)記錄2231的“Last Change Date”字段2233。
·如果其“Index”字段2238等于局部變量RSTM_index的RSTMT表2230中的記錄2231的“Type”字段2237具有等于“YES”的“SELECTED(選定)”屬性2242,在復(fù)選框212上打上復(fù)選標(biāo)記。列表框213左側(cè)的下面復(fù)選框也是從RSTMT表2230的后續(xù)記錄2231的“Type”字段2237(“SELECTED”屬性2242)中導(dǎo)出的。
·當(dāng)且僅當(dāng)局部變量RSTM_new等于“FORMAT(格式)”,選項(xiàng)按鈕“Format”217顯示黑點(diǎn)。當(dāng)且僅當(dāng)局部變量RSTM_new等于“PROFILE(概要)”,選項(xiàng)按鈕“Profile”209顯示黑點(diǎn)。當(dāng)且僅當(dāng)局部變量RSTM_new等于“TEMPLATE”,選項(xiàng)按鈕“Template(模板)”216顯示黑點(diǎn)。當(dāng)且僅當(dāng)局部變量RSTM_new等于“RECELEMENT”,選項(xiàng)按鈕“RE”218顯示黑點(diǎn)。當(dāng)且僅當(dāng)局部變量RSTM_new等于“RECTEMPLATE(遞歸模板)”,選項(xiàng)按鈕“Recursive Template”219顯示黑點(diǎn)。
·當(dāng)且僅當(dāng)局部變量RSTM_range等于“YES”,復(fù)選框“From currentselection(來(lái)自當(dāng)前選擇)”208顯示復(fù)選標(biāo)記。
·當(dāng)且僅當(dāng)局部變量RSTM_child等于“YES”,復(fù)選框“Includingchild objects(for Export)(包括子系對(duì)象(用于輸出))”220顯示復(fù)選標(biāo)記。
·在步驟806中,該方法等待RST管理器對(duì)話框200上的任何用戶動(dòng)作。這樣的用戶動(dòng)作通常來(lái)自用定位設(shè)備105的點(diǎn)擊,但也可以采取其它類似形式,譬如,鍵盤104上的特定鍵組合(但不限于此),或本文未作進(jìn)一步規(guī)定的任何其它類似手段。
·在步驟807中,檢測(cè)RST管理器對(duì)話框200上的用戶動(dòng)作。
·如果用戶動(dòng)作是點(diǎn)擊按鈕“Delete(刪除)”207,那么,將控制交給步驟808;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Import(輸入)”205,那么,將控制交給步驟810;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Done(完成)”201或關(guān)閉窗口按鈕201,那么,將控制交給步驟834;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Export(輸出)”206,那么,將控制交給步驟811;·如果用戶動(dòng)作是點(diǎn)擊滾動(dòng)條203,向上方向或向下方向,那么,將控制交給步驟814;·如果用戶動(dòng)作是點(diǎn)擊選項(xiàng)按鈕“Format”217、“Profile”209、“Template”216、“RE”218、或“Recursive Template”219,那么,將控制交給步驟815;·如果用戶動(dòng)作是點(diǎn)擊復(fù)選框“From current selection”209,那么,將控制交給步驟816;·如果用戶動(dòng)作是點(diǎn)擊復(fù)選框“Including child objects(for Export)”220,那么,將控制交給步驟841;·如果用戶動(dòng)作是點(diǎn)擊像復(fù)選框212那樣的頂部復(fù)選框,那么,將控制交給步驟817;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Instanciate(實(shí)例化)”204,那么,將控制交給步驟830;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Edit(編輯)”211,那么,將控制交給步驟824;和·如果用戶動(dòng)作是點(diǎn)擊按鈕“Create New(新創(chuàng)建)”210,那么,將控制交給步驟818。
·在步驟808中,對(duì)“Type”字段2237具有子字段“REFERENCEDOBJECT(所引用對(duì)象)”(RO)2240d等于“YES”或子字段“INSTANCEREFERENCE”(IR)2240c大于1(一)的“SELECTED”屬性2242的RSTMT表2230的記錄2231的每一個(gè)進(jìn)行測(cè)試(這個(gè)測(cè)試確定是否存在一些對(duì)象引用所選對(duì)象之一,或是否存在一些對(duì)象遵從所選對(duì)象之一)。
·如果情況是這樣,那么,將控制交給步驟835(意味著以前選擇的RSTMT表2230的至少一個(gè)記錄被ST、STI、RE、RST或RSTI引用);·否則,將控制交給步驟809。
·在步驟809中,如果相應(yīng)各自“Name”字段702、712、722、2212、和2222與“Type”字段2237具有等于像來(lái)自步驟817那樣的“YES”的“SELECTED”屬性2242的RSTMT表2230的記錄2231的“Name”字段匹配,從EFT表700、EPT表710、STT表720、RET表2210、和RSTT表2220中除去每個(gè)各自記錄701、711、721、2211、和2221。然后,將局部變量RSTM_select重置成值0(零)。然后,將控制交給步驟804,以便重建RSTMT表2230。
·在步驟810中,發(fā)出RST Import管理器命令,然后,將控制交給步驟834。
·在步驟811中,進(jìn)行測(cè)試以確定局部變量RSTM_select(選擇)是否等于0(零)。
·如果情況是這樣,那么,將控制交給步驟813;·否則,將控制交給步驟812。
·在步驟812中,發(fā)出RST Export管理器命令,然后,將控制交給步驟834。
·在步驟813中,發(fā)出警告消息通知,以便通知用戶在點(diǎn)擊“Export”按鈕206之前,必須選擇至少一個(gè)對(duì)象。這通常可以通過(guò)在顯示設(shè)備106上將警告消息顯示在彈出窗口中或顯示在狀態(tài)欄區(qū)域中來(lái)完成,但也可以改用任何其它類似手段而不偏離本發(fā)明的精神。一旦用戶通過(guò)傳統(tǒng)手段,譬如,用定位設(shè)備105點(diǎn)擊出現(xiàn)在警告消息彈出窗口內(nèi)的“OK”按鈕,或不偏離本發(fā)明精神的任何其它類似手段確認(rèn)了這個(gè)通知消息,將控制交給步驟805。
·在步驟814中,根據(jù)定位設(shè)備105在滾動(dòng)條203上指定的方向(向上或向下),和只要其值保持正的和小于等于在RSTMT表2230內(nèi)定義的記錄2231的個(gè)數(shù),將局部變量RSTM_index加1(一)或減1(一)。然后,將控制交給步驟805。
·在步驟815中,更新局部變量RSTM_new,以反映用戶用定位設(shè)備105擊中選項(xiàng)按鈕。
·如果用戶點(diǎn)擊了“Format”選項(xiàng)按鈕217,那么,局部變量RSTM_new取值“FORMAT”。
·如果用戶點(diǎn)擊了“Profile”選項(xiàng)按鈕209,那么,局部變量RSTM_new取值“PROFILE”。
·如果用戶點(diǎn)擊了“Template”選項(xiàng)按鈕216,那么,局部變量RSTM_new取值“TEMPLATE”。
·如果用戶點(diǎn)擊了“RE”選項(xiàng)按鈕218,那么,局部變量RSTM_new取值“RECELEMENT”。
·如果用戶點(diǎn)擊了“Recursive Template”選項(xiàng)按鈕219,那么,局部變量RSTM_new取值“RECTEMPLATE”。
然后,將控制交給步驟805。
·在步驟816中,更新局部變量RSTM_range,以便它的值在“YES”和“NO”之間切換。另外,如果在復(fù)選框206中以前不存在或存在復(fù)選標(biāo)記,那么,分別將復(fù)選標(biāo)記加入這同一個(gè)復(fù)選框206中或從這同一個(gè)復(fù)選框206中除去復(fù)選標(biāo)記。然后。將控制交給步驟805。
·在步驟817中,該方法更新RSTMT表2230內(nèi),發(fā)現(xiàn)“Name”字段2232等于位于正好在用戶剛剛點(diǎn)擊的復(fù)選框右側(cè)的列表框213內(nèi)的字符串的記錄2231的“Type”字段2237的值。
如果這個(gè)“Type”字段2237的舊值具有等于“YES”的“SELECTED”屬性2242,那么,值更新包括使這個(gè)“SELECTED”屬性2242轉(zhuǎn)變成“NO”;相反,如果“SELECTED”屬性2242的舊值等于“NO”,那么,值更新包括使這個(gè)“SELECTED”屬性2242轉(zhuǎn)變成“YES”。
在第一種情況中,將局部變量RSTM_select減1,和在第二種情況中,將局部變量RSTM_select加1。
并且,在第一種情況中,從用戶剛剛點(diǎn)擊過(guò)的復(fù)選框中除去以前存在于這個(gè)復(fù)選框中的復(fù)選標(biāo)記,和在第二種情況中,在用戶剛剛點(diǎn)擊過(guò)的復(fù)選框上顯示復(fù)選標(biāo)記。然后,將控制交給步驟805。
·在步驟818中,進(jìn)行測(cè)試以確定局部變量RSTM_new是否等于“NONE”。如果情況是這樣,那么,將控制交給步驟819;否則,將控制交給步驟820。
·在步驟819中,發(fā)出警告消息通知,以便通知用戶在點(diǎn)擊“CreateNew”按鈕210之前,必須選擇至少一個(gè)對(duì)象(“Format”選項(xiàng)按鈕217、“Profile”選項(xiàng)按鈕209、“Template”選項(xiàng)按鈕216、“RE”選項(xiàng)按鈕218、或“Recursive Template”選項(xiàng)按鈕219)。這通??梢酝ㄟ^(guò)在顯示設(shè)備106上將警告消息顯示在彈出窗口中或顯示在狀態(tài)欄區(qū)域中來(lái)完成,但也可以改用任何其它類似手段而不偏離本發(fā)明的精神。一旦用戶通過(guò)傳統(tǒng)手段,譬如,用定位設(shè)備105點(diǎn)擊出現(xiàn)在警告消息彈出窗口內(nèi)的“OK”按鈕,或不偏離本發(fā)明精神的任何其它類似手段確認(rèn)了這個(gè)通知消息,將控制交給步驟805。
·在步驟820中,進(jìn)行測(cè)試以確定局部變量RSTM_new所取的值。
·如果發(fā)現(xiàn)等于“FORMAT”那么,將控制交給步驟821;·如果發(fā)現(xiàn)等于“PROFILE”,那么,將控制交給步驟822;·如果發(fā)現(xiàn)等于“TEMPLATE”,那么,將控制交給步驟823。
·如果發(fā)現(xiàn)等于“RECELEMENT”,那么,將控制交給步驟836。
·如果發(fā)現(xiàn)等于“RECTEMPLATE”,那么,將控制交給步驟837。
·在步驟821中,發(fā)出EF編輯器命令,以及傳遞兩個(gè)參數(shù)(“NEW”;RSTM_range),然后,將控制交給步驟834。
·在步驟822中,發(fā)出EP編輯器命令,以及傳遞兩個(gè)參數(shù)(“NEW”;RSTM_range),然后,將控制交給步驟834。
·在步驟823中,發(fā)出ST編輯器命令,以及傳遞一個(gè)參數(shù)(“NEW”),然后,將控制交給步驟834。
·在步驟824中,進(jìn)行測(cè)試以確定局部變量RSTM_select是否等于1(一)。如果情況是這樣,那么,將控制交給步驟825;否則,將控制交給步驟829。
·在步驟825中,進(jìn)行測(cè)試以確定如“Type”字段2237指定的那樣的所選對(duì)象的性質(zhì),即,RSTMT表2230的相應(yīng)記錄2231的“NATURE”屬性2241。
·如果發(fā)現(xiàn)等于“FORMAT”那么,將控制交給步驟826;·如果發(fā)現(xiàn)等于“PROFILE”,那么,將控制交給步驟827;·如果發(fā)現(xiàn)等于“TEMPLATE”,那么,將控制交給步驟828。
·如果發(fā)現(xiàn)等于“RECELEMENT”,那么,將控制交給步驟838。
·如果發(fā)現(xiàn)等于“RECTEMPLATE”,那么,將控制交給步驟839。
·在步驟826中,發(fā)出EP編輯器命令,以及傳遞一個(gè)參數(shù),這個(gè)參數(shù)等于其“Type”字段2237具有等于“YES”的“SELECTED”屬性2242的RSTMT表2230的唯一記錄2231的“Name”字段2232,然后,將控制交給步驟834。
·在步驟827中,發(fā)出EF編輯器命令,以及傳遞一個(gè)參數(shù),這個(gè)參數(shù)等于其“Type”字段2237具有等于“YES”的“SELECTED”屬性2242的RSTMT表2230的唯一記錄2231的“Name”字段2232,然后,將控制交給步驟834。
·在步驟828中,發(fā)出ST編輯器命令,以及傳遞一個(gè)參數(shù),這個(gè)參數(shù)等于其“Type”字段2237具有等于“YES”的“SELECTED”屬性2242的RSTMT表2230的唯一記錄2231的“Name”字段2232,然后,將控制交給步驟834。
·在步驟829中,發(fā)出警告消息通知,以便通知用戶在點(diǎn)擊“Edit”按鈕211或“Instanciate”按鈕204之前,必須在ST管理器對(duì)話框內(nèi)選擇單個(gè)對(duì)象(借助于像212那樣的復(fù)選框)。這通??梢酝ㄟ^(guò)在顯示設(shè)備106上將警告消息顯示在彈出窗口中或顯示在狀態(tài)欄區(qū)域中來(lái)完成,但也可以改用任何其它類似手段而不偏離本發(fā)明的精神。一旦用戶通過(guò)傳統(tǒng)手段,譬如,用定位設(shè)備105點(diǎn)擊出現(xiàn)在警告消息彈出窗口內(nèi)的“OK”按鈕,或不偏離本發(fā)明精神的任何其它類似手段確認(rèn)了這個(gè)通知消息,將控制交給步驟805。
·在步驟830中,進(jìn)行測(cè)試以確定局部變量RSTM_select是否等于1(一)。如果情況是這樣,那么,將控制交給步驟831;否則,將控制交給步驟829。
·在步驟831中,進(jìn)行測(cè)試以確定如“Type”字段2237指定的那樣的所選對(duì)象的性質(zhì),即,RSTMT表2230的相應(yīng)記錄2231的“NATURE”屬性2241。
·如果發(fā)現(xiàn)等于“TEMPLATE”,那么,將控制交給步驟832;·如果發(fā)現(xiàn)等于“RECTEMPLATE”,那么,將控制交給步驟840;·否則使得控制到步驟833。
·在步驟832中,發(fā)出ST實(shí)例化器命令,以及傳遞一個(gè)參數(shù),這個(gè)參數(shù)等于其“Type”字段2237具有等于“YES”的“SELECTED”屬性2242的RSTMT表2230的唯一記錄2231的“Name”字段2232,然后,將控制交給步驟834。
·在步驟833中,發(fā)出警告消息通知,以便通知用戶在點(diǎn)擊“Instanciate”按鈕204之前,必須在RST管理器對(duì)話框內(nèi)選擇單個(gè)ST對(duì)象或單個(gè)RST對(duì)象(借助于像212那樣的復(fù)選框)。這通??梢酝ㄟ^(guò)在顯示設(shè)備106上將警告消息顯示在彈出窗口中或顯示在狀態(tài)欄區(qū)域中來(lái)完成,但也可以改用任何其它類似手段而不偏離本發(fā)明的精神。一旦用戶通過(guò)傳統(tǒng)手段,譬如,用定位設(shè)備105點(diǎn)擊出現(xiàn)在警告消息彈出窗口內(nèi)的“OK”按鈕,或不偏離本發(fā)明精神的任何其它類似手段確認(rèn)了這個(gè)通知消息,將控制交給步驟805。
·在步驟834中,關(guān)閉RST管理器對(duì)話框200,以便它從顯示設(shè)備106上消失,將控制交還給最初步驟801,以便處理任何進(jìn)一步的RST管理器命令。
·在步驟835中,發(fā)出警告消息通知,以便通知用戶要?jiǎng)h除的至少一個(gè)對(duì)象被另一個(gè)對(duì)象引用。這通常可以通過(guò)在顯示設(shè)備106上將警告消息顯示在彈出窗口中或顯示在狀態(tài)欄區(qū)域中來(lái)完成,但也可以改用任何其它類似手段而不偏離本發(fā)明的精神。然后,提醒用戶取消當(dāng)前“Delete(刪除)”操作,或繼續(xù)進(jìn)行“Delete”操作。這通??梢酝ㄟ^(guò)在顯示設(shè)備106上將提醒消息顯示在彈出窗口中來(lái)完成,但也可以改用任何其它類似手段而不偏離本發(fā)明的精神。一旦用戶通過(guò)傳統(tǒng)手段,譬如,用定位設(shè)備105點(diǎn)擊出現(xiàn)在提醒消息彈出窗口內(nèi)的“Cancel(取消)”或“Continue(繼續(xù))”按鈕,或不偏離本發(fā)明精神的任何其它類似手段作出他的選擇,如果電子表格用戶的決定是取消“Delete”操作,將控制交給步驟805,或者,如果電子表格用戶的決定是繼續(xù)進(jìn)行“Delete”操作,將控制交給步驟809。
·在步驟836中,發(fā)出RE編輯器命令,以及傳遞一個(gè)參數(shù)(“NEW”),然后,將控制交給步驟834。
·在步驟837中,發(fā)出RST編輯器命令,以及傳遞一個(gè)參數(shù)(“NEW”),然后,將控制交給步驟834。
·在步驟838中,發(fā)出RE編輯器命令,以及傳遞一個(gè)參數(shù),這個(gè)參數(shù)等于其“Type”字段2237具有等于“YES”的“SELECTED”屬性2242的RSTMT表2230的唯一記錄2231的“Name”字段2232,然后,將控制交給步驟834。
·在步驟839中,發(fā)出RST編輯器命令,以及傳遞一個(gè)參數(shù),這個(gè)參數(shù)等于其“Type”字段2237具有等于“YES”的“SELECTED”屬性2242的RSTMT表2230的唯一記錄2231的“Name”字段2232,然后,將控制交給步驟834。
·在步驟840中,發(fā)出RST實(shí)例化器命令,以及傳遞一個(gè)參數(shù),這個(gè)參數(shù)等于其“Type”字段2237具有等于“YES”的“SELECTED”屬性2242的RSTMT表2230的唯一記錄2231的“Name”字段2232,然后,將控制交給步驟834。
·在步驟841中,通過(guò)切換值“YES”和“NO”更新局部變量RSTM_child的值。然后,將控制交給步驟805。
E2.EF編輯器方法用在本發(fā)明優(yōu)選實(shí)施例中的創(chuàng)建或更新EF或MEF的方法總結(jié)在圖9的流程圖900中。可以將這種方法看作EF編輯器命令的處理。
·在步驟901中,該方法處在它的默認(rèn)狀態(tài)下,等待啟動(dòng)該進(jìn)程的事件。
·在步驟902中,作為用戶動(dòng)作的結(jié)果,檢測(cè)EF編輯器命令。這個(gè)動(dòng)作可以是,例如·鍵盤104上的特定鍵組合;·定位設(shè)備105在特定按鈕上的點(diǎn)擊;或·本文未作進(jìn)一步規(guī)定的任何其它類似手段。
·在步驟903中,檢索命令的參數(shù)。它們對(duì)應(yīng)于·第一必有參數(shù)EFE_name,可以取保留值“NEW”,或與如在RSTMT表2230內(nèi)的記錄2231的“Name”字段2232中找到那樣的字符串名稱相對(duì)應(yīng)的另一個(gè)值;和·第二可選參數(shù)EFE_range,只能取兩個(gè)預(yù)定值“YES”和“NO”。
當(dāng)?shù)谝槐赜袇?shù)的值與“NEW”不同時(shí),這個(gè)第二可選參數(shù)必須存在。
將這兩個(gè)參數(shù)記錄成局部變量。
·在步驟904中,初始化一些局部變量將局部變量EFE_meta設(shè)置成值“NO”,將局部變量EFE_size(EFE大小)設(shè)置成值8(八)。
·在步驟905中,進(jìn)行測(cè)試以確定局部變量EFE_name所取的值。如果發(fā)現(xiàn)等于“NEW”,那么,將控制交給步驟909;否則,將控制交給步驟906。
·在步驟906中,查找EFT表700,以定位發(fā)現(xiàn)其“Name”字段702等于局部變量EFE_name所取的值的記錄701。如果找到這樣的記錄,那么,將控制交給步驟908;否則,將控制交給步驟907。
·在步驟907中,調(diào)用異常管理器,以處理這種“不該發(fā)生”狀況。這樣的操作是實(shí)現(xiàn)相關(guān)的,可以采取不同的形式,譬如,在顯示設(shè)備106上顯示錯(cuò)誤消息彈出窗口。然后,將控制交給步驟925。
·在步驟908中,·根據(jù)在步驟906中找到的記錄701的“Type”字段707內(nèi)“META”屬性708的值,將局部變量EFE_meta(EFE元)設(shè)置成值“YES(是)”或“NO(否)”;·將局部變量EFE_size設(shè)置成在在步驟906中找到的記錄701的“Column #”706中找到的值;和·將在步驟906中找到的記錄701的“Description Ptr”字段704所指的存儲(chǔ)位置復(fù)制到剪貼板上。
然后,將控制交給步驟912。
·在步驟909中,根據(jù)在本發(fā)明的優(yōu)選實(shí)施例中采取“New XX”形式的名稱字符串,確定新創(chuàng)建EF或MEF的新名稱,其中,XX對(duì)應(yīng)于對(duì)于以前定義和記錄在在各自表格EFT 700、EPT 710、STT 720、RET 2210和RSST 2220的各自記錄701、711、721、2211和2221中找到的“Name”字段702、712、722、2212和2222中的所有名稱,保證名稱唯一性的計(jì)數(shù)。只要保證新創(chuàng)建名稱的唯一性,可以改用任何其它類似傳統(tǒng)手段而不偏移本發(fā)明的精神。
然后,將新名稱記錄在局部變量EFE_name中。然后,在主存儲(chǔ)器102內(nèi)分配存儲(chǔ)空間,以便以后記錄EF或MEF的例示單元格范圍。這個(gè)分配的存儲(chǔ)空間是與當(dāng)前打開的電子表格文件相對(duì)應(yīng)的存儲(chǔ)空間的一部分。
然后,在EFT表700中創(chuàng)建新記錄701,和按如下初始化這個(gè)新記錄701·將“Name”字段702設(shè)置成局部變量EFE_name的值;·將“Last Change Date”字段703設(shè)置成如中央處理器101所知的系統(tǒng)時(shí)間引用;·將“Description Ptr”字段704設(shè)置成剛剛分配的存儲(chǔ)位置;·將“Row #”字段705設(shè)置成值1(因?yàn)樵诒景l(fā)明的優(yōu)選實(shí)施例中,在2D環(huán)境下管理ST;在3D環(huán)境下,這個(gè)字段將攜帶為創(chuàng)建的EF或MEF定義的行數(shù));·將“Column #”字段706設(shè)置成局部變量EFE_size的值;和·按如下設(shè)置“Type”字段707將屬性“META”708設(shè)置成等于局部變量EFE_meta的值,和按如下初始化屬性“REFERENCED”709·用還沒(méi)有指定給任何其它“OWN REFERENCE”(OR)子字段709a、719a、729a、780a、2219a、2229a、或2240a的質(zhì)數(shù)初始化OR子字段709a。各種各樣的傳統(tǒng)技術(shù)可以用于識(shí)別質(zhì)數(shù),這里不作進(jìn)一步詳述。
·用值1(一)初始化“FILIATION REFERENCE”(FR)子字段709b。
·用值1(一)初始化“INSTANCE REFERENCE”(IR)子字段709c。
·用如下公式初始化“REFERENCED OBJECT”(RO)子字段709d。
其中,P集合對(duì)應(yīng)于ST的集合如果LCM({FRi})i∈PMod OR=0,
則RO=“YES”;否則,RO=“NO”。
·用如下公式初始化“SELECTED CHILDREN(選定子系)”(SC)子字段709e。其中,S集合對(duì)應(yīng)于所選對(duì)象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”屬性2242)如果LCM({FRi})i∈SMod OR=0#OR#EFE_name∈S,則SC=“YES”;否則,SC=“NO”。
然后,將控制交給步驟910。
·在步驟910中,進(jìn)行測(cè)試以確定局部變量EFE_range所取的值。如果發(fā)現(xiàn)等于“YES”,那么,將控制交給步驟911;否則,將控制交給步驟912。
·在步驟911中,將當(dāng)前所選的單元格范圍復(fù)制到剪貼板和將局部變量EFE_size設(shè)置成等于所選范圍的列數(shù)。
·在步驟912中,使“Editor Space(編輯器空間)”表格315成為當(dāng)前表格,和在這個(gè)空白表格上,在固定單元格地址314(如圖3所示,在本發(fā)明的優(yōu)選實(shí)施例中,地址B2)上粘貼剪貼板的內(nèi)容,以便用戶可以在顯示設(shè)備106上看見(jiàn)EF或MEF的示例。
·在步驟913中,在顯示設(shè)備106上顯示EF編輯器對(duì)話框301。用局部變量EFE_name的值初始化標(biāo)記框304。
·如果發(fā)現(xiàn)局部變量EFE_mata等于“NO”(相應(yīng)地,“YES”),將黑點(diǎn)填入頂部(相應(yīng)地,底部)選項(xiàng)按鈕310中。
·將局部變量EFE_size的值填入文本框306。
·如果發(fā)現(xiàn)局部變量EFE_size等于當(dāng)前記錄701的“Column #”字段706,或如果發(fā)現(xiàn)這個(gè)記錄701的“Type”字段707內(nèi)的屬性“REFERENCED”709擁有等于“NO”的子字段“REFERENCEDOBJECT”709d(RO),使能按鈕“Save”312和“Save & Refresh(保存并刷新)”308,以便將來(lái)用定位設(shè)備105對(duì)這兩個(gè)按鈕“Save”312和“Save & Refresh”308的任何點(diǎn)擊都被識(shí)別為一個(gè)有效事件。
·否則(未發(fā)現(xiàn)局部變量EFE_size等于當(dāng)前記錄701的“Column #”字段706,或發(fā)現(xiàn)這同一個(gè)記錄701的“Type”字段707內(nèi)的屬性“REFERENCED”709擁有等于“YES”的子字段“REFERENCEDOBJECT”709d(RO),禁止按鈕“Save”312和“Save & Regtesh”308,以便將來(lái)用定位設(shè)備105對(duì)這兩個(gè)按鈕“Save”312和“Save& Refresh”308的任何點(diǎn)擊都不被識(shí)別為一個(gè)有效事件。
·在步驟914中,該方法等待EF編輯器對(duì)話框301上的任何用戶動(dòng)作。這樣的用戶動(dòng)作通常來(lái)自用定位設(shè)備105的點(diǎn)擊,但也可以采取其它類似形式,譬如,鍵盤104上的特定鍵組合(但不限于此),或本文未作進(jìn)一步規(guī)定的任何其它類似手段。
·在步驟915中,檢測(cè)EF編輯器對(duì)話框301上的用戶動(dòng)作。
·如果用戶動(dòng)作是點(diǎn)擊按鈕“Save & Refresh”308,那么,將控制交給步驟916;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Save”312,那么,將控制交給步驟917;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Save as”311,那么,將控制交給步驟918;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Clear(清除)”309,那么,將控制交給步驟919;·如果用戶動(dòng)作是點(diǎn)擊旋鈕307,那么,將控制交給步驟920;·如果用戶動(dòng)作是點(diǎn)擊兩個(gè)選項(xiàng)按鈕310之一,那么,將控制交給步驟921;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Done”303或關(guān)閉窗口按鈕302,那么,將控制交給步驟925。
·在步驟916中,通過(guò)刷新“Name”字段702等于局部變量EFE_name的記錄701,更新EFT表700和將它保存成電子表格文件的一部分。為了這個(gè)目的,·將“Last Change Date”字段703設(shè)置成如中央處理器101所知的系統(tǒng)時(shí)間引用;·將“Column #”字段706設(shè)置成局部變量EFE_size的值;和·按如下設(shè)置“Type”字段707將屬性“META”708設(shè)置成等于局部變量EFE_meta的值。
另外,將在“Editor Space(編輯器空間)”表格315上例示EF或MEF的當(dāng)前定義的單元格范圍314復(fù)制到“Description Ptr”字段704所指的存儲(chǔ)位置。然后,將控制交給步驟922。
·在步驟917中,通過(guò)刷新“Name”字段702等于局部變量EFE_name的記錄701,更新EFT表700和將它保存成電子表格文件的一部分。為了這個(gè)目的,·將“Last Change Date”字段703設(shè)置成如中央處理器101所知的系統(tǒng)時(shí)間引用;·將“Column #”字段706設(shè)置成局部變量EFE_size的值;和·按如下設(shè)置“Type”字段707將屬性“META”708設(shè)置成等于局部變量EFE_meta的值。
另外,將在“Editor Space”表格315上例示EF或MEF的當(dāng)前定義的單元格范圍314復(fù)制到“Description Ptr”字段704所指的存儲(chǔ)位置。然后,將控制交給步驟913。
·在步驟918中,對(duì)在文本框305中找到的值進(jìn)行測(cè)試,以確定它是否對(duì)應(yīng)于有效新名稱。相應(yīng)準(zhǔn)則是實(shí)現(xiàn)相關(guān)的,只要新推薦名稱相對(duì)于記錄在“Name”字段702、712、722、2212和2222中的所有已定義名稱是唯一字符串,可以采取不同形式而不偏離本發(fā)明的精神。如果有效性和唯一性都得到證明,那么,將控制交給步驟923;否則,將控制交給步驟924。
·在步驟919中,將當(dāng)前在電子表格環(huán)境下定義的默認(rèn)屬性應(yīng)用于“EditorSpace”表格315,以便顯示的EF或MEF示例接受這些相同的默認(rèn)屬性。然后,將控制交給步驟913。
·在步驟920中,根據(jù)定位設(shè)備105在旋鈕307上指定的方向(向上或向下),和只要其值保持正的和小于等于在本發(fā)明的優(yōu)選實(shí)施例中設(shè)置成等于254的上限,將局部變量EFE_size加1(一)或減1(一)。然后,將控制交給步驟913。
·在步驟921中,更新局部變量EFE_meta,以便如果已經(jīng)點(diǎn)擊了底部(相應(yīng)地,頂部)選項(xiàng)按鈕310,使它的值變成“YES”(相應(yīng)地,“NO”)。然后,將控制交給步驟913。
·在步驟922中,發(fā)出ST Refresh(ST刷新)管理器命令,以及如下參數(shù)EFE_name、“FORMAT”,然后,將控制交給步驟913。
·在步驟923中,在主存儲(chǔ)器102內(nèi)分配存儲(chǔ)空間,以便以后記錄EF或MEF的例示單元格范圍。這個(gè)分配的存儲(chǔ)空間是與當(dāng)前打開的電子表格文件相對(duì)應(yīng)的存儲(chǔ)空間的一部分。然后,在保存為電子表格文件的一部分的EFT表700中創(chuàng)建新記錄701,和按如下初始化這個(gè)新記錄701·將“Name”字段702設(shè)置成在文本框305中找到和在步驟918中得到核實(shí)的值;然后,這個(gè)字段702變成EFE_name局部變量的新值;·將“Last Change Date”字段703設(shè)置成如中央處理器101所知的系統(tǒng)時(shí)間引用;·將“Description Ptr”字段704設(shè)置成剛剛分配的存儲(chǔ)位置;·將“Row #”字段705設(shè)置成值1(因?yàn)樵诒景l(fā)明的優(yōu)選實(shí)施例中,在2D環(huán)境下管理ST;在3D環(huán)境下,這個(gè)字段將攜帶為創(chuàng)建的EF或MEF定義的行數(shù));·將“Column #”字段706設(shè)置成局部變量EFE_size的值;和·按如下設(shè)置“Type”字段707將屬性“META”708設(shè)置成等于局部變量EFE_meta的值,和按如下初始化屬性“REFERENCED”709·用還沒(méi)有指定給任何其它“OWN REFERENCE”(OR)子字段709a、或719a、或729a、或780a、或2219a、或2229a、或2240a的質(zhì)數(shù)初始化OR子字段709a。各種各樣的傳統(tǒng)技術(shù)可以用于識(shí)別質(zhì)數(shù),這里不作進(jìn)一步詳述。
·用值1(一)初始化“FILIATION REFERENCE(分支引用)”(FR)子字段709b。
·用值1(一)初始化“INSTANCE REFERENCE(實(shí)例引用)”(IR)子字段709c。
·用如下公式初始化“REFERENCED OBJECT(被引用對(duì)象)”(RO)子字段709d。其中,P集合對(duì)應(yīng)于ST的集合如果LCM({FRi})i∈PMod OR=0,則RO=“YES”;否則,RO=“NO”。
·用如下公式初始化“SELECTED CHILDREN(選定子系)”(SC)子字段709e。其中,S集合對(duì)應(yīng)于所選對(duì)象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”屬性2242)如果LCM({FRi})i∈SMod OR=0#OR#EFE_name∈S,則SC=“YES”;
否則,SC=“NO”。
然后,將控制交給步驟913。
·在步驟924中,發(fā)出警告消息通知,以便通知用戶在點(diǎn)擊“Save as”按鈕311之前,必須在文本框305中指定有效唯一的名稱。這通常可以通過(guò)在顯示設(shè)備106上將警告消息顯示在彈出窗口中或顯示在狀態(tài)欄區(qū)域中來(lái)完成,但也可以改用任何其它類似手段而不偏離本發(fā)明的精神。一旦用戶通過(guò)傳統(tǒng)手段,譬如,用定位設(shè)備105點(diǎn)擊出現(xiàn)在警告消息彈出窗口內(nèi)的“OK”按鈕,或不偏離本發(fā)明精神的任何其它類似手段確認(rèn)了這個(gè)通知消息,將控制交給步驟913。
·在步驟925中,關(guān)閉EF編輯器對(duì)話框301,以便它從顯示設(shè)備106上消失,然后,從顯示的窗口中除去“Editor Space”表格315,以便用在EF編輯器調(diào)用時(shí)出現(xiàn)的原始表格取代它。最后,將控制交還給最初步驟901,以便處理任何進(jìn)一步的EF編輯器命令。
E3.EP編輯器方法用在本發(fā)明優(yōu)選實(shí)施例中的創(chuàng)建或更新EP或MEP的方法總結(jié)在圖10的流程圖1000中??梢詫⑦@種方法看作EP編輯器命令的處理。
·在步驟1001中,該方法處在它的默認(rèn)狀態(tài)下,等待啟動(dòng)該進(jìn)程的事件。
·在步驟1002中,作為用戶動(dòng)作的結(jié)果,檢測(cè)EP編輯器命令。這個(gè)動(dòng)作可以是,例如·鍵盤104上的特定鍵組合;·定位設(shè)備105在特定按鈕上的點(diǎn)擊;或·本文未作進(jìn)一步規(guī)定的任何其它類似手段。
·在步驟1003中,檢索命令的參數(shù)。它們對(duì)應(yīng)于·第一必有參數(shù)EPE_name,可以取保留值“NEW”,或與如在RSTMT表2230內(nèi)的記錄2231的“Name”字段2232中找到那樣的字符串名稱相對(duì)應(yīng)的另一個(gè)值;和·第二可選參數(shù)EPE_range,只能取兩個(gè)預(yù)定值“YES”和“NO”。
當(dāng)?shù)谝槐赜袇?shù)的值與“NEW”不同時(shí),這個(gè)第二可選參數(shù)必須存在。
將這兩個(gè)參數(shù)記錄成局部變量。
·在步驟1004中,初始化一些局部變量將局部變量EFE_meta設(shè)置成值“NO”,將局部變量EFE_size設(shè)置成值8(八)。
·在步驟1005中,進(jìn)行測(cè)試以確定局部變量EFE_name所取的值。如果發(fā)現(xiàn)等于“NEW”,那么,將控制交給步驟1009;否則,將控制交給步驟1006。
·在步驟1006中,查找EPT表710,以定位發(fā)現(xiàn)其“Name”字段712等于局部變量EPE_name所取的值的記錄711。如果找到這樣的記錄,那么,將控制交給步驟1008;否則,將控制交給步驟1007。
·在步驟1007中,調(diào)用異常管理器,以處理這種“不該發(fā)生”狀況。這樣的操作是實(shí)現(xiàn)相關(guān)的,可以采取不同的形式,譬如,在顯示設(shè)備106上顯示錯(cuò)誤消息彈出窗口。然后,將控制交給步驟1025。
·在步驟1008中,·根據(jù)在步驟1006中找到的記錄711的“Type”字段717內(nèi)“META”屬性718的值,將局部變量EFE_meta設(shè)置成值“YES”或“NO”;·將局部變量EPE_size設(shè)置成在在步驟1006中找到的記錄711的“Column #”716中找到的值;和·將在步驟1006中找到的記錄711的“Description Ptr”字段714所指的存儲(chǔ)位置復(fù)制到剪貼板上和局部變量EPE_Desc內(nèi)。
然后,將控制交給步驟1012。
·在步驟1009中,根據(jù)在本發(fā)明的優(yōu)選實(shí)施例中采取“New XX”形式的名稱字符串,確定新創(chuàng)建EP或MPF的新名稱,其中,XX對(duì)應(yīng)于對(duì)于以前定義和記錄在在各自表格EFT 700、EPT 710、STT 720、RET 2210和RSST2220的各自記錄701、711、721、2211和2221中找到的“Name”字段702、712、722、2212和2222中的所有名稱,保證名稱唯一性的計(jì)數(shù)。只要保證新創(chuàng)建名稱的唯一性,可以改用任何其它類似傳統(tǒng)手段而不偏移本發(fā)明的精神。
然后,將新名稱記錄在局部變量EFE_name中。
然后,在主存儲(chǔ)器102內(nèi)分配存儲(chǔ)空間,以便以后記錄EP或MEP的例示單元格范圍。這個(gè)分配的存儲(chǔ)空間是與當(dāng)前打開的電子表格文件相對(duì)應(yīng)的存儲(chǔ)空間的一部分。然后,在EPT表710中創(chuàng)建新記錄711,和按如下初始化這個(gè)新記錄711·將“Name”字段712設(shè)置成局部變量EPE_name的值;·將“Last Change Date”字段713設(shè)置成如中央處理器101所知的系統(tǒng)時(shí)間引用;·將“Description Ptr”字段714設(shè)置成剛剛分配的存儲(chǔ)位置;·將“Row #”字段715設(shè)置成值1(因?yàn)樵诒景l(fā)明的優(yōu)選實(shí)施例中,在2D環(huán)境下管理ST;在3D環(huán)境下,這個(gè)字段將攜帶為創(chuàng)建的EP或MEP定義的行數(shù));·將“Column #”字段716設(shè)置成局部變量EPE_size的值;和·按如下設(shè)置“Type”字段717將屬性“META”718設(shè)置成等于局部變量EPE_meta的值,和按如下初始化屬性“REFERENCED”719·用還沒(méi)有指定給任何其它“OWN REFERENCE”(OR)子字段709a、719a、729a、780a、2219a、2229a、或2240a的質(zhì)數(shù)初始化OR子字段719a。各種各樣的傳統(tǒng)技術(shù)可以用于識(shí)別質(zhì)數(shù),這里不作進(jìn)一步詳述。
·用值1(一)初始化“FILIATION REFERENCE”(FR)子字段719b。
·用值1(一)初始化“INSTANCE REFERENCE”(IR)子字段719c。
·用如下公式初始化“REFERENCED OBJECT”(RO)子字段719d。其中,P集合對(duì)應(yīng)于ST的集合如果LCM({FRi})i∈PMod OR=0,則RO=“YES”;否則,RO=“NO”。
·用如下公式初始化“SELECTED CHILDREN”(SC)子字段719e。
其中,S集合對(duì)應(yīng)于所選對(duì)象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”屬性2242)如果LCM({FRi})i∈SMod OR=0#OR#EPE_name∈S,則SC=“YES”;否則,SC=“NO”。
然后,將控制交給步驟1010。
·在步驟1010中,進(jìn)行測(cè)試以確定局部變量EPE_range所取的值。如果發(fā)現(xiàn)等于“YES”,那么,將控制交給步驟1011;否則,將控制交給步驟1012。
·在步驟1011中,將當(dāng)前所選的單元格范圍復(fù)制到剪貼板和將局部變量EPE_size設(shè)置成等于所選范圍的列數(shù)。
·在步驟1012中,使“Editor Space”表格315成為當(dāng)前表格,和在這個(gè)空白表格上,在固定單元格地址314(如圖3所示,在本發(fā)明的優(yōu)選實(shí)施例中,地址B2)上粘貼剪貼板的內(nèi)容,以便用戶可以在顯示設(shè)備106上看見(jiàn)EF或MEF的示例。
·在步驟1013中,在顯示設(shè)備106上顯示EP編輯器對(duì)話框401。
·用局部變量EPE_name的值初始化標(biāo)記框404。如果發(fā)現(xiàn)局部變量EPE_mata等于“NO”(相應(yīng)地,“YES”),將黑點(diǎn)填入頂部(相應(yīng)地,底部)選項(xiàng)按鈕410中。
·將局部變量EPE_size的值填入文本框406。
·如果發(fā)現(xiàn)局部變量EPE_size等于當(dāng)前記錄711的“Column #”字段716,或如果發(fā)現(xiàn)這個(gè)記錄711的“Type”字段717內(nèi)的屬性“REFERENCED”719擁有等于“NO”的子字段“REFERENCEDOBJECT”719d(RO),使能按鈕“Save”412和“Save & Refresh”408,以便將來(lái)用定位設(shè)備105對(duì)這兩個(gè)按鈕“Save”412和“Save& Refresh”408的任何點(diǎn)擊都被識(shí)別為一個(gè)有效事件。
·否則(未發(fā)現(xiàn)局部變量EPE_size等于當(dāng)前記錄711的“Column #”字段716,或發(fā)現(xiàn)這同一個(gè)記錄711的“Type”字段717內(nèi)的屬性“REFERENCED”719擁有等于“YES”的子字段“REFERENCEDOBJECT”719d(RO)),禁用按鈕“Save”412和“Save & Refresh”408,以便將來(lái)用定位設(shè)備105對(duì)這兩個(gè)按鈕“Save”412和“Save& Refresh”408的任何點(diǎn)擊都不被識(shí)別為一個(gè)事件。
·在步驟1014中,該方法等待EP編輯器對(duì)話框401上的任何用戶動(dòng)作。這樣的用戶動(dòng)作通常來(lái)自用定位設(shè)備105的點(diǎn)擊,但也可以采取其它類似形式,譬如,鍵盤104上的特定鍵組合(但不限于此),或本文未作進(jìn)一步規(guī)定的任何其它類似手段。
·在步驟1015中,檢測(cè)EP編輯器對(duì)話框301上的用戶動(dòng)作。
·如果用戶動(dòng)作是點(diǎn)擊按鈕“Save & Refresh”408,那么,將控制交給步驟1016;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Save”412,那么,將控制交給步驟1017;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Save as”411,那么,將控制交給步驟1018;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Clear”409,那么,將控制交給步驟1019;·如果用戶動(dòng)作是點(diǎn)擊旋鈕407,那么,將控制交給步驟1020;·如果用戶動(dòng)作是點(diǎn)擊兩個(gè)選項(xiàng)按鈕410之一,那么,將控制交給步驟1021;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Done”403或關(guān)閉窗口按鈕402,那么,將控制交給步驟1025。
·在步驟1016中,通過(guò)刷新“Name”字段712等于局部變量EPE_name的記錄711,更新EPT表710和將它保存成電子表格文件的一部分。為了這個(gè)目的,·將“Last Change Date”字段713設(shè)置成如中央處理器101所知的系統(tǒng)時(shí)間引用;·將“Column #”字段716設(shè)置成局部變量EPE_size的值;和·按如下設(shè)置“Type”字段717將屬性“META”718設(shè)置成等于局部變量EPE_meta的值。
另外,將在“Editor Space”表格415上例示EP或MEP的當(dāng)前定義的單元格范圍414復(fù)制到“Description Ptr”字段714所指的存儲(chǔ)位置。然后,將控制交給步驟1022。
·在步驟1017中,通過(guò)刷新“Name”字段712等于局部變量EPE_name的記錄711,更新EPT表710和將它保存成電子表格文件的一部分。為了這個(gè)目的,·將“Last Change Date”字段713設(shè)置成如中央處理器101所知的系統(tǒng)時(shí)間引用;·將“Column #”字段716設(shè)置成局部變量EPE_size的值;和·按如下設(shè)置“Type”字段717將屬性“META”718設(shè)置成等于局部變量EPE_meta的值。
另外,將在“Editor Space”表格415上例示EP或MEP的當(dāng)前定義的單元格范圍414復(fù)制到“Description Ptr”字段714所指的存儲(chǔ)位置。
然后,用如記錄在“Description Ptr”字段714所指的存儲(chǔ)位置中那樣的當(dāng)前EP或MEP描述更新局部變量EPE_desc,和將控制交給步驟1013。
·在步驟1018中,對(duì)在文本框405中找到的值進(jìn)行測(cè)試,以確定這個(gè)值是否對(duì)應(yīng)于有效新名稱。相應(yīng)準(zhǔn)則是實(shí)現(xiàn)相關(guān)的,只要新推薦名稱相對(duì)于記錄在“Name”字段702、712、722、2212和2222中的所有已定義名稱是唯一字符串,可以采取不同形式而不偏離本發(fā)明的精神。如果有效性和唯一性都得到證明,那么,將控制交給步驟1023;否則,將控制交給步驟1024。
·在步驟1019中,將當(dāng)前在電子表格環(huán)境下定義的默認(rèn)屬性應(yīng)用于“Editor Space”表格415,以便顯示的EP或MEP示例接受這些相同的默認(rèn)屬性。然后,將控制交給步驟1013。
·在步驟1020中,根據(jù)定位設(shè)備105在旋鈕407上指定的方向(向上或向下),和只要其值保持正的和小于等于在本發(fā)明的優(yōu)選實(shí)施例中設(shè)置成等于254的上限,將局部變量EPE_size加1(一)或減1(一)。然后,將控制交給步驟1013。
·在步驟1021中,更新局部變量EPE_meta,以便如果已經(jīng)點(diǎn)擊了底部(相應(yīng)地,頂部)選項(xiàng)按鈕410,使它的值變成“YES”(相應(yīng)地,“NO”)。然后,將控制交給步驟1013。
·在步驟1022中,發(fā)出ST Refresh(ST刷新)管理器命令,以及如下參數(shù)EPE_name,“PROFILE”和EPE_desc。然后,用如記錄在“Description Ptr”字段714所指的存儲(chǔ)位置中那樣的當(dāng)前EP或MEP描述更新局部變量EPE_dese,然后,將控制交給步驟1013。
·在步驟1023中,在主存儲(chǔ)器102內(nèi)分配存儲(chǔ)空間,以便以后記錄EP或MEP的例示單元格范圍。這個(gè)分配的存儲(chǔ)空間是與當(dāng)前打開的電子表格文件相對(duì)應(yīng)的存儲(chǔ)空間的一部分。然后,在保存為電子表格文件的一部分的EPT表710中創(chuàng)建新記錄711,和按如下初始化這個(gè)新記錄711·將“Name”字段712設(shè)置成在文本框405中找到和在步驟1018中得到核實(shí)的值;然后,這個(gè)字段712變成EPE_name局部變量的新值;·將“Last Change Date”字段713設(shè)置成如中央處理器101所知的系統(tǒng)時(shí)間引用;·將“Description Ptr”字段714設(shè)置成剛剛分配的存儲(chǔ)位置;·將“Row #”字段715設(shè)置成值1(因?yàn)樵诒景l(fā)明的優(yōu)選實(shí)施例中,在2D環(huán)境下管理ST;在3D環(huán)境下,這個(gè)字段將攜帶為創(chuàng)建的EP或MEP定義的行數(shù));
·將“Column #”字段716設(shè)置成局部變量EPE_size的值;和·按如下設(shè)置“Type”字段717將屬性“META”718設(shè)置成等于局部變量EPE_meta的值,和按如下初始化屬性“REFERENCED”719·用還沒(méi)有指定給任何其它“OWN REFERENCE”(OR)子字段709a、719a、729a、780a、2219a、2229a、或2240a的質(zhì)數(shù)初始化OR子字段719a。各種各樣的傳統(tǒng)技術(shù)可以用于識(shí)別質(zhì)數(shù),這里不作進(jìn)一步詳述。
·用值1(一)初始化“FILIATION REFERENCE”(FR)子字段719b。
·用值1(一)初始化“INSTANCE REFERENCE”(IR)子字段719c。
·用如下公式初始化“REFERENCED OBJECT”(RO)子字段719d。其中,P集合對(duì)應(yīng)于ST的集合如果LCM({FRi})i∈PMod OR=0,則RO=“YES”;否則,RO=“NO”。
·用如下公式初始化“SELECTED CHILDREN”(SC)子字段719e。
其中,S集合對(duì)應(yīng)于所選對(duì)象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”屬性2242)如果LCM({FRi})i∈SMod OR=0#OR#EPE_name∈S,則SC=“YES”;否則,SC=“NO”。
然后,將控制交給步驟1013。
·在步驟1024中,發(fā)出警告消息通知,以便通知用戶在點(diǎn)擊“Save as(保存為”按鈕411之前,必須在文本框405中指定有效唯一的名稱。這通??梢酝ㄟ^(guò)在顯示設(shè)備106上將警告消息顯示在彈出窗口中或顯示在狀態(tài)欄區(qū)域中來(lái)完成,但也可以改用任何其它類似手段而不偏離本發(fā)明的精神。一旦用戶通過(guò)傳統(tǒng)手段,譬如,用定位設(shè)備105點(diǎn)擊出現(xiàn)在警告消息彈出窗口內(nèi)的“OK”按鈕,或不偏離本發(fā)明精神的任何其它類似手段確認(rèn)了這個(gè)通知消息,將控制交給步驟1013。
·在步驟1025中,關(guān)閉EP編輯器對(duì)話框401,以便它從顯示設(shè)備106上消失,然后,從顯示窗口中除去“Editor Space”表格415,以便用在EP編輯器調(diào)用時(shí)出現(xiàn)的原始表格取代它。最后,將控制交還給最初步驟1001,以便處理任何進(jìn)一步的EP編輯器命令。
E4.ST編輯器方法用在本發(fā)明優(yōu)選實(shí)施例中的創(chuàng)建或更新ST的方法總結(jié)在圖11的流程圖1100中。可以將這種方法看作ST編輯器命令的處理。
·在步驟1101中,該方法處在它的默認(rèn)狀態(tài)下,等待啟動(dòng)該進(jìn)程的事件。
·在步驟1102中,作為用戶動(dòng)作的結(jié)果,檢測(cè)ST編輯器命令。這個(gè)動(dòng)作可以是,例如·鍵盤104上的特定鍵組合;·定位設(shè)備105在特定按鈕上的點(diǎn)擊;或·本文未作進(jìn)一步規(guī)定的任何其它類似手段。
·在步驟1103中,檢索命令的參數(shù)。它對(duì)應(yīng)于必有參數(shù)STE_name,該參數(shù)可以取保留值“NEW”,或與如在RSTMT表2230內(nèi)的記錄2231的“Name”字段2232中找到那樣的字符串名稱相對(duì)應(yīng)的另一個(gè)值。將這個(gè)參數(shù)記錄成局部變量。
·在步驟1104中,初始化一些局部變量將局部變量STE_min設(shè)置成默認(rèn)值1(一),將局部變量STE_max設(shè)置成值255。
·在步驟1105中,進(jìn)行測(cè)試以確定局部變量STE_name所取的值。如果發(fā)現(xiàn)等于“NEW”,那么,將控制交給步驟1109;否則,將控制交給步驟1106。
·在步驟1106中,查找STT表720,以定位發(fā)現(xiàn)其“Name”字段722等于局部變量STE_name所取的值的記錄721。如果找到這樣的記錄,那么,將控制交給步驟1108;否則,將控制交給步驟1107。
·在步驟1107中,調(diào)用異常管理器,以處理這種“不該發(fā)生”狀況。這樣的操作是實(shí)現(xiàn)相關(guān)的,可以采取不同的形式,譬如,在顯示設(shè)備106上顯示錯(cuò)誤消息彈出窗口。然后,將控制交給步驟1128。
·在步驟1108中,·將局部變量STE_min(STE最小)設(shè)置成在在步驟1106中找到的記錄721的“Min Element #”字段725中找到的值;·將局部變量STE_max(STE最大)設(shè)置成在在步驟1106中找到的記錄721的“Max Element #”字段726中找到的值。
然后,將在步驟1106中找到的記錄721的“Description Ptr”字段724所指的存儲(chǔ)位置(其中,記錄著按照如圖7D所示的STDT表760的ST的描述)復(fù)制在也遵從相同STDT表760的工作緩沖區(qū)中。然后,將這種結(jié)構(gòu)用于在主存儲(chǔ)器102內(nèi)的剪貼板上構(gòu)建例示復(fù)制在工作緩沖區(qū)中的ST定義的電子表格單元格范圍。這種構(gòu)造是通過(guò)將一系列有序單元格范圍裝入主存儲(chǔ)器102內(nèi)的剪貼板中實(shí)現(xiàn)的,這些單元格范圍的每一個(gè)依次遵從與從第一對(duì)761開始直到最后一對(duì)763的每對(duì)EF和EP名稱相對(duì)應(yīng)的EF(列765)和EP(列764)定義。然后,將控制交給步驟1110。
·在步驟1109中,根據(jù)在本發(fā)明的優(yōu)選實(shí)施例中采取“New XX”形式的名稱字符串,確定新創(chuàng)建ST的新名稱,其中,XX對(duì)應(yīng)于對(duì)于以前定義和記錄在在各自表格EFT 700、EPT 710、STT 720、RET 2210和RSST 2220的各自記錄701、711、721、2211和2221中找到的“Name”字段702、712、722、2212和2222中的所有名稱,保證名稱唯一性的計(jì)數(shù)。只要保證新創(chuàng)建名稱的唯一性,可以改用任何其它類似傳統(tǒng)手段而不偏移本發(fā)明的精神。然后,將新名稱記錄在局部變量STE_name(STE名稱)中。然后,在主存儲(chǔ)器102內(nèi)分配存儲(chǔ)空間,以便以后記錄新ST的例示單元格范圍。這個(gè)分配的存儲(chǔ)空間是與當(dāng)前打開的電子表格文件相對(duì)應(yīng)的存儲(chǔ)空間的一部分和遵從如圖7D所示的STDT表760。然后,在STT表720中創(chuàng)建新記錄721,和按如下初始化這個(gè)新記錄721·將“Name”字段722設(shè)置成局部變量STE_name的值;·將“Last Change Date”字段723設(shè)置成如中央處理器101所知的系統(tǒng)時(shí)間引用;·將“Description Ptr”字段724設(shè)置成剛剛分配的存儲(chǔ)位置;·將“Min Element #”字段725設(shè)置成局部變量STE_min的值;·將“Max Element #”字段726設(shè)置成局部變量STE_max的值;·按如下設(shè)置“Type”字段727將屬性“META”728設(shè)置成等于“NO”,和按如下初始化屬性“REFERENCED”729·用還沒(méi)有指定給任何其它“OWN REFERENCE”(OR)子字段709a、719a、729a、780a、2219a、2229a、或2240a的質(zhì)數(shù)初始化OR子字段729a。各種各樣的傳統(tǒng)技術(shù)可以用于識(shí)別質(zhì)數(shù),這里不作進(jìn)一步詳述。
·根據(jù)如下公式初始化“FILIATION REFERENCE”(FR)子字段729b,其中,根據(jù)記錄在“Description Ptr”字段724中的結(jié)構(gòu),F(xiàn)集合對(duì)應(yīng)于構(gòu)成新ST的EF、MEF、EP、和MEP的集合FR=∏i∈FORi×LCM({FRi})i∈F·用值1(一)初始化“INSTANCE REFERENCE”(IR)子字段729c。
·用如下公式初始化“REFERENCED OBJECT”(RO)子字段729d。
其中,P集合對(duì)應(yīng)于RE和RME的集合如果LCM({FRi})i∈PMod OR=0,則RO=“YES”;否則,RO=“NO”。
·用如下公式初始化“SELECTED CHILDREN”(SC)子字段729e。
其中,S集合對(duì)應(yīng)于所選對(duì)象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”屬性2242)如果LCM({FRi})i∈SMod OR=0#OR#STE_name∈S,則SC=“YES”;否則,SC=“NO”。
然后,在主存儲(chǔ)器102中分配工作緩沖區(qū)和用與默認(rèn)EF和默認(rèn)EP的一對(duì)762相對(duì)應(yīng)的默認(rèn)ST描述初始化工作緩沖區(qū)。然后,將這個(gè)默認(rèn)ST描述用于在主存儲(chǔ)器102內(nèi)的剪貼板上構(gòu)建例示新ST的電子表格單元格范圍。這種構(gòu)造是像在步驟1108的末端說(shuō)明的那樣實(shí)現(xiàn)的。然后,將控制交給步驟1110。
·在步驟1110中,使“Editor Space”表格515成為當(dāng)前表格,和在禁止常規(guī)行插入和刪除的同時(shí),將這個(gè)表格轉(zhuǎn)成寫保護(hù)模式。然后,選擇單元格范圍514的左上單元格。然后,將與單元格范圍514內(nèi)的當(dāng)前所選單元格所在的行相對(duì)應(yīng)的EF或MEF的名稱填入局部變量STE_format(STE格式)中。最后,將與單元格范圍514內(nèi)的當(dāng)前所選單元格所在的行相對(duì)應(yīng)的EP或MEP的名稱填入局部變量STE_profile(STE概要)中。
·在步驟1111中,在顯示設(shè)備106上顯示ST編輯器對(duì)話框501。
·用局部變量STE_name的值初始化標(biāo)記框504。
·將局部變量STE_min的值填入文本框506。
·將局部變量STE_max的值填入文本框509。
·將局部變量STE_format的值填入組合框511。
·將局部變量STE_profile的值填入組合框510。
然后,根據(jù)記錄在存儲(chǔ)器剪貼板中的描述更新單元格范圍514在這個(gè)空白表格上,在固定單元格地址514(如圖5所示,在本發(fā)明的優(yōu)選實(shí)施例中,地址B2)上粘貼剪貼板的內(nèi)容,以便用戶可以在顯示設(shè)備106上,在窗口500內(nèi)看見(jiàn)ST的示例。然后,進(jìn)行測(cè)試以檢驗(yàn)對(duì)單元格范圍514所例示的ST定義有貢獻(xiàn)的所有EF、EP、MEF和MEP是否擁有個(gè)數(shù)相同的字段。如果情況是這樣,那么,使能兩個(gè)按鈕“Save”513和“Save as”512,以便將用定位設(shè)備105對(duì)這兩個(gè)按鈕“Save”513和“Save as”512之一的點(diǎn)擊識(shí)別成一個(gè)有效事件。否則,禁止兩個(gè)按鈕“Save”513和“Save as”512,以便不將用定位設(shè)備105對(duì)這兩個(gè)按鈕“Save”513和“Save as”512之一的點(diǎn)擊識(shí)別成一個(gè)有效事件。
·在步驟1112中,該方法等待ST編輯器對(duì)話框501上的任何用戶動(dòng)作。這樣的用戶動(dòng)作通常來(lái)自用定位設(shè)備105的點(diǎn)擊,但也可以采取其它類似形式,譬如,鍵盤104上的特定鍵組合(但不限于此),或本文未作進(jìn)一步規(guī)定的任何其它類似手段。
·在步驟1113中,檢測(cè)ST編輯器對(duì)話框501上的用戶動(dòng)作。
·如果用戶動(dòng)作是點(diǎn)擊按鈕“Save”513,那么,將控制交給步驟1116;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Save as”512,那么,將控制交給步驟1119;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Add(添加)”517,那么,將控制交給步驟1124;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Delete”518,那么,將控制交給步驟1125;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Up”519或按鈕“Down”520,那么,將控制交給步驟1126;·如果用戶動(dòng)作是更新組合框511,那么,將控制交給步驟1114;·如果用戶動(dòng)作是更新組合框510,那么,將控制交給步驟1115;·如果用戶動(dòng)作是點(diǎn)擊旋鈕507,那么,將控制交給步驟1122;·如果用戶動(dòng)作是點(diǎn)擊旋鈕508,那么,將控制交給步驟1123;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Done”503或關(guān)閉窗口按鈕502,那么,將控制交給步驟1128。
·在步驟1114中,通過(guò)用在文本框511中找到的EF或MEF取代與單元格范圍514內(nèi)的當(dāng)前所選單元格所例示的元素或元元素相對(duì)應(yīng)的前EF或MEF規(guī)定,在工作緩沖區(qū)中更新ST描述。然后,還將局部變量STE_format設(shè)置成等于在文本框511中找到的名稱。然后,將控制交給步驟1111。
·在步驟1115中,通過(guò)用在文本框511中找到的EP或MEP取代與單元格范圍514內(nèi)的當(dāng)前所選單元格所例示的元素或元元素相對(duì)應(yīng)的前EP或MEP規(guī)定,在工作緩沖區(qū)中更新ST描述。然后,還將局部變量STE_profile設(shè)置成等于在文本框511中找到的名稱。然后,將控制交給步驟1111。
·在步驟1116中,進(jìn)行測(cè)試以檢驗(yàn)當(dāng)前編輯的ST是否已被現(xiàn)有RE或RME引用,是否已被實(shí)例化成STI。為了這個(gè)目的,考慮STT表720中“Name”字段722等于局部變量STE_name的記錄721的“Type”字段727內(nèi)的“REFERENCED”屬性729。如果“REFERENCED OBJECT”(RO)子字段729d的值等于“NO”和如果“INSTANCE REFERENCE”(IR)子字段729c的值等于1(一),那么,將控制交給步驟1117;否則,將控制交給步驟1118。
·在步驟1117中,通過(guò)刷新“Name”字段722等于局部變量STE_name的記錄721,更新STT表720。為了這個(gè)目的,·將“Last Change Date”字段723設(shè)置成如中央處理器101所知的系統(tǒng)時(shí)間引用;·將“Min Element #”字段725設(shè)置成局部變量STE_min的值;和·將“Max Element #”字段726設(shè)置成局部變量STE_max的值。
·將如單元格范圍514所示、如記錄在工作緩沖區(qū)中那樣、和遵從STDT表760的ST的當(dāng)前描述復(fù)制到“Description Ptr”字段724所指的存儲(chǔ)位置上。
·借助于其依賴于屬于“Description Ptr”字段724所指的STDT表760的EF、MEF、EP和MEP的集合的定義公式,自動(dòng)更新被更新成“REFERENCED”屬性729的“FILIATION REFERENCE”(FR)子字段729b的“Type”字段727。
·對(duì)于在這個(gè)STDT表760的列765中找到的每個(gè)EF名稱或MEF名稱,由于根據(jù)其定義公式重新計(jì)算了子字段“REFERENCEDOBJECT”(RO)709d(在“REFERENCED”屬性709內(nèi)),在“Name”字段702與這個(gè)元素或MEF名稱匹配的相應(yīng)記錄701內(nèi)自動(dòng)更新EFT表700。
·對(duì)于在這個(gè)STDT表760的列764中找到的每個(gè)EP名稱或MEP名稱,由于根據(jù)其定義公式重新計(jì)算了子字段“REFERENCEDOBJECT”(RO)719d(在“REFERENCED”屬性719內(nèi)),在“Name”字段712與這個(gè)元素或MEP名稱匹配的相應(yīng)記錄711內(nèi)自動(dòng)更新EPT表710。然后,將控制交給步驟1111。
·在步驟1118中,發(fā)出警告消息通知,以便通知用戶編輯的ST已被RE或RME引用或已被實(shí)例化成現(xiàn)有STI。這通??梢酝ㄟ^(guò)在顯示設(shè)備106上將警告消息顯示在彈出窗口中或顯示在狀態(tài)欄區(qū)域中來(lái)完成,但也可以改用任何其它類似手段而不偏離本發(fā)明的精神。然后,提醒用戶取消當(dāng)前“Save”操作或繼續(xù)進(jìn)行“Save”操作。這通常可以通過(guò)在顯示設(shè)備106上將提醒消息顯示在彈出窗口中來(lái)完成,但也可以改用任何其它類似手段而不偏離本發(fā)明的精神。一旦用戶通過(guò)傳統(tǒng)手段,譬如,用定位設(shè)備105點(diǎn)擊出現(xiàn)在提醒消息彈出窗口內(nèi)的“Cancel”或“Continue”按鈕,或不偏離本發(fā)明精神的任何其它類似手段作出了他的選擇,如果電子表格用戶的決定是取消操作,那么,將控制交給步驟1111,或者,如果電子表格用戶的決定是繼續(xù)進(jìn)行操作,那么,將控制交給步驟1117。
·在步驟1119中,對(duì)在文本框505中找到的值進(jìn)行測(cè)試,以確定它是否對(duì)應(yīng)于有效新名稱。相應(yīng)準(zhǔn)則是實(shí)現(xiàn)相關(guān)的,只要新推薦名稱相對(duì)于記錄在“Name”字段702、712、722、2212和2222中的所有已定義名稱是唯一字符串,可以采取不同形式而不偏離本發(fā)明的精神。如果有效性和唯一性都得到證明,那么,將控制交給步驟1120;否則,將控制交給步驟1121。
·在步驟1120中,在主存儲(chǔ)器102內(nèi)分配存儲(chǔ)空間,以便以后記錄ST的描述符。這個(gè)分配的存儲(chǔ)空間是與當(dāng)前打開的電子表格文件相對(duì)應(yīng)的存儲(chǔ)空間的一部分。然后,在STT表720中創(chuàng)建新記錄721,和按如下初始化這個(gè)新記錄721·將“Name”字段722設(shè)置成在文本框505中找到和在步驟1119中得到核實(shí)的值;然后,這個(gè)字段722變成STE_name局部變量的新值;·將“Last Change Date”字段723設(shè)置成如中央處理器101所知的系統(tǒng)時(shí)間引用;
·將“Description Ptr”字段724設(shè)置成剛剛分配的存儲(chǔ)位置;·將“Min Element#”字段725設(shè)置成局部變量STE_min的值;·將“Max Element#”字段726設(shè)置成局部變量STE_max的值;·將如單元格范圍514所示、如記錄在工作緩沖區(qū)中那樣、和遵從STDT表760的ST的當(dāng)前描述復(fù)制到“Description Ptr”字段724所指的存儲(chǔ)位置上。
·按如下設(shè)置“Type”字段727將屬性“META”728設(shè)置成等于“NO”,和按如下初始化屬性“REFERENCED”729·用還沒(méi)有指定給任何其它“OWN REFERENCE”(OR)子字段709a、719a、729a、780a、2219a、2229a、或2240a的質(zhì)數(shù)初始化OR子字段729a。各種各樣的傳統(tǒng)技術(shù)可以用于識(shí)別質(zhì)數(shù),這里不作進(jìn)一步詳述。
·根據(jù)如下公式初始化“FILIATION REFERENCE”(FR)子字段729b,其中,根據(jù)記錄在“Description Ptr”字段724中的結(jié)構(gòu),F(xiàn)集合對(duì)應(yīng)于構(gòu)成新ST的EF、MEF、EP、和MEP的集合FR=∏i∈FORi×LCM({FRi})i∈F·用值1(一)初始化“INSTANCE REFERENCE”(IR)子字段729c。
·用如下公式初始化“REFERENCED OBJECT”(RO)子字段729d。
其中,P集合對(duì)應(yīng)于RE和RME的集合如果LCM({FRi})i∈PMod OR=0,則RO=“YES”;否則,RO=“NO”。
·用如下公式初始化“SELECTED CHILDREN”(SC)子字段729e。
其中,S集合對(duì)應(yīng)于所選對(duì)象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”屬性2242)如果LCM({FRi})i∈SMod OR=0#OR#STE_name∈S,則SC=“YES”;否則,SC=“NO”。
·對(duì)于在這個(gè)STDT表760的列765中找到的每個(gè)EF名稱或MEF名稱,由于根據(jù)其定義公式重新計(jì)算了子字段“REFERENCEDOBJECT”(RO)709d(在“REFERENCED”屬性709內(nèi)),在“Name”字段702與這個(gè)元素或MEF名稱匹配的相應(yīng)記錄701內(nèi)自動(dòng)更新EFT表700。
·對(duì)于在這個(gè)STDT表760的列764中找到的每個(gè)EP名稱或MEP名稱,由于根據(jù)其定義公式重新計(jì)算了子字段“REFERENCEDOBJECT”(RO)719d(在“REFERENCED”屬性719內(nèi)),在“Name”字段712與這個(gè)元素或MEP名稱匹配的相應(yīng)記錄711內(nèi)自動(dòng)更新EPT表710。
然后,將控制交給步驟1111。
·在步驟1121中,發(fā)出警告消息通知,以便通知用戶在點(diǎn)擊“Save as”按鈕512之前,必須在文本框505中指定有效唯一的名稱。這通??梢酝ㄟ^(guò)在顯示設(shè)備106上將警告消息顯示在彈出窗口中或顯示在狀態(tài)欄區(qū)域中來(lái)完成,但也可以改用任何其它類似手段而不偏離本發(fā)明的精神。一旦用戶通過(guò)傳統(tǒng)手段,譬如,用定位設(shè)備105點(diǎn)擊出現(xiàn)在警告消息彈出窗口內(nèi)的“OK”按鈕,或不偏離本發(fā)明精神的任何其它類似手段確認(rèn)了這個(gè)通知消息,將控制交給步驟1111。
·在步驟1122中,根據(jù)定位設(shè)備105在旋鈕507上指定的方向(向上或向下),和只要其值保持正的和小于等于在本發(fā)明的優(yōu)選實(shí)施例中設(shè)置成等于254的上限和如文本框509所示的值兩者,將局部變量STE_min加1(一)或減1(一)。然后,將控制交給步驟1111。
·在步驟1123中,根據(jù)定位設(shè)備105在旋鈕508上指定的方向(向上或向下),和只要其值保持正的,大于如文本框506所示的值,和小于等于在本發(fā)明的優(yōu)選實(shí)施例中設(shè)置成等于254的上限,將局部變量STE_max加1(一)或減1(一)。然后,將控制交給步驟1111。
·在步驟1124中,在例示編輯的ST的單元格范圍514中,在最后所選單元格以前所處的行上面插入新行。
然后,選擇單元格范圍514內(nèi)位于新行上的最左單元格。
然后,在工作緩沖區(qū)中,通過(guò)引入像其它元元素那樣,通過(guò)也分別指定給局部變量STE_format和STE_profile、默許給一對(duì)默認(rèn)MEF和默認(rèn)MEP的一對(duì)(MEF 765,MEP 764)描述的新元元素,更新ST定義。另外,將如單元格范圍514所示、如記錄在工作緩沖區(qū)中那樣、和遵從STDT表760的ST的當(dāng)前描述復(fù)制到“Description Ptr”字段724所指的存儲(chǔ)位置上。然后,將控制交給步驟1111。
·在步驟1125中,從單元格范圍514中除去包含所選單元格的行。然后,選擇位于單元格范圍514內(nèi)代表定義在編輯的ST內(nèi)的元素的行上的最左單元格。然后,通過(guò)除去由一對(duì)(MEF,MEP)描述的刪除元元素,更新ST定義。另外,將如單元格范圍514所示、如記錄在工作緩沖區(qū)中那樣、和遵從STDT表760的ST的當(dāng)前描述復(fù)制到“Description Ptr”字段724所指的存儲(chǔ)位置上。然后,將控制交給步驟1127。
·在步驟1126中,如果電子表格用戶用定位設(shè)備105點(diǎn)擊了“Up”按鈕519或“Down”按鈕520,并且,如果這種移動(dòng)不移動(dòng)遠(yuǎn)離例示ST的單元格范圍514的當(dāng)前單元格,分別向上或向下移動(dòng)“Editor Space”表格515內(nèi)的當(dāng)前單元格。
·在步驟1127中,將局部變量STE_format和STE_profile分別設(shè)置成等于與單元格范圍514內(nèi)的當(dāng)前所選單元格所示的元素或元元素相對(duì)應(yīng)的EF或MEF的名稱和EP或MEP的名稱。然后,將控制交給步驟1111。
·在步驟1128中,關(guān)閉ST編輯器對(duì)話框501,以便它從顯示設(shè)備106上消失,然后,從顯示窗口中除去“Editor Space”表格515,以便用在EP編輯器調(diào)用時(shí)出現(xiàn)的原始表格取代它?,F(xiàn)在再次使能在顯示“Editor Space”表格515的同時(shí)禁止的所有裝置。最后,將控制交還給最初步驟1101,以便處理任何進(jìn)一步的ST編輯器命令。
E5.RST編輯器方法用在本發(fā)明優(yōu)選實(shí)施例中的創(chuàng)建或更新RST的方法總結(jié)在圖12的流程圖1230中??梢詫⑦@種方法看作RST編輯器命令的處理。
·在步驟1231中,該方法處在它的默認(rèn)狀態(tài)下,等待啟動(dòng)該進(jìn)程的事件。
·在步驟1232中,作為用戶動(dòng)作的結(jié)果,檢測(cè)RST編輯器命令。這個(gè)動(dòng)作可以是,例如·鍵盤104上的特定鍵組合;·定位設(shè)備105在特定按鈕上的點(diǎn)擊;或·本文未作進(jìn)一步規(guī)定的任何其它類似手段。
·在步驟1233中,檢索命令的參數(shù)。它對(duì)應(yīng)于必有參數(shù)RSTE_name(RSTE名稱),該參數(shù)可以取保留值“NEW(新)”,或與如在RSTMT表2230內(nèi)的記錄2231的“Name”字段2232中找到那樣的字符串名稱相對(duì)應(yīng)的另一個(gè)值。將這個(gè)參數(shù)記錄成局部變量。
·在步驟1234中,初始化一些局部變量將局部變量RSTE_min(RSTE最小)設(shè)置成值默認(rèn)值1(一),將局部變量RSTE_max(RSTE最大)設(shè)置成值16。
·在步驟1235中,進(jìn)行測(cè)試以確定局部變量RSTE_name所取的值。如果發(fā)現(xiàn)等于“NEW”,那么,將控制交給步驟1239;否則,將控制交給步驟1236。
·在步驟1236中,查找RSTT表2220,以定位發(fā)現(xiàn)其“Name”字段2222等于局部變量RSTE_name所取的值的記錄2221。如果找到這樣的記錄,那么,將控制交給步驟1238;否則,將控制交給步驟1237。
·在步驟1237中,調(diào)用異常管理器,以處理這種“不該發(fā)生”狀況。這樣的操作是實(shí)現(xiàn)相關(guān)的,可以采取不同的形式,譬如,在顯示設(shè)備106上顯示錯(cuò)誤消息彈出窗口。然后,將控制交給最初步驟1231,以便處理任何進(jìn)一步的RST編輯器命令。
·在步驟1238中,·將局部變量RSTE_min設(shè)置成在在步驟1236中找到的記錄2221的“Min Element #”字段2225中找到的值;·將局部變量RSTE_max設(shè)置成在在步驟1236中找到的記錄2221的“Max Element #”字段2226中找到的值。
然后,將在步驟1236中找到的記錄2221的“Description Ptr”字段2224所指的存儲(chǔ)位置(其中,記錄著按照如圖19D所示的RSTDT表2250的RST的描述)復(fù)制在也遵從相同RSTDT表2250的工作緩沖區(qū)中。
然后,將這種結(jié)構(gòu)用于在主存儲(chǔ)器102內(nèi)的剪貼板上構(gòu)建例示復(fù)制在工作緩沖區(qū)中的RST定義的電子表格單元格范圍,每個(gè)單元格依次與從第一個(gè)名稱2251開始直到最后一個(gè)2253的RE或RME名稱相對(duì)應(yīng)。然后,將控制交給步驟1240。
·在步驟1239中,根據(jù)在本發(fā)明的優(yōu)選實(shí)施例中采取“New XX”形式的名稱字符串,確定新創(chuàng)建RST的新名稱,其中,XX對(duì)應(yīng)于對(duì)于以前定義和記錄在在各自表格EFT 700、EPT 710、STT 720、RET 2210和RSST 2220的各自記錄701、711、721、2211和2221中找到的“Name”字段702、712、722、2212和2222中的所有名稱,保證名稱唯一性的計(jì)數(shù)。只要保證新創(chuàng)建名稱的唯一性,可以改用任何其它類似傳統(tǒng)手段而不偏移本發(fā)明的精神。然后,將新名稱記錄在局部變量RSTE_name中。然后,在主存儲(chǔ)器102內(nèi)分配存儲(chǔ)空間,以便以后記錄新RST的例示單元格范圍。這個(gè)分配的存儲(chǔ)空間是與當(dāng)前打開的電子表格文件相對(duì)應(yīng)的存儲(chǔ)空間的一部分和遵從如圖19D所示的RSTDT表2250。然后,在RSTT表2220中創(chuàng)建新記錄222l,和按如下初始化這個(gè)新記錄2221·將“Name”字段2222設(shè)置成局部變量RSTE_name的值;·將“Last Change Date”字段2223設(shè)置成如中央處理器101所知的系統(tǒng)時(shí)間引用;·將“Description Ptr”字段2224設(shè)置成剛剛分配的存儲(chǔ)位置;·將“Min Element #”字段2225設(shè)置成局部變量RSTE_min的值;·將“Max Element #”字段2226設(shè)置成局部變量RSTE_max的值;·按如下設(shè)置“Type”字段2227將屬性“META”2228設(shè)置成等于“NO”,和按如下初始化屬性“REFERENCED”2229·用還沒(méi)有指定給任何其它“OWN REFERENCE”(OR)子字段709a、719a、729a、780a、2219a、2229a、或2240a的質(zhì)數(shù)初始化OR子字段2229a。各種各樣的傳統(tǒng)技術(shù)可以用于識(shí)別質(zhì)數(shù),這里不作進(jìn)一步詳述。
·根據(jù)如下公式初始化“FILIATION REFERENCE”(FR)子字段2229b,其中,根據(jù)記錄在“Description Ptr”字段2224中的結(jié)構(gòu),F(xiàn)集合對(duì)應(yīng)于構(gòu)成新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集合對(duì)應(yīng)于所選對(duì)象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”屬性2242)如果LCM({FRi})i∈SMod OR=0#OR#RSTE_name∈S,則SC=“YES”;否則,SC=“NO”。
然后,在主存儲(chǔ)器102中分配工作緩沖區(qū)和用與默認(rèn)RE 2252相對(duì)應(yīng)的默認(rèn)RST描述初始化工作緩沖區(qū)。然后,將這個(gè)默認(rèn)RST描述用于在主存儲(chǔ)器102內(nèi)的剪貼板上構(gòu)建例示新RST的電子表格單元格范圍。這種構(gòu)造是像在步驟1238的末端說(shuō)明的那樣實(shí)現(xiàn)的。然后,將控制交給步驟1240。
·在步驟1240中,使“Editor Space”表格615成為當(dāng)前表格,和在禁止常規(guī)行插入和刪除的同時(shí),將這個(gè)表格轉(zhuǎn)成寫保護(hù)模式。然后,選擇單元格范圍614的左上單元格。然后,將與單元格范圍614內(nèi)的當(dāng)前所選單元格所在的行相對(duì)應(yīng)的RE的名稱填入局部變量RE_name(RE名稱)中。
·在步驟1241中,在顯示設(shè)備106上顯示RST編輯器對(duì)話框601。
·用局部變量RSTE_name的值初始化標(biāo)記框604。
·將局部變量RSTE_min的值填入文本框606。
·將局部變量RSTE_max的值填入文本框609。
·將局部變量RE_name的值填入組合框610。
然后,根據(jù)記錄在存儲(chǔ)器剪貼板中的描述更新單元格范圍614在這個(gè)空白表格上,在固定單元格地址614(如圖6所示,在本發(fā)明的優(yōu)選實(shí)施例中,地址B2)上粘貼剪貼板的內(nèi)容,以便用戶可以在顯示設(shè)備106上,在窗口611內(nèi)看見(jiàn)RST的示例。
然后,進(jìn)行測(cè)試以檢驗(yàn)對(duì)單元格范圍614所例示的RST定義有貢獻(xiàn)的所有RE和RME是否擁有個(gè)數(shù)相同的字段。如果情況是這樣,那么,使能兩個(gè)按鈕“Save”613和“Save as”612,以便將用定位設(shè)備105對(duì)這兩個(gè)按鈕之一的點(diǎn)擊識(shí)別成一個(gè)有效事件。否則,禁止兩個(gè)按鈕“Save”613和“Saveas”612,以便不將用定位設(shè)備105對(duì)這兩個(gè)按鈕之一的點(diǎn)擊識(shí)別成一個(gè)有效事件。
·在步驟1242中,該方法等待RST編輯器對(duì)話框601上的任何用戶動(dòng)作。這樣的用戶動(dòng)作通常來(lái)自用定位設(shè)備105的點(diǎn)擊,但也可以采取其它類似形式,譬如,鍵盤104上的特定鍵組合(但不限于此),或本文未作進(jìn)一步規(guī)定的任何其它類似手段。
·在步驟1243中,檢測(cè)RST編輯器對(duì)話框601上的用戶動(dòng)作。
·如果用戶動(dòng)作是點(diǎn)擊按鈕“Save”613,那么,將控制交給步驟1246;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Save as”612,那么,將控制交給步驟1249;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Add”617,那么,將控制交給步驟1254;
·如果用戶動(dòng)作是點(diǎn)擊按鈕“Delete”618,那么,將控制交給步驟1255;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Up”619或按鈕“Down”616,那么,將控制交給步驟1256;·如果用戶動(dòng)作是更新組合框610,那么,將控制交給步驟1244;·如果用戶動(dòng)作是點(diǎn)擊旋鈕607,那么,將控制交給步驟1252;·如果用戶動(dòng)作是點(diǎn)擊旋鈕608,那么,將控制交給步驟1253;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Done”603或關(guān)閉窗口按鈕602,那么,將控制交給步驟1258。
·在步驟1244中,通過(guò)用在組合框610中找到的RE或RME取代與單元格范圍614內(nèi)的當(dāng)前所選單元格所例示的RE或RME相對(duì)應(yīng)的前RE或RME名稱,在工作緩沖區(qū)中更新RST描述。然后,還將局部變量RE_name設(shè)置成等于在組合框610中找到的名稱。然后,將控制交給步驟1241。
·在步驟1246中,進(jìn)行測(cè)試以檢驗(yàn)當(dāng)前編輯的RST是否已被現(xiàn)有RSTI引用。為了這個(gè)目的,考慮RSTT表2220中“Name”字段2222等于局部變量RSTE_name的記錄2221的“Type”字段2227內(nèi)的“REFERENCED”屬性2229的值。如果“INSTANCE REFERENCE”(IR)子字段2229c的值等于1(一),那么,將控制交給步驟1247;否則,將控制交給步驟1248。
·在步驟1247中,通過(guò)刷新“Name”字段2222等于局部變量RSTE_name的記錄2221,更新RSTT表2220。為了這個(gè)目的,·將“Last Change Date”字段2223設(shè)置成如中央處理器101所知的系統(tǒng)時(shí)間引用;·將“Min Element #”字段2225設(shè)置成局部變量RSTE_min的值;·將“Max Element #”字段2226設(shè)置成局部變量RSTE_max的值。
·將如單元格范圍614所示、如記錄在工作緩沖區(qū)中那樣、和遵從RSTDT表2250的RST的當(dāng)前描述復(fù)制到“Description Ptr”字段2224所指的存儲(chǔ)位置上。
·借助于其依賴于屬于“Description Ptr”字段2224所指的RSTDT表2250的RE和RME的集合的定義公式,自動(dòng)更新被更新成“REFERENCED”屬性2229的“FILIATION REFERENCE”(FR)子字段2229b的“Type”字段2227。
·對(duì)于在這個(gè)RSTDT表2250的列2254中找到的每個(gè)RE名稱或RME名稱,由于根據(jù)其定義公式重新計(jì)算了子字段“REFERENCED OBJECT”(RO)2219d(在“REFERENCED”屬性2219內(nèi)),在“Name”字段2212與這個(gè)RE或RME名稱匹配的相應(yīng)記錄2211內(nèi)自動(dòng)更新RET表2210。
·在步驟1248中,發(fā)出警告消息通知,以便通知用戶編輯的RST已被實(shí)例化成RSTI。這通??梢酝ㄟ^(guò)在顯示設(shè)備106上將警告消息顯示在彈出窗口中或顯示在狀態(tài)欄區(qū)域中來(lái)完成,但也可以改用任何其它類似手段而不偏離本發(fā)明的精神。然后,提醒用戶取消當(dāng)前“Save”操作或繼續(xù)進(jìn)行“Save”操作。這通??梢酝ㄟ^(guò)在顯示設(shè)備106上將提醒消息顯示在彈出窗口中來(lái)完成,但也可以改用任何其它類似手段而不偏離本發(fā)明的精神。一旦用戶通過(guò)傳統(tǒng)手段,譬如,用定位設(shè)備105點(diǎn)擊出現(xiàn)在提醒消息彈出窗口內(nèi)的“Cancel(取消)”或“Continue(繼續(xù))”按鈕,或不偏離本發(fā)明精神的任何其它類似手段作出了他的選擇,如果電子表格用戶的決定是取消操作,那么,將控制交給步驟1241,或者,如果電子表格用戶的決定是繼續(xù)進(jìn)行操作,那么,將控制交給步驟1247。
·在步驟1249中,對(duì)在文本框605中找到的值進(jìn)行測(cè)試,以確定它是否對(duì)應(yīng)于有效新名稱。相應(yīng)準(zhǔn)則是實(shí)現(xiàn)相關(guān)的,只要新推薦名稱相對(duì)于記錄在“Name”字段702、712、722、2212和2222中的所有已定義名稱是唯一字符串,可以采取不同形式而不偏離本發(fā)明的精神。如果有效性和唯一性都得到證明,那么,將控制交給步驟1250;否則,將控制交給步驟1251。
·在步驟1250中,在主存儲(chǔ)器102內(nèi)分配存儲(chǔ)空間,以便以后記錄RST的描述符。這個(gè)分配的存儲(chǔ)空間是與當(dāng)前打開的電子表格文件相對(duì)應(yīng)的存儲(chǔ)空間的一部分。然后,在RSTT表2220中創(chuàng)建新記錄2221,和按如下初始化這個(gè)新記錄2221·將“Name”字段2222設(shè)置成在文本框605中找到和在步驟1249中得到核實(shí)的值;然后,這個(gè)字段2222變成RSTE_name局部變量的新值;·將“Last Change Date”字段2223設(shè)置成如中央處理器101所知的系統(tǒng)時(shí)間引用;·將“Description Ptr”字段2224設(shè)置成剛剛分配的存儲(chǔ)位置;·將“Min Element#”字段2225設(shè)置成局部變量RSTE_min的值;
·將“Max Element#”字段2226設(shè)置成局部變量RSTE_max的值;·按如下設(shè)置“Type”字段2227將屬性“META”2228設(shè)置成等于“NO”,和按如下初始化屬性“REFERENCED”2229·用還沒(méi)有指定給任何其它“OWN REFERENCE”(OR)子字段709a、719a、729a、780a、2219a、2229a、或2240a的質(zhì)數(shù)初始化OR子字段2229a。各種各樣的傳統(tǒng)技術(shù)可以用于識(shí)別質(zhì)數(shù),這里不作進(jìn)一步詳述。
·根據(jù)如下公式初始化“FILIATION REFERENCE”(FR)子字段2229b,其中,根據(jù)記錄在“Description Ptr”字段2224中的結(jié)構(gòu),F(xiàn)集合對(duì)應(yīng)于構(gòu)成新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集合對(duì)應(yīng)于所選對(duì)象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”屬性2242)如果LCM({FRi})i∈SMod OR=0#OR#RSTE_name∈S,則SC=“YES”;否則,SC=“NO”。
·將如單元格范圍614所示、如記錄在工作緩沖區(qū)中那樣、和遵從RSTDT表2250的RST的當(dāng)前描述復(fù)制到“Description Ptr”字段2224所指的存儲(chǔ)位置上。
·對(duì)于在這個(gè)RSTDT表2250的列2254中找到的每個(gè)RE名稱或RME名稱,由于根據(jù)其定義公式重新計(jì)算了子字段“REFERENCED OBJECT”(RO)2219d(在“REFERENCED”屬性2219內(nèi)),在“Name”字段2212與這個(gè)RE或RME名稱匹配的相應(yīng)記錄2211內(nèi)自動(dòng)更新RET表2210。
·在步驟1251中,發(fā)出警告消息通知,以便通知用戶在點(diǎn)擊“Save as”按鈕612之前,必須在文本框605中指定有效唯一的名稱。這通??梢酝ㄟ^(guò)在顯示設(shè)備106上將警告消息顯示在彈出窗口中或顯示在狀態(tài)欄區(qū)域中來(lái)完成,但也可以改用任何其它類似手段而不偏離本發(fā)明的精神。一旦用戶通過(guò)傳統(tǒng)手段,譬如,用定位設(shè)備105點(diǎn)擊出現(xiàn)在警告消息彈出窗口內(nèi)的“OK”按鈕,或不偏離本發(fā)明精神的任何其它類似手段確認(rèn)了這個(gè)通知消息,將控制交給步驟1241。
·在步驟1252中,根據(jù)定位設(shè)備105在旋鈕607上指定的方向(向上或向下),和只要其值保持正的和小于等于在本發(fā)明的優(yōu)選實(shí)施例中設(shè)置成等于254的上限和如文本框609所示的值兩者,將局部變量RSTE_min加1(一)或減1(一)。然后,將控制交給步驟1241。
·在步驟1253中,根據(jù)定位設(shè)備105在旋鈕608上指定的方向(向上或向下),和只要其值保持正的,大于如文本框606所示的值,和小于等于在本發(fā)明的優(yōu)選實(shí)施例中設(shè)置成等于254的上限,將局部變量RSTE_max加1(一)或減1(一)。然后,將控制交給步驟1241。
·在步驟1254中,在例示編輯的RST的單元格范圍614中,在最后所選單元格以前所處的行上面插入新行。
然后,選擇單元格范圍614內(nèi)位于新行上的最左單元格。
然后,在工作緩沖區(qū)中,通過(guò)引入像其它元元素那樣,通過(guò)也指定給局部變量RE_name的名稱描述的新RME,更新RST定義。另外,將如單元格范圍614所示、如記錄在工作緩沖區(qū)中那樣、和遵從RSTDT表2250的RST的當(dāng)前描述復(fù)制到“Description Ptr”字段2224所指的存儲(chǔ)位置上。然后,將控制交給步驟1241。
·在步驟1255中,從單元格范圍614中除去包含所選單元格的行,以便選擇下一個(gè)RE或元元素。然后,通過(guò)除去通過(guò)其名稱識(shí)別的刪除的RME,更新RST定義。另外,將如單元格范圍614所示、如記錄在工作緩沖區(qū)中那樣、和遵從RSTDT表2250的RST的當(dāng)前描述復(fù)制到“Description Ptr”字段2224所指的存儲(chǔ)位置上。然后,將控制交給步驟1257。
·在步驟1256中,如果電子表格用戶用定位設(shè)備105點(diǎn)擊了“Up”按鈕619或“Down”按鈕616,并且,如果這種移動(dòng)不移動(dòng)遠(yuǎn)離例示RST的單元格范圍614的當(dāng)前單元格,分別向上或向下移動(dòng)“Editor Space”表格615內(nèi)的當(dāng)前單元格。
·在步驟1257中,將局部變量RE_name設(shè)置成等于與單元格范圍614內(nèi)的當(dāng)前所選單元格所標(biāo)識(shí)的RE或RME相對(duì)應(yīng)的RE或RME的名稱。然后,將控制交給步驟1241。
·在步驟1258中,關(guān)閉RST編輯器對(duì)話框601,以便它從顯示設(shè)備106上消失,然后,從顯示窗口中除去“Editor Space”表格615,以便用在RST編輯器調(diào)用時(shí)出現(xiàn)的原始表格取代它?,F(xiàn)在再次使能在顯示“Editor Space”表格615的同時(shí)禁止的所有裝置。最后,將控制交還給最初步驟1231,以便處理任何進(jìn)一步的RST編輯器命令。
E6.ST實(shí)例化器方法用在本發(fā)明優(yōu)選實(shí)施例中的創(chuàng)建遵從定義的ST的STI的方法總結(jié)在圖14A和14B的流程圖1400中,其中,后者對(duì)應(yīng)于CreateSTI(創(chuàng)建STI)例程??梢詫⑦@種方法看作ST實(shí)例化器命令的處理。
·在步驟1401中,該方法處在它的默認(rèn)狀態(tài)下,等待啟動(dòng)該進(jìn)程的事件。
·在步驟1402中,作為用戶動(dòng)作的結(jié)果,檢測(cè)ST實(shí)例化器命令。這個(gè)動(dòng)作可以是,例如,鍵盤104上的特定鍵組合,定位設(shè)備105在特定按鈕上的點(diǎn)擊,或本文未作進(jìn)一步規(guī)定的任何其它類似手段。
·在步驟1403中,進(jìn)行測(cè)試以檢驗(yàn)當(dāng)前所選的單元格是否包含在存在RSTI的表格內(nèi)。這個(gè)測(cè)試可能通過(guò)分析RSTIT表2260,以識(shí)別其Address(地址)字段2262對(duì)應(yīng)于與當(dāng)前所選單元格相同的表格的任何記錄2261來(lái)完成。如果情況是這樣,那么,將控制交給步驟1404;否則,將控制交給步驟1405。
·在步驟1404中,發(fā)出警告消息通知,以便通知用戶在已經(jīng)存在RSTI的表格上不能單獨(dú)創(chuàng)建STI。這通常可以通過(guò)在顯示設(shè)備106上將警告消息顯示在彈出窗口中或顯示在狀態(tài)欄區(qū)域中來(lái)完成,但也可以改用任何其它類似手段而不偏離本發(fā)明的精神。一旦用戶通過(guò)傳統(tǒng)手段,譬如,用定位設(shè)備105點(diǎn)擊出現(xiàn)在警告消息彈出窗口內(nèi)的“OK”按鈕,或不偏離本發(fā)明精神的任何其它類似手段確認(rèn)了這個(gè)通知消息,將控制交給步驟1401。
·在步驟1405中,首先檢索命令參數(shù)ST_name它對(duì)應(yīng)于要?jiǎng)?chuàng)建的STI遵從的ST的名稱。這個(gè)參數(shù)ST_name用于分析STT表720,以便找出其“Name”字段722與參數(shù)ST_name匹配的記錄721。一旦找到這個(gè)記錄721,將它的字段“Min Element #”725和“Max Element #”726分別存儲(chǔ)成局部變量STI_min和STI_max。然后,將它的字段“Description Ptr”724用于根據(jù)引用的STDT表760,確定定義在ST內(nèi)的元元素的個(gè)數(shù)、和定義在ST的每個(gè)元素或元元素成員內(nèi)的單元格的個(gè)數(shù)。將第一個(gè)數(shù)存儲(chǔ)成局部變量STI_meta,和將第二個(gè)數(shù)存儲(chǔ)成局部變量STI_width 1325(代表未來(lái)STI的列數(shù))。
然后,用STI_min所取的值初始化另一個(gè)局部變量STI_element(元素)。
然后,用默認(rèn)值“YES”初始化另一個(gè)局部變量STI_critical(STI關(guān)鍵性)。
然后,用當(dāng)前表格1320中的總列數(shù)初始化另一個(gè)局部變量STI_sheet_width(STI工作表寬度)1321。
然后,用當(dāng)前表格1320中的總行數(shù)初始化另一個(gè)局部變量STI_sheet_height(STI工作表高度)1321。
然后,用值OVERLAY(覆蓋)初始化另一個(gè)局部變量STI_mode(STI模式)。
·在步驟1406中,首先構(gòu)建或更新一些其它局部變量。首先用局部變量STI_offset_width(STI偏移寬度)1323和STI_offset_height(STI偏移高度)1324表示當(dāng)前所選單元格1327的位置,局部變量STI_offset_width 1323和STI_offset_height 1324分別對(duì)應(yīng)于當(dāng)前表格1320的左上單元格與當(dāng)前所選單元格1327之間的列數(shù)和行數(shù)。
然后,用作為局部變量STI_meta(STI元)和STI_element之和計(jì)算的局部變量STI_height(STI高度)1326表示未來(lái)STI的行數(shù)。
其次,通過(guò)評(píng)估它們的地址確定一些工作單元格范圍。
首先將與未來(lái)STI相對(duì)應(yīng)的單元格范圍STI_range(STI范圍)1328確定為當(dāng)前所選單元格1327作為左上單元格、和行數(shù)和列數(shù)分別等于STI_height1326和STI_width(STI寬度)1325的單元格范圍。
然后,將單元格范圍STI_horizontal_flushed_range(STI水平覆蓋范圍)1330確定為與STI_range 1328共享相同的行、和占據(jù)當(dāng)前表格1320的STI_width 1325個(gè)最右列的單元格范圍。
然后,將單元格范圍STI_horizontal_kept_range(STI水平保持范圍)1329確定為與STI_range 1328共享相同的行、和占據(jù)位于那兩個(gè)STI_range 1328和STI_horizontal_flushed_range 1330之間的列的單元格范圍。
然后,將單元格范圍STI_vertical_flushed_range(STI垂直覆蓋范圍)1332確定為與STI_range 1328共享相同的列、和占據(jù)當(dāng)前表格1320的STI_height1326個(gè)底行的單元格范圍。
然后,將單元格范圍STI_vertical_kept_range(STI垂直保持范圍)1331確定為與STI_range 1328共享相同的列、和占據(jù)位于那兩個(gè)STI_range 1328和STI_vertical_flushed_range 1332之間的行的單元格范圍。
·在步驟1407中,進(jìn)行兩種求和以檢驗(yàn)未來(lái)STI是否恰好在當(dāng)前表格1320的范圍之內(nèi)。
·如果發(fā)現(xiàn)局部變量STI_offset_width 1323與STI_width 1325之和大于局部變量STI_sheet_width 1321,那么,將局部變量STI_too_wide(STI太寬)設(shè)置成“YES”;否則,將它設(shè)置成“NO”。
·如果發(fā)現(xiàn)局部變量STI_offaet_height 1324與STI_height 1326之和大于局部變量STI_sheet_height 1322,那么,將局部變量STI_too_high(STI太高)設(shè)置成“YES”;否則,將它設(shè)置成“NO”。
·在步驟1408中,根據(jù)五種可能實(shí)例化模式,進(jìn)行幾種測(cè)試以評(píng)估未來(lái)STI的創(chuàng)建對(duì)任何已經(jīng)存在STI或數(shù)據(jù)的潛在影響。這些測(cè)試要求分析STIT表750,和訪問(wèn)每個(gè)記錄751以掌握每個(gè)已定義STI的地址(“Address”字段752)和重要性(“Critical”字段755)。這些測(cè)試評(píng)估兩個(gè)給定單元格范圍是否部分重疊(意味著在第一單元格范圍內(nèi)存在至少一個(gè)屬于第二單元格范圍的單元格,和至少一個(gè)不屬于第二單元格范圍的單元格)或第一給定單元格范圍是否包括在第二給定單元格范圍內(nèi)(意味著屬于第一單元格范圍的每個(gè)單元格也屬于第二單元格范圍)。不同的傳統(tǒng)范圍比較技術(shù)可以用于評(píng)估范圍部分重疊或范圍包括,這不偏離本發(fā)明的精神;在本發(fā)明的優(yōu)選實(shí)施例中將不描述它們。
首先,研究OVERLAY(覆蓋)實(shí)例化模式。
·如果存在至少一個(gè)“Critical”字段755取值“YES”和與單元格范圍STI_range 1328部分重疊的現(xiàn)有STI,那么,局部測(cè)試變量STI_overlay_critical(STI覆蓋關(guān)鍵性)取值“YES”;否則,局部測(cè)試變量STI_overlay_critical取值“NO”。
·如果存在至少一個(gè)“Critical”字段755取值“NO”和與單元格范圍STI_range 1328部分重疊的現(xiàn)有STI,那么,局部測(cè)試變量STI_overlay_other(STI覆蓋其它)取值“YES”;否則,局部測(cè)試變量STI_overlay_other取值“NO”。
·如果單元格范圍STI_range 1328內(nèi)的所有單元格都是空的(不包含數(shù)據(jù)),那么,局部測(cè)試變量STI_overlay_data(STI覆蓋數(shù)據(jù))取值“NO”;否則,局部測(cè)試變量STI_overlay_data取值“YES”。
其次,研究HORIZONTAL_INSERT(水平插入)實(shí)例化模式。
·如果存在至少一個(gè)“Critical”字段755取值“YES”和與由當(dāng)前所選單元格1327所在的整個(gè)行組成的單元格范圍部分重疊、或與由最底部STI_height 1326個(gè)行構(gòu)成的單元格范圍部分重疊、或包括在由最底部STI_height1326個(gè)行構(gòu)成的單元格范圍內(nèi)的現(xiàn)有STI,那么,局部測(cè)試變量STIhorizontal_critical(STI水平關(guān)鍵性)取值“YES”;否則,局部測(cè)試變量STI_horizontal_critical取值“NO”。
·如果存在至少一個(gè)“Critical”字段755取值“NO”和與由當(dāng)前所選單元格1327所在的整個(gè)行組成的單元格范圍部分重疊、或與由最底部STIheight 1326個(gè)行構(gòu)成的單元格范圍部分重疊、或包括在由最底部STI_height1326個(gè)行構(gòu)成的單元格范圍內(nèi)的現(xiàn)有STI,那么,局部測(cè)試變量STIhorizontal_other(STI水平其它)取值“YES”;否則,局部測(cè)試變量STI_horizontal_other取值“NO”。
·如果由最底部STI_height 1326個(gè)行構(gòu)成的單元格范圍內(nèi)的所有單元格都是空的(不包含數(shù)據(jù)),那么,局部測(cè)試變量STI_horizontal_data(STI水平數(shù)據(jù))取值“NO”;否則,局部測(cè)試變量STI_horizontal_data取值“YES”。
第三,研究HORIZONTAL_INSERT_BY_RANGE(按照范圍水平插入)實(shí)例化模式。
·如果存在至少一個(gè)“Critical”字段755取值“YES”和與并置兩個(gè)單元格范圍STI_range 1328和STI_vertical_kept_range 1331構(gòu)成的單元格范圍部分重疊、或與單元格范圍STI_vertical_flushed_range 1332部分重疊、或包括在單元格范圍STI_vertical_flushed_range 1332內(nèi)的現(xiàn)有STI,那么,局部測(cè)試變量STI_horizontal_range_critical(STI水平范圍關(guān)鍵性)取值“YES”;否則,局部測(cè)試變量STI_horizontal_range_critical取值“NO”。
·如果存在至少一個(gè)“Critical”字段755取值“NO”和與并置兩個(gè)單元格范圍STI_range 1328和STI_vertical_kept_range 1331構(gòu)成的單元格范圍部分重疊、或與單元格范圍STI_vertical_flushed_range 1332部分重疊、或包括在單元格范圍STI_vertical_flushed_range 1332內(nèi)的現(xiàn)有STI,那么,局部測(cè)試變量STI_horizontal_range_other(STI水平范圍其它)取值“YES”;否則,局部測(cè)試變量STI_horizontal_range_other取值“NO”。
·如果單元格范圍STI_vertical_flushed_range 1332內(nèi)的所有單元格都是空的(不包含數(shù)據(jù)),那么,局部測(cè)試變量STI_horizontal_range_data取值“NO”;否則,局部測(cè)試變量STI_horizontal_range_data取值“YES”。
第四,研究VERTICAL_INSERT(垂直插入)實(shí)例化模式。
·如果存在至少一個(gè)“Critical”字段755取值“YES”和與由當(dāng)前所選單元格1327所在的整個(gè)列組成的單元格范圍部分重疊、或與由最右側(cè)STI_width 1325個(gè)列構(gòu)成的單元格范圍部分重疊、或包括在由最右側(cè)STI_width1325個(gè)列構(gòu)成的單元格范圍內(nèi)的現(xiàn)有STI,那么,局部測(cè)試變量STIvertical_critical(STI垂直關(guān)鍵性)取值“YES”;否則,局部測(cè)試變量STI_vertical_critical取值“NO”。
·如果存在至少一個(gè)“Critical”字段755取值“NO”和與由當(dāng)前所選單元格1327所在的所有列組成的單元格范圍部分重疊、或與由最右側(cè)STIwidth 1325個(gè)列構(gòu)成的單元格范圍部分重疊、或包括在由最右側(cè)STI_width1325個(gè)列構(gòu)成的單元格范圍內(nèi)的現(xiàn)有STI,那么,局部測(cè)試變量STI_vertical_other(STI垂直其它)取值“YES”;否則,局部測(cè)試變量STI_vertical_other取值“NO”。
·如果由最右側(cè)STI_width 1325個(gè)列構(gòu)成的單元格范圍內(nèi)的所有單元格都是空的(不包含數(shù)據(jù)),那么,局部測(cè)試變量STI_vertical_data(STI垂直數(shù)據(jù))取值“NO”;否則,局部測(cè)試變量STI_vertical_data取值“YES”。
第五,研究VERTICAL_INSERT_BY_RANGE(按照范圍垂直插入)實(shí)例化模式。
·如果存在至少一個(gè)“Critical”字段755取值“YES”和與并置兩個(gè)單元格范圍STI_range 1328和STI_horizontal_kept_range 1329構(gòu)成的單元格范圍部分重疊、或與單元格范圍STI_horizontal_flushed_range 1330部分重疊、或包括在單元格范圍STI_horizontal_flushed_range 1330內(nèi)的現(xiàn)有STI,那么,局部測(cè)試變量STI_vertical_range_critical(STI垂直范圍關(guān)鍵性)取值“YES”;否則,局部測(cè)試變量STI_vertical_range_critical取值“NO”。
·如果存在至少一個(gè)“Critical”字段755取值“NO”和與并置兩個(gè)單元格范圍STI_range 1328和STI_horizontal_kept_range 1329構(gòu)成的單元格范圍部分重疊、或與單元格范圍STI_horizontal_flushed_range 1330部分重疊、或包括在單元格范圍STI_horizontal_flushed_range 1330內(nèi)的現(xiàn)有STI,那么,局部測(cè)試變量STI_vertical_range_other(STI垂直范圍其它)取值“YES”;否則,局部測(cè)試變量STI_vertical_range_other取值“NO”。
·如果單元格范圍STI_horizontal_flushed_range 1330內(nèi)的所有單元格都是空的(不包含數(shù)據(jù)),那么,局部測(cè)試變量STI_vertical_range_data(STI垂直范圍數(shù)據(jù))取值“NO”;否則,局部測(cè)試變量STI_vertical_range_data取值“YES”。
·在步驟1409中,在顯示設(shè)備106上顯示ST實(shí)例化器對(duì)話框1300。如果局部變量STI_critical取值“YES”,“Critical”復(fù)選框1314顯示復(fù)選標(biāo)記;否則(值“NO(否)”),Critical”復(fù)選框1314保持空白顯示。用局部變量ST_name初始化標(biāo)記框1315。將局部變量STI_element的值填入文本框1312。按如下順序?qū)⑷缦戮植孔兞康闹祻淖蟮接摇捻斝虚_始逐行填入15個(gè)標(biāo)記框1304STI_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取相應(yīng)值OVERLAY、HORIZONTAL_INSERT、HORIZONTAL_INSERT_BY_RANGE、VERTICAL_INSERT、或VERTICAL_INSERT_BY_RANGE,那么,選項(xiàng)按鈕“Overlay”1309、“Horizontal Insert”1308、“Horizontal Insert by Range”1307、“Vertical Insert”1306、或“Vertical Insert by Range”1305獨(dú)自顯示黑點(diǎn)。最后,一旦如下局部變量之一取值“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(創(chuàng)建)”按鈕1303;否則,使能“Create”按鈕1303。
·在步驟1410中,該方法等待ST實(shí)例化器對(duì)話框1300上、或有關(guān)當(dāng)前所選單元格的任何改變的任何用戶動(dòng)作。這樣的用戶動(dòng)作通常來(lái)自用定位設(shè)備105的點(diǎn)擊,但也可以采取其它類似形式,譬如,鍵盤104上的特定鍵組合(但不限于此),或本文未作進(jìn)一步規(guī)定的任何其它類似手段。
·在步驟1411中,檢測(cè)ST實(shí)例化器對(duì)話框1300上、或有關(guān)當(dāng)前所選單元格的改變的用戶動(dòng)作。
·如果用戶動(dòng)作是點(diǎn)擊“Create”按鈕1303,那么,將控制交給步驟1416;·如果用戶動(dòng)作是點(diǎn)擊旋鈕1313的上部,那么,將控制交給步驟1415;·如果用戶動(dòng)作是點(diǎn)擊旋鈕1313的下部,那么,將控制交給步驟1414;·如果用戶動(dòng)作是點(diǎn)擊“Critical(關(guān)鍵性)”按鈕1314,那么,將控制交給步驟1413;·如果用戶動(dòng)作是點(diǎn)擊選項(xiàng)按鈕1309、1308、1307、1306、和1305之一,那么,將控制交給步驟1412;·如果用戶動(dòng)作是點(diǎn)擊“Cancel”按鈕1302或關(guān)閉窗口按鈕1301,那么,將控制交給步驟1418;·最后,如果用戶動(dòng)作是改變當(dāng)前所選單元格的位置,那么,將控制交給步驟1406。
·在步驟1412中,如果電子表格用戶用定位設(shè)備105分別點(diǎn)擊選項(xiàng)按鈕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中,訪問(wèn)STIT表750,以便從中除去與如在步驟1408期間對(duì)局部變量STI_mode所代表的插入模式識(shí)別的那樣,新實(shí)例的引入破壞的STI相對(duì)應(yīng)的每個(gè)記錄751。
然后,更新STT表720,以反映每個(gè)STI的除去。對(duì)于每個(gè)除去的STI,將其“Name”字段722等于與除去STI相對(duì)應(yīng)的STIT表750的記錄751的“ST”字段753的記錄721的“REFERENCED”屬性729的“INSTANCEREFERENCE”(IR)字段729c除以2(二)。
·在步驟1417中,調(diào)用例程CreateSTI(創(chuàng)建STI)。
·在步驟1418中,關(guān)閉ST實(shí)例化器對(duì)話框1300,以便它從顯示設(shè)備106上消失。最后,將控制交還給最初步驟1401,以便處理任何進(jìn)一步的ST實(shí)例化器命令。
如下步驟,即,圖14B的所有部分對(duì)應(yīng)于像用在本發(fā)明優(yōu)選實(shí)施例中那樣的CreateSTI例程的執(zhí)行。
·在步驟1419中,在STIT表750中引入新記錄751。在這個(gè)記錄751內(nèi),用單元格范圍STI_range 1328的地址初始化“Address(地址)”字段752,用局部變量ST_name的值初始化“ST”字段753,用局部變量STI_element的值初始化“Element #”字段754,用局部變量STI_critical的值初始化“Critical”字段755,用構(gòu)成新STI的頁(yè)眉部分的元元素的個(gè)數(shù)(這個(gè)數(shù)字等于與新STI遵從的ST相關(guān)聯(lián)的STDT表760的頁(yè)眉部分767中的對(duì)(pair)數(shù))初始化“Header Size(頁(yè)眉大小)”字段756,和用構(gòu)成新STI的頁(yè)腳部分的元元素的個(gè)數(shù)(這個(gè)數(shù)字等于與新STI遵從的ST相關(guān)聯(lián)的STDT表760的頁(yè)腳部分766中的對(duì)數(shù))初始化“Footer Size(頁(yè)腳大小)”字段757。然后,掃描STT表720,以便識(shí)別發(fā)現(xiàn)其“Name”字段等于局部變量ST_name的記錄721。一旦找到,通過(guò)將“INSTANCE REFERENCE”子字段729c乘以2(二),更新這個(gè)記錄721的“Type”字段727內(nèi)的“REFERENCED”屬性729。
·在步驟1420中,進(jìn)行測(cè)試以檢驗(yàn)局部變量STI_mode的值。
·如果發(fā)現(xiàn)這個(gè)值等于OVERLAY,那么,將控制交給步驟1425;·如果發(fā)現(xiàn)這個(gè)值等于HORIZONTAL_INSERT,那么,將控制交給步驟1424;·如果發(fā)現(xiàn)這個(gè)值等于HORIZONTAL_INSERT_BY_RANGE,那么,將控制交給步驟14244;·如果發(fā)現(xiàn)這個(gè)值等于VERTICAL_INSERT,那么,將控制交給步驟1423;
·如果發(fā)現(xiàn)這個(gè)值等于VERTICAL_INSERT_BY_RANGE。然后,將控制交給步驟1421。
·在步驟1421中,選擇單元格范圍STI_range 1328以便成為當(dāng)前所選單元格范圍,該當(dāng)前所選單元格范圍保持在其前者的位置1327上,然后,進(jìn)行“將列插入所選范圍內(nèi)”的常規(guī)操作。
·在步驟1422中,選擇單元格范圍STI_range 1328以便成為當(dāng)前所選單元格范圍,該當(dāng)前所選單元格范圍保持在其前者的位置1327上,然后,進(jìn)行“將行插入所選范圍內(nèi)”的常規(guī)操作。
·在步驟1423中,選擇單元格范圍STI_range 1328以便成為當(dāng)前所選單元格范圍,該當(dāng)前所選單元格范圍保持在其前者的位置1327上,然后,進(jìn)行“列插入”的常規(guī)操作。然后,將控制交給步驟1425。
·在步驟1424中,選擇單元格范圍STI_range 1328以便成為當(dāng)前所選單元格范圍,該當(dāng)前所選單元格范圍保持在其前者的位置1327上,然后,進(jìn)行“行插入”的常規(guī)操作。然后,將控制交給步驟1425。
·在步驟1425中,將局部變量STI_index初始化成局部變量STI_element所取的值。然后,分析STT表720,以便識(shí)別其“Name”字段722與局部變量ST_name的值匹配的記錄721。在這個(gè)記錄721內(nèi)檢索允許在存儲(chǔ)器中定位與要?jiǎng)?chuàng)建的新STI遵從的ST相關(guān)聯(lián)的STDT表760的“Description Ptr”字段724。然后,將在這個(gè)STDT表760內(nèi)找到的元素或MEF名稱和元素或MEP名稱的第一對(duì)761設(shè)置成當(dāng)前名稱對(duì)(EF或MEF名稱,EP或MEP名稱)。
·在步驟1426中,分析EPT表710,以便找出發(fā)現(xiàn)其“Name”字段712等于當(dāng)前對(duì)內(nèi)的EP或MEP名稱的記錄711。一旦找到這個(gè)記錄711,檢索它的“Description Ptr”字段714,以便在存儲(chǔ)器中定位例示EP或MEP的單元格范圍。只通過(guò)值將這個(gè)EP或MEP的描述復(fù)制-粘貼到當(dāng)前所選單元格上,以便STI_range內(nèi)的相應(yīng)行接受EP或MEP初始值。然后,分析EFT表700,以便找出發(fā)現(xiàn)其“Name”字段702等于當(dāng)前對(duì)內(nèi)的EF或MEF名稱的記錄701。一旦找到這個(gè)記錄701,檢索它的“Description Ptr”字段704,以便在存儲(chǔ)器中定位例示EF或MEF的單元格范圍。只通過(guò)屬性將這個(gè)EF或MEF的描述復(fù)制-粘貼到當(dāng)前所選單元格上,以便STI_range內(nèi)的相應(yīng)行接受EF或MEF屬性。
·在步驟1427中,進(jìn)行測(cè)試以檢驗(yàn)當(dāng)前對(duì)(EF或MEF名稱,EP或MEP名稱)對(duì)應(yīng)于元素還是元元素。在第一種情況下,將控制交給步驟1428,和在第二種情況下,將控制交給步驟1429。
·在步驟1428中,將局部變量STI_index減1(一)。然后,將控制交給步驟1430。
·在步驟1429中,進(jìn)行測(cè)試以檢驗(yàn)當(dāng)前對(duì)(EF或MEF名稱,EP或MEP名稱)是否是STDT表760內(nèi)的最后一個(gè)763。如果情況是這樣,通過(guò)使控制返回到例程調(diào)用程序完成CreateSTI的執(zhí)行;否則,將控制交給步驟1431。
·在步驟1430中,進(jìn)行測(cè)試以檢驗(yàn)局部變量STI_index是否等于0(零)。如果情況是這樣,將控制交給步驟1429;否則,將控制交給步驟1432。
·在步驟1431中,使STDT表760中接在當(dāng)前一對(duì)之后的名稱對(duì)(EF或MEF名稱,EP或MEP名稱)成為當(dāng)前名稱對(duì)。
·在步驟1432中,將當(dāng)前所選單元格向下移動(dòng)一行。然后,將控制交給步驟1426。
E7.STI刪除管理器方法圖15A的流程圖1800概述了在本發(fā)明的優(yōu)選實(shí)施例中使用的用于在STI內(nèi)刪除選定單元格的內(nèi)容或選定元素、或者甚至刪除整個(gè)STI的方法。該方法可被看作STI刪除管理器命令的處理。
·在步驟1801,該方法處于其缺省狀態(tài),等待啟動(dòng)該處理的事件。
·在步驟1802,作為用戶操作的結(jié)果,檢測(cè)到STI刪除管理器命令。該操作可以例如是鍵盤104上的特定鍵組合,或者定點(diǎn)設(shè)備105在特定按鈕上的點(diǎn)擊,或者未在此具體指定的任何其它類似手段。
當(dāng)檢測(cè)到STI刪除管理器命令時(shí),當(dāng)前電子表格選擇對(duì)應(yīng)于有可能簡(jiǎn)化到單個(gè)單獨(dú)單元格的單元格范圍,其被稱作當(dāng)前選定單元格范圍,并且包括當(dāng)前選定單元格。如果該當(dāng)前選定單元格不是當(dāng)前選定單元格范圍內(nèi)的左上單元格,則當(dāng)前選定單元格范圍的左上單元格成為當(dāng)前選定單元格。
·在步驟1803,執(zhí)行測(cè)試,以檢查當(dāng)前選定單元格是否位于現(xiàn)有STI內(nèi)。通過(guò)解析STIT表750并且在每個(gè)記錄751中訪問(wèn)“地址”字段752來(lái)確定在該字段中指定的單元格范圍地址是否包括單獨(dú)的當(dāng)前選定單元格的地址,來(lái)執(zhí)行該測(cè)試。如果是,則當(dāng)前選定單元格包含在名稱為STDM_instance_range(STDM實(shí)例范圍)的STI中,并且控制轉(zhuǎn)到步驟1804;否則,控制轉(zhuǎn)到步驟1811。
·在步驟1804,首先檢索在步驟1803找到的記錄751,以根據(jù)其描述當(dāng)前選定單元格所屬的STI STDM_instance_range的字段來(lái)初始化局部變量以字段“ST”753的值初始化局部變量ST_name;以“元素#”字段754的值初始化局部變量STDM_element(STDM元素);以“關(guān)鍵性”字段755的值初始化局部變量STDM_critical(STDM關(guān)鍵性);以“頁(yè)眉大小”字段756的值初始化局部變量STDM_header_size;以“頁(yè)腳大小”字段757的值初始化局部變量STDM_footer_size。然后,使用局部變量ST_name來(lái)解析STT表720,以便查找其“名稱”字段722匹配于參數(shù)ST_name的記錄721。一旦找到該記錄721,則將其字段“最小元素#”725存儲(chǔ)為局部變量STDM_min。然后,以值“DELETE_IN_FIELDS_IN_SELECTED_RANGE(在選定范圍內(nèi)刪除輸入字段)”初始化另一個(gè)局部變量STDM_mode。然后,使用當(dāng)前選定單元格的位置來(lái)初始化與單元格范圍STDM_instance_range的左上單元格和當(dāng)前選定單元格之間的行數(shù)對(duì)應(yīng)的局部變量STDM_offset_height(STDM偏移高度)。然后,以局部變量STDM_height(STDM高度)表示當(dāng)前選定的單元格范圍STDM_range(STDM范圍)的行數(shù)。
·在步驟1805,執(zhí)行一系列測(cè)試,以確定當(dāng)前選定單元格范圍相對(duì)于當(dāng)前STI STDM_instance_range的相對(duì)位置。首先,如果局部變量STDM_offset_height的值小于局部變量STDM_header_size的值,則局部變量STDM_header_overlap(STDM頁(yè)眉重疊)取值1(壹);否則,局部變量STDM_header_overlap取值0(零)。然后,如果局部變量STDM_offset_height和STDM_height的值之和被發(fā)現(xiàn)大于局部變量STDM_header_size和STDM_element的值之和,則局部變量STDM_footer_overlap(STDM頁(yè)腳重疊)取值1(壹)。然后,局部變量STDM_body_overlap(STDM主體重疊)取下式的值STDM_header_overlap×STDM_data1(數(shù)據(jù)1)+(1-STDM_header_overlap)×STDM_data2(數(shù)據(jù)2),其中如果局部變量STDM_offset_height和STDM_height的值之和被發(fā)現(xiàn)大于(相應(yīng)地,小于或等于)局部變量STDM_header_size的值,則STDM_data1取值1(相應(yīng)地,0);并且如果局部變量STDM_offset_height的值被發(fā)現(xiàn)小于(相應(yīng)地,大于或等于)局部變量STDM_header_size和STDM_element的值之和,則STDM_data2取值1(相應(yīng)地,0)。
·在步驟1806,對(duì)被刪除元素的數(shù)目進(jìn)行求值,然后驗(yàn)證剩余元素?cái)?shù)將不會(huì)太小,即低于下限STDM_min(STDM最小)。該被刪除元素?cái)?shù)被記錄在其值由下式給出的局部變量STDM_delete_element #(STDM刪除元素?cái)?shù))中STDM_body_overlap×(STDM_height-STDM_header_overlap×(STDM_header_size-STDM_offset_height)-STDM_footer_overlap×(STDM_offset_height+SDM_height-STDM_header_size-STDM_element))。
·在步驟1807,如果局部變量STDM_deleted_element_#和STDM_min的值之和被發(fā)現(xiàn)大于局部變量STDM_element的值,則將第一局部變量STDM_too_small(STDM太小)設(shè)為值“是”;否則,該局部變量STDM_too_small取值“否”。然后,如果局部變量STDM_header_overlap和STDM_footer_overlap都取值0(零),則將第二局部變量STDM_outside_body(STDM主體外部)設(shè)為值“否”;否則,將該局部變量STDM_outside_body設(shè)為值“是”。
·在步驟1808,在顯示設(shè)備106上顯示STI刪除管理器對(duì)話框1900。如果局部變量STDM_critical(關(guān)鍵性)取值“是”,則“關(guān)鍵性”復(fù)選框1910顯示選中標(biāo)記;否則(值“否”),則“關(guān)鍵性”復(fù)選框1910保持空白空顯示。以局部變量ST_name的值初始化標(biāo)簽框1911。以局部變量STDM_height的值填充文本框1908。以局部變量STDM_too_small的值填充標(biāo)簽框1907,并且以局部變量STDM_outside_body的值填充標(biāo)簽框1904。然后,如果局部變量STDM_mode取各個(gè)值·在選定范圍內(nèi)刪除輸入字段(DELETE_IN_FIELDS_IN_SELECTED_RANGE),或·在選定行內(nèi)刪除輸入字段(DELETE_IN_FIELDS_IN_SELECTED_ROW),或·刪除選定元素(DELETE_SELECTED_ELEMENTS),或·刪除選定實(shí)例(DELETE_SELECTED_INSTANCE),則選項(xiàng)按鈕1905或1906或1912或1913單獨(dú)顯示黑點(diǎn)。最后,當(dāng)局部變量STDM_mode等于“刪除選定元素”時(shí),一旦以下局部變量之一取值“是”STDM_too_high(STDM太高)、STDM_outside_body,則禁用“刪除”按鈕1903;否則,啟用“刪除”按鈕1903。
·在步驟1809,該方法等待ST刪除管理器對(duì)話框1900上的任何用戶操作。這樣的用戶操作典型地通過(guò)用定點(diǎn)設(shè)備105點(diǎn)擊而產(chǎn)生,但是也可以采取其它類似形式,例如但不限于鍵盤104上的特定鍵組合,或者未在此具體指定的任何其它類似裝置。
·在步驟1810,檢測(cè)ST刪除管理器對(duì)話框1900上的用戶操作。
·如果用戶操作是對(duì)“刪除”按鈕1903的點(diǎn)擊,則控制轉(zhuǎn)到步驟1824;·如果用戶操作是對(duì)滾動(dòng)按鈕1909的上部分的點(diǎn)擊,則控制轉(zhuǎn)到步驟1821;·如果用戶操作是對(duì)滾動(dòng)按鈕1909的下部分的點(diǎn)擊,則控制轉(zhuǎn)到步驟1820;·如果用戶操作是對(duì)“關(guān)鍵性”復(fù)選框1910的點(diǎn)擊,則控制轉(zhuǎn)到步驟1822;·如果用戶操作是對(duì)選項(xiàng)按鈕1906或1905或1912或1913之一的點(diǎn)擊,則控制轉(zhuǎn)到步驟1823;·如果用戶操作是對(duì)“取消”按鈕1902或關(guān)閉窗口按鈕1901的點(diǎn)擊,則控制轉(zhuǎn)到步驟1830;·在步驟1811,以值“內(nèi)容刪除”(CONTENT_DELETE)初始化局部變量STDM_mode(STDM模式)。然后,分別以局部變量STDM_height(STDM高度)和STDM_width(STDM寬度)表示當(dāng)前選定單元格范圍STDM_range(STDM范圍)的行數(shù)和列數(shù)。然后,將單元格范圍STDM_right_range(STDM右側(cè)范圍)確定為與STDM_range共享相同行且占據(jù)位于單元格范圍STDM_range右側(cè)的列的單元格范圍。然后,將單元格范圍STDM_bottom_range(STDM底部范圍)確定為與STDM_range共享相同列且占據(jù)位于STDM_range的行之下的行的單元格范圍。然后,將單元格范圍STDM_left_range(STDM左側(cè)范圍)確定為與STDM_range共享相同行且占據(jù)位于單元格范圍STDM_range的左側(cè)的列的單元格范圍。然后,將單元格范圍STDM_top_range(STDM頂部范圍)確定為與STDM_range共享相同列且占據(jù)位于STDM_range的行之上的行的單元格范圍。
·在步驟1812,執(zhí)行若干測(cè)試,以便根據(jù)四種可能的刪除模式評(píng)測(cè)刪除對(duì)任何已經(jīng)存在的STI或數(shù)據(jù)的潛在影響。這些測(cè)試要求解析STIT表750,并且訪問(wèn)每個(gè)記錄751以了解每一個(gè)已經(jīng)定義的STI的地址(“地址”字段752)和重要性(“關(guān)鍵性”字段755)。這些測(cè)試評(píng)測(cè)兩個(gè)給定的單元格范圍是否部分重疊(意味著在第一單元格范圍中存在至少一個(gè)屬于第二單元格范圍的單元格,以及至少一個(gè)不屬于第二單元格范圍的單元格),或者第一給定單元格范圍是否包括在第二給定單元格范圍內(nèi)(意味著屬于第一單元格范圍的每一個(gè)單元格也屬于第二單元格范圍)??梢允褂貌煌膫鹘y(tǒng)范圍比較技術(shù)來(lái)評(píng)測(cè)范圍部分重疊或者范圍包含,而不脫離本發(fā)明的精神;在本發(fā)明的優(yōu)選實(shí)施例中將不描述它們。
第一,研究“水平刪除”(HORIZONTAL_DELETE)刪除模式。
·如果存在至少一個(gè)現(xiàn)有的STI,其“關(guān)鍵性”字段755取值“是”并且與由當(dāng)前選定的單元格范圍STDM_range所在的全部行構(gòu)成的單元格范圍部分重疊,或者包括在由當(dāng)前選定的單元格范圍STDM_range所在的全部行構(gòu)成的單元格范圍中,則局部測(cè)試變量STDM_horizontal_critical(STDM水平關(guān)鍵性)取值“是”;否則局部測(cè)試變量STDM_horizontal_critical取值“否”。
·如果存在至少一個(gè)現(xiàn)有的STI,其“關(guān)鍵性”字段755取值“否”并且與由當(dāng)前選定的單元格范圍STDM_range所在的全部行構(gòu)成的單元格范圍部分重疊,或者包括在由當(dāng)前選定的單元格范圍STDM_range所在的全部行構(gòu)成的單元格范圍中,則局部測(cè)試變量STDM_horizontal_other(STDM水平其它)取值“是”;否則局部測(cè)試變量STDM_horizontal_other取值“否”。
·如果由當(dāng)前選定的單元格范圍STDM_range所在的全部行構(gòu)成的單元格范圍內(nèi)的所有單元格都為空(沒(méi)有包含任何數(shù)據(jù)),則局部測(cè)試變量STDM_horizontal_data(STDM水平數(shù)據(jù))取值“否”;否則,局部測(cè)試變量STDM_horizontal_data取值“是”。
第二,研究“按照范圍水平刪除”(HORIZONTAL_DELETE_BY_RANGE)刪除模式。
·如果存在至少一個(gè)現(xiàn)有的STI,其“關(guān)鍵性”字段755取值“是”并且與由兩個(gè)單元格范圍STDM_range和STDM_bottom_range的串接組成的單元格范圍部分重疊,或者與單元格范圍STDM_range部分重疊或者包括在其中,則局部測(cè)試變量STDM_horizontal_range_critical(STDM水平范圍關(guān)鍵性)取值“是”;否則局部測(cè)試變量STDM_horizontal_range_critical取值“否”。
·如果存在至少一個(gè)現(xiàn)有的STI,其“關(guān)鍵性”字段755取值“否”并且與由兩個(gè)單元格范圍STDM_range和STDM_bottom_range的串接組成的單元格范圍部分重疊,或者與單元格范圍STDM_range部分重疊或者包括在其中,則局部測(cè)試變量STDM_horizontal_range_other(STDM水平范圍其它)取值“是”;否則局部測(cè)試變量STDM_horizontal_range_other取值“否”。
·如果單元格范圍STDM_range內(nèi)的所有單元格都為空(沒(méi)有包含任何數(shù)據(jù)),則局部測(cè)試變量STDM_horizontal_range_data(STDM水平范圍數(shù)據(jù))取值“否”;否則,局部測(cè)試變量STDM_horizontal_range_data取值“是”。
第三,研究“垂直刪除”(VERTICAL_DELETE)刪除模式。
·如果存在至少一個(gè)現(xiàn)有的STI,其“關(guān)鍵性”字段755取值“是”并且與由當(dāng)前選定的單元格范圍STDM_range所在的全部列構(gòu)成的單元格范圍部分重疊,或者包括在由當(dāng)前選定的單元格范圍STDM_range所在的全部列構(gòu)成的單元格范圍中,則局部測(cè)試變量STDM_vertical_critical(STDM垂直關(guān)鍵性)取值“是”;否則局部測(cè)試變量STDM_vertical_critical取值“否”。
·如果存在至少一個(gè)現(xiàn)有的STI,其“關(guān)鍵性”字段755取值“否”并且與由當(dāng)前選定的單元格范圍STDM_range所在的全部列構(gòu)成的單元格范圍部分重疊,或者包括在由當(dāng)前選定的單元格范圍STDM_range所在的全部列構(gòu)成的單元格范圍中,則局部測(cè)試變量STDM_vertical_other(STDM垂直其它)取值“是”;否則局部測(cè)試變量STDM_vertical_other取值“否”。
·如果由當(dāng)前選定的單元格范圍STDM_range所在的全部列構(gòu)成的單元格范圍內(nèi)的所有單元格都為空(沒(méi)有包含任何數(shù)據(jù)),則局部測(cè)試變量STDM_vertical_data(STDM垂直數(shù)據(jù))取值“否”;否則,局部測(cè)試變量STDM_vertical_data取值“是”。
第四,研究“按照范圍垂直刪除”(VERTICAL_DELETE_BY_RANGE)刪除模式。
·如果存在至少一個(gè)現(xiàn)有的STI,其“關(guān)鍵性”字段755取值“是”并且與由兩個(gè)單元格范圍STDM_range和STDM_right_range的串接組成的單元格范圍部分重疊,或者與單元格范圍STDM_range部分重疊或者包括在其中,則局部測(cè)試變量STDM_vertical_range_critical(STDM垂直范圍關(guān)鍵性)取值“是”;否則局部測(cè)試變量STDM_vertical_range_critical取值“否”。
·如果存在至少一個(gè)現(xiàn)有的STI,其“關(guān)鍵性”字段755取值“否”并且與由兩個(gè)單元格范圍STDM_range和STDM_right_range的串接組成的單元格范圍部分重疊,或者與單元格范圍STDM_range部分重疊或者包括在其中,則局部測(cè)試變量STDM_vertical_range_other(STDM垂直范圍其它)取值“是”;否則局部測(cè)試變量STDM_vertical_range_other取值“否”。
·如果單元格范圍STDM_range內(nèi)的所有單元格都為空(沒(méi)有包含任何數(shù)據(jù)),則局部測(cè)試變量STDM_vertical_range_data(STDM垂直范圍數(shù)據(jù))取值“否”;否則,局部測(cè)試變量STDM_vertical_range_data取值“是”。
第五,調(diào)查“內(nèi)容刪除”(CONTENT_DELETE)刪除模式。
·如果存在至少一個(gè)現(xiàn)有的STI,其“關(guān)鍵性”字段755取值“是”并且其與單元格范圍STDM_range的交集包含至少一個(gè)被指定為“輸出”單元格的元素或元元素單元格,則局部測(cè)試變量STDM_content_critical(STDM內(nèi)容關(guān)鍵性)取值“是”;否則局部測(cè)試變量STDM_content_critical取值“否”。
·如果存在至少一個(gè)現(xiàn)有的STI,其“關(guān)鍵性”字段755取值“否”并且其與單元格范圍STDM_range的交集包含至少一個(gè)被指定為“輸出”單元格的元素或元元素單元格,則局部測(cè)試變量STDM_content_other(STDM內(nèi)容其它)取值“是”;否則局部測(cè)試變量STDM_content_other取值“否”。
·如果單元格范圍STDM_range內(nèi)的所有單元格都為空(沒(méi)有包含任何數(shù)據(jù)),則局部測(cè)試變量STDM_content_data(STDM內(nèi)容數(shù)據(jù))取值“否”;否則,局部測(cè)試變量STDM_content_data取值“是”。
·在步驟1813,執(zhí)行測(cè)試,以根據(jù)在步驟1812期間分配給以下局部變量的值檢查對(duì)任何現(xiàn)有STI的刪除影響·STDM_horizontal_critical,·STDM_horizontal_other,·STDM_horizontal_range_critical,·STDM_horizontal_range_other,·STDM_vertical_critical,·STDM_vertical_other,·STDM_vertical_range_critical,·STDM_vertical_range_other,·STDM_content_critical,·STDM_content_other。
如果這些局部變量都不取值“是”,則控制轉(zhuǎn)到步驟1814;否則,如果這些局部變量中的至少一個(gè)取值“是”,則控制轉(zhuǎn)到步驟1815。
·在步驟1814,觸發(fā)在傳統(tǒng)的電子表格環(huán)境中使用和定義的傳統(tǒng)刪除方法,然后控制返回到初始步驟1801,以便處理任何將來(lái)的STI刪除管理器命令。
·在步驟1815,在顯示設(shè)備106上顯示ST刪除管理器對(duì)話框1920。以保留值“無(wú)”初始化標(biāo)簽框1929。從頂行開始逐行地從左到右按照下面次序以下面局部變量的值填充15個(gè)標(biāo)簽框1924·STDM_content_critical,·STDM_content_other,·STDM_content_data,·STDM_horizontal_critical,·STDM_horizontal_other,·STDM_horizontal_data,·STDM_horizontal_range_critical,·STDM_horizontal_range_other,·STDM_horizontal_range_data,·STDM_vertical_critical,·STDM_vertical_other,·STDM_vertical_data,·STDM_vertical_range_critical,·STDM_vertical_range_other,·STDM_vertical_range_data。
然后,如果局部變量STDM_mode取各個(gè)值“內(nèi)容刪除”或“水平刪除”或“按照范圍水平刪除”或“垂直刪除”或“按照范圍垂直刪除”,則選項(xiàng)按鈕1930或1928或1927或1926或1925單獨(dú)顯示黑點(diǎn)。
最后,一旦下面局部變量之一取值“是”,則禁用“刪除”按鈕1923·STDM_content_critical(僅考慮是否局部變量STDM_mode等于“內(nèi)容刪除”),·STDM_horizontal_critical(僅考慮是否局部變量STDM_mode等于“水平刪除”),·STDM_vertical_critical(僅考慮是否局部變量STDM_mode等于“垂直刪除”),·STDM_horizontal_range_critical(僅考慮是否局部變量STDM_mode等于“按照范圍水平刪除”),·STDM_vertical_range_critical(僅考慮是否局部變量STDM_mode等于“按照范圍垂直刪除”);否則,啟用“刪除”按鈕1923。
·在步驟1816,該方法等待ST插入管理器對(duì)話框1920上的任何用戶操作。這樣的用戶操作典型地通過(guò)用定點(diǎn)設(shè)備105點(diǎn)擊而產(chǎn)生,但是也可以采取其它類似形式,例如但不限于鍵盤104上的特定鍵組合或者未在此具體指定的任何其它類似裝置。
·在步驟1817,檢測(cè)ST插入管理器對(duì)話框1920上的用戶操作。如果用戶操作是對(duì)“刪除”按鈕1923的點(diǎn)擊,則控制轉(zhuǎn)到步驟1819;如果用戶操作是對(duì)選項(xiàng)按鈕1930或1928或1927或1926或1925之一的點(diǎn)擊,則控制轉(zhuǎn)到步驟1818;如果用戶操作是對(duì)“取消”按鈕1922或者關(guān)閉窗口按鈕1921的點(diǎn)擊,則控制轉(zhuǎn)到步驟1830。
·在步驟1818,如果電子表格用戶用定點(diǎn)設(shè)備105分別點(diǎn)擊了選項(xiàng)按鈕1930或1928或1927或1926或1925,則局部變量STDM_mode取值“內(nèi)容刪除”或“水平刪除”或“按照范圍水平刪除”或“垂直刪除”或“按照范圍垂直刪除”。然后,控制轉(zhuǎn)到步驟1815。
·在步驟1819,訪問(wèn)STIT表750,以便從其中移除與在步驟1812期間針對(duì)由局部變量STDM_mode表示的刪除模式而識(shí)別的由于刪除操作而遭到破壞的STI對(duì)應(yīng)的每一個(gè)記錄751。然后,更新STT表720以反映每個(gè)STI的移除。對(duì)于每個(gè)被移除的STI,將記錄721的“被引用”屬性729的“實(shí)例引用”(IR)字段729c除以2(二),其中記錄721的“名稱”字段722等于STIT表750中與被移除的STI對(duì)應(yīng)的記錄751的“ST”字段753。然后,控制轉(zhuǎn)到步驟1825。
·在步驟1820,只要局部變量STDM_height的值保持嚴(yán)格為正,就將局部變量STDM_height遞減1(壹)。如果完成了遞減,則通過(guò)從當(dāng)前選擇中移除最后的行來(lái)減小當(dāng)前選定的單元格范圍STDM_range。然后,控制轉(zhuǎn)到步驟1805。
·在步驟1821,只要局部變量STDM_height的值保持小于局部變量STDM_element的值,就將局部變量STDM_height遞增1(壹)。如果完成了遞增,則通過(guò)將最后一行之下的新行增加到當(dāng)前選擇來(lái)擴(kuò)大當(dāng)前選定的單元格范圍STDM_range。然后控制轉(zhuǎn)移到步驟1805。
·在步驟1822,更新局部變量STDM_critical,以便在值“是”和“否”之間交換。另外,如果在“關(guān)鍵性”復(fù)選框1910中先前不存在或存在選中標(biāo)記,則分別在這一復(fù)選框內(nèi)添加選中標(biāo)記或者從其中刪除選中標(biāo)記。然后,以局部變量STDM_critical的值更新在步驟1803找到的STIT表750的記錄751內(nèi)的字段“關(guān)鍵性”755。然后,控制轉(zhuǎn)到步驟1805。
·在步驟1823,如果電子表格用戶用定點(diǎn)設(shè)備105分別點(diǎn)擊了選項(xiàng)按鈕1905或1906或1912或1913,則局部變量STDM_mode取值“在選定范圍內(nèi)刪除輸入字段”或“在選定行內(nèi)刪除輸入字段”或“刪除選定元素”或“刪除選定實(shí)例”。然后,控制轉(zhuǎn)到步驟1805。
·在步驟1824,執(zhí)行測(cè)試,以檢查局部變量STDM_mode的值。
·如果該值被發(fā)現(xiàn)等于“在選定范圍內(nèi)刪除輸入字段”,則控制轉(zhuǎn)到步驟1826;·如果該值被發(fā)現(xiàn)等于“在選定行內(nèi)刪除輸入字段”,則控制轉(zhuǎn)到步驟1827;·如果該值被發(fā)現(xiàn)等于“刪除選定元素”,則控制轉(zhuǎn)到步驟1828;·如果該值被發(fā)現(xiàn)等于“刪除選定實(shí)例”,則控制轉(zhuǎn)到步驟1829。
·在步驟1825,執(zhí)行測(cè)試,以檢查局部變量STDM_mode的值。
·如果該值被發(fā)現(xiàn)等于“水平刪除”,則控制轉(zhuǎn)到步驟1831;·如果該值被發(fā)現(xiàn)等于“按照范圍水平刪除”,則控制轉(zhuǎn)到步驟1833;·如果該值被發(fā)現(xiàn)等于“垂直刪除”,則控制轉(zhuǎn)到步驟1832;·如果該值被發(fā)現(xiàn)等于“按照范圍垂直刪除”,則控制轉(zhuǎn)到步驟1834;·如果該值被發(fā)現(xiàn)等于“內(nèi)容刪除”,則控制轉(zhuǎn)到步驟1837。
·在步驟1826,清除屬于當(dāng)前選定的單元格范圍STDM_range的“輸入”單元格。為此,訪問(wèn)在步驟1803識(shí)別的STIT表750的記錄751的“ST”字段753,以獲得關(guān)于ST的STDT表760的存儲(chǔ)器指針,其中ST的STDT表760為STI的每個(gè)元元素和每個(gè)元素指定相關(guān)EP是什么,這又表示哪些單元格是“輸入”單元格,并且哪些單元格是“輸出”單元格。然后,逐一地選擇單元格范圍STDM_range的每行,并且對(duì)于每個(gè)選定行,從STDT表760檢索對(duì)應(yīng)的元素或MEP,以確定哪些單元格是“輸入”單元格。為此,臨時(shí)局部變量STDM_out_fields(STDM輸出字段)存儲(chǔ)被指定為“輸入”或“輸出”單元格的所有單元格的相對(duì)位置,作為輸入或輸出值的有序集合。例如,在由5個(gè)單元格構(gòu)成的EP中,其中只有第三個(gè)和第五個(gè)單元格是“輸出”單元格,該局部變量STDM_out_fields取值(輸入,輸入,輸出,輸入,輸出)。對(duì)于該相同例子,如果選定的單元格范圍僅僅占據(jù)STI的第二、第三和第四列,則忽略第一單元格,因?yàn)殡m然它是“輸入”單元格,但是它落在單元格范圍STDM_range的限制之外,從而僅考慮第二和第四單元格。一旦確定了屬于單元格范圍STDM_range的“輸入”單元格,則通過(guò)清除它們的內(nèi)容來(lái)更新這些單元格。
·在步驟1827,更新當(dāng)前選定的單元格范圍STDM_range,以便將其列與由STI STDM_instance_range占據(jù)的列對(duì)齊。然后,控制轉(zhuǎn)到步驟1826。
·在步驟1828,從當(dāng)前STI STDM_instance_range中移除屬于當(dāng)前選定的單元格范圍STDM_range的各行的元素。為此,首先選擇由與單元格范圍STDM_instance_range相同的列組成、且其行位于單元格范圍STDM_range的底行(不包括)和單元格范圍STDM_instance_range的底行(包括)之間的單元格范圍。然后,逐行地向上移動(dòng)該選定單元格范圍,直到其頂行占據(jù)與先前單元格范圍STDM_range的頂行相同的行的位置為止。對(duì)于該移動(dòng)的每個(gè)步驟,移除單元格范圍STDM_range內(nèi)的行,從而在結(jié)束時(shí)移除了單元格范圍STDM_range的所有行。然后,控制轉(zhuǎn)到步驟1836。
·在步驟1829,與STI STDM_instance_range對(duì)應(yīng)的單元格范圍成為常規(guī)單元格范圍,并且釋放其STI資格。為此,清除該單元格范圍STDM_instance_range的所有單元格的內(nèi)容,然后該整個(gè)單元格范圍接收在當(dāng)前電子表格文件內(nèi)定義的缺省顯示屬性。然后,控制轉(zhuǎn)到步驟1835。
·在步驟1830,關(guān)閉ST刪除管理器對(duì)話框1900或1920,使得它從顯示設(shè)備106消失。最后,控制返回到初始步驟1801,以便處理任何將來(lái)的STI刪除管理器命令。
·在步驟1831,選擇單元格范圍STDM_range,以使其成為當(dāng)前選定的單元格范圍,以便選擇STDM_height行,然后執(zhí)行常規(guī)的“行刪除”操作。然后,控制轉(zhuǎn)到步驟1830。
·在步驟1832,選擇單元格范圍STDM_range,以使其成為當(dāng)前選定的單元格范圍,以便選擇STDM_width列,然后執(zhí)行常規(guī)的“列刪除”操作。然后,控制轉(zhuǎn)到步驟1830。
·在步驟1833,選擇單元格范圍STDM_range,以使其成為當(dāng)前選定的單元格范圍,以便選擇STDM_height行,然后執(zhí)行常規(guī)的“選定范圍內(nèi)的行刪除”操作。然后,控制轉(zhuǎn)到步驟1830。
·在步驟1834,選擇單元格范圍STDM_range,以使其成為當(dāng)前選定的單元格范圍,以便選擇STDM_width列,然后執(zhí)行常規(guī)的“選定范圍內(nèi)的列刪除”操作。然后,控制轉(zhuǎn)到步驟1830。
·在步驟1835,從STIT表750中移除在步驟1803識(shí)別的記錄751。然后,更新STT表720以反映該STI的移除。在將控制轉(zhuǎn)到步驟1830之前,將記錄721的“被引用(REFERENCED)”屬性729的“實(shí)例引用(INSTANCEREFERENCE)”(IR)字段729c除以2(二),其中記錄721的“名稱”字段722等于與被移除的STI對(duì)應(yīng)的STIT表750的記錄751的“ST”字段753。
·在步驟1836,通過(guò)在所有剩余元素中恢復(fù)“輸出”單元格來(lái)更新當(dāng)前STI STDM_instance_range,以便防止由于元素刪除的任何破壞。首先,解析STT表720,以識(shí)別其“名稱”字段722匹配于局部變量ST_name的值的記錄721。在該記錄721內(nèi)檢索“描述指針(Description Ptr)”字段724,其允許在存儲(chǔ)器中定位與當(dāng)前STI STDM_instance_range所遵循的ST相關(guān)聯(lián)的STDT表760。然后,訪問(wèn)該STDT表760內(nèi)的元素對(duì)762,以檢索記錄在局部變量STDM_profile(STDM概要)中的EP。然后,解析EPT表710以識(shí)別其“名稱”字段712匹配于局部變量STDM_profile的記錄711。一旦找到,則使用“描述指針”字段714來(lái)在存儲(chǔ)器中訪問(wèn)EP的描述,其表示哪些單元格是“輸入”單元格,并且哪些單元格是“輸出”單元格。為此,臨時(shí)局部變量STDM_out_fields存儲(chǔ)被指定為“輸出”單元格的所有單元格的相對(duì)位置,作為輸入或輸出值的有序集合。例如,對(duì)于由5個(gè)單元格構(gòu)成的EP,其中只有第三個(gè)和第五個(gè)單元格是“輸出”單元格,該局部變量STDM_out_fields取值(輸入,輸入,輸出,輸入,輸出)。然后,將(其“名稱”712字段匹配于局部變量STDM_profile的EPT表710的記錄711的“描述指針”字段714所指向的)說(shuō)明性單元格范圍的每個(gè)“輸出”單元格單獨(dú)復(fù)制和粘貼到STISTDM_instance_range的頂元素的單元格上,其中該單元格具有該元素內(nèi)的相同相對(duì)列偏移(對(duì)應(yīng)于在局部變量STDM_out_fields中取值“輸出”的位置)。然后,選擇STI STDM_instance_range的頂元素作為當(dāng)前選定的單元格范圍。然后,如果該選擇內(nèi)的每個(gè)單元格對(duì)應(yīng)于在局部變量STDM_out_fields中取值“輸入”的位置,則單獨(dú)地將其取消選擇。在該選擇內(nèi),將最左單元格設(shè)為當(dāng)前選定的單元格。在此階段,當(dāng)前選擇對(duì)應(yīng)于所有“輸出”單元格的集合。然后,擴(kuò)展當(dāng)前選擇,以使其盡可能多的包括頂元素之下所需數(shù)目的行,使得它遍及STI STDM_instance_range的所有元素。然后,進(jìn)行傳統(tǒng)的“下復(fù)制”操作,以將第一行復(fù)制到下面行,從而當(dāng)前STI STDM_instance_range的所有“輸出”單元格接收正確的內(nèi)容。最后,以局部變量STDM_element和STDM_height之差更新在步驟1803找到的STIT表750的記錄751內(nèi)的“元素#”字段754。最后,控制轉(zhuǎn)到步驟1830。
·在步驟1837,清除包括在當(dāng)前選定的單元格范圍STDM_range內(nèi)的每一個(gè)單元格的內(nèi)容。然后,控制轉(zhuǎn)到步驟1830。
E8.RSTI刪除管理器方法圖15B的流程圖1840概述了在本發(fā)明的優(yōu)選實(shí)施例中使用的用于刪除RSTI內(nèi)的對(duì)象的方法。該方法可被看作STI刪除管理器命令的處理。
·在步驟1841,該方法處于其缺省狀態(tài),等待啟動(dòng)該處理的事件。
·在步驟1842,作為用戶操作的結(jié)果,檢測(cè)到RSTI刪除管理器命令。該操作可以例如是鍵盤104上的特定鍵組合、或者定點(diǎn)設(shè)備105在特定按鈕上的點(diǎn)擊、或者未在此具體指定的任何其它類似裝置。
·在步驟1843,初始化一些局部變量·局部變量csr(“當(dāng)前選定范圍”)是與當(dāng)前選定的單元格范圍對(duì)應(yīng)的單元格范圍。
·局部變量csc(“當(dāng)前選定單元格”)是與當(dāng)前選定的單元格對(duì)應(yīng)的單獨(dú)單元格。
·局部變量cRSTITr(“當(dāng)前RSTIT記錄”)對(duì)應(yīng)于RSTIT表2260中其“地址”字段2262屬于與局部變量單元格范圍csc相同的工作表的記錄2261(若存在的話)。如果RSTIT表2260不包含具有占據(jù)與局部變量單元格范圍csc相同的工作表的“地址”字段2262的任何記錄2261,則局部變量cRSTITr缺省為值“空”。
·局部變量rir(“遞歸實(shí)例范圍”)是其地址由cRSTITr記錄2261的“地址”字段2262給出的單元格范圍2001(如果不為“空”的話)。如果局部變量cRSTITr取值“空”,則局部變量rir也缺省為值“空”。
·局部變量cRSTIDT(“當(dāng)前RSTIDT”)是cRSTITr記錄2261的“RSTIDT Ptr”字段2265所指向的RSTIDT表2270(如果不為空的話)。如果局部變量cRSTITr取值“空”,則局部變量cRSTIDT也缺省為值“空”。
·如果局部變量rir不等于“空”,則以RSTI rir所遵循的RST的名稱初始化局部變量RST_name。該名稱由其“地址”字段2262屬于與單元格范圍csc相同的工作表的RSTIT表2260中的cRSTITr記錄2261的“RST”字段2263給出。
·局部變量ir(“實(shí)例范圍”)是對(duì)應(yīng)于(若存在的話)包含當(dāng)前選定單元格csc的STI的單元格范圍。如果當(dāng)前選定單元格csc不屬于STI,則局部變量ir取設(shè)為“空”的缺省值。該局部變量ir的初始化通過(guò)比較局部變量csc的地址與STIT表750的每個(gè)記錄751的“地址”字段752來(lái)確定。例如,通過(guò)參照?qǐng)D17A,如果局部變量csc對(duì)應(yīng)于單元格范圍2024或2022之一,則局部變量ir取值空,并且如果局部變量csc對(duì)應(yīng)于單元格范圍2018或2019或2020或2021或2023或2025之一,則局部變量ir對(duì)應(yīng)于相應(yīng)的單元格范圍2034或2032或2030或2031或2033或2013。
·如果當(dāng)前選定單元格csc分別處于或不處于rir單元格范圍2001的主體部分2003內(nèi),則局部變量ccirb(“遞歸主體中的當(dāng)前單元格”)是取值真或假的布爾變量。例如,通過(guò)參照?qǐng)D17A,如果局部變量csc對(duì)應(yīng)于單元格范圍2018或2020或2022或2023之一,則局部變量ccirb取值真,并且如果局部變量csc對(duì)應(yīng)于單元格范圍2019或2021或2024或2025之一,則局部變量ccirb取值假。
·如果局部變量ccirb等于真,則局部變量cr(“容器行”)對(duì)應(yīng)于當(dāng)前選定單元格csc所在的容器行單元格范圍。如果局部變量ccirb等于值“空”,則局部變量cr也缺省為值“空”。例如,通過(guò)參照?qǐng)D17A,如果局部變量csc對(duì)應(yīng)于單元格范圍2019或2021或2024或2025之一,則局部變量cr取值空,而如果局部變量csc對(duì)應(yīng)于單元格范圍2023或2020或2018或2022之一,則它對(duì)應(yīng)于相應(yīng)的單元格范圍2008或2009或2010或2010。
·局部變量csii(“實(shí)例中的當(dāng)前選擇”)是布爾變量,如果選定單元格范圍csr分別包括或者不包括在STI內(nèi),則其取值真或假。例如,通過(guò)參照?qǐng)D17A,如果局部變量csr對(duì)應(yīng)于單元格范圍2018或2019或2020或2021之一,則局部變量csii取值真,而如果局部變量csr對(duì)應(yīng)于單元格范圍2022或2023或2024或2025之一,則取值假。
·局部變量ccii(“實(shí)例中的當(dāng)前單元格”)是布爾變量,如果當(dāng)前選定單元格csc分別包括或者不包括在STI內(nèi),則其取值真或假。例如,通過(guò)參照?qǐng)D17A,如果局部變量csc對(duì)應(yīng)于單元格范圍2018或2019或2020或2021或2023或2025之一,則局部變量ccii取值真,而如果局部變量csc對(duì)應(yīng)于單元格范圍2022或2024之一,則取值假。
·局部變量csib(“主體中的當(dāng)前選擇”)是布爾變量,如果選定單元格范圍csr分別包括或不包括在STI的主體部分內(nèi),則取值真或假。例如,通過(guò)參照?qǐng)D17A,如果局部變量csr對(duì)應(yīng)于單元格范圍2018或2019之一,則局部變量csib取值真,而如果局部變量csr對(duì)應(yīng)于單元格范圍2020或2021或2022或2023或2024或2025之一,則取值假。
·以值“del_rec_inst(刪除遞歸實(shí)例)”初始化局部變量RSTIDM_mode。
·在步驟1844,執(zhí)行測(cè)試,以確定局部變量rir是否為空。如果是,則控制轉(zhuǎn)到步驟1845;否則,控制轉(zhuǎn)到步驟1846。
·在步驟1845,調(diào)用STI刪除管理器命令(作為子例程)。當(dāng)該命令完成,并且將控制返回到當(dāng)前處理時(shí),則控制轉(zhuǎn)到初始步驟1841,以便處理任何將來(lái)的RSTI刪除管理器命令。
·在步驟1846,執(zhí)行測(cè)試,以確定由局部變量csc表示的單元格是否是由局部變量rir表示的單元格范圍的一部分。如果是,則控制轉(zhuǎn)到步驟1848;否則,控制轉(zhuǎn)到步驟1847。
·在步驟1847,在禁用了可能污染RSTI范圍rir的任何刪除模式之后,遵循在現(xiàn)有的電子表格環(huán)境中可用的傳統(tǒng)刪除方法。如下識(shí)別這些污染刪除模式·如果單元格范圍csr與單元格范圍rir共享某些行,則禁用傳統(tǒng)的行刪除模式。
·如果單元格范圍csr與單元格范圍rir共享某些列,則禁用傳統(tǒng)的列刪除模式。
·如果單元格范圍csr與單元格范圍rir共享某些單元格,則禁用傳統(tǒng)的單元格內(nèi)容刪除模式。
然后,控制轉(zhuǎn)到初始步驟1841,以便處理任何將來(lái)的RSTI刪除管理器命令。
·在步驟1848,根據(jù)一些局部變量的值,在顯示設(shè)備106上顯示RSTI刪除管理器對(duì)話框1940。
·以局部變量RST_name的值填充文本框1950。
·如果局部變量RSTIDM_mode取各個(gè)值“del_rec_inst”或“del_cont”或“del_elem”或“del_inst_IN”或“del_elem_IN”或“del_select_IN”,則以黑點(diǎn)填充選項(xiàng)按鈕1944或1945或1946或1947或1948或1949,而屬于對(duì)話框1940的其它選項(xiàng)按鈕保持空。
·如果局部變量ccirb等于真,則啟用選項(xiàng)按鈕1945,從而用定點(diǎn)設(shè)備105對(duì)其的任何將來(lái)點(diǎn)擊都將被識(shí)別為有效事件。如果局部變量ccirb等于假,則禁用選項(xiàng)按鈕1945,從而用定點(diǎn)設(shè)備105對(duì)其的任何將來(lái)點(diǎn)擊都將不被識(shí)別為有效事件。
·如果局部變量csib等于真,則啟用選項(xiàng)按鈕1946,從而用定點(diǎn)設(shè)備105對(duì)其的任何將來(lái)點(diǎn)擊都將被識(shí)別為有效事件。如果局部變量csib等于假,則禁用選項(xiàng)按鈕1946,從而用定點(diǎn)設(shè)備105對(duì)其的任何將來(lái)點(diǎn)擊都將不被識(shí)別為有效事件。
·如果局部變量csii等于真,則啟用選項(xiàng)按鈕1948和1949,從而用定點(diǎn)設(shè)備105對(duì)它們的任何將來(lái)點(diǎn)擊都將被識(shí)別為有效事件。如果局部變量csii等于假,則禁用選項(xiàng)按鈕1948和1949,從而用定點(diǎn)設(shè)備105對(duì)它們的任何將來(lái)點(diǎn)擊都將不被識(shí)別為有效事件。
·如果局部變量ccii等于真,則啟用選項(xiàng)按鈕1947,從而用定點(diǎn)設(shè)備105對(duì)其的任何將來(lái)點(diǎn)擊都將被識(shí)別為有效事件。如果局部變量ccii等于假,則禁用選項(xiàng)按鈕1947,從而用定點(diǎn)設(shè)備105對(duì)其的任何將來(lái)點(diǎn)擊都將不被識(shí)別為有效事件。
·在步驟1849,該方法等待RSTI刪除管理器對(duì)話框1940上的任何用戶操作。這樣的用戶操作典型地通過(guò)用定點(diǎn)設(shè)備105點(diǎn)擊而產(chǎn)生,但是也可以采取其它類似形式,例如但不限于鍵盤104上的特定鍵組合或者未在此具體指定的任何其它類似手段。
·在步驟1850,檢測(cè)RSTI刪除管理器對(duì)話框1940上的用戶操作。
·如果用戶操作是用定點(diǎn)設(shè)備105對(duì)被啟用的選項(xiàng)按鈕1944或1945或1946或1947或1948或1949之一的點(diǎn)擊,則控制轉(zhuǎn)到步驟1851。
·如果用戶操作是用定點(diǎn)設(shè)備105對(duì)“刪除”按鈕1942的點(diǎn)擊,則控制轉(zhuǎn)到步驟1853。
·如果用戶操作是用定點(diǎn)設(shè)備105對(duì)“取消”按鈕1943或關(guān)閉窗口按鈕1941的點(diǎn)擊,則控制轉(zhuǎn)到步驟1852。
·在步驟1851,根據(jù)在步驟1850由用戶點(diǎn)擊的被啟用的選項(xiàng)按鈕,更新局部變量RSTIDM_mode·如果用戶點(diǎn)擊了選項(xiàng)按鈕1944,則局部變量RSTIDM_mode取值“del_rec_inst”。
·如果用戶點(diǎn)擊了選項(xiàng)按鈕1945,則局部變量RSTIDM_mode取值“del_cont”。
·如果用戶點(diǎn)擊了選項(xiàng)按鈕1946,則局部變量RSTIDM_mode取值“del_elem”。
·如果用戶點(diǎn)擊了選項(xiàng)按鈕1947,則局部變量RSTIDM_mode取值“del_inst_IN”。
·如果用戶點(diǎn)擊了選項(xiàng)按鈕1948,則局部變量RSTIDM_mode取值“del_elem_IN”。
·如果用戶點(diǎn)擊了選項(xiàng)按鈕1949,則局部變量RSTIDM_mode取值“del_select_IN”。
然后,控制轉(zhuǎn)到步驟1848。
·在步驟1852,在顯示設(shè)備106上關(guān)閉RSTI刪除管理器對(duì)話框1940,然后,控制轉(zhuǎn)到初始步驟1841,以便處理任何將來(lái)的RSTI刪除管理器命令。
·在步驟1853,執(zhí)行測(cè)試,以檢查局部變量RSTIDM_mode是否取值“del_rec_inst”。如果是,則控制轉(zhuǎn)到步驟1854;否則,控制轉(zhuǎn)到步驟1855。
·在步驟1854,從RSTI表RSTIT 2260中移除該表RSTIT 2260的當(dāng)前記錄cRSTITr 2261,并且刪除記錄cRSTITr 2261的“RSTIDT Ptr”字段2265所指向的相關(guān)RSTI描述符表RSTIDT 2270。然后,掃描RSTT表2220,以識(shí)別其“名稱”字段2222被發(fā)現(xiàn)等于局部變量RST_name的記錄2221。一旦找到,則通過(guò)將“實(shí)例引用”子字段2229c除以2(二)來(lái)更新該記錄2221的“類型”字段2227內(nèi)的“被引用”屬性2229。
·在步驟1855,執(zhí)行測(cè)試,以檢查局部變量RSTIDM_mode是否取值“del_cont”。如果是,則控制轉(zhuǎn)到步驟1856;否則,控制轉(zhuǎn)到步驟1858。
·在步驟1856,通過(guò)移除容器行cr所占據(jù)的行來(lái)從當(dāng)前工作表中刪除容器行cr。
·在步驟1857,通過(guò)移除其“地址”字段752指到容器行cr之內(nèi)的所有記錄751來(lái)更新STIT表750。然后,通過(guò)移除與被刪除的容器行cr對(duì)應(yīng)的記錄2271來(lái)更新RSTIDT表cRSTIDT 2270。然后,控制轉(zhuǎn)到步驟1852。
·在步驟1858,執(zhí)行測(cè)試,以檢查局部變量RSTIDM_mode是否取值“del_elem”。如果是,則控制轉(zhuǎn)到步驟1859;否則,控制轉(zhuǎn)到步驟1861。
·在步驟1859,從STI ir中移除屬于當(dāng)前選定單元格范圍csr的各行的元素。為此,首先選擇由與單元格范圍ir相同的列組成并且其行位于單元格范圍csr的底行(不包括)和單元格范圍ir的底行(包括)之間的單元格范圍。然后,逐行地向上移動(dòng)該選定單元格范圍,直到其頂行占據(jù)與先前單元格范圍csr的頂行相同行的位置為止。對(duì)于該移動(dòng)的每個(gè)步驟,移除單元格范圍csr ir內(nèi)的行,從而在結(jié)束時(shí)移除了單元格范圍csr的所有行。如果該元素移除的結(jié)果是在容器行單元格范圍cr的底部留下一個(gè)空行或多個(gè)空行,則移除該空行或該多個(gè)空行。
·在步驟1860,通過(guò)在所有剩余元素中恢復(fù)“輸出”單元格來(lái)更新STI ir,以防止由于元素刪除的任何破壞。后續(xù)方法與在STI刪除管理器命令的步驟1836所述的方法相同,并且這里不再重復(fù)。然后,通過(guò)更新對(duì)應(yīng)于STI ir的記錄751來(lái)改變STIT表750。更新“地址”字段752來(lái)反映ir的新范圍地址,并且更新“元素#”字段754來(lái)反映STI ir內(nèi)的新元素?cái)?shù)。然后,通過(guò)在記錄2271中修改與修改后的STI ir和(可能地)修改后的容器行cr對(duì)應(yīng)的屬性,更新RSTIDT表cRSTIDT 2270。在與STI ir相關(guān)聯(lián)的單元格2280內(nèi),更新屬性“STI_row(行)”2279來(lái)反映STI ir內(nèi)的新行數(shù),更新屬性“Container_row(容器行)”2281來(lái)反映新的容器行數(shù),并且更新“Container_range(容器范圍)”屬性2276來(lái)反映包括STI ir的容器的新地址。如果在步驟1859的結(jié)束時(shí)移除了一行或多行,則還通過(guò)類似地修改屬性“Container_row(容器行)”2281和“Container_range(容器范圍)”2276來(lái)更新相同記錄2271的其它單元格2280。然后,控制轉(zhuǎn)到步驟1852。
·在步驟1861,執(zhí)行測(cè)試,以檢查局部變量RSTIDM_mode是否取值“del_elem_IN”。如果是,則控制轉(zhuǎn)到步驟1862;否則,控制轉(zhuǎn)到步驟1863。
·在步驟1862,更新當(dāng)前選定單元格范圍csr,以便將其列與STI ir所占據(jù)的列對(duì)齊。然后,控制轉(zhuǎn)到步驟1865。
·在步驟1863,執(zhí)行測(cè)試,以檢查局部變量RSTIDM_mode是否取值“del_inst_IN”。如果是,則控制轉(zhuǎn)到步驟1864;否則,控制轉(zhuǎn)到步驟1865。
·在步驟1864,將當(dāng)前選定單元格范圍csr設(shè)成等于局部變量單元格范圍ir,使得ir變?yōu)樾碌漠?dāng)前選定單元格范圍。
·在步驟1865,清除屬于當(dāng)前選定單元格范圍csr的“輸入”單元格。后面的方法與在STI刪除管理器命令的步驟1826所述的方法相同,并且這里不再重復(fù)。然后,控制轉(zhuǎn)到步驟1852。
E9.RST實(shí)例化器方法用在本發(fā)明優(yōu)選實(shí)施例中的實(shí)例化RST的方法總結(jié)在圖18A和18B的流程圖2100中??梢詫⑦@種方法看作RST實(shí)例化器命令的處理。
·在步驟2101中,該方法處在它的默認(rèn)狀態(tài)下,等待啟動(dòng)該進(jìn)程的事件。
·在步驟2102中,作為用戶動(dòng)作的結(jié)果,檢測(cè)RST實(shí)例化器命令。這個(gè)動(dòng)作可以是,例如,鍵盤104上的特定鍵組合,定位設(shè)備105在特定按鈕上的點(diǎn)擊,或本文未作進(jìn)一步規(guī)定的任何其它類似手段。
·在步驟2103中,檢索命令參數(shù)和初始化一些局部變量·將命令參數(shù)記錄在RST_name(RST名稱)變量中。
·用值0(零)初始化局部變量Element#(元素?cái)?shù))。
·用默認(rèn)值FLASE(假)初始化局部變量too_wide(太寬)。
·用默認(rèn)值FLASE值初始化局部變量too_high(太高)。
·用表格(工作表)上最大可用列數(shù)初始化局部變量Max_col(最大列)。
·用表格上的最大可用行數(shù)初始化局部變量Max_row(最大行)。
·用默認(rèn)值FLASE值初始化局部變量STI_present。
·用默認(rèn)值FLASE值初始化局部變量RSTI_busy(RSTI忙)。
·將局部變量RSTI_top_left_cell(RSTI左上單元格)初始化成當(dāng)前所選單元格。
·在步驟2104中,分析RSTT表2220,以便識(shí)別“Name”字段2222等于命令參數(shù)RST_name的記錄2221(由局部變量Curr_RSTT_rec標(biāo)識(shí))。然后,將局部變量RSTI_E#設(shè)置成等于這個(gè)記錄Curr_RSTT_rec 2221的“MinElement#”字段2225的值。
·在步驟2105中,將局部變量Curr_RSTDT設(shè)置成等于記錄Curr_RSTT_rec 2221的“Description Ptr”字段2224所指的RSTDT表2250。然后,將局部變量Curr_RSTDT_rec設(shè)置成等于Curr_RSTDT表2250的第1單單元格記錄2251。然后,將局部變量Curr_RET_rec設(shè)置成等于“Name”字段2212等于局部變量Curr_RSTDT_rec、RET表2210的記錄2211。然后,將局部變量Curr_RED_RoC設(shè)置成等于記錄Curr_RET_rec 2211的“Description Ptr”字段2214所指的單元格范圍。
·在步驟2106中,將RSTIDT表2270裝入存儲(chǔ)器中和通過(guò)局部變量CurrRSTIDT命名它。這個(gè)表格具有等于Curr_RSTDT表2250的行數(shù)加局部變量RSTI_E#的值減1(一)的行數(shù)。這個(gè)表格具有等于Curr_RED_RoC的列數(shù)的列數(shù)。然后,將局部變量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設(shè)置成等于當(dāng)用等于局部變量Curr_REC_Roc_cell的值的唯一參數(shù)調(diào)用時(shí),函數(shù)STI_col返回的值。然后,將Curr_RSTIDT_cell 2280的“STI_row”字段2279設(shè)置成等于當(dāng)用分別等于局部變量Curr_REC_Roc_cell的值和0(零)的兩個(gè)參數(shù)調(diào)用時(shí),函數(shù)STI_row返回的值。然后,將Curr_RSTIDT_cell 2280的“ST_name”字段2280設(shè)置成等于局部變量Curr_REC_Roc_cell的值。
·在步驟2109中,進(jìn)行測(cè)試以檢驗(yàn)局部變量Curr_RSTIDT_cell 2280所代表的單元格是否是局部變量Curr_RSTIDT_rec 2271所代表的記錄的最后一個(gè)單元格。如果情況是這樣,那么,將控制交給步驟2111;否則,將控制交給步驟2110。
·在步驟2110中,使位于局部變量Curr_RSTIDT_cell 2280所代表的單元格右邊的單元格成為新Curr_RSTIDT_cell 2280。然后,使位于局部變量Curr_RET_RoC_cell所代表的單元格右邊的單元格成為新Curr_RET_RoC_cell。然后,將控制交給步驟2108。
·在步驟2111中,進(jìn)行測(cè)試以檢驗(yàn)局部變量Curr_RET_rec 2211所代表的記錄是否是描述RE的局部變量Curr_RET_rec 2211。如果Curr_RET_rec記錄2211的“Type”字段2217的“META”屬性2218等于值“NO”,就可以確定它。如果情況是這樣,那么,將控制交給步驟2112;否則,將控制交給步驟2114。
·在步驟2112中,將局部變量Element#加1(一)。
·在步驟2113中,進(jìn)行測(cè)試以確定局部變量Element #是否等于局部變量RSTI_E#。如果情況是這樣,那么,將控制交給步驟2114;否則,將控制交給步驟2115。
·在步驟2114中,進(jìn)行測(cè)試以檢驗(yàn)局部變量Curr_RSTIDT_cell 2280所代表的單元格是否是Curr_RSTIDT_rec 2271所代表的記錄的最后一個(gè)單元格。如果情況是這樣,那么,將控制交給步驟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中,對(duì)于屬于Curr_RSTIDT表2270的每個(gè)單元格Curr_RSTIDT_cell 2280,將“container_row”屬性2281設(shè)置成等于位于Curr_RSTIDT表2270內(nèi)與Curr_RSTIDT_cell同一行上的單元格Same_row_cell的“STI_row”屬性2279的最大值。然后,對(duì)于屬于Curr_RSTIDT表2270的每個(gè)單元格Curr_RSTIDT_cell 2280,將“container_col”屬性2277設(shè)置成等于位于Curr_RSTIDT表2270內(nèi)與Curr_RSTIDT_cell同一列上的單元格Same_co1_cell的“STI_col”屬性2278的最大值。
·在步驟2118中,將局部變量RSTI_col設(shè)置成等于屬于Curr_RSTIDT表2270的第1行的單元格的“container_col”屬性2277之和。然后,將局部變量RSTI_row設(shè)置成等于屬于Curr_RSTIDT表2270的第1列的單元格的“container_row”屬性2281之和。
·在步驟2119中,進(jìn)行測(cè)試以確定局部變量RSTI_col與單獨(dú)單元格RSTI_top_left_cell的列索引之和減去1(一)是否嚴(yán)格大于局部變量Max_col。如果情況是這樣,那么,將控制交給步驟2120;否則,將控制交給步驟2121。
·在步驟2120中,將局部變量too_wide設(shè)置成等于值TRUE。
·在步驟2121中,進(jìn)行測(cè)試以確定局部變量RSTI_row與單獨(dú)單元格RSTI_top_left_cell的行索引之和減去1(一)是否嚴(yán)格大于局部變量Max_row。如果情況是這樣,那么,將控制交給步驟2122;否則,將控制交給步驟2123。
·在步驟2122中,將局部變量too_high設(shè)置成等于值TRUE。
·在步驟2123中,進(jìn)行測(cè)試以確定是否存在與單獨(dú)單元格RSTI_top_left_cell出現(xiàn)在相同表格上的現(xiàn)有STI。這個(gè)測(cè)試可以簡(jiǎn)單地通過(guò)分析STIT表750,以便用指向與單獨(dú)單元格RSTI_top_left_cell相同的表格的“Address”字段752識(shí)別任何記錄751來(lái)完成。如果情況是這樣,那么,將控制交給步驟2124;否則,將控制交給步驟2125。
·在步驟2124中,將局部變量STI_present設(shè)置成等于值TRUE。
·在步驟2125中,將局部變量STI_range初始化成RSTI_top_left_cell作為左上單元格、行數(shù)等于局部變量RSTI_row的值、和列數(shù)等于局部變量RSTI_col的值的單元格范圍。
·在步驟2126中,進(jìn)行測(cè)試以檢驗(yàn)是否存在出現(xiàn)在單元格范圍RSTI_range內(nèi)的數(shù)據(jù)。如果情況是這樣,將控制交給步驟2127;否則,將控制交給步驟2128。
·在步驟2127中,將局部變量RSTI_busy設(shè)置成等于值TRUE。
·在步驟2128中,在顯示設(shè)備106上顯示RST實(shí)例化器對(duì)話框2300。在這個(gè)對(duì)話框2300內(nèi),將局部變量RST_name的值填入文本字段2302,將局部變量RSTI_E#的值填入文本字段2311,將局部變量too_wide的值填入文本字段2304,將局部變量too_high的值填入文本字段2305,將局部變量STI_present的值填入文本字段2306,和將局部變量RSTI_busy的值填入文本字段2307。當(dāng)且僅當(dāng)三個(gè)局部變量too_wide、too_high和STI_present取相同值FALSE(假),使能“Create_Instance(創(chuàng)建實(shí)例)”按鈕2310。當(dāng)且僅當(dāng)兩個(gè)局部變量too_wide和too_high取相同值FALSE,使能“Create Instance in a newsheet(在新工作表中創(chuàng)建實(shí)例)”按鈕2309。
·在步驟2129中,該方法等于RST實(shí)例化器對(duì)話框2300上的任何用戶動(dòng)作。這樣的用戶動(dòng)作通常來(lái)自用定位設(shè)備105的點(diǎn)擊,但也可以采取其它類似形式,譬如,鍵盤104上的特定鍵組合(但不限于此),或本文未作進(jìn)一步規(guī)定的任何其它類似手段。
·在步驟2130中,檢測(cè)RST實(shí)例化器對(duì)話框2300上的用戶動(dòng)作。
·如果用戶動(dòng)作是用定位設(shè)備105點(diǎn)擊旋鈕2303的“Up”箭頭上,那么,將控制交給步驟2133。
·如果用戶動(dòng)作是用定位設(shè)備105點(diǎn)擊旋鈕2303的“Down”箭頭上,那么,將控制交給步驟2134。
·如果用戶動(dòng)作是用定位設(shè)備105點(diǎn)擊“Create Instance”按鈕2310,那么,將控制交給步驟2138。
·如果用戶動(dòng)作是用定位設(shè)備105點(diǎn)擊“Create Instance in a newsheet”按鈕2309,那么,將控制交給步驟2136。
·如果用戶動(dòng)作是用定位設(shè)備105點(diǎn)擊“Cancel”按鈕2308或關(guān)閉窗口按鈕2301,那么,將控制交給步驟2131。
·在步驟2131中,從存儲(chǔ)器中釋放單元格范圍Curr_RSTIDT。
·在步驟2132中,在顯示設(shè)備106上關(guān)閉RST實(shí)例化器對(duì)話框2300,然后,將控制交還給最初步驟2101,以便處理任何未來(lái)的RST實(shí)例化器命令。
·在步驟2133中,將局部變量RSTI_E#加1(一)。
·在步驟2134中,將局部變量RSTI_E#減1(一)。
·在步驟2135中,從存儲(chǔ)器中釋放單元格范圍Curr_RSTIDT。那么,將控制交給步驟2105。
·在步驟2136中,創(chuàng)建新表格和將其命名為curr_sheet。
·在步驟2137中,使表格curr_sheet的左上單元格成為新單獨(dú)單元格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的“containe_rrange”屬性2276初始化成單獨(dú)單元格Curr_cell作為左上單元格、行數(shù)等于“con-tainer_row”屬性228l的值、列數(shù)等于“container_col(容器列)”屬性2277的值的單元格范圍。
·在步驟2140中,將局部變量STI_range設(shè)置成等于Curr_RSTIDT_cell2280的“container_range”屬性2276。然后,將局部變量ST_name設(shè)置成等于Curr_RSTIDT_cell 2280的“ST_name”屬性2280。然后,將局部變量ST_element設(shè)置成等于“Name”字段722等于ST_name的STT表720的記錄721的“Min Element #”屬性2225。
·在步驟2141中,調(diào)用CreateSTI命令(作為一個(gè)子例程)。當(dāng)這個(gè)命令已完成和使控制返回到當(dāng)前進(jìn)程時(shí),將控制交給下一步驟2142。
·在步驟2142中,將Curr_RSTIDT_cell 2280的“STIT_rec_ptr”設(shè)置成指向剛剛在前一步驟2141期間創(chuàng)建的STIT記錄751。
·在步驟2143中,進(jìn)行測(cè)試以檢驗(yàn)局部變量Curr_RSTIDT_cell 2280所代表的單元格是否是局部變量Curr_RSTIDT_rec 2271所代表的記錄的最后一個(gè)單元格。如果情況是這樣,那么,將控制交給步驟2143;否則,將控制交給步驟2144。
·在步驟2144中,將單獨(dú)單元格curr_cell向右移動(dòng)等于Curr_RSTIDTcell 2280的“container_col”屬性2277的值的列數(shù)。然后,使位于單獨(dú)單元格Curr_RSTIDT_cell 2280右邊的單元格成為新Curr_RSTIDT_cell 2280。
·在步驟2145中,進(jìn)行測(cè)試以檢驗(yàn)局部變量Curr_RSTIDT_rec 2271所代表的記錄是否是局部變量Curr_RSTIDT 2270所代表的RSTIDT表的最后一個(gè)記錄。如果情況是這樣,那么,將控制交給步驟2147;否則,將控制交給步驟2146。
·在步驟2146中,將單獨(dú)單元格RSTI_top_left_cell向下移動(dòng)等于CurrRSTIDT_cell 2280的“container_row”屬性2281的值的行數(shù)。然后,將單獨(dú)單元格curr_cell設(shè)置成等于單獨(dú)單元格RSTI_top_left_cell。然后,使Curr_RSTIDT 2270中接在Curr_RSTIDT_rec之后的記錄2271成為新CurrRSTIDT_rec 2271。然后,使Curr_RSTIDT_rec 2271的第1單元格成為新單獨(dú)單元格Curr_RSTIDT_cell 2280。
·在步驟2147中,在RSTIT表2260中創(chuàng)建新記錄2261,以便描述剛剛創(chuàng)建的RSTI。將rir單元格范圍2001的地址填入“Address”字段2262。將局部變量RST_name填入“RST”字段2263。將局部變量Element #填入“Element #”字段2264。將局部變量Curr_RSTIDT填入“RSTIDT Ptr”字段2265。將構(gòu)成RSTI頁(yè)眉2002的容器行的行數(shù)填入“Header Size”字段2266。將構(gòu)成RSTI頁(yè)腳2204的容器行的行數(shù)填入“Footer Size”字段2267。然后,掃描RSTT表2220,以便識(shí)別發(fā)現(xiàn)“Name”字段2222等于局部變量RST_name的記錄2221。一旦找到,通過(guò)將“INSTANCE REFERENCE”子字段2229c乘以2(二),更新這個(gè)記錄2221的“Type”字段2227內(nèi)的“REFERENCED”屬性2229。然后,將控制交給步驟2132。
E10.RE編輯器方法用在本發(fā)明優(yōu)選實(shí)施例中的創(chuàng)建或更新RE或元元素的方法總結(jié)在圖20C的流程圖2340中??梢詫⑦@種方法看作RE編輯器命令的處理。
·在步驟2341中,該方法處在它的默認(rèn)狀態(tài)下,等待啟動(dòng)該進(jìn)程的事件。
·在步驟2342中,作為用戶動(dòng)作的結(jié)果,檢測(cè)RE編輯器命令。這個(gè)動(dòng)作可以是,例如·鍵盤104上的特定鍵組合;·定位設(shè)備105在特定按鈕上的點(diǎn)擊;或·在此本文未作進(jìn)一步規(guī)定的任何其它類似手段。
·在步驟2343中,檢索命令的參數(shù)。它對(duì)應(yīng)于必有參數(shù)RE_name,該參數(shù)可以取保留值“NEW”,或與如在RSTMT表2230內(nèi)的記錄2231的“Name”字段2232中找到那樣的字符串名稱相對(duì)應(yīng)的另一個(gè)值。將這個(gè)參數(shù)記錄成局部變量。
·在步驟2344中,初始化一些局部變量將局部變量RE_meta設(shè)置成值“NO”,將局部變量RE_size設(shè)置成值3(三),和將局部變量RE_rank(RE排序)設(shè)置成值1(壹)。
·在步驟2345中,進(jìn)行測(cè)試以確定局部變量RE_name所取的值。如果發(fā)現(xiàn)等于“NEW”,那么,將控制交給步驟2349;否則,將控制交給步驟2346。
·在步驟2346中,查找RET表2210,以定位發(fā)現(xiàn)其“Name”字段2223等于局部變量RE_name所取的值的記錄2211。如果找到這樣的記錄,那么,將控制交給步驟2348;否則,將控制交給步驟2347。
·在步驟2347中,調(diào)用異常管理器,以處理這種“不該發(fā)生”狀況。這樣的操作是實(shí)現(xiàn)相關(guān)的,可以采取不同的形式,譬如,在顯示設(shè)備106上顯示錯(cuò)誤消息彈出窗口。然后,將控制交給步驟2341。
·在步驟2348中,·根據(jù)在步驟2346中找到的記錄2211的“Type”字段2217內(nèi)“META”屬性2218的值,將局部變量RE_meta設(shè)置成值“YES”或“NO”;·將局部變量RE_size設(shè)置成在在步驟2346中找到的記錄2211的“Column#”字段2216中找到的值;和·將在步驟2346中找到的記錄2211的“Description Ptr”字段2214所指的存儲(chǔ)位置復(fù)制到記錄成局部變量RE_buffer(RE緩沖器)的臨時(shí)緩沖區(qū)上。
然后,將控制交給步驟2350。
·在步驟2349中,根據(jù)在本發(fā)明的優(yōu)選實(shí)施例中采取“New XX”形式的名稱字符串,確定新創(chuàng)建RE的新名稱,其中,XX對(duì)應(yīng)于對(duì)于以前定義和記錄在在各自表格EFT 700、EPT 710、STT 720、RET 2210和RSST 2220的各自記錄701、711、721、2211和2221中找到的“Name”字段702、712、722、2212和2222中的所有名稱,保證名稱唯一性的計(jì)數(shù)。只要保證新創(chuàng)建名稱的唯一性,可以改用任何其它類似傳統(tǒng)手段而不偏移本發(fā)明的精神。然后,將新名稱記錄在局部變量RE_name中。然后,在主存儲(chǔ)器102內(nèi)分配存儲(chǔ)空間,以便以后記錄新RE或RME的例示單元格范圍。這個(gè)記錄成局部變量RE_buffer的分配存儲(chǔ)空間是與當(dāng)前打開的電子表格文件相對(duì)應(yīng)的存儲(chǔ)空間的一部分。然后,在RET表2210中創(chuàng)建新記錄2211,和按如下初始化這個(gè)新記錄2211·將“Name”字段2212設(shè)置成局部變量RE_name的值;·將“Last Change Date”字段2213設(shè)置成如中央處理器101所知的系統(tǒng)時(shí)間引用;·將“Description Ptr”字段2214設(shè)置成剛剛分配的存儲(chǔ)位置RE_buffer;·將“Row #”字段2215設(shè)置成值1(因?yàn)樵诒景l(fā)明的優(yōu)選實(shí)施例中,在2D環(huán)境下管理RST;在3D環(huán)境下,這個(gè)字段將攜帶為創(chuàng)建的RE定義的行數(shù));·將“Column#”字段2216設(shè)置成局部變量RE_size的值;和·按如下設(shè)置“Type”字段2217將屬性“META”2218設(shè)置成等于局部變量RE_meta的值,和按如下初始化屬性“REFERENCED”2219·用還沒(méi)有指定給任何其它“OWN REFERENCE”(OR)子字段709a、719a、729a、780a、2219a、2229a、或2240a的質(zhì)數(shù)初始化OR子字段2219a。各種各樣的傳統(tǒng)技術(shù)可以用于識(shí)別質(zhì)數(shù),這里不作進(jìn)一步詳述。
·根據(jù)如下公式初始化“FILIATION REFERENCE”(FR)子字段2219b,其中,根據(jù)記錄在“Description Ptr”字段2214中的結(jié)構(gòu),F(xiàn)集合對(duì)應(yīng)于構(gòu)成新RE或元元素的ST的集合
FR=∏i∈FORi×LCM({FRi})i∈F·用值1(一)初始化“INSTANCE REFERENCE”(IR)子字段2219c。
·用如下公式初始化“REFERENCED OBJECT”(RO)子字段2219d。其中,P集合對(duì)應(yīng)于RST的集合如果LCM({FRi})i∈PMod OR=0,則RO=“YES”;否則,RO=“NO”。
·用如下公式初始化“SELECTED CHILDREN”(SC)子字段2219e。
其中,S集合對(duì)應(yīng)于所選對(duì)象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”屬性2242)如果LCM({FRi})i∈SMod OR=0#OR#RE_name∈S,則SC=“YES”;否則,SC=“NO”。
然后,將控制交給步驟2350。
·在步驟2350中,在顯示設(shè)備106上顯示RE編輯器對(duì)話框2321。
·用局部變量RE_name的值初始化標(biāo)記框2324。
·如果發(fā)現(xiàn)局部變量RE_meta等于“NO”(相應(yīng)地,“YES”),將黑點(diǎn)填入頂部選項(xiàng)按鈕2331(相應(yīng)地,底部選項(xiàng)按鈕2330)。
·將局部變量RE_size的值填入文本框2326。
·如果發(fā)現(xiàn)局部變量RE_size等于當(dāng)前記錄2211的“Column #”字段2216,或如果發(fā)現(xiàn)這個(gè)記錄2211的“Type”字段2217內(nèi)的屬性“REFERENCED”2219擁有等于“NO”的子字段“REFERENCEDOBJECT”2219d(RO),使能按鈕“Save”2333,以便將來(lái)用定位設(shè)備105對(duì)這個(gè)按鈕“Save”2333的任何點(diǎn)擊都被識(shí)別為一個(gè)有效事件。
·否則(未發(fā)現(xiàn)局部變量RE_size(RE大小)等于當(dāng)前記錄2211的“Column#”字段2216,或發(fā)現(xiàn)這同一個(gè)記錄2211的“Type”字段2217內(nèi)的屬性“REFERENCED”2219擁有等于“YES”的子字段“REFERENCED OBJECT”2219d(RO),禁止按鈕“Save”2333,以便將來(lái)用定位設(shè)備105對(duì)這個(gè)按鈕“Save”2333的任何點(diǎn)擊都不被識(shí)別為一個(gè)有效事件。
·用局部變量RE_rank的值初始化文本框2335。
·用屬于RE_buffer和其偏移等于RE_rank的單元格的內(nèi)容初始化列表框2334。在這個(gè)列表框2334中可用的名稱的列表(通過(guò)點(diǎn)擊旋鈕2328)由記錄在STT表720中的ST的名稱構(gòu)成。
·在步驟2351中,該方法等待RE編輯器對(duì)話框2321上的任何用戶動(dòng)作。這樣的用戶動(dòng)作通常來(lái)自用定位設(shè)備105的點(diǎn)擊,但也可以采取其它類似形式,譬如,鍵盤104上的特定鍵組合(但不限于此),或本文未作進(jìn)一步規(guī)定的任何其它類似手段。
·在步驟2352中,檢測(cè)RE編輯器對(duì)話框2321上的用戶動(dòng)作。
·如果用戶動(dòng)作是點(diǎn)擊旋鈕2328,以便選擇ST名稱,那么,將控制交給步驟2353;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Save”2333,那么,將控制交給步驟2354;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Save as”2332,那么,將控制交給步驟2355;·如果用戶動(dòng)作是點(diǎn)擊旋鈕2329,那么,將控制交給步驟2358;·如果用戶動(dòng)作是點(diǎn)擊旋鈕2327,那么,將控制交給步驟2359;·如果用戶動(dòng)作是點(diǎn)擊兩個(gè)選項(xiàng)按鈕2330或2331之一,那么,將控制交給步驟2360;·如果用戶動(dòng)作是點(diǎn)擊按鈕“Done”2323或關(guān)閉窗口按鈕2322,那么,將控制交給步驟2361。
·在步驟2353中,通過(guò)將偏移等于局部變量RE_rank的值的單元格的內(nèi)容設(shè)置成等于列表框2334的內(nèi)容,更新局部變量RE_buffer。然后,將控制交給步驟2350。
·在步驟2354中,通過(guò)刷新“Name”字段2212等于局部變量RE_name的記錄2211,更新SET表2210,和將它保存成電子表格文件的一部分。為了這個(gè)目的,·將“Last Change Date”字段2213設(shè)置成如中央處理器101所知的系統(tǒng)時(shí)間引用;·將“Column #”字段2216設(shè)置成局部變量RE_size的值;和·按如下設(shè)置“Type”字段2217將屬性“META”2218設(shè)置成等于局部變量RE_meta的值。
另外,將例示RE或元元素的當(dāng)前定義的單元格范圍RE_buffer復(fù)制到“Description Ptr”字段2214所指的存儲(chǔ)位置上。然后,將控制交給步驟2350。
·在步驟2355中,對(duì)在文本框2325中找到的值進(jìn)行測(cè)試,以確定它是否對(duì)應(yīng)于有效新名稱。相應(yīng)準(zhǔn)則是實(shí)現(xiàn)相關(guān)的,只要新推薦名稱相對(duì)于記錄在“Name”字段702、712、722、2212和2222中的所有已定義名稱是唯一字符串,可以采取不同形式而不偏離本發(fā)明的精神。如果有效性和唯一性都得到證明,那么,將控制交給步驟2356;否則,將控制交給步驟2357。
·在步驟2356中,在主存儲(chǔ)器102內(nèi)分配存儲(chǔ)空間,以便以后記錄EF或MEF的例示單元格范圍。這個(gè)分配的存儲(chǔ)空間是與當(dāng)前打開的電子表格文件相對(duì)應(yīng)的存儲(chǔ)空間的一部分。然后,在保存成電子表格文件的一部分的RET表2210中創(chuàng)建新記錄2211,和按如下初始化這個(gè)新記錄2211·將“Name”字段2212設(shè)置成在文本框2325中找到和在步驟2355中得到核實(shí)的值;·將“Last Change Date”字段2213設(shè)置成如中央處理器101所知的系統(tǒng)時(shí)間引用;·將“Description Ptr”字段724設(shè)置成剛剛分配的存儲(chǔ)位置;·將“Row#”字段2215設(shè)置成值1(因?yàn)樵诒景l(fā)明的優(yōu)選實(shí)施例中,在2D環(huán)境下管理RST;在3D環(huán)境下,這個(gè)字段將攜帶為創(chuàng)建的RE定義的行數(shù));·將“Column#”字段2216設(shè)置成局部變量RE_size的值;和·按如下設(shè)置“Type”字段2217將屬性“META”2218設(shè)置成等于局部變量RE_meta的值,和按如下初始化屬性“REFERENCED”2219·用還沒(méi)有指定給任何其它“OWN REFERENCE”(OR)子字段709a、719a、729a、780a、2219a、2229a、或2240a的質(zhì)數(shù)初始化OR子字段2219a。各種各樣的傳統(tǒng)技術(shù)可以用于識(shí)別質(zhì)數(shù),這里不作進(jìn)一步詳述。
·根據(jù)如下公式初始化“FILIATION REFERENCE”(FR)子字段2219b,其中,根據(jù)記錄在“Description Ptr”字段2214中的結(jié)構(gòu),F(xiàn)集合對(duì)應(yīng)于構(gòu)成新RE或元元素的ST的集合FR=∏i∈FORi×LCM({FRi})i∈F
·用值1(一)初始化“INSTANCE REFERENCE”(IR)子字段2219c。
·用如下公式初始化“REFERENCED OBJECT”(RO)子字段2219d。其中,P集合對(duì)應(yīng)于RST的集合如果LCM({FRi})i∈PMod OR=0,則RO=“YES”;否則,RO=“NO”。
·用如下公式初始化“SELECTED CHILDREN”(SC)子字段2219e。其中,S集合對(duì)應(yīng)于所選對(duì)象的集合(具有RSTMT表2230中等于值“YES”的“SELECTED”屬性2242)如果LCM({FRi})i∈SMod OR=0#OR#RE_name∈S,則SC=“YES”;否則,SC=“NO”。
然后,將控制交給步驟2350。
·在步驟2357中,發(fā)出警告消息通知,以便通知用戶在點(diǎn)擊“Save as”按鈕2332之前,必須在文本框2325中指定有效唯一的名稱。這通??梢酝ㄟ^(guò)在顯示設(shè)備106上將警告消息顯示在彈出窗口中或顯示在狀態(tài)欄區(qū)域中來(lái)完成,但也可以改用任何其它類似手段而不偏離本發(fā)明的精神。一旦用戶通過(guò)傳統(tǒng)手段,譬如,用定位設(shè)備105點(diǎn)擊出現(xiàn)在警告消息彈出窗口內(nèi)的“OK”按鈕,或不偏離本發(fā)明精神的任何其它類似手段確認(rèn)了這個(gè)通知消息,將控制交給步驟2350。
·在步驟2358中,如果用戶用定位設(shè)備106點(diǎn)擊了旋鈕2329的向下這一側(cè),只要局部變量RE_rank嚴(yán)格保持正的,將它減1(一),和如果用戶用定位設(shè)備106點(diǎn)擊了旋鈕2329的向上這一側(cè),只要局部變量RE_rank小于等于局部變量RE_size的值,將它加1(一)。然后,將控制交給步驟2350。
·在步驟2359中,根據(jù)定位設(shè)備105在旋鈕2359上指定的方向(向上或向下),和只要其值保持正的,和小于等于在本發(fā)明的優(yōu)選實(shí)施例中設(shè)置成等于254的上限,將局部變量RE_size加1(一)或減1(一)。然后,將控制交給步驟2350。
·在步驟2360中,更新局部變量RE_meta,以便如果已經(jīng)點(diǎn)擊了底部選項(xiàng)按鈕2330(相應(yīng)地,頂部選項(xiàng)按鈕2331),使它的值變成“YES”(相應(yīng)地,“NO”)。然后,將控制交給步驟2350。
·在步驟2361中,關(guān)閉RE編輯器對(duì)話框2321,以便它從顯示設(shè)備106上消失。最后,將控制交還給最初步驟2341,以便處理任何未來(lái)的ST編輯器命令。
E11.STI列/行計(jì)數(shù)器方法用在本發(fā)明優(yōu)選實(shí)施例中的計(jì)數(shù)STI內(nèi)的列數(shù)或行數(shù)的方法總結(jié)在圖21A和21B的流程圖2400和2420中??梢詫⑦@些方法看作STI_Row和STI_col函數(shù)的處理。
·在步驟2401中,第一方法處在它的默認(rèn)狀態(tài)下,等待對(duì)STI_Row函數(shù)的調(diào)用。
·在步驟2402中,作為用戶動(dòng)作的結(jié)果,檢測(cè)STI_Row函數(shù)調(diào)用。該函數(shù)用名為ST_Name和STI_Element的兩個(gè)參數(shù)調(diào)用。
·在步驟2403中,將STT表720的第1記錄721設(shè)置成Curr_Record。
·在步驟2404中,將記錄Curr_Record 721的字段Name 722、Min Element#、和Max Element#分別設(shè)置成局部變量Curr_Name、Curr_Min和Curr_Max。
·在步驟2405中,進(jìn)行測(cè)試以檢測(cè)局部變量Curr_Name是否等于函數(shù)參數(shù)ST_Name。如果情況是這樣,那么,將控制交給步驟2409;否則,將控制交給步驟2406。
·在步驟2406中,進(jìn)行測(cè)試以檢測(cè)記錄Curr_Record 721是否是STT表720的最后一個(gè)記錄。如果情況是這樣,那么,將控制交給步驟2408;否則,將控制交給步驟2407。
·在步驟2407中,使STT表720中接在Curr_Record之后的記錄成為新記錄Curr_Record 721。然后,將控制交給步驟2404。
·在步驟2408中,將局部變量STI_Row設(shè)置成等于0(零)。然后,將控制交給步驟2412。
·在步驟2409中,將記錄Curr_Record 721的description Ptr 724所指的單元格范圍設(shè)置成STDT_address(STDT地址)。
·在步驟2410中,將局部變量Element_Nbr設(shè)置成等于以局部變量CurrMax為上界、以局部變量Curr_Min為下界的輸入?yún)?shù)STI_Element。
·在步驟2411中,將局部變量STI_row設(shè)置成等于單元格范圍STDT_adress的行數(shù)加局部變量STI_Element的值減1(一)。
·在步驟2412中,隨著控制返回到函數(shù)調(diào)用程序完成STI_row函數(shù)的執(zhí)行。
·在步驟2421中,第二方法處在它的默認(rèn)狀態(tài)下,等待對(duì)STI_Col函數(shù)的調(diào)用。
·在步驟2422中,作為用戶動(dòng)作的結(jié)果,檢測(cè)STI_Col函數(shù)調(diào)用。該函數(shù)用名為ST_Name的一個(gè)參數(shù)調(diào)用。
·在步驟2423中,將STT表720的第1記錄721設(shè)置成Curr_Record。
·在步驟2424中,將記錄Curr_Record 721的字段Name 722設(shè)置成局部變量Curr_Name。
·在步驟2425中,進(jìn)行測(cè)試以檢測(cè)局部變量Curr_Name是否等于函數(shù)參數(shù)ST_Name。如果情況是這樣,那么,將控制交給步驟2429;否則,將控制交給步驟2426。
·在步驟2426中,進(jìn)行測(cè)試以檢測(cè)記錄Curr_Record 721是否是STT表720的最后一個(gè)記錄。如果情況是這樣,那么,將控制交給步驟2428;否則,將控制交給步驟2427。
·在步驟2427中,使STT表720中接在Curr_Record之后的記錄成為新記錄Curr_Record 721。然后,將控制交給步驟2424。
·在步驟2428中,將局部變量STI_Col設(shè)置成等于0(零)。然后,將控制交給步驟2431。
·在步驟2429中,將記錄Curr_Record 721的description Ptr 724所指的單元格范圍設(shè)置成STDT_address。
·在步驟2430中,將局部變量STI_Col設(shè)置成等于單元格范圍STDT_adress的列數(shù)。
·在步驟2431中,隨著控制返回到函數(shù)調(diào)用程序,完成STI_col函數(shù)的執(zhí)行。
可替代實(shí)施例根據(jù)本發(fā)明的方法和系統(tǒng)可以有利地應(yīng)用在將信息元素組織成垂直構(gòu)造的兩維表的那些環(huán)境中。根據(jù)本發(fā)明的方法和系統(tǒng)可以有利地應(yīng)用在將信息元素組織成多于兩維的多維表的那些環(huán)境中。雖然通過(guò)參照優(yōu)選實(shí)施例具體顯示和描述了本發(fā)明,但本領(lǐng)域的普通技術(shù)人員應(yīng)該明白,可以在形式和詳細(xì)上作出各種各樣的改變而不偏離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種包括多個(gè)數(shù)據(jù)的多維電子數(shù)據(jù)表中的方法,用于管理遞歸可縮放模板實(shí)例中的刪除操作;遞歸可縮放模板實(shí)例包括沿著第一數(shù)據(jù)表維排序且對(duì)齊、并且根據(jù)遞歸可縮放模板而結(jié)構(gòu)化的可變數(shù)目的連續(xù)遞歸元素實(shí)例;所述遞歸可縮放模板包括遞歸元素,其包含一個(gè)或多個(gè)可縮放模板;每個(gè)遞歸元素實(shí)例具有沿著所述第一數(shù)據(jù)表維的可變大小,以及沿著第二數(shù)據(jù)表維的相同大?。贿f歸元素實(shí)例包括一個(gè)或多個(gè)可縮放模板實(shí)例;每個(gè)遞歸元素實(shí)例的每個(gè)可縮放模板實(shí)例沿著所述第一數(shù)據(jù)表維而對(duì)齊;每個(gè)遞歸元素實(shí)例內(nèi)的每個(gè)可縮放模板實(shí)例沿著第二數(shù)據(jù)表維而對(duì)齊;可縮放模板實(shí)例包括根據(jù)可縮放模板而結(jié)構(gòu)化的可變數(shù)目的元素;元素被定義為數(shù)據(jù)范圍;數(shù)據(jù)范圍包括一個(gè)或多個(gè)數(shù)據(jù);所述方法包括以下步驟·檢測(cè)用于刪除在遞歸元素實(shí)例的可縮放模板實(shí)例中選擇的一個(gè)或多個(gè)連續(xù)元素的刪除命令;·識(shí)別·在其中刪除所述一個(gè)或多個(gè)選定元素的可縮放模板實(shí)例;·可縮放模板實(shí)例中要?jiǎng)h除的一個(gè)或多個(gè)選定元素;·與所述可縮放模板實(shí)例相關(guān)聯(lián)的可縮放模板;·識(shí)別·遞歸可縮放模板實(shí)例和包括所識(shí)別的可縮放模板實(shí)例的遞歸元素實(shí)例;·在所識(shí)別的可縮放模板實(shí)例中刪除該一個(gè)或多個(gè)選定元素;所識(shí)別的可縮放模板實(shí)例的所有剩余元素保持連續(xù);·根據(jù)所述遞歸元素實(shí)例中的最大可縮放模板實(shí)例的大小,沿著所述第一數(shù)據(jù)表維調(diào)整所識(shí)別的遞歸元素實(shí)例的大?。凰R(shí)別的遞歸可縮放模板實(shí)例的所有剩余遞歸元素實(shí)例保持連續(xù)。
2.根據(jù)前一權(quán)利要求所述的方法,其中所述遞歸可縮放模板實(shí)例還包括頁(yè)眉部分和/或頁(yè)腳部分;遞歸可縮放模板的頁(yè)眉部分包括預(yù)定義數(shù)目的遞歸元元素;可縮放模板的頁(yè)腳部分包括預(yù)定義數(shù)目的遞歸元元素;遞歸元元素包括一個(gè)或多個(gè)可縮放模板;所述方法還包括以下步驟·檢測(cè)用于刪除在遞歸元元素實(shí)例的可縮放模板實(shí)例中選擇的一個(gè)或多個(gè)連續(xù)元素的刪除命令;·識(shí)別·在其中刪除所述一個(gè)或多個(gè)選定元素的可縮放模板實(shí)例;·可縮放模板實(shí)例中的所述一個(gè)或多個(gè)選定元素;·與所述可縮放模板實(shí)例相關(guān)聯(lián)的可縮放模板;·識(shí)別·遞歸可縮放模板實(shí)例和包括所識(shí)別的可縮放模板實(shí)例的遞歸元元素實(shí)例;·在所識(shí)別的可縮放模板實(shí)例中刪除所述一個(gè)或多個(gè)選定元素;所識(shí)別的可縮放模板實(shí)例的所有剩余元素保持連續(xù);·根據(jù)所述遞歸元元素實(shí)例中的最大可縮放模板實(shí)例的大小,沿著所述第一數(shù)據(jù)表維調(diào)整所識(shí)別的遞歸元元素實(shí)例的大??;所識(shí)別的遞歸可縮放模板實(shí)例的所有剩余遞歸元素實(shí)例和遞歸元元素實(shí)例保持連續(xù)。
3.根據(jù)前述權(quán)利要求中的任一項(xiàng)所述的方法,還包括以下步驟·檢測(cè)用于在遞歸可縮放模板實(shí)例中刪除一個(gè)或多個(gè)選定的連續(xù)遞歸元素實(shí)例的刪除命令;·識(shí)別·在其中刪除所述一個(gè)或多個(gè)遞歸元素實(shí)例的遞歸可縮放模板實(shí)例;·在遞歸可縮放模板實(shí)例中要?jiǎng)h除的一個(gè)或多個(gè)遞歸元素實(shí)例;·與所述遞歸可縮放模板實(shí)例相關(guān)聯(lián)的遞歸可縮放模板;·在遞歸可縮放模板實(shí)例中刪除所述一個(gè)或多個(gè)選定的連續(xù)遞歸元素實(shí)例;所識(shí)別的遞歸可縮放模板實(shí)例的所有剩余遞歸元素實(shí)例保持連續(xù)。
4.根據(jù)前述權(quán)利要求中的任一項(xiàng)所述的方法,還包括以下步驟·防止在遞歸可縮放模板實(shí)例中刪除一個(gè)或多個(gè)遞歸元元素實(shí)例。
5.根據(jù)前述權(quán)利要求中的任一項(xiàng)所述的方法,還包括以下步驟·檢測(cè)用于刪除遞歸可縮放模板實(shí)例的刪除命令;·識(shí)別與所述遞歸可縮放模板實(shí)例相關(guān)聯(lián)的遞歸可縮放模板和所述遞歸可縮放模板實(shí)例;·刪除所述遞歸可縮放模板實(shí)例。
6.根據(jù)前述權(quán)利要求中的任一項(xiàng)所述的方法,其中在遞歸可縮放模板實(shí)例中刪除可縮放模板實(shí)例中的一個(gè)或多個(gè)連續(xù)元素、或者刪除一個(gè)或多個(gè)連續(xù)遞歸元素實(shí)例的所述步驟還包括以下步驟·確定該刪除是否破壞數(shù)據(jù)表中的任何其它現(xiàn)有遞歸可縮放模板實(shí)例,當(dāng)遞歸元素實(shí)例不再根據(jù)相關(guān)遞歸可縮放模板而結(jié)構(gòu)化時(shí),該遞歸可縮放模板實(shí)例被破壞。
7.根據(jù)前一權(quán)利要求所述的方法,其中確定該刪除是否破壞數(shù)據(jù)表中的任何其它現(xiàn)有遞歸可縮放模板實(shí)例的所述步驟還包括以下步驟·如果該刪除破壞被定義為關(guān)鍵實(shí)例的任何遞歸可縮放模板實(shí)例,則取消刪除。
8.根據(jù)前一權(quán)利要求所述的方法,針對(duì)每個(gè)遞歸可縮放模板實(shí)例,包括以下步驟·將所述一個(gè)或多個(gè)遞歸可縮放模板實(shí)例的每一個(gè)定義為關(guān)鍵實(shí)例或非關(guān)鍵實(shí)例。
9.根據(jù)前述權(quán)利要求中的任一項(xiàng)所述的方法,其中在遞歸可縮放模板實(shí)例中刪除可縮放模板實(shí)例中的一個(gè)或多個(gè)連續(xù)元素、或者刪除一個(gè)或多個(gè)連續(xù)遞歸元素實(shí)例的所述步驟還包括以下步驟·確定該刪除是否破壞數(shù)據(jù)表中的任何其它現(xiàn)有可縮放模板實(shí)例,當(dāng)元素不再根據(jù)相關(guān)可縮放模板而結(jié)構(gòu)化時(shí),可縮放模板實(shí)例被破壞。
10.根據(jù)前一權(quán)利要求所述的方法,其中確定該刪除是否破壞數(shù)據(jù)表中的任何其它現(xiàn)有可縮放模板實(shí)例的所述步驟還包括以下步驟·如果該刪除破壞被定義為關(guān)鍵實(shí)例的任何可縮放模板實(shí)例,則取消刪除。
11.根據(jù)前述權(quán)利要求中的任一項(xiàng)所述的方法,其中所述多維電子數(shù)據(jù)表是包括沿著每維由單元格地址標(biāo)識(shí)的多個(gè)單元格的電子表格。
12.根據(jù)前一權(quán)利要求所述的方法,其中可縮放模板實(shí)例包括可變數(shù)目的連續(xù)元素,所述連續(xù)元素具有相同大小,沿著給定電子表格維而排序且對(duì)齊,并且根據(jù)可縮放模板而結(jié)構(gòu)化;元素被定義單元格范圍;所述可縮放模板包括元素格式和/或元素概要;元素格式為每個(gè)元素內(nèi)的每個(gè)單元格定義一個(gè)或多個(gè)格式屬性;元素概要為每個(gè)元素內(nèi)的每個(gè)單元格定義單元格內(nèi)容和單元格目的地;所述單元格目的地指定單元格是用于接收輸入的輸入單元格還是用于產(chǎn)生結(jié)果的輸出單元格。
13.根據(jù)前一權(quán)利要求所述的方法,其中在所識(shí)別的可縮放模板實(shí)例中刪除一個(gè)或多個(gè)選定元素;所識(shí)別的可縮放模板實(shí)例的所有剩余元素保持連續(xù)的步驟還包括以下步驟·根據(jù)在可縮放模板中定義的元素概要,結(jié)構(gòu)化可縮放模板實(shí)例的每個(gè)剩余元素的每個(gè)輸出單元格;·將可縮放模板實(shí)例內(nèi)的每個(gè)剩余元素的每個(gè)輸入單元格的內(nèi)容保持不變。
14.一種系統(tǒng),包括被適配成執(zhí)行根據(jù)前述權(quán)利要求中的任一項(xiàng)所述的方法的各步驟的裝置。
15.一種計(jì)算機(jī)程序,包括用于在執(zhí)行所述計(jì)算機(jī)程序時(shí)執(zhí)行根據(jù)權(quán)利要求1至13中的任一項(xiàng)所述的方法的各步驟的指令。
全文摘要
本發(fā)明涉及一種包括多個(gè)數(shù)據(jù)的多維電子數(shù)據(jù)表中的方法、系統(tǒng)和程序,其用于管理遞歸可縮放模板實(shí)例中的刪除操作;遞歸可縮放模板實(shí)例包括沿著第一數(shù)據(jù)表維排序且對(duì)齊、并且根據(jù)遞歸可縮放模板而結(jié)構(gòu)化的可變數(shù)目的連續(xù)遞歸元素實(shí)例;所述遞歸可縮放模板包括遞歸元素,其包含一個(gè)或多個(gè)可縮放模板;每個(gè)遞歸元素實(shí)例具有沿著所述第一數(shù)據(jù)表維的可變大小,以及沿著第二數(shù)據(jù)表維的相同大小;遞歸元素實(shí)例包括一個(gè)或多個(gè)可縮放模板實(shí)例;每個(gè)遞歸元素實(shí)例的每個(gè)可縮放模板實(shí)例沿著所述第一數(shù)據(jù)表維而對(duì)齊;每個(gè)遞歸元素實(shí)例內(nèi)的每個(gè)可縮放模板實(shí)例沿著第二數(shù)據(jù)表維而對(duì)齊;可縮放模板實(shí)例包括根據(jù)可縮放模板而結(jié)構(gòu)化的可變數(shù)目的元素;元素被定義為數(shù)據(jù)范圍;數(shù)據(jù)范圍包括一個(gè)或多個(gè)數(shù)據(jù)。
文檔編號(hào)G06F17/24GK1774711SQ200480010394
公開日2006年5月17日 申請(qǐng)日期2004年2月27日 優(yōu)先權(quán)日2003年4月18日
發(fā)明者讓-雅克·奧里格莉亞, 弗雷德里克·鮑科特 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1