專(zhuān)利名稱(chēng):交互式地將數(shù)據(jù)鏈接到圖中的形狀的系統(tǒng)和方法
技術(shù)領(lǐng)域:
所述技術(shù)一般涉及計(jì)算機(jī)圖形可視化程序,尤其涉及將數(shù)據(jù)鏈接到圖中的形狀。
背景技術(shù):
常規(guī)的繪圖程序通過(guò)提供可以選擇和放置在圖中的各種形狀或?qū)ο?,使其用?hù)能夠創(chuàng)建和編輯圖。用戶(hù)可以使用定點(diǎn)設(shè)備,如鼠標(biāo),來(lái)根據(jù)需要確定圖中如正方形、矩形、圓、三角形、判別塊等形狀和對(duì)象的方向與尺寸。
這些常規(guī)的繪圖程序中的一部分提供允許用戶(hù)將數(shù)據(jù)與圖中的形狀和對(duì)象相關(guān)聯(lián)的特征。例如,這些繪圖程序可以提供菜單或向?qū)?,它們輔助或指導(dǎo)用戶(hù)將外部數(shù)據(jù)與圖中的對(duì)象相關(guān)聯(lián),從而增加這些圖的價(jià)值。使用菜單或向?qū)⑼獠繑?shù)據(jù)導(dǎo)入到圖中對(duì)象的一個(gè)主要缺點(diǎn)是,菜單和向?qū)г谑褂蒙喜恢庇^(guān),并且需要用戶(hù)對(duì)數(shù)據(jù)的結(jié)構(gòu)和圖的細(xì)節(jié)兩者有較高的熟悉度。造成這一點(diǎn)的一個(gè)因素是菜單和向?qū)А半[藏”在幾層混亂的菜單之下。
另一個(gè)因素是菜單和向?qū)恰澳B(tài)”用戶(hù)界面,不允許用戶(hù)看到他們所做決策的效果。這是因?yàn)樵谟脩?hù)可以繼續(xù)操作繪圖程序之前,必須先關(guān)閉模態(tài)窗口,即,用戶(hù)必須先完成數(shù)據(jù)與圖中對(duì)象的關(guān)聯(lián)。換言之,在用戶(hù)完成了數(shù)據(jù)與圖中對(duì)象的關(guān)聯(lián)之前,用戶(hù)看不到數(shù)據(jù)關(guān)聯(lián)操作的結(jié)果。又一個(gè)因素是菜單和向?qū)Р⒉惶峁┰谔幚韴D時(shí)可以容易使用的數(shù)據(jù)視圖。
因此,允許用戶(hù)通過(guò)可發(fā)現(xiàn)的直觀(guān)界面將數(shù)據(jù)鏈接到圖并快速識(shí)別鏈接到圖的數(shù)據(jù)的值的技術(shù)將具有顯著的實(shí)用性。
圖1為框圖,示出了于其上執(zhí)行該工具程序的至少某些計(jì)算機(jī)系統(tǒng)中通常包括的選擇的組件。
圖2為高級(jí)框圖,示出了工具程序的組件操作的環(huán)境。
圖3為顯示畫(huà)面,示出了示例非模態(tài)外部數(shù)據(jù)窗口。
圖4根據(jù)某些實(shí)施例,示出了工具程序用于將來(lái)自外部數(shù)據(jù)源的數(shù)據(jù)導(dǎo)入到非模態(tài)外部數(shù)據(jù)窗口的方法的流程圖。
圖5根據(jù)某些實(shí)施例,示出了工具程序用于通過(guò)非模態(tài)外部數(shù)據(jù)窗口中的行在圖中創(chuàng)建新形狀的方法的流程圖。
圖6根據(jù)某些實(shí)施例,示出了工具程序用于手動(dòng)地將非模態(tài)外部數(shù)據(jù)窗口中的行鏈接到圖中的現(xiàn)有形狀的方法的流程圖。
圖7根據(jù)某些實(shí)施例,示出了工具程序用于執(zhí)行鏈接操作的方法的流程圖。
圖8根據(jù)某些實(shí)施例,示出了工具程序用于刷新鏈接的方法的流程圖。
具體實(shí)施例方式
在描述本發(fā)明的細(xì)節(jié)之前,先描述在此使用的某些術(shù)語(yǔ)。
術(shù)語(yǔ)“連接”一般地指創(chuàng)建數(shù)據(jù)源與圖之間的關(guān)系的過(guò)程。
術(shù)語(yǔ)“鏈接”一般地指數(shù)據(jù)源中的行與圖中的形狀之間的關(guān)系。例如,將行鏈接到形狀使得自定義屬性由來(lái)自該行的值填充。
術(shù)語(yǔ)“映射”一般地指將列分配給屬性的過(guò)程。例如,當(dāng)行被鏈接(如,關(guān)聯(lián))到形狀時(shí),該形狀的每個(gè)屬性均由來(lái)自映射到它的列的值填充。
術(shù)語(yǔ)“自定義屬性名稱(chēng)”一般地指內(nèi)部用于唯一標(biāo)識(shí)形狀中的自定義屬性的字符串。
術(shù)語(yǔ)“刷新”一般地指更新數(shù)據(jù)源的過(guò)程。
外部數(shù)據(jù)鏈接軟件工具程序(“工具程序”)使用戶(hù)能夠使用外部數(shù)據(jù)源填充圖中的形狀或圖對(duì)象(在下文中稱(chēng)為形狀)的自定義屬性。在各實(shí)施例中,該工具程序被實(shí)現(xiàn)為圖形可視化程序的組件,并提供允許用戶(hù)通過(guò)和圖一起顯示的外部數(shù)據(jù)的表式視圖對(duì)他們的圖執(zhí)行各種動(dòng)作的非模態(tài)界面。用戶(hù)可以使用非模態(tài)界面來(lái)導(dǎo)入和顯示來(lái)自外部數(shù)據(jù)源的數(shù)據(jù),并將來(lái)自非模態(tài)界面的行鏈接到圖中的現(xiàn)有形狀或直接把行拖曳到繪圖表面上,以在圖中放置額外的已鏈接形狀。
在一個(gè)實(shí)施例中,圖形可視化程序提供數(shù)據(jù)選擇器向?qū)?,它使得用?hù)能夠指定外部數(shù)據(jù)源以及要由該工具程序?qū)氩⒃诜悄B(tài)用戶(hù)界面中作為二維表格顯示的外部數(shù)據(jù)源中的多條數(shù)據(jù)。一旦外部數(shù)據(jù)被顯示在非模態(tài)界面中,該工具程序就能提供兩種主要方法來(lái)創(chuàng)建行和圖中形狀之間的鏈接(1)通過(guò)將來(lái)自非模態(tài)界面的行拖曳到繪圖表面的空白部分之上來(lái)創(chuàng)建新形狀;及(2)通過(guò)將來(lái)自非模態(tài)界面的行拖曳到圖中的現(xiàn)有形狀之上來(lái)進(jìn)行手動(dòng)鏈接。
當(dāng)用戶(hù)將對(duì)來(lái)自非模態(tài)界面的行的選擇拖曳到繪圖表面上時(shí),該工具程序?qū)γ恳粋€(gè)行創(chuàng)建形狀。該工具程序根據(jù)圖形可視化程序的形狀窗口中當(dāng)前選擇的形狀母版來(lái)確定用于表示行的形狀?!澳赴妗笔悄0迳系男螤睿脩?hù)可重復(fù)使用模板來(lái)創(chuàng)建圖。例如,當(dāng)用戶(hù)將來(lái)自模板的形狀拖曳到圖上時(shí),該形狀就成為該母版的實(shí)例。如果沒(méi)有選擇形狀母版,則該工具程序使用預(yù)定的母版,如矩形母版。如果選擇了多個(gè)母版,則該工具程序?qū)γ總€(gè)被拖曳的行都在繪圖表面上放置每個(gè)母版中的一個(gè)。然后該工具程序?qū)⑿滦螤铈溄拥竭x擇的行。
作為例子,假設(shè)當(dāng)前選擇了兩個(gè)形狀母版(如,ShapeA和ShapeB),如果用戶(hù)將來(lái)自非模態(tài)界面的單個(gè)行(如,Row1)拖曳到繪圖表面上,則該工具程序在繪圖表面上放置ShapeA的一個(gè)實(shí)例和ShapeB的一個(gè)實(shí)例,并將兩個(gè)形狀鏈接到Row1。如果用戶(hù)將來(lái)自非模態(tài)界面的多個(gè)行(如,Row1和Row2)拖曳到繪圖表面上,則該工具程序在繪圖表面上放置ShapeA的兩個(gè)實(shí)例和ShapeB的兩個(gè)實(shí)例。然后該工具程序?qū)⒁粋€(gè)ShapeA鏈接到Row1,并將另一個(gè)ShapeA鏈接到Row2,以及將一個(gè)ShapeB鏈接到Row1,并將另一個(gè)ShapeB鏈接到Row2。
當(dāng)用戶(hù)將對(duì)來(lái)自非模態(tài)界面的行的選擇拖曳到圖中的現(xiàn)有形狀上時(shí),該工具程序?qū)⒃撔螤铈溄拥竭x擇的行。在某些實(shí)施例中,該工具程序使用戶(hù)能夠選擇圖中的多個(gè)形狀或形狀的子形狀,然后將一行或多行拖曳到繪圖表面上。如果選擇了多個(gè)形狀且用戶(hù)將對(duì)多行的選擇拖曳到選擇中的一個(gè)形狀上,則該工具程序?qū)⑼弦返男兄械淖钌厦嬉恍墟溄拥竭x擇中的第一個(gè)形狀,將拖曳的行中的下一個(gè)最上面的行鏈接到選擇中的下一個(gè)形狀,并以此類(lèi)推。如果沒(méi)有下一個(gè)最上面的行,則該工具程序在行中“循環(huán)”,并將拖曳的行中的最上面一行鏈接到選擇的下一個(gè)形狀。
在其他實(shí)施例中,該工具程序提供包含非模態(tài)界面中每個(gè)顯示的行旁邊的鏈接圖標(biāo)的按鈕,可以用該按鈕將一行或多行鏈接到圖中的現(xiàn)有形狀。例如,當(dāng)用戶(hù)使用定點(diǎn)設(shè)備(如鼠標(biāo)),并點(diǎn)擊包含鏈接圖標(biāo)的按鈕時(shí),該工具程序選擇該行并將光標(biāo)改變?yōu)椤版溄庸ぞ摺惫鈽?biāo)。然后,當(dāng)用戶(hù)用鏈接工具點(diǎn)擊或選擇圖中的形狀時(shí),該工具程序?qū)⒃撔螤铈溄拥竭x擇的行。
不論使用的鏈接方法是什么,該工具程序在一行被鏈接到圖中的一個(gè)形狀時(shí)執(zhí)行下面的操作●如果在該形狀和同一數(shù)據(jù)源中的另一行之間已經(jīng)存在鏈接,則該工具程序向用戶(hù)提供維持或移除該鏈接的選項(xiàng)。在某些實(shí)施例中,該工具程序通過(guò)在每個(gè)自定義屬性旁邊提供該鏈接已斷裂或不再存在的指示來(lái)移除該鏈接。
●添加和填充自定義屬性。
●覆蓋現(xiàn)有的自定義屬性值,即使它們是用戶(hù)輸入的或由另一數(shù)據(jù)源的行填充的。
該工具程序使用列名來(lái)確定哪些值將填充哪些自定義屬性。如果存在具有和列名相同的標(biāo)簽(即,名稱(chēng))的自定義屬性,則該工具程序用來(lái)自該列的值填充該自定義屬性。如果存在具有和該列名相同的標(biāo)簽的多個(gè)自定義屬性,則該工具程序用來(lái)自該列的值填充具有與該列名相同的標(biāo)簽的所有自定義屬性。如果沒(méi)有具有匹配列的標(biāo)簽的自定義屬性,則該工具程序創(chuàng)建新的自定義屬性,并用來(lái)自該列的值填充該新的自定義屬性。
一個(gè)技術(shù)上的優(yōu)點(diǎn)是該工具程序使用戶(hù)能夠直觀(guān)地將外部數(shù)據(jù)與圖中的形狀相關(guān)聯(lián),以創(chuàng)建可以分析和共享的信息高度豐富的圖像。該工具程序還提供可用于在(如果)外部數(shù)據(jù)改變時(shí)更新圖的刷新或更新特征。這極大增加了圖的價(jià)值,因?yàn)樗辉偈庆o態(tài)的圖像,而是不“失效”的活文檔。
在某些實(shí)施例中,該工具程序向用戶(hù)提供改變非模態(tài)界面中的列名的能力。如果用戶(hù)改變列名,則新的經(jīng)變換的名稱(chēng)會(huì)在自定義屬性的標(biāo)簽中得到反映,該標(biāo)簽是在數(shù)據(jù)源中的行被鏈接到形狀時(shí),或當(dāng)鏈接被刷新時(shí)創(chuàng)建的。換言之,自定義屬性的名稱(chēng)是新的經(jīng)變換的名稱(chēng)。改變非模態(tài)界面中的列名并不影響實(shí)際數(shù)據(jù)源中的列名。此特征允許用戶(hù)使用比實(shí)際數(shù)據(jù)源中使用的名稱(chēng)描述性更強(qiáng)、更令人喜歡和/或更熟悉的列名。
用戶(hù)可以覆蓋或改變作為鏈接的結(jié)果創(chuàng)建的自定義屬性的值。例如,圖形可視化程序可以提供使用戶(hù)能夠訪(fǎng)問(wèn)和改變與形狀關(guān)聯(lián)的自定義屬性的值的特征。在某些實(shí)施例中,該工具程序并不在非模態(tài)界面中反映對(duì)自定義屬性值的改變。當(dāng)刷新時(shí),該工具程序提供覆蓋或保留對(duì)值做出的任何手動(dòng)改變的選項(xiàng)。例如,如果用戶(hù)選擇保留手動(dòng)做出的改變,則不用非模態(tài)界面中的值覆蓋或替換手動(dòng)輸入的自定義屬性值。或者,如果用戶(hù)選擇覆蓋手動(dòng)做出的改變,則用來(lái)自非模態(tài)界面的其對(duì)應(yīng)的值更新自定義屬性,從而導(dǎo)致手動(dòng)做出的改變丟失。
在某些實(shí)施例中,該工具程序向用戶(hù)提供將單個(gè)形狀到來(lái)自多個(gè)數(shù)據(jù)源的多個(gè)記錄(即,每個(gè)都來(lái)自多個(gè)不同數(shù)據(jù)源的一個(gè)記錄)的能力。結(jié)果,自定義屬性可以映射到來(lái)自多個(gè)數(shù)據(jù)源的列。在此實(shí)例中,該工具程序采用順序或優(yōu)先級(jí),以使重復(fù)的列(即,具有相同標(biāo)簽的列)在自定義屬性中不重復(fù),且來(lái)自最后或最近鏈接的記錄的值具有較高優(yōu)先級(jí)。例如,假設(shè)兩個(gè)不同數(shù)據(jù)源中的多個(gè)列具有相同的列名,且每個(gè)都來(lái)自?xún)蓚€(gè)數(shù)據(jù)源的一行鏈接到形狀,則該工具程序只創(chuàng)建一個(gè)具有和該列名相同標(biāo)簽的自定義屬性。此外,該自定義屬性的值是來(lái)自最后鏈接或刷新的數(shù)據(jù)源的列的值。
在某些實(shí)施例中,該工具程序允許用戶(hù)激活和停用來(lái)自非模態(tài)界面的列,且該工具程序只對(duì)激活的列創(chuàng)建自定義屬性。例如,該工具程序可以提供這樣的對(duì)話(huà)框,其中包含數(shù)據(jù)源中所有列的當(dāng)前名稱(chēng)及在每個(gè)列名稱(chēng)旁邊的復(fù)選框的列表。選中列名旁邊的復(fù)選框使該列出現(xiàn)在非模態(tài)界面中(即,使該列被激活),并在行被鏈接到形狀時(shí)作為自定義屬性添加。清除復(fù)選框使該列不出現(xiàn)在非模態(tài)界面中(即,使該列被停用),并防止在行被鏈接到形狀時(shí)用來(lái)自此列的值填充自定義屬性。換言之,該工具程序?qū)νS玫牧胁粍?chuàng)建和/或鏈接自定義屬性。
參考附圖1-8,能夠最好地理解該工具程序的各實(shí)施例及其優(yōu)點(diǎn)。附圖中的元素不必要按比例縮放,相反,所強(qiáng)調(diào)的是清楚地展示本發(fā)明的原理。貫穿附圖,相同編號(hào)用于各附圖中相同和對(duì)應(yīng)的部分。
圖1為示出于其上執(zhí)行該工具程序的至少某些計(jì)算機(jī)系統(tǒng)中通常包括的選擇的組件的框圖。計(jì)算機(jī)系統(tǒng)100可以包括用于執(zhí)行計(jì)算機(jī)程序的一個(gè)或多個(gè)中央處理單元(CPU)102;用于在使用程序和數(shù)據(jù)(包括數(shù)據(jù)結(jié)構(gòu))時(shí)存儲(chǔ)它們的計(jì)算機(jī)存儲(chǔ)器104;用于持久地存儲(chǔ)程序和數(shù)據(jù)的持久存儲(chǔ)設(shè)備106,如硬盤(pán);用于讀取存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的程序和數(shù)據(jù)的計(jì)算機(jī)可讀介質(zhì)驅(qū)動(dòng)器108,如CD-ROM驅(qū)動(dòng)器;及用于將計(jì)算機(jī)系統(tǒng)(如通過(guò)因特網(wǎng))連接到其他計(jì)算機(jī)系統(tǒng)來(lái)交換程序和/或數(shù)據(jù)(包括數(shù)據(jù)結(jié)構(gòu))的網(wǎng)絡(luò)連接110。
該工具程序可以在計(jì)算機(jī)可讀指令的通用上下文中描述,計(jì)算機(jī)可讀指令如計(jì)算機(jī)系統(tǒng)100或其他設(shè)備執(zhí)行的程序模塊。通常,計(jì)算機(jī)模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類(lèi)型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。存儲(chǔ)器104和持久存儲(chǔ)設(shè)備106是可以包含實(shí)現(xiàn)該工具程序的指令的計(jì)算機(jī)可讀介質(zhì)。應(yīng)理解,除實(shí)現(xiàn)該工具程序的指令之外,存儲(chǔ)器104和持久存儲(chǔ)106可以包含各種其他內(nèi)容。
應(yīng)理解,計(jì)算機(jī)系統(tǒng)100可以包括用于顯示程序輸出的一個(gè)或多個(gè)顯示設(shè)備,如視頻監(jiān)視器或LCP面板,及用于接收用戶(hù)輸入的一個(gè)或多個(gè)輸入設(shè)備,如鍵盤(pán)、麥克風(fēng),或如鼠標(biāo)這樣的定點(diǎn)設(shè)備。雖然通常使用如上所述配置的計(jì)算機(jī)系統(tǒng)100來(lái)支持該工具程序的操作,應(yīng)理解,該工具程序可以使用各種類(lèi)型和配置的設(shè)備來(lái)實(shí)現(xiàn),并具有各種組件。
在下面的討論中,結(jié)合各說(shuō)明性示例來(lái)描述該工具程序的實(shí)施例。應(yīng)理解,該工具程序的這些實(shí)施例可以在各方面明顯不同于這些示例的環(huán)境下使用。作為一個(gè)這樣的例子,即使例子一般涉及將外部數(shù)據(jù)鏈接到形狀的自定義屬性,但本領(lǐng)域的技術(shù)人員應(yīng)理解,也可以鏈接到形狀的屬性,而形狀可以包括或不包括自定義屬性。
圖2為示出該工具程序的組件操作的環(huán)境20的高級(jí)框圖??偟膩?lái)說(shuō),環(huán)境20有助于創(chuàng)建動(dòng)態(tài)的、數(shù)據(jù)驅(qū)動(dòng)的圖,這樣的圖用于通過(guò)向最終用戶(hù)提供簡(jiǎn)單的方式以使他們的數(shù)據(jù)進(jìn)入其形狀來(lái)可視化業(yè)務(wù)信息。如所述,環(huán)境20包括繪圖程序202、外部數(shù)據(jù)選擇器組件204、外部數(shù)據(jù)鏈接組件206、非模態(tài)外部數(shù)據(jù)窗口208、映射器組件210、刷新組件212、及通過(guò)網(wǎng)絡(luò)216耦連到繪圖程序202的外部數(shù)據(jù)源214。具體地,該工具程序被實(shí)現(xiàn)為繪圖程序202的組件,并包括外部數(shù)據(jù)選擇器組件204、外部數(shù)據(jù)鏈接組件206、非模態(tài)外部數(shù)據(jù)窗口208、映射器組件210和刷新組件212。
繪圖程序202一般擔(dān)當(dāng)通過(guò)提供模板、符號(hào)和拖放繪圖工具向用戶(hù)提供繪制圖、圖表、圖解和其他圖的能力的應(yīng)用程序。一種合適的繪圖程序是華盛頓州雷蒙德市的微軟公司提供的MicrosoftVisio。本領(lǐng)域的技術(shù)人員應(yīng)理解,該工具程序可以容易地被實(shí)現(xiàn)為除MicrosoftVisio之外的市場(chǎng)上可購(gòu)買(mǎi)的圖形可視化程序,以及定制開(kāi)發(fā)的圖形可視化程序的組件。
外部數(shù)據(jù)選擇器組件204一般用于將來(lái)自外部數(shù)據(jù)源214的數(shù)據(jù)導(dǎo)入到非模態(tài)外部數(shù)據(jù)窗口208中。在某些實(shí)施例中,外部數(shù)據(jù)選擇器組件204被實(shí)現(xiàn)為向?qū)?即,數(shù)據(jù)選擇器向?qū)?,并包含輔助用戶(hù)指定、過(guò)濾和命名數(shù)據(jù)源的邏輯。例如,用戶(hù)可以指定數(shù)據(jù)源和數(shù)據(jù)源中要作為二維表格導(dǎo)入的多個(gè)項(xiàng)或多條數(shù)據(jù)。然后,外部數(shù)據(jù)選擇器組件204與數(shù)據(jù)源建立連接,并下載指定的多條數(shù)據(jù)。在接收到該多條數(shù)據(jù)時(shí),外部數(shù)據(jù)選擇器組件204啟動(dòng)非模態(tài)外部數(shù)據(jù)窗口208,并在非模態(tài)外部數(shù)據(jù)窗口208中作為二維表格顯示下載的多條數(shù)據(jù)。在某些實(shí)施例中,外部數(shù)據(jù)選擇器組件204支持并利用MicrosoftActiveX數(shù)據(jù)對(duì)象(ADO)來(lái)連接和查詢(xún)外部數(shù)據(jù)源214,以查找用戶(hù)指定的多條外部數(shù)據(jù)。本領(lǐng)域的技術(shù)人員應(yīng)理解,外部數(shù)據(jù)選擇器組件204并不限于使用ADO,而是可以支持和利用其他數(shù)據(jù)訪(fǎng)問(wèn)技術(shù)以便與外部數(shù)據(jù)源214通信并從中導(dǎo)入數(shù)據(jù)。
外部數(shù)據(jù)鏈接組件206一般用于將來(lái)自非模態(tài)外部數(shù)據(jù)窗口208的數(shù)據(jù)鏈接到圖中的新形狀和現(xiàn)有形狀。在某些實(shí)施例中,外部數(shù)據(jù)鏈接組件206創(chuàng)建鏈接、移除鏈接、創(chuàng)建自定義屬性、移除自定義屬性,以及執(zhí)行其他動(dòng)作,以便于將來(lái)自數(shù)據(jù)源的數(shù)據(jù)鏈接到圖中的形狀。外部數(shù)據(jù)鏈接組件206在下面進(jìn)一步描述。
非模態(tài)外部數(shù)據(jù)窗口208一般擔(dān)當(dāng)用于行鏈接到圖中的新形狀和現(xiàn)有形狀的主接口。非模態(tài)外部數(shù)據(jù)窗口208允許用戶(hù)在窗口外交互(如,與次級(jí)窗口或主窗口),即使是顯示了非模態(tài)外部數(shù)據(jù)窗口208時(shí)也可以這樣。例如,用戶(hù)可以在非模態(tài)外部數(shù)據(jù)窗口208和任何其他可用窗口之間切換。在某些實(shí)施例中,非模態(tài)外部窗口208便于數(shù)據(jù)連接圖的導(dǎo)航。例如,當(dāng)用戶(hù)使用定點(diǎn)設(shè)備(如鼠標(biāo)),并雙擊非模態(tài)外部數(shù)據(jù)窗口208中鏈接的行時(shí),該工具程序使鏈接的形狀顯示在繪圖程序202的繪圖表面上。非模態(tài)外部數(shù)據(jù)窗口208還通過(guò)例如可視指示符來(lái)提供鏈接狀態(tài)的概要。
映射器組件210一般用于允許用戶(hù)控制數(shù)據(jù)列到自定義屬性的映射。刷新組件212一般用于刷新來(lái)自外部數(shù)據(jù)源214的數(shù)據(jù)。
上述工具程序的組件只是說(shuō)明性的,且該工具程序可以包括未描述的其他組件和模塊。此外,組件和模塊中提供的功能可以被組合成更少的組件和模塊中,或被進(jìn)一步劃分成額外的組件和模塊。
外部數(shù)據(jù)源214一般擔(dān)當(dāng)被導(dǎo)入到非模態(tài)外部數(shù)據(jù)窗口208中并在其中顯示的外部數(shù)據(jù)的存儲(chǔ)庫(kù)。在一個(gè)實(shí)施例中,外部數(shù)據(jù)源214可以是支持ADO的數(shù)據(jù)庫(kù)管理系統(tǒng),如作為例子,可以是MicrosoftAccess或其他關(guān)系型數(shù)據(jù)源。本領(lǐng)域的技術(shù)人員應(yīng)理解,外部數(shù)據(jù)源214可以支持和利用其他數(shù)據(jù)訪(fǎng)問(wèn)技術(shù)與外部數(shù)據(jù)選擇器組件205通信并向其提供數(shù)據(jù)。
網(wǎng)絡(luò)216是便于在例如所連接的計(jì)算機(jī)之間傳輸電子內(nèi)容的通信鏈路。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)216包括因特網(wǎng)。應(yīng)理解,網(wǎng)絡(luò)216可以包括一種或多種其他類(lèi)型的網(wǎng)絡(luò),如局域網(wǎng)、廣域網(wǎng)、點(diǎn)對(duì)點(diǎn)撥號(hào)連接等等。還應(yīng)理解,網(wǎng)絡(luò)216可以不存在。例如,外部數(shù)據(jù)選擇器組件204和外部數(shù)據(jù)源214都可以駐留在同一計(jì)算系統(tǒng)中并通過(guò)通常在計(jì)算系統(tǒng)中得到支持的各種通信機(jī)制通信,這些通信機(jī)制如進(jìn)程間通信、遠(yuǎn)程函數(shù)調(diào)用、內(nèi)部通信總線(xiàn)等等。
圖3為顯示畫(huà)面,示出了示例非模態(tài)外部數(shù)據(jù)窗口208。在一個(gè)實(shí)施例中,非模態(tài)外部數(shù)據(jù)窗口208??吭诶L圖程序202的文檔窗口(如提供繪圖表面的窗口)底部,并可以移動(dòng)、改變大小、關(guān)閉和檢索。當(dāng)非模態(tài)外部數(shù)據(jù)窗口208啟動(dòng)時(shí)活動(dòng)的文檔窗口仍然保持活動(dòng),非模態(tài)外部數(shù)據(jù)窗口208就可見(jiàn)。此外,如果使用多個(gè)文檔窗口來(lái)查看同一文檔(如,圖),則每個(gè)文檔窗口都有其自己的非模態(tài)外部數(shù)據(jù)窗口208。此外,關(guān)閉非模態(tài)外部數(shù)據(jù)窗口208不會(huì)影響圖或到任何數(shù)據(jù)源的連接。
如所述,非模態(tài)外部數(shù)據(jù)窗口208包括數(shù)據(jù)源選項(xiàng)卡302和數(shù)據(jù)網(wǎng)格304。數(shù)據(jù)源選項(xiàng)卡302一般用于提供在多個(gè)連接的數(shù)據(jù)源之間切換的能力。例如,點(diǎn)擊數(shù)據(jù)源選項(xiàng)卡會(huì)導(dǎo)致數(shù)據(jù)網(wǎng)格304的內(nèi)容改變,以反映來(lái)自選中的數(shù)據(jù)源的數(shù)據(jù)。數(shù)據(jù)網(wǎng)格304一般用于提供來(lái)自其數(shù)據(jù)源選項(xiàng)卡302當(dāng)前被選中的外部數(shù)據(jù)源的數(shù)據(jù)的表格視圖。在一個(gè)實(shí)施例中,數(shù)據(jù)網(wǎng)格304包括鏈接圖標(biāo)306、列標(biāo)題308和數(shù)據(jù)單元格310。
在一個(gè)實(shí)施例中,對(duì)每一行數(shù)據(jù)單元格310提供其自己的鏈接圖標(biāo)306,指示該行是否已被鏈接。如所示,連接的鏈指示該行當(dāng)前已被鏈接,而斷裂的鏈指示該行未被鏈接。在圖3中的示例非模態(tài)外部數(shù)據(jù)窗口208中,具有列名“Marketing Plan(營(yíng)銷(xiāo)規(guī)劃)”的行當(dāng)前已被鏈接,而具有列名“Documentation(文檔化)”的行當(dāng)前未被鏈接到任何形狀。
列標(biāo)題308一般用于顯示活動(dòng)的列的名稱(chēng)。在一個(gè)實(shí)施例中,列標(biāo)題308中的文本是來(lái)自數(shù)據(jù)源的列的原始名稱(chēng)。在圖3的示例非模態(tài)外部數(shù)據(jù)窗口208中,如列標(biāo)題308中的文本所示的活動(dòng)列的名稱(chēng)是“Name(名稱(chēng))”、“Owner(所有者)”、“Completed Days(完成天數(shù))”、“Total Time(總時(shí)間)”、“Due Date(到期日)”、“On Track(進(jìn)行中)”和“Link(鏈接)”,且這些名稱(chēng)可以是來(lái)自數(shù)據(jù)源的列的原始名稱(chēng)。
在某些實(shí)施例中,該工具程序可以向用戶(hù)提供改變列名的能力。例如,該工具程序可以提供用戶(hù)可以啟動(dòng)的對(duì)話(huà)框,且用戶(hù)可以通過(guò)該對(duì)話(huà)框選擇列并編輯列名。編輯的或變換的列名顯示在列標(biāo)題308中,但不反向反映到數(shù)據(jù)源中。此外,當(dāng)刷新鏈接時(shí),編輯的列名稱(chēng)反映在自定義屬性的標(biāo)簽或名稱(chēng)中。
該工具程序還可以向用戶(hù)提供激活和停用列的能力,從而使列顯示或者不顯示在非模態(tài)外部數(shù)據(jù)窗口208中。在一個(gè)實(shí)施例中,激活/停用列還指示該列是否參與鏈接。停用的列在鏈接期間并不應(yīng)用于形狀。例如,該工具程序可以提供列出數(shù)據(jù)源中的列的對(duì)話(huà)框窗口,且用戶(hù)可以通過(guò)該對(duì)話(huà)框窗口指定或選擇要激活并顯示在非模態(tài)外部數(shù)據(jù)窗口208中的列。此外,在數(shù)據(jù)源活動(dòng)的任何時(shí)候(即,數(shù)據(jù)源的數(shù)據(jù)源選項(xiàng)卡302當(dāng)前被選中),用戶(hù)可以使用對(duì)話(huà)框窗口并修改對(duì)活動(dòng)列的選擇。該工具程序在非模態(tài)外部數(shù)據(jù)窗口208中反映這些改變。
圖4根據(jù)某些實(shí)施例,示出該工具程序用于將來(lái)自外部數(shù)據(jù)源的數(shù)據(jù)導(dǎo)入到非模態(tài)外部數(shù)據(jù)窗口208的方法400的流程圖。作為例子,負(fù)責(zé)大型開(kāi)發(fā)項(xiàng)目的項(xiàng)目經(jīng)理可以在數(shù)據(jù)連接的圖中呈現(xiàn)當(dāng)前在電子表格(如Excel電子表格)中維護(hù)的項(xiàng)目狀態(tài)信息,以便改進(jìn)項(xiàng)目信息的焦點(diǎn)和可讀性。在步驟402,該項(xiàng)目經(jīng)理在計(jì)算系統(tǒng)上執(zhí)行繪圖程序202的實(shí)例。
在步驟404,項(xiàng)目經(jīng)理激活數(shù)據(jù)選擇器特征,如該工具程序的外部數(shù)據(jù)選擇器組件204。在步驟406,項(xiàng)目經(jīng)理指定外部數(shù)據(jù)源。例如,項(xiàng)目經(jīng)理可以使用外部數(shù)據(jù)選擇器組件204并指定Excel電子表格程序和包含項(xiàng)目信息的數(shù)據(jù)文件的位置和名稱(chēng)。
在步驟408,該工具程序?qū)雭?lái)自指定數(shù)據(jù)源的數(shù)據(jù)。例如,外部數(shù)據(jù)選擇器組件204可以與主存電子表格程序的計(jì)算系統(tǒng)建立連接,并請(qǐng)求或查詢(xún)指定的數(shù)據(jù)文件。在步驟410,該工具程序在非模態(tài)窗口中作為二維表格顯示導(dǎo)入的數(shù)據(jù)一即,交互的顯示。例如,該工具程序可以啟動(dòng)非模態(tài)外部數(shù)據(jù)窗口208的實(shí)例,并在非模態(tài)外部數(shù)據(jù)窗口208中作為二維表格向項(xiàng)目經(jīng)理顯示導(dǎo)入的項(xiàng)目信息。
本領(lǐng)域的技術(shù)人員應(yīng)理解,對(duì)在此描述的本方法和其他方法和過(guò)程,在示例性流程圖中執(zhí)行的功能可以按不同的順序來(lái)實(shí)現(xiàn)。此外,流程圖中描述的步驟只是示例性的,這些步驟中的一部分可以是可任選的、可組合成更少的步驟、或被擴(kuò)展為額外的步驟而不偏離本發(fā)明的本質(zhì)。
圖5根據(jù)某些實(shí)施例,示出了該工具程序用于通過(guò)非模態(tài)外部數(shù)據(jù)窗口208中的行在圖中創(chuàng)建新形狀的方法500的流程圖。繼續(xù)項(xiàng)目經(jīng)理的例子,該項(xiàng)目經(jīng)理可能想通過(guò)數(shù)據(jù)連接圖(如連接的圖表)顯示項(xiàng)目信息,以便改進(jìn)信息的可讀性。此外,因?yàn)檫B接圖并不存在,從而需要繪制,所以項(xiàng)目經(jīng)理可能想通過(guò)將顯示在非模態(tài)外部數(shù)據(jù)窗口208中的多行信息拖曳到繪圖表面來(lái)創(chuàng)建將由連接圖構(gòu)成的形狀,以創(chuàng)建連接圖。
在步驟502,項(xiàng)目經(jīng)理使用定點(diǎn)設(shè)備(如鼠標(biāo)),并選擇非模態(tài)外部數(shù)據(jù)窗口208中的一行或多行,并將所選擇的行拖曳到繪圖表面的空白部分之上。在步驟504,該工具程序檢查以確定當(dāng)前是否選擇了形狀窗口中的形狀母版。繪圖程序202通常提供包含提供給用戶(hù)用于繪制的形狀母版或形狀模板的形狀窗口。
如果當(dāng)前沒(méi)有選擇形狀母版,則在步驟506,該工具程序在繪圖表面上對(duì)每個(gè)拖曳的行創(chuàng)建默認(rèn)母版形狀(如矩形)的實(shí)例。在項(xiàng)目經(jīng)理例子中,假設(shè)項(xiàng)目信息如圖3的示例非模態(tài)外部數(shù)據(jù)窗口208中所示,且項(xiàng)目經(jīng)理選擇具有列名“Marketing Plan(營(yíng)銷(xiāo)規(guī)劃)”和“Risk Plan(風(fēng)險(xiǎn)規(guī)劃)”的行并將其拖曳到繪圖表面的空白部分之上,則該工具程序在繪圖表面上創(chuàng)建兩個(gè)單獨(dú)的矩形實(shí)例。該工具程序?qū)⒁粋€(gè)矩形實(shí)例關(guān)聯(lián)到具有列名“Marketing Plan(營(yíng)銷(xiāo)規(guī)劃)”的行,并將另外一個(gè)矩形實(shí)例關(guān)聯(lián)到具有列名“Risk Plan(風(fēng)險(xiǎn)規(guī)劃)”的行。
否則,如果當(dāng)前選擇了形狀母版,則在步驟508,該工具程序在繪圖表面上對(duì)每個(gè)拖曳的行創(chuàng)建每個(gè)所選擇的母版形狀的一個(gè)實(shí)例。繼續(xù)項(xiàng)目經(jīng)理的例子,假設(shè)當(dāng)前選擇了兩個(gè)母版形狀,如矩形和正方形,且項(xiàng)目經(jīng)理選擇具有列名“MarketingPlan(營(yíng)銷(xiāo)規(guī)劃)”和“Risk Plan(風(fēng)險(xiǎn)規(guī)劃)”的行(構(gòu)成圖3中的示例非模態(tài)外部數(shù)據(jù)窗口208)并將其拖曳到繪圖表面的空白部分之上,則該工具程序在繪圖表面上創(chuàng)建兩個(gè)單獨(dú)的矩形實(shí)例和兩個(gè)單獨(dú)的正方形實(shí)例。該工具程序?qū)⒁粋€(gè)矩形實(shí)例關(guān)聯(lián)到具有列名“Marketing Plan(營(yíng)銷(xiāo)規(guī)劃)”的行,將另一個(gè)矩形實(shí)例關(guān)聯(lián)到具有列名“Risk Plan(風(fēng)險(xiǎn)規(guī)劃)”的行,將一個(gè)正方形實(shí)例關(guān)聯(lián)到具有列名“Marketing Plan(營(yíng)銷(xiāo)規(guī)劃)”的行,并將另一個(gè)正方形實(shí)例關(guān)聯(lián)到具有列名“RiskPlan(風(fēng)險(xiǎn)規(guī)劃)”的行。因此,每個(gè)行都與一個(gè)矩形實(shí)例和一個(gè)正方形實(shí)例相關(guān)聯(lián)。
在步驟506或步驟508中在繪圖表面上創(chuàng)建一個(gè)或多個(gè)形狀之后,該工具程序?qū)υ诶L圖表面上創(chuàng)建的每個(gè)形狀(步驟510)執(zhí)行步驟512,直到處理完所有在繪圖表面上創(chuàng)建的形狀(步驟514)。在步驟512,該工具程序?qū)⑿螤铈溄拥椒悄B(tài)外部數(shù)據(jù)窗口208中與其對(duì)應(yīng)的行,并繼續(xù)處理在繪圖表面上創(chuàng)建的下一形狀(步驟514)。從上面的步驟506繼續(xù)項(xiàng)目經(jīng)理的例子,該工具程序?qū)⒁粋€(gè)矩形實(shí)例鏈接到具有列名“Marketing Plan(營(yíng)銷(xiāo)規(guī)劃)”的行,并將另一個(gè)矩形實(shí)例鏈接到具有列名“Risk Plan(風(fēng)險(xiǎn)規(guī)劃)”的行。鏈接操作在下面結(jié)合附圖7中的方法700進(jìn)一步描述。
圖6根據(jù)某些實(shí)施例,示出了該工具程序用于手動(dòng)地將非模態(tài)外部數(shù)據(jù)窗口208中的行鏈接到圖中的現(xiàn)有形狀的方法600的流程圖。在上述項(xiàng)目經(jīng)理例子中,項(xiàng)目經(jīng)理可能先前已經(jīng)創(chuàng)建了用于改進(jìn)項(xiàng)目信息可讀性的圖。此外,此圖可以包括當(dāng)前顯示在繪圖表面上的矩形。
在步驟602,項(xiàng)目經(jīng)理使用定點(diǎn)設(shè)備,并選擇非模態(tài)外部數(shù)據(jù)窗口208中的一行或多行,并將所選擇的行拖曳到顯示在繪圖表面上的現(xiàn)有形狀之上。在項(xiàng)目經(jīng)理的例子中,假設(shè)項(xiàng)目信息如圖3的示例非模態(tài)外部數(shù)據(jù)窗口208中所示,項(xiàng)目經(jīng)理可能已選擇了具有列名“Marketing Plan(營(yíng)銷(xiāo)規(guī)劃)”和“Risk Plan(風(fēng)險(xiǎn)規(guī)劃)”的行并將其拖曳到當(dāng)前顯示在繪圖表面上的矩形之上。
然后,從最上面的選擇的行開(kāi)始并順序向下處理(步驟604),該工具程序執(zhí)行步驟606,直到處理完所有選擇的行(步驟608)。在步驟606,該工具程序?qū)⑿螤铈溄拥椒悄B(tài)外部數(shù)據(jù)窗口208中當(dāng)前活動(dòng)的行(即,當(dāng)前正被處理的選擇和拖曳的行),并繼續(xù)處理下一個(gè)拖曳的行(步驟608)。繼續(xù)項(xiàng)目經(jīng)理的例子,該工具程序首先將最上面的選擇的行(具有列名“Marketing Plan(營(yíng)銷(xiāo)規(guī)劃)”的行)標(biāo)識(shí)為當(dāng)前活動(dòng)的行,并將此行鏈接到該矩形。然后,該工具程序?qū)⑾乱粋€(gè)最上面的行(具有列名“Risk Plan(風(fēng)險(xiǎn)規(guī)劃)”的行)標(biāo)識(shí)為當(dāng)前活動(dòng)的行,并將此行鏈接到該矩形。該工具程序繼續(xù)以此方式進(jìn)行處理,直到處理完所有選擇和拖曳的行。
在其他實(shí)施例中,該工具程序可以提示用戶(hù)確定用戶(hù)是否希望替換現(xiàn)有的鏈接。例如,該工具程序可呈現(xiàn)以具有如下選項(xiàng)的對(duì)話(huà)框(1)替換;(2)不替換;(3)總是替換;及(4)總是不替換。在另外的實(shí)施例中,該工具程序可以支持“手動(dòng)鏈接”,其中,用戶(hù)首先從繪圖頁(yè)中選擇形狀和/或子形狀,再選擇非模態(tài)外部數(shù)據(jù)窗口208中的一個(gè)或多個(gè)行,然后選擇將行鏈接到選擇的形狀的選項(xiàng)。
本領(lǐng)域的技術(shù)人員應(yīng)理解,項(xiàng)目經(jīng)理可以選擇任何數(shù)量的行,并將所選擇的行拖曳到繪圖表面的空白部分或圖中的形狀之上。此外,項(xiàng)目經(jīng)理可以根據(jù)需要使用不同組合及數(shù)量的行和形狀來(lái)重復(fù)選擇和拖曳操作。
在某些實(shí)施例中,該工具程序允許用戶(hù)選擇一行或多行并將其拖曳到圖中的多個(gè)形狀上。在此,該工具程序建立選擇的多個(gè)形狀的順序,并將拖曳的行中最上面一行鏈接到選擇中的第一個(gè)形狀,將拖曳的行中下一個(gè)最上面的行鏈接到選擇中的下一個(gè)形狀,并以此類(lèi)推。如果沒(méi)有下一個(gè)最上面的行,則該工具程序循環(huán)這些行,并將拖動(dòng)的行中最上面的行鏈接到選擇中的下一個(gè)形狀,并以此類(lèi)推,直到每個(gè)選擇的形狀都已被鏈接。在項(xiàng)目經(jīng)理的例子中,假設(shè)繪圖表面上顯示了三個(gè)形狀,即矩形、正方形和梯形,項(xiàng)目經(jīng)理可能已經(jīng)選擇了這三個(gè)形狀并將具有列名“Marketing Plan(營(yíng)銷(xiāo)規(guī)劃)”和“Risk Plan(風(fēng)險(xiǎn)規(guī)劃)”的行拖曳到繪圖表面上所選擇的形狀之上。在此實(shí)例中,該工具程序可以按矩形、正方形和梯形的順序?qū)@些形狀排序,并將最上面的選擇的行(具有列名“Marketing Plan(營(yíng)銷(xiāo)規(guī)劃)”的行)鏈接到矩形,將下一個(gè)最上面的選擇的行(具有列名“Risk Plan(風(fēng)險(xiǎn)規(guī)劃)”的行)鏈接到正方形(即序列中的下一個(gè)形狀)。因?yàn)闆](méi)有下一個(gè)最上面的行,所以工具程序循環(huán)這些行,并將下一個(gè)最上面的選擇的行(具有列名“Marketing Plan(營(yíng)銷(xiāo)規(guī)劃)”的行)鏈接到梯形。
圖7根據(jù)某些實(shí)施例,示出了該工具程序用于執(zhí)行鏈接操作的方法700的流程圖。具體地,方法700示出了行和圖中的形狀之間的鏈接。在某些實(shí)施例中,該工具程序的外部數(shù)據(jù)鏈接組件206只將活動(dòng)的列(即,當(dāng)前顯示在非模態(tài)外部數(shù)據(jù)窗口208中的列)鏈接到圖中的形狀。在步驟702,外部數(shù)據(jù)鏈接組件206移除形狀和同一數(shù)據(jù)源的另一個(gè)行之間的任何現(xiàn)有鏈接。在一個(gè)實(shí)施例中,對(duì)移除了其鏈接的每個(gè)行,外部數(shù)據(jù)鏈接組件206可以檢查以確定該行是否鏈接到任何其他形狀,且如果該行未鏈接到任何其他形狀,則外部數(shù)據(jù)鏈接組件206在該行的鏈接圖標(biāo)306中指示該行當(dāng)前未鏈接。
然后,對(duì)要鏈接的行中的每個(gè)活動(dòng)的列(步驟704),外部數(shù)據(jù)鏈接組件206執(zhí)行步驟706至710,直到處理完該行中所有活動(dòng)的列(步驟712)。在步驟706,外部數(shù)據(jù)鏈接組件206檢查以確定該形狀當(dāng)前是否具有其標(biāo)簽或名稱(chēng)與該列的名稱(chēng)相同的自定義屬性。如果該形狀當(dāng)前不具有其名稱(chēng)與該列相同的自定義屬性,則在步驟708,外部數(shù)據(jù)鏈接組件206對(duì)該形狀創(chuàng)建自定義屬性,并將與該列相同的名稱(chēng)賦予新創(chuàng)建的自定義屬性。
如果在步驟706,外部數(shù)據(jù)鏈接組件206確定該形狀當(dāng)前具有其名稱(chēng)與該列的名稱(chēng)相同的自定義屬性,或在步驟708對(duì)該形狀創(chuàng)建自定義屬性并賦予它與該列相同的名稱(chēng)之后,則在步驟710,外部數(shù)據(jù)鏈接組件206用來(lái)自該列的值(即,對(duì)應(yīng)于該列的數(shù)據(jù)單元格310)來(lái)填充該自定義屬性,并繼續(xù)處理下一個(gè)活動(dòng)列(步驟712)。在其他實(shí)施例中,數(shù)據(jù)類(lèi)型也可以用作次級(jí)測(cè)試,以確定是否應(yīng)使用現(xiàn)有的屬性并用匹配列的行中的數(shù)據(jù)填充它。在鏈接行中的活動(dòng)列之后,外部數(shù)據(jù)鏈接組件206在該行的鏈接圖標(biāo)306中指示該行當(dāng)前已鏈接。
從上面的步驟606繼續(xù)項(xiàng)目經(jīng)理的例子,外部數(shù)據(jù)鏈接組件206需要首先將矩形鏈接到最上面的選擇的行,即具有列名“Marketing Plan(營(yíng)銷(xiāo)規(guī)劃)”的行,然后將同一矩形鏈接到下一個(gè)最上面選擇的行,即具有列名“RiskPlan(風(fēng)險(xiǎn)規(guī)劃)”的行。在處理最上面的行時(shí),如果該矩形當(dāng)前鏈接到非模態(tài)外部數(shù)據(jù)窗口208中的任何其他記錄(如,具有列名“Manufacturing(制造)”或“Quality Testing(質(zhì)量檢驗(yàn))”的記錄中的任何一條),則外部數(shù)據(jù)鏈接組件206移除此鏈接。具有列名“Documentation(文檔化)”和“Procure Contractors(采購(gòu)承包商)”的記錄如它們各自的鏈接圖標(biāo)306中所示的未鏈接。然后,外部數(shù)據(jù)鏈接組件208將該矩形鏈接到最上面的行。在鏈接操作之后,該矩形的自定義屬性及其值可以如下所示
自定義屬性值Name Marketing PlanOwnerCharlesCompleted Days 40Total Time 45Due Date 4/30/2004On Track TRUELink http//intranet/Marketing在鏈接該矩形到最上面的行之后,外部數(shù)據(jù)鏈接組件206將該矩形鏈接到下一個(gè)最上面的選擇的行。在處理下一個(gè)最上面的選擇的行時(shí),外部數(shù)據(jù)鏈接組件206首先移除該矩形和具有列名“Marketing Plan(營(yíng)銷(xiāo)規(guī)劃)”的行之間當(dāng)前現(xiàn)有的鏈接。在某些實(shí)施例中,外部數(shù)據(jù)鏈接組件206可以在每個(gè)自定義屬性旁邊提供該鏈接不再存在且該數(shù)據(jù)(即,顯示的值)已失效(如數(shù)據(jù)可能不再是最新的)的指示。在其他實(shí)施例中,外部數(shù)據(jù)鏈接組件206可以移除或刪除通過(guò)已移除的鏈接創(chuàng)建的一個(gè)或多個(gè)自定義屬性。然后,外部數(shù)據(jù)鏈接組件206將該矩形鏈接到下一個(gè)最上面的行。在鏈接操作之后,該矩形的自定義屬性及其值可以如下所示自定義屬性值NameRisk PlanOwner EdwardCompleted Days 30Total Time 30Due Date5/15/2004On TrackTRUELinkhttp//intranet/Risk在某些實(shí)施例中,該工具程序允許用戶(hù)將單個(gè)形狀到來(lái)自多個(gè)數(shù)據(jù)源的多個(gè)記錄。繼續(xù)項(xiàng)目經(jīng)理的例子,項(xiàng)目經(jīng)理那時(shí)可能已使用外部數(shù)據(jù)選擇器組件204,并導(dǎo)入了包含其他項(xiàng)目信息的另一個(gè)Excel數(shù)據(jù)文件。例如,項(xiàng)目信息可包含聯(lián)系人信息,如每個(gè)所有者的辦公室位置和電話(huà)號(hào)碼,如下所示
然后,項(xiàng)目經(jīng)理可能已選擇具有列所有者“Edward”的行并將其拖曳到當(dāng)前顯示在繪圖表面上的矩形,使得外部數(shù)據(jù)鏈接組件206將該矩形鏈接到該行。在鏈接操作之后,該矩形的自定義屬性及其值可以如下所示自定義屬性值Name Risk PlanOwnerEdwardCompleted Days 30Total Time 30Due Date 5/15/2004On Track TRUELink http//intranet/RiskOffice Location Bldg 1-14Phone Number (123)456-2753此外,外部數(shù)據(jù)鏈接組件206并不移除先前已存在的鏈接,因?yàn)樵撴溄邮窃谠摼匦魏筒煌臄?shù)據(jù)源的行之間的。因此,作為先前的鏈接的結(jié)果創(chuàng)建的自定義屬性在最近的鏈接操作之后保持鏈接。此外,外部數(shù)據(jù)鏈接組件206不創(chuàng)建具有名稱(chēng)“Owner”的重復(fù)的自定義屬性,因?yàn)樵撟远x屬性已經(jīng)存在。重復(fù)的自定義屬性(即,具有名稱(chēng)“Owner”的自定義屬性)的值是來(lái)自最近鏈接的數(shù)據(jù)源的值(即,每個(gè)所有者的聯(lián)系人信息的項(xiàng)目信息)。在其他實(shí)施例中,外部數(shù)據(jù)鏈接組件206可以不更新重復(fù)的自定義屬性的值,但是保持先前已存在的值。
圖8根據(jù)某些實(shí)施例,示出了該工具程序用于刷新鏈接的方法800的流程圖。在某些實(shí)施例中,該工具程序可以提供用戶(hù)可以用于啟動(dòng)刷新操作的按鈕或其他激活方法。作為例子,用戶(hù)可以選擇圖中的形狀并使用定點(diǎn)設(shè)備按下刷新按鈕來(lái)啟動(dòng)刷新操作。如果選擇的形狀鏈接到來(lái)自多個(gè)數(shù)據(jù)源的多行數(shù)據(jù),則該工具程序向用戶(hù)提供選擇單個(gè)數(shù)據(jù)源來(lái)刷新的能力。例如,該工具程序可以在窗口中列出多個(gè)數(shù)據(jù)源,并允許用戶(hù)選擇單個(gè)數(shù)據(jù)源。在其他實(shí)施例中,該工具程序可以順序地一個(gè)接一個(gè)刷新到多個(gè)數(shù)據(jù)源的鏈接。
對(duì)與選擇的形狀相關(guān)聯(lián)的每個(gè)自定義屬性(步驟802),該工具程序執(zhí)行步驟804至816,直到處理完與選擇的形狀相關(guān)聯(lián)的所有自定義屬性(步驟818)。在步驟804,該工具程序檢查以確定自定義屬性中的值是否與來(lái)自數(shù)據(jù)源的原始值相同。如果不相同,則自定義屬性值保持不變,且該工具程序繼續(xù)處理下一個(gè)自定義屬性(步驟818)。
否則,如果自定義屬性值與來(lái)自數(shù)據(jù)源的原始值相同,則在步驟806,該工具程序確定鏈接到自定義屬性的列當(dāng)前是否不活動(dòng),且因此不顯示在非模態(tài)外部數(shù)據(jù)窗口208中。如果鏈接的列當(dāng)前不是活動(dòng)列,則在步驟808,該工具程序指示自定義屬性的值失效,并繼續(xù)處理下一個(gè)自定義屬性(步驟818)。
否則,如果鏈接的列當(dāng)前是活動(dòng)列,則在步驟810,該工具程序確定自定義屬性的值是否由例如用戶(hù)改變。如果自定義屬性的值未改變,則在步驟818,該工具程序用鏈接的列在數(shù)據(jù)源中的值更新或刷新自定義屬性的值,并繼續(xù)處理下一個(gè)自定義屬性(步驟818)。
否則,如果自定義屬性的值已改變,則在步驟812,該工具程序確定用戶(hù)是否選擇更新自定義屬性的值。如果該工具程序確定用戶(hù)選擇更新自定義屬性的值,則在步驟816,該工具程序用鏈接的列在數(shù)據(jù)源中的值更新自定義屬性的值,并繼續(xù)處理下一個(gè)自定義屬性(步驟818)。否則,在步驟814,該工具程序保持自定義屬性的當(dāng)前值,并繼續(xù)處理下一個(gè)自定義屬性(步驟818)。
通過(guò)上述說(shuō)明,應(yīng)理解,在此為了演示說(shuō)明已描述了本發(fā)明的多個(gè)實(shí)施例,但是可以做出各種修改而不偏離本發(fā)明的精神和范圍。因此,除了符合所附權(quán)利要求書(shū)中明確要求保護(hù)的元素之外,本發(fā)明不受其他限制。
權(quán)利要求
1.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其內(nèi)容使計(jì)算機(jī)執(zhí)行圖形可視化程序的實(shí)例,所述圖形可視化程序具有繪圖表面,并可用于在所述繪圖表面上顯示圖;在所述圖形可視化程序的實(shí)例內(nèi),導(dǎo)入來(lái)自第一外部數(shù)據(jù)源的數(shù)據(jù);以及在所述圖形可視化程序的實(shí)例內(nèi)的交互顯示中,將所導(dǎo)入的來(lái)自第一外部數(shù)據(jù)源的數(shù)據(jù)作為第一二維表格顯示,所述第一二維表格具有零個(gè)、一個(gè)或多個(gè)行和零個(gè)、一個(gè)或多個(gè)列,使得所述交互顯示中的來(lái)自所述二維表格的至少一個(gè)行可以與圖中預(yù)先存在的形狀或新形狀相關(guān)聯(lián)。
2.如權(quán)利要求1所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,還包括內(nèi)容,所述內(nèi)容使計(jì)算機(jī)在所述圖形可視化程序的實(shí)例內(nèi),導(dǎo)入來(lái)自第二外部數(shù)據(jù)源的數(shù)據(jù);在所述圖形可視化程序的實(shí)例內(nèi)的所述交互顯示中,將所導(dǎo)入的來(lái)自第二外部數(shù)據(jù)源的數(shù)據(jù)作為第二二維表格顯示,使得所述交互顯示或者顯示所導(dǎo)入的來(lái)自所述第一外部數(shù)據(jù)源的數(shù)據(jù),或者顯示所導(dǎo)入的來(lái)自所述第二外部數(shù)據(jù)源的數(shù)據(jù)。
3.如權(quán)利要求1所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,對(duì)所述交互顯示中的每個(gè)行提供鏈接圖標(biāo)。
4.如權(quán)利要求1所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述交互顯示中的至少一個(gè)列可以被排除。
5.如權(quán)利要求1所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述鏈接是在形狀的屬性和所述交互顯示中的二維表格的行中的列的值之間的。
6.如權(quán)利要求5所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述屬性和所述列具有相同的名稱(chēng)。
7.如權(quán)利要求1所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,通過(guò)下述動(dòng)作,使得來(lái)自所述交互顯示中的二維表格的多個(gè)行可以與圖中的多個(gè)新形狀相關(guān)聯(lián)在所述繪圖表面上對(duì)每個(gè)行創(chuàng)建新形狀的實(shí)例,以及對(duì)每個(gè)形狀,將所述形狀鏈接到其對(duì)應(yīng)的行。
8.如權(quán)利要求1所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,通過(guò)下述動(dòng)作,使得來(lái)自所述交互顯示中的二維表格的多個(gè)行可以與圖中的多個(gè)現(xiàn)有的形狀相關(guān)聯(lián)對(duì)所述多個(gè)形狀建立順序;對(duì)所述多個(gè)行建立順序;以及從第一個(gè)形狀和第一個(gè)行開(kāi)始,并按順序處理,直到所述多個(gè)形狀全部都被關(guān)聯(lián),同時(shí)根據(jù)需要循環(huán)所述多個(gè)行,將所述形狀鏈接到所述行。
9.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其內(nèi)容通過(guò)下述動(dòng)作,使圖形可視化程序?qū)?lái)自外部數(shù)據(jù)源的數(shù)據(jù)鏈接到圖中的形狀在交互顯示的數(shù)據(jù)網(wǎng)格中將來(lái)自第一外部數(shù)據(jù)源的數(shù)據(jù)作為第一二維表格顯示;以及響應(yīng)于所述交互顯示的數(shù)據(jù)網(wǎng)格中的所述第一二維表格的一行或多行被拖曳到繪圖表面的空白部分之上對(duì)被拖曳到所述繪圖表面之上的每個(gè)行,在所述繪圖表面上創(chuàng)建形狀實(shí)例;以及對(duì)在所述繪圖表面上創(chuàng)建的每個(gè)形狀,通過(guò)對(duì)所述行中的每個(gè)列執(zhí)行下述動(dòng)作,將所述形狀鏈接到所述行響應(yīng)于確定存在具有與所述列的名稱(chēng)相同的名稱(chēng)的形狀的屬性,用來(lái)自該列的值填充該屬性;響應(yīng)于確定不存在具有與所述列的名稱(chēng)相同的名稱(chēng)的形狀的屬性,對(duì)該形狀創(chuàng)建具有與所述列的名稱(chēng)相同的名稱(chēng)的新屬性,并用來(lái)自該列的值填充所述新屬性。
10.如權(quán)利要求9所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,還包括內(nèi)容,所述內(nèi)容通過(guò)下述動(dòng)作,使所述圖形可視化程序?qū)?lái)自外部數(shù)據(jù)源的數(shù)據(jù)鏈接到圖中的形狀響應(yīng)于所述交互顯示的數(shù)據(jù)網(wǎng)格中的第一二維表格的第一行被拖曳到顯示在所述繪圖表面上的現(xiàn)有的形狀之上,通過(guò)對(duì)所述第一行中的每個(gè)列執(zhí)行下述動(dòng)作,將所述現(xiàn)有的形狀鏈接到所述第一行響應(yīng)于確定存在具有與所述列的名稱(chēng)相同的名稱(chēng)的現(xiàn)有形狀的屬性,用來(lái)自該列的值填充該屬性;以及響應(yīng)于確定不存在具有與所述列的名稱(chēng)相同的名稱(chēng)的現(xiàn)有形狀的屬性,對(duì)所述現(xiàn)有形狀創(chuàng)建具有與所述列的名稱(chēng)相同的名稱(chēng)的新屬性,并用來(lái)自該列的值填充所述新屬性。
11.如權(quán)利要求9所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,還包括內(nèi)容,所述內(nèi)容通過(guò)執(zhí)行下述動(dòng)作,使所述圖形可視化程序?qū)?lái)自外部數(shù)據(jù)源的數(shù)據(jù)鏈接到圖中的形狀響應(yīng)于所述交互顯示的數(shù)據(jù)網(wǎng)格中的第一二維表格的第二行被拖曳到顯示在所述繪圖表面上的現(xiàn)有的形狀之上,通過(guò)執(zhí)行下述動(dòng)作,將所述現(xiàn)有的形狀鏈接到所述第二行移除所述現(xiàn)有形狀和所述第一行之間的鏈接;以及對(duì)所述第二行中的每個(gè)列響應(yīng)于確定存在具有與所述列的名稱(chēng)相同的名稱(chēng)的現(xiàn)有形狀的屬性,用來(lái)自該列的值填充該屬性;以及響應(yīng)于確定不存在具有與所述列的名稱(chēng)相同的名稱(chēng)的現(xiàn)有形狀的屬性,對(duì)所述現(xiàn)有形狀創(chuàng)建具有與所述列的名稱(chēng)相同的名稱(chēng)的新屬性,并用來(lái)自該列的值填充所述新屬性。
12.如權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,移除所述現(xiàn)有形狀和所述第一行之間的鏈接還使視圖中的每個(gè)屬性提供顯示各屬性的值的指示。
13.如權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述現(xiàn)有形狀和所述第一行之間的鏈接是通過(guò)移除作為所述現(xiàn)有形狀和第一行之間的鏈接的結(jié)果創(chuàng)建的自定義屬性來(lái)移除的。
14.如權(quán)利要求9所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述鏈接只是所述行中活動(dòng)的列的鏈接。
15.一個(gè)或多個(gè)共同包含非模態(tài)外部數(shù)據(jù)窗口的計(jì)算機(jī)存儲(chǔ)器,所述非模態(tài)外部數(shù)據(jù)窗口可用于作為圖形可視化程序的部分顯示,并用于顯示二維表格,所述二維表格包括至少一行和至少一個(gè)活動(dòng)的列,使得通過(guò)選擇一行并將所述行從所述非模態(tài)外部數(shù)據(jù)窗口中拖曳到所述圖形可視化程序的繪圖表面之上,可以將所述行關(guān)聯(lián)到圖中的形狀。
16.如權(quán)利要求15所述的計(jì)算機(jī)存儲(chǔ)器,其特征在于,所述鏈接是響應(yīng)于將所述行拖曳到所述繪圖表面的空白部分并創(chuàng)建所述形狀來(lái)做出的。
17.如權(quán)利要求15所述的計(jì)算機(jī)存儲(chǔ)器,其特征在于,所述鏈接是響應(yīng)于將所述行拖曳到顯示在所述繪圖表面上的形狀來(lái)做出的。
18.如權(quán)利要求15所述的計(jì)算機(jī)存儲(chǔ)器,其特征在于,所述鏈接是通過(guò)對(duì)所述行中的每個(gè)活動(dòng)列,用該列的值填充所述形狀的屬性來(lái)做出。
19.一種圖形可視化程序中的計(jì)算機(jī)實(shí)現(xiàn)的方法,用于將圖中的形狀鏈接到來(lái)自第一數(shù)據(jù)源的一行數(shù)據(jù),所述方法包括對(duì)來(lái)自第一數(shù)據(jù)源的要關(guān)聯(lián)于形狀的每行數(shù)據(jù)移除所述形狀和來(lái)自所述第一數(shù)據(jù)源的另一行數(shù)據(jù)之間的任何現(xiàn)有鏈接;以及對(duì)行中的每個(gè)活動(dòng)列,填充具有與所述活動(dòng)列的名稱(chēng)相同的名稱(chēng)的形狀屬性。
20.如權(quán)利要求19所述的方法,其特征在于,所述填充包括創(chuàng)建具有與所述活動(dòng)列的名稱(chēng)相同的名稱(chēng)的屬性。
21.如權(quán)利要求19所述的方法,其特征在于,來(lái)自所述第一數(shù)據(jù)源的數(shù)據(jù)行作為二維表格在交互顯示中顯示。
22.如權(quán)利要求19所述的方法,其特征在于,來(lái)自所述第一數(shù)據(jù)源的數(shù)據(jù)可以通過(guò)網(wǎng)絡(luò)來(lái)檢索。
23.如權(quán)利要求19所述的方法,其特征在于,所述第一數(shù)據(jù)源是數(shù)據(jù)庫(kù)。
24.一種圖形可視化程序中的計(jì)算機(jī)實(shí)現(xiàn)的方法,用于刷新圖中的形狀和來(lái)自數(shù)據(jù)源的一行數(shù)據(jù)之間的鏈接,所述方法包括對(duì)由到數(shù)據(jù)源的鏈接填充的每個(gè)形狀屬性如果所述數(shù)據(jù)源中關(guān)聯(lián)于所述屬性的行中的列被移除,則指示所述屬性的值失效;及如果所述數(shù)據(jù)源中關(guān)聯(lián)于所述屬性的行中的列存在并活動(dòng),則用來(lái)自該列的值更新所述屬性的值。
25.如權(quán)利要求24所述的方法,其特征在于,還包括在用來(lái)自所述列的值更新所述屬性的值之前,確定所述屬性的值是否已改變;響應(yīng)于確定所述屬性的值已改變,提供覆蓋或者保留改變的屬性值的選項(xiàng);以及響應(yīng)于選擇所述覆蓋選項(xiàng),用來(lái)自所述列的值更新所述屬性的值。
26.如權(quán)利要求25所述的方法,其特征在于,還包括響應(yīng)于選擇所述保留選項(xiàng),保留所述改變的屬性值。
27.如權(quán)利要求24所述的方法,其特征在于,指示所述屬性值失效是通過(guò)基本上接近所述屬性的可視指示來(lái)進(jìn)行的。
全文摘要
提供一種用于將來(lái)自外部數(shù)據(jù)源的數(shù)據(jù)鏈接到圖中的形狀的工具程序。該工具程序被實(shí)現(xiàn)為圖形可視化程序的組件,并提供可用于通過(guò)二維表格顯示來(lái)自數(shù)據(jù)源的數(shù)據(jù)的非模態(tài)數(shù)據(jù)窗口。用戶(hù)可以使用該工具程序?qū)雭?lái)自數(shù)據(jù)源的數(shù)據(jù),并在非模態(tài)數(shù)據(jù)窗口中顯示導(dǎo)入的數(shù)據(jù)。然后用戶(hù)可以使用非模態(tài)數(shù)據(jù)窗口來(lái)選擇非模態(tài)數(shù)據(jù)窗口中顯示的行,并將它們拖曳到圖形可視化程序的繪圖表面上的形狀之上,以將拖曳的行鏈接到形狀。用戶(hù)還可以將非模態(tài)數(shù)據(jù)窗口中顯示的行拖曳到繪圖表面的空白部分之上,以在繪圖表面上創(chuàng)建形狀,并將這些行鏈接到所創(chuàng)建的形狀。
文檔編號(hào)G06F17/30GK1790327SQ20051012504
公開(kāi)日2006年6月21日 申請(qǐng)日期2005年11月16日 優(yōu)先權(quán)日2004年12月15日
發(fā)明者M·T·安納雷斯, A·馬休, H·J·麥克阿利斯特, H·A·姆森 申請(qǐng)人:微軟公司