專利名稱:構(gòu)成帶有鏈接的自動(dòng)創(chuàng)建的視圖的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視圖呈現(xiàn)技術(shù)。
背景技術(shù):
1.背景和相關(guān)技術(shù)計(jì)算機(jī)系統(tǒng)和相關(guān)技術(shù)影響社會(huì)的許多方面。的確,計(jì)算機(jī)系統(tǒng)處理信息的能力 已轉(zhuǎn)變了人們生活和工作的方式。計(jì)算機(jī)系統(tǒng)現(xiàn)在通常執(zhí)行在計(jì)算機(jī)系統(tǒng)出現(xiàn)以前手動(dòng)執(zhí) 行的許多任務(wù)(例如,文字處理、日程安排和賬目管理等)。最近,計(jì)算機(jī)系統(tǒng)彼此耦合并耦 合到其他電子設(shè)備以形成計(jì)算機(jī)系統(tǒng)和其他電子設(shè)備可以在其上傳輸電子數(shù)據(jù)的有線和 無(wú)線計(jì)算機(jī)網(wǎng)絡(luò)。因此,許多計(jì)算任務(wù)的執(zhí)行分布在多個(gè)不同的計(jì)算機(jī)系統(tǒng)和/或多個(gè)不 同的計(jì)算環(huán)境上。許多應(yīng)用程序包括從數(shù)據(jù)庫(kù)讀取數(shù)據(jù)并且將所讀取的數(shù)據(jù)的視圖在顯示設(shè)備處 呈現(xiàn)給用戶。例如,銷售應(yīng)用程序可以查詢購(gòu)買數(shù)據(jù)庫(kù)來(lái)讀取顧客購(gòu)買定單并將購(gòu)買定單 的內(nèi)容顯示給銷售執(zhí)行者。為了呈現(xiàn)更復(fù)雜和/或更細(xì)粒度的數(shù)據(jù)視圖,可以將視圖進(jìn)行 組合從而使得一個(gè)視圖依賴于另一視圖中的數(shù)據(jù)。然而,配置應(yīng)用程序以呈現(xiàn)組合的數(shù)據(jù) 視圖是相對(duì)復(fù)雜的,可能需要大量的技術(shù)知識(shí)。例如,共享源耦合以及主/細(xì)節(jié)耦合需要許 多不同的查詢(用查詢或其他編程語(yǔ)言編寫)以及用戶界面控件來(lái)接收用戶輸入。對(duì)于共享源耦合,至少第一和第二查詢從同一源查詢數(shù)據(jù)。為了得到用戶輸入,諸 如例如文本框之類的用戶界面控件被設(shè)計(jì)成接收用戶輸入。用戶輸入可以是這樣一個(gè)值, 該值標(biāo)識(shí)了用作第一查詢(例如,為了得到員工的聯(lián)系信息)和第二查詢(例如,為了得到 員工的工資歷史)的基礎(chǔ)的、來(lái)自源的數(shù)據(jù)元素(例如,員工的名字)。由此,到用戶界面控 件的輸入必須被程序性地綁定到第一和第二查詢中的每一個(gè)?;谟脩糨斎?,顯示來(lái)自第 一和第二(以及任何其他)查詢的結(jié)果。對(duì)于主/細(xì)節(jié)耦合,查詢可以包括主查詢和細(xì)節(jié)查詢。主查詢被配置成返回來(lái)自 數(shù)據(jù)庫(kù)的數(shù)據(jù)元素列表(例如,人員的名字的列表)。細(xì)節(jié)查詢被配置成返回和主查詢所 返回的數(shù)據(jù)元素(例如,人的名字)相對(duì)應(yīng)的來(lái)自數(shù)據(jù)庫(kù)的附加數(shù)據(jù)(例如,電話號(hào)碼和地 址)。然而,通常需要其他用戶輸入(例如,指定人的名字)來(lái)確定要對(duì)哪個(gè)數(shù)據(jù)元素運(yùn)行 第二查詢。為了獲得其他用戶輸入,用戶例如通過(guò)在第一列表中的元素上點(diǎn)擊來(lái)從第一查 詢的結(jié)果中選擇項(xiàng)。由此,其他用戶輸入選擇這樣一個(gè)值,該值標(biāo)識(shí)了用作第二查詢的基礎(chǔ) 的數(shù)據(jù)元素列表中的數(shù)據(jù)元素。因此,從第一列表的選擇通常被程序性地綁定到第二查詢 來(lái)執(zhí)行更新。顯示來(lái)自主查詢的結(jié)果以及來(lái)自細(xì)節(jié)查詢的結(jié)果(基于用戶輸入)。因此,這些和其他類型的查詢和用戶界面控件的設(shè)計(jì)和開發(fā)需要通常遠(yuǎn)超出計(jì)算 機(jī)用戶平均水平的技術(shù)技能。在某種程度上,可以使用圖形工具來(lái)減少實(shí)現(xiàn)組合查詢所需的知識(shí)。然而,即使使用圖形工具,仍需要更新用戶界面控件和查詢之間的綁定。實(shí)現(xiàn)相關(guān) 視圖更新可能需要收聽一個(gè)視圖中的變化并在第二視圖中反應(yīng)這些變化的相對(duì)較復(fù)雜的 收聽代碼。例如,如果改變數(shù)據(jù)庫(kù)中的員工記錄,則該員工的細(xì)節(jié)視圖可能需要反應(yīng)該變 化。在缺少收聽代碼的情況下,通常需要手動(dòng)更新。然而,一旦呈現(xiàn)了細(xì)節(jié)視圖,查看用戶 可能無(wú)法識(shí)別和/或甚至可能無(wú)法知道員工記錄被改變過(guò)。
發(fā)明內(nèi)容
本發(fā)明涉及用于構(gòu)成帶有鏈接的自動(dòng)創(chuàng)建的視圖的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn) 品。檢測(cè)到第一和第二數(shù)據(jù)視圖要被組合到合成數(shù)據(jù)視圖中。第一數(shù)據(jù)視圖被配置成呈現(xiàn) 來(lái)自數(shù)據(jù)庫(kù)的數(shù)據(jù)元素。第二數(shù)據(jù)視圖被配置成呈現(xiàn)與從第一視圖中選擇的數(shù)據(jù)元素有關(guān) 的其他數(shù)據(jù)元素。響應(yīng)于檢測(cè)到第一和第二視圖要被組合到合成數(shù)據(jù)視圖中,為合成數(shù)據(jù)視圖創(chuàng)建 配置。為合成視圖創(chuàng)建配置包括在合成視圖的控制下建立選擇變量。選擇變量用于存儲(chǔ)標(biāo) 識(shí)第一視圖中的數(shù)據(jù)元素的值。為合成視圖創(chuàng)建配置包括配置用戶界面控件來(lái)用所接收的 值更新選擇變量。為合成視圖創(chuàng)建配置包括重新編寫第二查詢來(lái)將存儲(chǔ)在選擇變量中的所 接收的值用作第二查詢的源位置。實(shí)例化所創(chuàng)建的配置來(lái)在顯示設(shè)備處呈現(xiàn)合成數(shù)據(jù)視 圖。提供本發(fā)明內(nèi)容是為了以簡(jiǎn)化的形式介紹將在以下具體實(shí)施方式
中進(jìn)一步描述 的一些概念。本發(fā)明內(nèi)容不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨 在用于幫助確定所要求保護(hù)的主題的范圍。本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的描述中闡述,并且部分地將從本說(shuō)明書中顯 而易見,或可以通過(guò)本發(fā)明的實(shí)施來(lái)獲知。本發(fā)明的特征和優(yōu)點(diǎn)可通過(guò)在所附權(quán)利要求書 中特別指出的工具和組合來(lái)實(shí)現(xiàn)和獲得。本發(fā)明的這些和其他特征將通過(guò)以下描述和所附 權(quán)利要求書變得更加顯而易見,或可通過(guò)對(duì)下文中所述的本發(fā)明的實(shí)踐來(lái)領(lǐng)會(huì)。
為了描述可以獲得本發(fā)明的上文所列舉的及其他優(yōu)點(diǎn)和特征的方式,將通過(guò)參考 附圖中所示的本發(fā)明的各具體實(shí)施例來(lái)呈現(xiàn)上文簡(jiǎn)要描述的本發(fā)明的更具體的描述。可以 理解,這些附圖只描繪了本發(fā)明的各典型實(shí)施例,并且因此不被認(rèn)為是對(duì)其范圍的限制,將 通過(guò)使用附圖并利用附加特征和細(xì)節(jié)來(lái)描述和解釋本發(fā)明,在附圖中圖1示出便于構(gòu)成帶有鏈接的自動(dòng)創(chuàng)建的視圖的一示例計(jì)算機(jī)體系結(jié)構(gòu)。圖2示出用于配置合成數(shù)據(jù)視圖的一示例方法的流程圖。圖3示出一示例合成數(shù)據(jù)視圖。
具體實(shí)施例方式本發(fā)明涉及用于構(gòu)成帶有鏈接的自動(dòng)創(chuàng)建的視圖的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn) 品。檢測(cè)到第一和第二數(shù)據(jù)視圖要被組合到合成數(shù)據(jù)視圖中。第一數(shù)據(jù)視圖被配置成呈現(xiàn) 來(lái)自數(shù)據(jù)庫(kù)的數(shù)據(jù)元素。第二數(shù)據(jù)視圖被配置成呈現(xiàn)與從第一視圖中選擇的數(shù)據(jù)元素有關(guān) 的其他數(shù)據(jù)元素。
響應(yīng)于檢測(cè)到第一和第二視圖要被組合到合成數(shù)據(jù)視圖中,為合成數(shù)據(jù)視圖創(chuàng)建 配置。為合成視圖創(chuàng)建配置包括在合成視圖的控制下建立選擇變量。選擇變量用于存儲(chǔ)標(biāo) 識(shí)第一視圖中的數(shù)據(jù)元素的值。為合成視圖創(chuàng)建配置包括配置用戶界面控件來(lái)用所接收的 值更新選擇變量。為合成視圖創(chuàng)建配置包括重新編寫第二查詢來(lái)將存儲(chǔ)在選擇變量中的所 接收的值用作第二查詢的源位置。實(shí)例化所創(chuàng)建的配置來(lái)在顯示設(shè)備處呈現(xiàn)合成數(shù)據(jù)視 圖。本發(fā)明的各實(shí)施例可以包括或利用諸如,一個(gè)或多個(gè)處理器和系統(tǒng)存儲(chǔ)器等包括 計(jì)算機(jī)硬件的專用或通用計(jì)算機(jī),這將在以下做出進(jìn)一步討論。本發(fā)明范圍內(nèi)的各實(shí)施例 還包括用于承載或存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的物理和其他計(jì)算機(jī)可讀介質(zhì)。 這樣的計(jì)算機(jī)可讀介質(zhì)可以是可由通用或?qū)S糜?jì)算機(jī)系統(tǒng)訪問(wèn)的任何可用介質(zhì)。存儲(chǔ)計(jì)算 機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是物理存儲(chǔ)介質(zhì)。承載計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介 質(zhì)是傳輸介質(zhì)。由此,作為示例而非限制,本發(fā)明的各實(shí)施例可包括至少兩種完全不同的計(jì) 算機(jī)可讀介質(zhì)計(jì)算機(jī)存儲(chǔ)介質(zhì)和傳輸介質(zhì)。 計(jì)算機(jī)存儲(chǔ)介質(zhì)包括RAM、ROM、EEPROM、CD-ROM或其他光盤存儲(chǔ)、磁盤存儲(chǔ)或其他 磁存儲(chǔ)設(shè)備、或可用于存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置且可由 通用或?qū)S糜?jì)算機(jī)訪問(wèn)的任何其他介質(zhì)?!熬W(wǎng)絡(luò)”被定義為允許在計(jì)算機(jī)系統(tǒng)和/或模塊和/或其他電子設(shè)備之間傳輸電子 數(shù)據(jù)的一個(gè)或多個(gè)數(shù)據(jù)鏈路。當(dāng)信息通過(guò)網(wǎng)絡(luò)或另一通信連接(硬連線、無(wú)線、或硬連線或 無(wú)線的組合)傳輸或提供給計(jì)算機(jī)時(shí),該計(jì)算機(jī)將該連接適當(dāng)?shù)匾暈閭鬏斀橘|(zhì)。傳輸介質(zhì) 可包括可用于攜帶計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置并可由通用或 專用計(jì)算機(jī)訪問(wèn)的網(wǎng)絡(luò)和/或數(shù)據(jù)鏈路。上述的組合也應(yīng)被包括在計(jì)算機(jī)可讀介質(zhì)的范圍 內(nèi)。此外,在到達(dá)各種計(jì)算機(jī)系統(tǒng)組件之后,計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的程 序代碼裝置可從傳輸介質(zhì)自動(dòng)轉(zhuǎn)移到計(jì)算機(jī)存儲(chǔ)介質(zhì)(或者相反)。例如,通過(guò)網(wǎng)絡(luò)或數(shù) 據(jù)鏈路接收到的計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)可被緩存在網(wǎng)絡(luò)接口模塊(例如,“NIC”)內(nèi) 的RAM中,然后最終被傳送到計(jì)算機(jī)系統(tǒng)RAM和/或計(jì)算機(jī)系統(tǒng)處的較不易失性的計(jì)算機(jī) 存儲(chǔ)介質(zhì)。由此,應(yīng)當(dāng)理解,計(jì)算機(jī)存儲(chǔ)介質(zhì)可被包括在同樣(或甚至主要)利用傳輸介質(zhì) 的計(jì)算機(jī)系統(tǒng)組件中。計(jì)算機(jī)可執(zhí)行指令例如包括,當(dāng)在處理器處執(zhí)行時(shí)使通用計(jì)算機(jī)、專用計(jì)算機(jī)、或 專用處理設(shè)備執(zhí)行某一功能或某組功能的指令和數(shù)據(jù)。計(jì)算機(jī)可執(zhí)行指令可以是例如二進(jìn) 制代碼、諸如匯編語(yǔ)言等中間格式指令、或甚至源代碼。盡管用結(jié)構(gòu)特征和/或方法動(dòng)作專 用的語(yǔ)言描述了本主題,但可以理解的是,所附權(quán)利要求書中定義的主題不必限于上述特 征或動(dòng)作。相反,上述特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例形式而公開的。本領(lǐng)域的技術(shù)人員將理解,本發(fā)明可以在具有許多類型的計(jì)算機(jī)系統(tǒng)配置的網(wǎng)絡(luò) 計(jì)算環(huán)境中實(shí)踐,這些計(jì)算機(jī)系統(tǒng)配置包括個(gè)人計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、消息 處理器、手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型 計(jì)算機(jī)、大型計(jì)算機(jī)、移動(dòng)電話、PDA、尋呼機(jī)、路由器、交換機(jī)等等。本發(fā)明也可以在其中通 過(guò)網(wǎng)絡(luò)鏈接(或者通過(guò)硬連線數(shù)據(jù)鏈路、無(wú)線數(shù)據(jù)鏈路,或者通過(guò)硬連線和無(wú)線數(shù)據(jù)鏈路 的組合)的本地和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)兩者都執(zhí)行任務(wù)的分布式系統(tǒng)環(huán)境中實(shí)踐。在分布式系統(tǒng)環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。一般而言,視圖通過(guò)查詢來(lái)接收數(shù)據(jù)。視圖還可以具有到變量的綁定,例如,來(lái)表 示視圖中什么被選擇。分析這些查詢可以用于確定合成是否有效、以及如何為合成的第二 視圖計(jì)算新的查詢。在合成視圖中,利用選擇變量并將其綁定到新的第一視圖的選擇參數(shù)。 重新編寫第二新的視圖的數(shù)據(jù)查詢來(lái)引用合成視圖中的選擇變量。圖1示出有助于構(gòu)成帶有鏈接的自動(dòng)創(chuàng)建的視圖的示例計(jì)算機(jī)體系結(jié)構(gòu)100。參 考圖1,計(jì)算機(jī)體系結(jié)構(gòu)100包括視圖合成模塊101、數(shù)據(jù)庫(kù)102、用戶界面控件103、以及合 成視圖配置104。如計(jì)算機(jī)體系結(jié)構(gòu)100中所描繪的,視圖合成模塊101可以接收合成命令113、查 詢111、和用戶界面控件103。查詢111可以被配置成在數(shù)據(jù)庫(kù)102中查詢指定數(shù)據(jù),例如 員工列表(例如,在結(jié)果114中)。用戶界面控件102還包括查詢112。查詢112可以被配 置成查詢從查詢111返回的指定數(shù)據(jù)的一部分(即,與結(jié)果114有關(guān)的一部分)的更詳細(xì) 的數(shù)據(jù),例如特定員工的所有任務(wù)。一般而言,查詢可以使用一個(gè)或多個(gè)查詢語(yǔ)言的組合來(lái) 編寫,查詢語(yǔ)言例如SQL、Visual Basic、微軟代碼名稱“Μ”語(yǔ)言、等等。當(dāng)在視圖合成模塊101處被接收時(shí),查詢112被配置成從用戶界面控件103(例 如,文本框)接收輸入來(lái)訪問(wèn)輸入源位置,所述輸入源位置定義了要得到其更詳細(xì)的數(shù)據(jù) 的指定數(shù)據(jù)(結(jié)果114)的一部分。合成命令113可以包括指示查詢111的數(shù)據(jù)視圖要與查詢112的數(shù)據(jù)視圖進(jìn)行組 合的指令。因此,在接收到合成命令113之后,視圖合成模塊101可以檢測(cè)到查詢111和查 詢112的視圖要被組合成合成視圖。響應(yīng)于檢測(cè)到視圖區(qū)域要被組合,視圖合成模塊101 為合成數(shù)據(jù)視圖創(chuàng)建配置(例如,合成視圖配置104)。創(chuàng)建合成數(shù)據(jù)視圖配置包括在合成視圖的控制下建立選擇變量。選擇變量可以存 儲(chǔ)標(biāo)識(shí)第一視圖中的數(shù)據(jù)元素的值。例如,視圖合成模塊101可以在合成視圖104的控制 下建立選擇變量121。創(chuàng)建合成數(shù)據(jù)視圖配置還可以包括配置用戶界面控件來(lái)用所接收的 值更新選擇變量。例如,視圖合成模塊101可以響應(yīng)于用戶輸入116來(lái)配置用戶界面控件 103來(lái)更新選擇變量121。創(chuàng)建合成數(shù)據(jù)視圖配置還可以包括重新編寫查詢來(lái)重新定向查 詢,以將存儲(chǔ)在選擇變量中的值用作查詢的源位置。例如,查詢重新編寫器106可以重新編 寫查詢112(如查詢112R)來(lái)使用存儲(chǔ)在選擇變量121中的值??梢詫?shí)例化所創(chuàng)建的配置來(lái)在顯示設(shè)備處呈現(xiàn)合成數(shù)據(jù)視圖。例如,可以在顯示 設(shè)備處實(shí)例化合成視圖104來(lái)呈現(xiàn)來(lái)自數(shù)據(jù)庫(kù)102的數(shù)據(jù)。在合成視圖104內(nèi),視圖132呈 現(xiàn)來(lái)自查詢111的結(jié)果??梢允褂貌樵?12來(lái)選擇視圖131中的元素的其他信息。例如, 查詢112R可以在數(shù)據(jù)庫(kù)102中查詢與視圖131中的元素有關(guān)的其他信息。該其他信息可 以在視圖132中呈現(xiàn)。圖2示出用于配置合成數(shù)據(jù)視圖的一示例方法200的流程圖。方法200將參考計(jì) 算機(jī)體系結(jié)構(gòu)100中所描繪的組件和數(shù)據(jù)來(lái)描述。方法200包括接收第一查詢的動(dòng)作(動(dòng)作201),所述第一查詢被配置成返回來(lái)自 數(shù)據(jù)庫(kù)的數(shù)據(jù)元素的第一視圖。例如,視圖合成模塊101可以接收查詢111。查詢111可以 被配置成返回來(lái)自數(shù)據(jù)庫(kù)102的數(shù)據(jù)元素的第一視圖。方法200包括接收第二查詢的動(dòng)作,所述第二查詢被配置成返回與從第一視圖中選擇的數(shù)據(jù)元素有關(guān)的數(shù)據(jù)元素的第二視圖,該第二查詢被配置成從用戶界面控件接收對(duì) 輸入源位置的指示(動(dòng)作202)。例如,視圖合成模塊101可以接收包含查詢112的用戶界 面控件103。查詢112可以被配置成返回與響應(yīng)于查詢111所返回的數(shù)據(jù)元素有關(guān)的數(shù)據(jù) 元素的第二視圖。在被接收時(shí),查詢112被配置成從用戶界面控件103接收該查詢準(zhǔn)則的 輸入。方法200包括檢測(cè)到第一和第二視圖要被組合到合成數(shù)據(jù)視圖中的動(dòng)作,該第 二視圖依賴于第一視圖,從而使得第二視圖與從第一視圖中選擇的數(shù)據(jù)元素有關(guān)(動(dòng)作 203)。例如,視圖合成模塊101可以接收合成命令113。合成命令113可以是用戶輸入的命 令或基于先前輸入的配置選項(xiàng)自動(dòng)生成的命令。一般而言,推斷第一視圖(例如,查詢111的視圖)和第二視圖(例如,查詢112 的視圖)之間的關(guān)系是可能的。例如,當(dāng)滿足合成的預(yù)先條件時(shí),可以推斷關(guān)系。預(yù)先條件 可以包括第一視圖(例如,查詢111的視圖)的選擇類型匹配第二視圖(例如,查詢112的 視圖)的源類型。在推斷這種關(guān)系之后,可以發(fā)出合成命令113。響應(yīng)于檢測(cè)到第一和第二視圖要被組合到合成數(shù)據(jù)視圖中,方法200包括為合成 數(shù)據(jù)視圖創(chuàng)建配置的動(dòng)作(動(dòng)作204)。例如,在接收到合成命令113之后,視圖合成模塊 101可以為合成視圖104創(chuàng)建配置。為合成視圖創(chuàng)建配置包括在合成視圖的控制下建立選擇變量,該選擇變量用于存 儲(chǔ)標(biāo)識(shí)第一視圖中的數(shù)據(jù)元素的值(動(dòng)作205)。例如,視圖合成模塊101可以在合成視圖 104的控制下建立選擇變量121。選擇變量121可以用于存儲(chǔ)標(biāo)識(shí)視圖131中的數(shù)據(jù)元素 的值。因此,選擇變量121本質(zhì)上扮演了用戶界面103的角色。為合成視圖創(chuàng)建配置包括配置用戶界面控件來(lái)更新選擇變量(動(dòng)作206)。例如, 視圖合成模塊101可以將UI更新122發(fā)送到用戶界面控件。UI更新122可以配置用戶界 面控件103(例如,文本框)來(lái)將所輸入的值存儲(chǔ)到選擇變量121中。例如,用戶界面控件 103可以接收標(biāo)識(shí)來(lái)自視圖131的數(shù)據(jù)元素的用戶輸入116。用戶界面控件103可以發(fā)送 更新117來(lái)將標(biāo)識(shí)數(shù)據(jù)元素的值存儲(chǔ)到選擇變量121中。為合成視圖創(chuàng)建配置包括重新編寫第二查詢來(lái)將存儲(chǔ)在選擇變量中的值用作第 二查詢的源位置(動(dòng)作207)。例如,查詢重新編寫器106可以將查詢112重新編寫成查詢 112R。查詢112R包括(指向選擇變量121)的指針124,所述指針I(yè)M將存儲(chǔ)在選擇變量 121中的值標(biāo)識(shí)為查詢112R的源位置。方法200包括在顯示設(shè)備處呈現(xiàn)合成數(shù)據(jù)視圖(動(dòng)作208)。例如,視圖131和132 可以在顯示設(shè)備處被呈現(xiàn)為合成視圖104。圖3示出一示例合成數(shù)據(jù)視圖302。針對(duì)數(shù)據(jù)庫(kù)301發(fā)出查詢311以獲得人員列 表。查詢311的結(jié)果被呈現(xiàn)在子視圖331中。隨后發(fā)出查詢312來(lái)查詢George的task(任 務(wù))(變量321的值)。查詢312的結(jié)果被呈現(xiàn)為子視圖332。因此,本發(fā)明的各實(shí)施例可以用于實(shí)現(xiàn)至少兩種不同的視圖合成。共享源合成可 以用于耦合顯示與同一實(shí)體有關(guān)的信息的兩個(gè)或更多視圖。在視圖具有選擇并且耦合的視 圖示出與所選實(shí)體有關(guān)的信息的情況下(例如,主/細(xì)節(jié)耦合),可以使用基于選擇的合成。在某些實(shí)施例中,視圖的數(shù)據(jù)由兩個(gè)屬性來(lái)確定源規(guī)范和導(dǎo)航路徑。導(dǎo)航路徑 在概念上是一個(gè)參數(shù)(Source (源))的函數(shù)。數(shù)據(jù)通過(guò)針對(duì)源對(duì)導(dǎo)航路徑求值來(lái)獲得。例如Source :People (42)Navigation path Source = > Tasks where Owner == Source這與包含 iTasks where Owner == People (42)的查詢條等價(jià)。該查詢通過(guò)將Navigation (導(dǎo)航)函數(shù)應(yīng)用于Source來(lái)生成QueryBar :Navigation (Source)Navigation路徑可以為空。一個(gè)不變性是導(dǎo)航路徑函數(shù)的參數(shù)匹配源的參數(shù)。這 種不變性是在創(chuàng)建視圖時(shí)建立的,否則操作可能被禁止。視圖還可以提供指示在該視圖中被選擇或可以被選擇的實(shí)體的類型的屬性。該屬 性可以用于考慮合成視圖和分層合成。選擇類型可以從視圖模板的規(guī)范中確定
Type SelectionKind = { "None",
"Any",//例如,樹、屬性視圖
"SameAsInputRecordType", //例如,通用列表視圖 "Specific" }//見 truth 的 SelectionType (選擇類型)
SelectionType: Type該模型因?yàn)橹辽賰蓚€(gè)原因是有利的基于選擇和屬性/關(guān)系非常適合開放工作臺(tái) 的外殼模型。選擇變成Source,而屬性/關(guān)系變成導(dǎo)航。該模型可以被概括成多步導(dǎo)航,諸 如例如Source = > (Tasks where Owner == Source). Select (t = > t. DueDate)共享源合成變得更易于實(shí)現(xiàn)因?yàn)閷ource屬性與Navigation路徑分開。為了用
共同的源來(lái)構(gòu)成兩個(gè)視圖,例如
Viewl: List(Source=People(42), Navigation=’’Source=>Tasks where
Owner==S ource, S electionType=Tasks) View2: List(Source=People(42), Navigation="Source=>Bugs where
AssignedTo=二Source,SelectionType=Bugs)合成之后,這得到
權(quán)利要求
1.一種在包括一個(gè)或多個(gè)處理器和系統(tǒng)存儲(chǔ)器的計(jì)算機(jī)系統(tǒng)處的用于配置合成數(shù)據(jù) 視圖的方法,所述方法包括檢測(cè)到第一和第二數(shù)據(jù)視圖要被組合到合成數(shù)據(jù)視圖中的動(dòng)作,所述第一數(shù)據(jù)視圖被 配置成響應(yīng)于第一查詢呈現(xiàn)來(lái)自數(shù)據(jù)庫(kù)的數(shù)據(jù)元素,所述第二數(shù)據(jù)視圖被配置成響應(yīng)于第 二查詢呈現(xiàn)與從所述第一視圖中選擇的數(shù)據(jù)元素有關(guān)的其他數(shù)據(jù)元素從而使得所述第二 數(shù)據(jù)視圖依賴于所述第一數(shù)據(jù)視圖中的數(shù)據(jù);響應(yīng)于檢測(cè)到所述第一和第二視圖要被組合到合成數(shù)據(jù)視圖中,為所述合成數(shù)據(jù)視圖 創(chuàng)建配置的動(dòng)作,包括在所述合成視圖的控制下建立選擇變量的動(dòng)作,所述選擇變量用于存儲(chǔ)標(biāo)識(shí)所述第一 視圖中的數(shù)據(jù)元素的值;所述處理器自動(dòng)地配置用戶界面控件來(lái)用所接收的值更新所述選擇變量的動(dòng)作;以及所述處理器自動(dòng)地重新編寫所述第二查詢來(lái)重新導(dǎo)向所述第二查詢以將所述選擇變 量中的值用作所述第二查詢的源位置的動(dòng)作;以及實(shí)例化所創(chuàng)建的配置來(lái)在顯示設(shè)備處呈 現(xiàn)所述合成數(shù)據(jù)視圖的動(dòng)作。
2.如權(quán)利要求1所述的方法,其特征在于,為所述合成數(shù)據(jù)視圖創(chuàng)建配置的動(dòng)作包括 為共享源合成視圖創(chuàng)建配置的動(dòng)作。
3.如權(quán)利要求1所述的方法,其特征在于,為所述合成數(shù)據(jù)視圖創(chuàng)建配置的動(dòng)作包括 為基于選擇的合成視圖創(chuàng)建配置的動(dòng)作。
4.如權(quán)利要求3所述的方法,其特征在于,為所述基于選擇的合成視圖創(chuàng)建配置的動(dòng) 作包括為主/細(xì)節(jié)耦合創(chuàng)建配置的動(dòng)作。
5.如權(quán)利要求3所述的方法,其特征在于,檢測(cè)到第一和第二數(shù)據(jù)視圖要被組合到合 成數(shù)據(jù)視圖中的動(dòng)作包括推斷所述第一數(shù)據(jù)視圖的選擇類型和所述第二數(shù)據(jù)視圖的源類 型之間的關(guān)系的動(dòng)作。
6.如權(quán)利要求5所述的方法,其特征在于,推斷所述第一數(shù)據(jù)視圖的選擇類型和所述 第二數(shù)據(jù)視圖的源類型之間的關(guān)系的動(dòng)作包括確定所述第一數(shù)據(jù)視圖的選擇類型匹配所 述第二數(shù)據(jù)視圖的源類型的動(dòng)作。
7.如權(quán)利要求1所述的方法,其特征在于,為所述合成數(shù)據(jù)視圖創(chuàng)建配置的動(dòng)作包括 為組合的共享源和基于選擇的合成視圖創(chuàng)建配置的動(dòng)作。
8.如權(quán)利要求1所述的方法,其特征在于,所述第一和第二查詢用從M和VisualBasic 中選擇的查詢語(yǔ)言來(lái)編寫。
9.一種供在計(jì)算機(jī)系統(tǒng)處使用的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品用于實(shí)現(xiàn)一種 用于配置合成數(shù)據(jù)視圖的方法,所述計(jì)算機(jī)程序產(chǎn)品包括其上存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令的 一個(gè)或多個(gè)計(jì)算機(jī)存儲(chǔ)介質(zhì),所述指令在處理器處執(zhí)行時(shí)使得所述計(jì)算機(jī)系統(tǒng)執(zhí)行所述方 法,所述方法包括以下動(dòng)作接收第一查詢,所述第一查詢被配置成返回來(lái)自數(shù)據(jù)庫(kù)的數(shù)據(jù)元素的第一視圖;接收第二查詢,所述第二查詢被配置成返回與從所述第一視圖中選擇的數(shù)據(jù)元素有 關(guān)的數(shù)據(jù)元素的第二視圖,所述第二查詢被配置成從用戶界面控件接收對(duì)輸入源位置的指 示;檢測(cè)到所述第一和第二視圖要被組合到合成數(shù)據(jù)視圖中,所述第二視圖依賴于所述第一視圖從而使得所述第二視圖與從所述第一視圖中選擇的數(shù)據(jù)元素有關(guān);響應(yīng)于檢測(cè)到所述第一和第二視圖要被組合到合成數(shù)據(jù)視圖中,為所述合成數(shù)據(jù)視圖 創(chuàng)建配置,包括在所述合成視圖的控制下建立選擇變量,所述選擇變量用于存儲(chǔ)標(biāo)識(shí)所述第一視圖中的數(shù)據(jù)元素的值;配置所述用戶界面控件來(lái)更新所述選擇變量;以及重新編寫所述第二查詢來(lái)將存儲(chǔ)在所述選擇變量中的值用作所述第二查詢的源位置;以及在所述顯示設(shè)備處呈現(xiàn)所述合成數(shù)據(jù)視圖。
10.如權(quán)利要求9所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,在被執(zhí)行時(shí)使得所述計(jì)算機(jī)系 統(tǒng)檢測(cè)到所述第一和第二視圖要被組合到合成視圖中的所述計(jì)算機(jī)可執(zhí)行指令包括在被 執(zhí)行時(shí)使得所述計(jì)算機(jī)系統(tǒng)推斷所述第一視圖的選擇類型和所述第二視圖的源類型之間 的關(guān)系的計(jì)算機(jī)可執(zhí)行指令。
11.如權(quán)利要求10所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述計(jì)算機(jī)可執(zhí)行指令在被 執(zhí)行時(shí)使得所述計(jì)算機(jī)系統(tǒng)推斷所述第一視圖的選擇類型和所述第二視圖的源類型之間 的關(guān)系包括所述計(jì)算機(jī)可執(zhí)行指令在被執(zhí)行時(shí)使得所述計(jì)算機(jī)系統(tǒng)確定所述第一視圖的 選擇類型匹配所述第二視圖的源類型的動(dòng)作。
12.如權(quán)利要求9所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,在被執(zhí)行時(shí)使得所述計(jì)算機(jī)系 統(tǒng)為所述合成數(shù)據(jù)視圖創(chuàng)建配置的計(jì)算機(jī)可執(zhí)行指令包括在被執(zhí)行時(shí)使得所述計(jì)算機(jī)系 統(tǒng)為共享源合成視圖創(chuàng)建配置的計(jì)算機(jī)可執(zhí)行指令。
13.如權(quán)利要求9所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,在被執(zhí)行時(shí)使得所述計(jì)算機(jī)系 統(tǒng)為所述合成數(shù)據(jù)視圖創(chuàng)建配置的計(jì)算機(jī)可執(zhí)行指令包括在被執(zhí)行時(shí)使得所述計(jì)算機(jī)系 統(tǒng)為基于選擇的合成視圖創(chuàng)建配置的計(jì)算機(jī)可執(zhí)行指令。
14.如權(quán)利要求13所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,在被執(zhí)行時(shí)使得所述計(jì)算機(jī) 系統(tǒng)為基于選擇的合成數(shù)據(jù)視圖創(chuàng)建配置的計(jì)算機(jī)可執(zhí)行指令包括在被執(zhí)行時(shí)使得所述 計(jì)算機(jī)系統(tǒng)為主/細(xì)節(jié)耦合創(chuàng)建配置的計(jì)算機(jī)可執(zhí)行指令。
15.如權(quán)利要求14所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,在被執(zhí)行時(shí)使得所述計(jì)算機(jī) 系統(tǒng)為主/細(xì)節(jié)耦合創(chuàng)建配置的所述計(jì)算機(jī)可執(zhí)行指令包括在被執(zhí)行時(shí)使得所述計(jì)算機(jī) 系統(tǒng)推斷所述第一數(shù)據(jù)視圖的選擇類型和所述第二數(shù)據(jù)視圖的源類型之間的關(guān)系的計(jì)算 機(jī)可執(zhí)行指令。
16.如權(quán)利要求9所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,在被執(zhí)行時(shí)使得所述計(jì)算機(jī)系 統(tǒng)為所述合成數(shù)據(jù)視圖創(chuàng)建配置的計(jì)算機(jī)可執(zhí)行指令包括在被執(zhí)行時(shí)使得所述計(jì)算機(jī)系 統(tǒng)為組合的共享源和基于選擇的合成視圖創(chuàng)建配置的計(jì)算機(jī)可執(zhí)行指令。
17.一種計(jì)算機(jī)系統(tǒng),所述計(jì)算機(jī)系統(tǒng)包括一個(gè)或多個(gè)處理器;系統(tǒng)存儲(chǔ)器;顯示設(shè)備;以及一種或多種計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)存儲(chǔ)介質(zhì)上存儲(chǔ)有表示視圖合成模塊的計(jì)算 機(jī)可執(zhí)行指令,所述視圖合成模塊被配置為接收第一查詢,所述第一查詢被配置成返回來(lái)自數(shù)據(jù)庫(kù)的數(shù)據(jù)元素的第一視圖; 接收第二查詢,所述第二查詢被配置成返回與從所述第一視圖中選擇的數(shù)據(jù)元素有 關(guān)的數(shù)據(jù)元素的第二視圖,所述第二查詢被配置成從用戶界面控件接收對(duì)輸入源位置的指 示;檢測(cè)到所述第一和第二視圖要被組合到合成數(shù)據(jù)視圖中,所述第二視圖依賴于所述第 一視圖從而使得所述第二視圖與從所述第一視圖中選擇的數(shù)據(jù)元素有關(guān); 響應(yīng)于檢測(cè)到所述第一和第二視圖要被組合到合成數(shù)據(jù)視圖中 在所述合成視圖的控制下建立選擇變量,所述選擇變量用于存儲(chǔ)標(biāo)識(shí)所述第一視圖中 的數(shù)據(jù)元素的值;配置所述用戶界面控件來(lái)更新所述選擇變量;以及重新編寫所述第二查詢來(lái)將存儲(chǔ)在所述選擇變量中的值用作所述第二查詢的源位置;以及在所述顯示設(shè)備處呈現(xiàn)所述合成數(shù)據(jù)視圖。
18.如權(quán)利要求17所述的系統(tǒng),其特征在于,所述視圖合成模塊被配置成檢測(cè)到所述 第一和第二視圖要被組合到合成數(shù)據(jù)視圖中包括所述視圖合成模塊被配置成檢測(cè)到所述 第一和第二視圖要被組合到共享源合成數(shù)據(jù)視圖中。
19.如權(quán)利要求17所述的系統(tǒng),其特征在于,所述視圖合成模塊被配置成檢測(cè)到所述 第一和第二視圖要被組合到合成數(shù)據(jù)視圖中包括所述視圖合成模塊被配置成檢測(cè)到所述 第一和第二視圖要被組合到基于選擇的合成數(shù)據(jù)視圖中。
20.如權(quán)利要求17所述的系統(tǒng),其特征在于,所述視圖合成模塊被配置成檢測(cè)到所述 第一和第二視圖要被組合到合成數(shù)據(jù)視圖中包括所述視圖合成模塊被配置成推斷所述第 一視圖的選擇類型和所述第二視圖的源類型之間的關(guān)系。
全文摘要
本發(fā)明涉及用于構(gòu)成帶有鏈接的自動(dòng)創(chuàng)建的視圖的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。一般而言,視圖通過(guò)查詢來(lái)接收數(shù)據(jù)。視圖還可以具有到變量的綁定,例如,來(lái)表示視圖中什么被選擇。分析這些查詢可以用于確定合成是否有效、以及如何為合成的第二視圖計(jì)算新的查詢。在合成視圖中,利用選擇變量并將其綁定到新的第一視圖的選擇參數(shù)。重新編寫第二新的視圖的數(shù)據(jù)查詢來(lái)引用合成視圖中的選擇變量。
文檔編號(hào)G06F17/30GK102142025SQ20111003735
公開日2011年8月3日 申請(qǐng)日期2011年1月28日 優(yōu)先權(quán)日2010年1月29日
發(fā)明者A·S·威廉姆斯, M·C·默里, S·M·丹頓 申請(qǐng)人:微軟公司