專利名稱:內(nèi)聯(lián)數(shù)據(jù)相關(guān)和分層數(shù)據(jù)集的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及數(shù)據(jù)處理中的數(shù)據(jù)相關(guān)和綁定。
背景技術(shù):
報告作者通常有顯示來自多個源的關(guān)聯(lián)數(shù)據(jù)的需求。在某些情況下,可以將關(guān)聯(lián)數(shù)據(jù)結(jié)合到返回單個數(shù)據(jù)集以供在報告中使用的單個查詢。然而,在許多情況下,底層數(shù)據(jù)提供者不支持這樣的結(jié)合或關(guān)聯(lián)數(shù)據(jù)是在異構(gòu)系統(tǒng)中。在此情況下,報告作者期望在報告自身內(nèi)執(zhí)行“結(jié)合”。此外,當存在獨立數(shù)據(jù)的多個集合時(“多個主干 _細節(jié)”——主干數(shù)據(jù)集包含主干數(shù)據(jù)而子數(shù)據(jù)集包含細節(jié)數(shù)據(jù)),即使數(shù)據(jù)提供者支持結(jié)合,但將所有數(shù)據(jù)一起結(jié)合到查詢中并且隨后試圖在報告內(nèi)重新分割數(shù)據(jù)既不實際也不高效。對于本機分層數(shù)據(jù)集的支持,報告系統(tǒng)當前僅支持表格行集合作為數(shù)據(jù)集中的數(shù)據(jù)。對于本機地支持分層數(shù)據(jù)的數(shù)據(jù)源,這一不匹配需要在數(shù)據(jù)可在報告內(nèi)被利用之前由報告系統(tǒng)對數(shù)據(jù)執(zhí)行的展平過程。取決于展平的樣式,這可以具有不希望的效果。數(shù)據(jù)被限于分層結(jié)構(gòu)的單個分支,這需要在子報告中執(zhí)行多個查詢來與數(shù)據(jù)重新相關(guān),或者數(shù)據(jù)被對角線化,這需要在報告內(nèi)仔細放置過濾器以重新分割數(shù)據(jù)。
發(fā)明內(nèi)容
下面提供了簡化的發(fā)明內(nèi)容,以便提供對此處所描述的一些新穎實施例的基本理解。本發(fā)明內(nèi)容不是詳盡的概述,并且它不旨在標識關(guān)鍵/重要元素或描繪本發(fā)明的范圍。 其唯一的目的是以簡化形式呈現(xiàn)一些概念,作為稍后呈現(xiàn)的更詳細描述的序言。所揭示的體系結(jié)構(gòu)提供了報告中的某些數(shù)據(jù)_綁定對象(一般作為先輩和子孫) 可以由報告作者配置以使用來自特定查詢結(jié)果的數(shù)據(jù),而不是從包含數(shù)據(jù)綁定對象中取數(shù)據(jù)。報告作者定義所包含的對象中的數(shù)據(jù)與容器中的數(shù)據(jù)之間的關(guān)系,從而允許子對象 (子孫的一種類型;父對象的直接子孫)的實例與父對象(先輩的一種類型;子對象的直接先輩)的實例相關(guān)。這一關(guān)系可以由于查詢結(jié)果之間的本征分層關(guān)系而對結(jié)合條件是顯式的或隱式的。使用被用于將子孫數(shù)據(jù)行與先輩數(shù)據(jù)行相關(guān)的顯式結(jié)合條件來便于子孫數(shù)據(jù)-綁定對象到不同數(shù)據(jù)集而不是先輩對象的聲明性綁定。另選地,可以基于兩個數(shù)據(jù)集之間的包含分層關(guān)系使用子孫數(shù)據(jù)行與先輩數(shù)據(jù)行之間的隱式相關(guān)來便于子孫數(shù)據(jù)_綁定對象到不同數(shù)據(jù)集而不是先輩對象的聲明性綁定。以上可以被多次利用于相同先輩對象內(nèi)的不同子孫對象。此外,提供了一種訪問來自先輩和/或子孫數(shù)據(jù)行的數(shù)據(jù)用于在當前數(shù)據(jù)_綁定對象內(nèi)的計算的方法。為了實現(xiàn)上述及相關(guān)目的,本文結(jié)合下面的描述和附圖來描述某些說明性方面。 這些方面指示了可以實踐本文所公開的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護的主題的范圍內(nèi)。結(jié)合附圖閱讀下面的詳細描述,其它優(yōu)點和新穎特征將變得顯而易見。
圖1示出了根據(jù)所公開的體系結(jié)構(gòu)的用于創(chuàng)建對象到數(shù)據(jù)集的聲明性綁定的相關(guān)系統(tǒng)。圖2示出了采用用于在報告文檔中配置數(shù)據(jù)-綁定對象與數(shù)據(jù)集之間的聲明性相關(guān)的創(chuàng)作工具的相關(guān)系統(tǒng)。圖3示出了嵌套數(shù)據(jù)區(qū)域結(jié)合的數(shù)據(jù)相關(guān)示例。圖4示出了嵌套分組結(jié)合的數(shù)據(jù)相關(guān)示例。圖5示出了矩陣結(jié)合。圖6示出了對等動態(tài)結(jié)合。圖7示出了使用基于查詢的來自數(shù)據(jù)集的數(shù)據(jù)提取的內(nèi)聯(lián)數(shù)據(jù)相關(guān)。圖8示出了使用基于查詢的來自數(shù)據(jù)集的數(shù)據(jù)提取的分層數(shù)據(jù)集。圖9示出了采用引用組件作為創(chuàng)作組件的一部分的系統(tǒng)。圖10示出了根據(jù)所公開的體系結(jié)構(gòu)的計算機實現(xiàn)的相關(guān)方法。圖11示出了圖10的方法的更多方面。圖12示出了執(zhí)行根據(jù)所公開的體系結(jié)構(gòu)的相關(guān)的計算系統(tǒng)的框圖。
具體實施例方式所揭示的體系結(jié)構(gòu)提供了報告中的某些數(shù)據(jù)_綁定對象(一般作為先輩和子孫) 可以由報告作者配置以使用來自特定查詢結(jié)果的數(shù)據(jù),而不是從包含數(shù)據(jù)綁定對象中取數(shù)據(jù)。報告作者定義所包含的對象中的數(shù)據(jù)與容器中的數(shù)據(jù)之間的關(guān)系,從而允許子對象 (子孫的一種類型;父對象的直接子孫)的實例與父對象(先輩的一種類型;子對象的直接先輩)的實例相關(guān)。這一關(guān)系可以由于查詢結(jié)果之間的本征分層關(guān)系而對結(jié)合條件顯式的或隱式的?,F(xiàn)在參考附圖,附圖中通篇使用相似的附圖標記表示相似的元件。在下面的描述中,為了進行說明,闡述了很多具體細節(jié)以便提供對本發(fā)明的全面理解。然而,顯而易見,可以在沒有這些具體細節(jié)的情況下實施各新穎實施例。在其它情況下,以框圖形式示出了公知的結(jié)構(gòu)和設(shè)備以便于描述它們。本發(fā)明將涵蓋落入所要求保護的主題的精神和范圍內(nèi)的所有修改、等效方案和替換方案。圖1 示出了根據(jù)所揭示的體系結(jié)構(gòu)的用于創(chuàng)建對象到數(shù)據(jù)集的聲明性綁定的相關(guān)系統(tǒng)100。系統(tǒng)100包括對數(shù)據(jù)-綁定對象102的安排以呈現(xiàn)來自相關(guān)聯(lián)的數(shù)據(jù)集104 的數(shù)據(jù)。配置組件106允許例如子孫數(shù)據(jù)_綁定對象108到數(shù)據(jù)集DS3的聲明性相關(guān),數(shù)據(jù)集DS3不同于先輩數(shù)據(jù)-綁定對象110的先輩(父)數(shù)據(jù)集DS1。數(shù)據(jù)-綁定對象102可以包括嵌套分組。配置組件106允許子孫分組到不同于關(guān)聯(lián)先輩分組的數(shù)據(jù)集的一數(shù)據(jù)集相關(guān)。數(shù)據(jù)對象102可以包括作為行分組或列分組分層結(jié)構(gòu)的成員的對象。配置組件106允許行分組對象到第一數(shù)據(jù)集(例如,數(shù)據(jù)集DSl)以及列分組對象到第二數(shù)據(jù)集(例如,數(shù)據(jù)集DS3)的聲明性相關(guān)。此外,行分組分層結(jié)構(gòu)與列分組分層結(jié)構(gòu)是獨立的,使得每一分層結(jié)構(gòu)包括分組的樹。樹中的每一分組可以是按照所揭示的體系結(jié)構(gòu)綁定到與其先輩分組不同的數(shù)據(jù)集。
子孫數(shù)據(jù)-綁定對象108可以被包含在先輩數(shù)據(jù)-綁定對象110中,并且可以基于顯式結(jié)合條件來將不同數(shù)據(jù)集DS3的子孫數(shù)據(jù)行與先輩數(shù)據(jù)集DS 1的先輩數(shù)據(jù)行聲明性地相關(guān)。子孫數(shù)據(jù)-綁定對象108可以被包含在先輩數(shù)據(jù)-綁定對象110中,并且可以基于不同數(shù)據(jù)集DS3與先輩數(shù)據(jù)集DSl之間的包含分層關(guān)系來將不同數(shù)據(jù)集DS3的子孫數(shù)據(jù)行與先輩數(shù)據(jù)集DSl的先輩數(shù)據(jù)行隱式地相關(guān)。 先輩數(shù)據(jù)-綁定對象110還可以包含多個不同的子孫數(shù)據(jù)-綁定對象。可以基于顯式結(jié)合條件以及對應(yīng)的不同數(shù)據(jù)集與先輩數(shù)據(jù)集DSl之間的包含分層關(guān)系,將不同的子孫數(shù)據(jù)_綁定對象與對應(yīng)的不同數(shù)據(jù)集聲明性地相關(guān)。配置組件106允許訪問數(shù)據(jù)-綁定對象的聲明性特性以控制用于數(shù)據(jù)_綁定對象的數(shù)據(jù)集。此處將更詳細地描述這些和其他方面。圖2示出了采用用于在報告文檔204中配置數(shù)據(jù)-綁定對象與數(shù)據(jù)集之間的聲明性相關(guān)的創(chuàng)作工具202的相關(guān)系統(tǒng)200。對于特定數(shù)據(jù)-綁定對象集(在報告服務(wù)的情況下=DataRegion(數(shù)據(jù)區(qū)域)、Group(分組)、TablixCell (表矩陣單元)、 ChartDataPoint (圖表數(shù)據(jù)點)以及DataValue (數(shù)據(jù)值)),使得允許控制用于該對象的數(shù)據(jù)集的一組聲明性特性對報告作者可用。默認地,用于對象的數(shù)據(jù)取自其包含對象。報告中的頂層對象被顯式地綁定到一數(shù)據(jù)集。子孫對象可以被顯式地綁定到不是由先輩對象使用的數(shù)據(jù)集的一數(shù)據(jù)集。當報告作者以此方式覆蓋數(shù)據(jù)綁定時,還可以指定一組結(jié)合條件。 在綁定到子孫對象的數(shù)據(jù)集固有地是先輩對象的數(shù)據(jù)集的子孫數(shù)據(jù)集的事件中,子孫中的行被自動地與先輩中的行相關(guān)。如此處描述的所有示例,對于內(nèi)聯(lián)數(shù)據(jù)相關(guān),指定了結(jié)合條件,對于分層數(shù)據(jù)集, 沒有指定結(jié)合條件,因為數(shù)據(jù)相關(guān)關(guān)系是隱式的。圖3示出了嵌套數(shù)據(jù)區(qū)域(DR)結(jié)合300的數(shù)據(jù)相關(guān)示例。最基本的情況是嵌套數(shù)據(jù)區(qū)域(DR2)可以從數(shù)據(jù)集DS2中取數(shù)據(jù),數(shù)據(jù)集DS2與其先輩數(shù)據(jù)區(qū)域(DRl)的數(shù)據(jù)集DSl不同。隨后將數(shù)據(jù)集DSl與數(shù)據(jù)集DS2相關(guān),使得數(shù)據(jù)集DS2的行現(xiàn)在以先輩-子孫 (例如,父-子)關(guān)系與數(shù)據(jù)集DSl的行相關(guān)。用戶可以經(jīng)由配置組件來定義查詢,所述配置組件允許訪問多個不同的可能的數(shù)據(jù)源來拉取供呈現(xiàn)的數(shù)據(jù)。在數(shù)據(jù)集DSl與DS2之間建立結(jié)合條件(例如,F(xiàn)IELDS ! DATASET1FIELDNAME = FIELDS ! DATASET2FIELDNAME(字段!數(shù)據(jù)集1字段名=字段!數(shù)據(jù)集2字段名))。圖4示出了嵌套分組結(jié)合400的數(shù)據(jù)相關(guān)示例。在此情況下,考慮單個數(shù)據(jù)-綁定對象402 (表矩陣-作為在被組織成行和列的單元中顯式報告數(shù)據(jù)的布局報告項的數(shù)據(jù)區(qū)域),包括行的外分組RowGroupl (行分組1)、行的內(nèi)分組RowGroup2 (行分組2)、單元Cell 以及列Col。行的外分組RowGroupl從數(shù)據(jù)集DSl中取其數(shù)據(jù)。行的內(nèi)分組RoWGroup2從第二數(shù)據(jù)集DS2(它經(jīng)由分層結(jié)構(gòu)或顯式結(jié)合與第一數(shù)據(jù)集DSl關(guān)聯(lián))中取其數(shù)據(jù)。表矩陣的單元Cel 1中的數(shù)據(jù)可以來自第二數(shù)據(jù)集DS2,或可任選地,來自又一第三數(shù)據(jù)集DS3 (它隨后經(jīng)由分層結(jié)構(gòu)或顯式結(jié)合與第二數(shù)據(jù)集DS2關(guān)聯(lián))。為此,對行分層結(jié)構(gòu)(不是對列)執(zhí)行分組。例如,在最外分組RowGroupl中,可以通過City (城市)來分組,行的內(nèi)分組RowGroup2可以是Customer (顧客),以及Cell (單元)可以是Sales(銷售)信息。城市列表、顧客列表、銷售列表的數(shù)據(jù)可以來自不同的數(shù)據(jù)存儲,而不是來自單個查詢。這里,外分組RowGroupl從數(shù)據(jù)集DSl中檢索數(shù)據(jù),內(nèi)分組R0WGr0Up2從數(shù)據(jù)集DS2中檢索其數(shù)據(jù),并且在內(nèi)部,使這些細節(jié)綁定到數(shù)據(jù)集DS3。由此, 數(shù)據(jù)來自不同的數(shù)據(jù)集。用戶配置的聲明性相關(guān)是通過數(shù)據(jù)集DSl與DS2、以及數(shù)據(jù)集DS2 與DS3之間的結(jié)合的方式的。 圖5示出了矩陣結(jié)合500。矩陣顯示了以行和列分組的數(shù)據(jù)。在此情況下,表矩陣的行分層結(jié)構(gòu)和列分層結(jié)構(gòu)分別取自不同的相應(yīng)數(shù)據(jù)集DSl和DS2。表矩陣的單元Cell 中的數(shù)據(jù)來自第三數(shù)據(jù)集DS3,該第三數(shù)據(jù)集DS3與由行和列分層結(jié)構(gòu)的最內(nèi)部的成員使用的數(shù)據(jù)集DSl和DS2關(guān)聯(lián)(經(jīng)由分層結(jié)構(gòu)或結(jié)合)。這里,結(jié)合條件將數(shù)據(jù)集DS1、DS2、 以及DS3相關(guān)。注意,可能存在用不同的結(jié)合條件在矩陣中多次使用相同的數(shù)據(jù)集的情況。例如,考慮在矩陣中使用的City (城市)數(shù)據(jù)集以及通過源和目的城市來計算運送的 Shipment (運送)數(shù)據(jù)集。在此情況下,對列和行分層結(jié)構(gòu)兩者使用相同的數(shù)據(jù)集,但被用于與關(guān)聯(lián)單元中的數(shù)據(jù)的結(jié)合條件對每一分層結(jié)構(gòu)不同。出于此原因,在分組/數(shù)據(jù)區(qū)域處定義結(jié)合,而不是僅在數(shù)據(jù)集處(盡管在數(shù)據(jù)集上定義的結(jié)合條件通常足夠默認使用) 定義結(jié)合。圖6示出了對等動態(tài)結(jié)合600。將此情況擴展到覆蓋對等動態(tài)成員示出了每一列分層結(jié)構(gòu)成員ColumnGroup (列分組)、或行分層結(jié)構(gòu)成員RowGroupl和RowGroup2可以被綁定到分開的數(shù)據(jù)集。這里,兩個不同的行分組是相鄰的并且基本上是不關(guān)聯(lián)的。結(jié)果,表矩陣中的每一單元可以被綁定到不同的數(shù)據(jù)集(具有與每一分層結(jié)構(gòu)上對應(yīng)最內(nèi)部的分層結(jié)構(gòu)成員的關(guān)系)。例如,每一年有一列(C0lumnGr0up(列分組)),并且用戶希望看到對于每一年的按Product(產(chǎn)品)的細目分類(RowGroupK行分組1))。分開地,用戶希望看到按 Region(地區(qū))的利潤的細目分類(R0WGr0Up2(行分組2))。這可按照不同方式來選擇。 另外地,用戶希望將這一信息插入相同的數(shù)據(jù)-綁定對象中。在Products(產(chǎn)品)的情況下,RoWGroupl(行分組1)被綁定到產(chǎn)品列表(DSl)。RoWGroup2 (行分組2)被綁定到 Regions (區(qū)域)列表(DS2)。ColumnGroup (列分組)被綁定到年列表的數(shù)據(jù)集DS3。因為存在銷售和利潤的完全不同的數(shù)據(jù)源,所以第一單元Celll的Sales (銷售)被綁定到數(shù)據(jù)集DS4,并且第二單元Cell2被綁定到數(shù)據(jù)集DS5。注意,在數(shù)據(jù)集DS4僅與數(shù)據(jù)集DSl和 DS3 (不是DSl或DS5)之間提供了結(jié)合條件,其中數(shù)據(jù)集DS5通過結(jié)合條件僅與數(shù)據(jù)集DS2 和DS3相關(guān)。圖7示出了使用基于查詢的來自數(shù)據(jù)集的數(shù)據(jù)提取的內(nèi)聯(lián)數(shù)據(jù)相關(guān)700。這里,盡管可以采用這樣的相關(guān),但未示出結(jié)合??梢曰诓樵僎l將來自數(shù)據(jù)集DSl的數(shù)據(jù)拉取到相關(guān)聯(lián)的數(shù)據(jù)-綁定對象(數(shù)據(jù)區(qū)域(DR1))。類似地,可以基于查詢Q2將來自數(shù)據(jù)集DS2 的數(shù)據(jù)拉取到相關(guān)聯(lián)的數(shù)據(jù)_綁定對象(數(shù)據(jù)區(qū)域(DR2))。當使用嵌套在數(shù)據(jù)區(qū)域DRl內(nèi)部以及數(shù)據(jù)區(qū)域DR2內(nèi)部的數(shù)據(jù)集時,可以采用結(jié)合條件??紤]旨在示出顧客及其銷售的報告。顧客查詢(Ql)可返回關(guān)于諸如姓、名、以及顧客ID等消息的列表。銷售查詢(Q2)可隨返回關(guān)于諸如所購買的產(chǎn)品名稱、進行銷售的日期、質(zhì)量以及顧客ID等消息的列表。可隨后經(jīng)由結(jié)合條件將兩個結(jié)構(gòu)數(shù)據(jù)集DSl和DS2 相關(guān)。然而,如果地址數(shù)據(jù)源支持分層數(shù)據(jù)集,則單個查詢可以有效地返回多個數(shù)據(jù)集。圖8示出了使用基于查詢的來自數(shù)據(jù)集的數(shù)據(jù)提取的分層數(shù)據(jù)集800。這里,單個查詢Ql得到數(shù)據(jù)集DSl和DS2兩者。如在以上示例中,返回顧客和銷售信息兩者??梢郧短椎胤祷厮羞@些信息(正如在XML文件中那樣),但這些信息被作為像兩個數(shù)據(jù)集那樣內(nèi)部地對待——一個是顧客的(數(shù)據(jù)集DSl),一個是銷售的(數(shù)據(jù)集DS2)??梢赃壿嬌舷驍?shù)據(jù)集DS2信息指示在數(shù)據(jù)集DSl與DS2之間存在結(jié)合,這意味著數(shù)據(jù)集DS2信息被固有地與數(shù)據(jù)集DSl信息相關(guān)。因為從數(shù)據(jù)源到達的數(shù)據(jù)是預(yù)嵌套的,所以難以將數(shù)據(jù)分裂開。 由此,當使用數(shù)據(jù)區(qū)域DRl中的數(shù)據(jù)集DSl以及數(shù)據(jù)區(qū)域DR2中的數(shù)據(jù)集DS2時,知道這些對象是預(yù)嵌套的并且不需要創(chuàng)作該結(jié)合。圖9示出了采用引用組件902作為創(chuàng)作組件202的一部分的系統(tǒng)900。引用組件 902允許建立對先輩和/或子孫數(shù)據(jù)_綁定對象的先輩和/或子孫引用,并且基于先輩和/ 或子孫引用來檢索并聚集與先輩和/或子孫數(shù)據(jù)_綁定對象關(guān)聯(lián)的數(shù)據(jù)值。除了相關(guān)數(shù)據(jù)之外,在報告中領(lǐng)會計算內(nèi)的相關(guān)的數(shù)據(jù)是合乎需要的??梢砸缘讓颖磉_來展示語言以達到先輩數(shù)據(jù)集。經(jīng)由上下文-敏感的“范圍”集合(或?qū)?shù)據(jù)-綁定對象的引用)來提供用于訪問來自先輩和/或子孫數(shù)據(jù)行以供在當前數(shù)據(jù)_綁定對象內(nèi)計算的能力。通過訪問這一集合,可以檢索先輩范圍的數(shù)據(jù)值。例如,Scopes ("ParentGroup"). Fields ("Fieldl ”). Value (范圍(“父分組”).字段(“字段1”).值)返回來自綁定到ParentGroup (父分組) 的數(shù)據(jù)集的行的Fieldl (字段1)的值,這一值與在其中使用此表達的數(shù)據(jù)綁定對象中的當前行相對應(yīng)。類似地,可以檢索并聚集子孫范圍的數(shù)據(jù)值。例如,Sum (Scopes (“ChildGroup”). Fields ( “Fieldl”).Value)(求和(范圍(“子分組”).字段(“字段1”)·值))對來自綁定到ChildGroup (子分組)的數(shù)據(jù)集的行的Fieldl (字段1)的值進行求和,這些值與在其中使用此表達的數(shù)據(jù)綁定對象中的當前行相對應(yīng)。 由此,從子孫對象內(nèi),可以訪問來自先輩對象(先輩分組)的數(shù)據(jù),并且隨后從該先輩分組中獲得特定值。這也可以相反地執(zhí)行。換言之,可以從先輩分組中獲得所包含的子孫分組的數(shù)據(jù)。換言之,提供了包括數(shù)據(jù)-綁定對象的安排以供呈現(xiàn)來自相關(guān)聯(lián)的數(shù)據(jù)集的數(shù)據(jù)的相關(guān)系統(tǒng),允許子孫數(shù)據(jù)-綁定對象與不同于先輩數(shù)據(jù)-綁定對象的先輩數(shù)據(jù)集的一數(shù)據(jù)集的聲明性相關(guān)的配置組件,該配置組件允許訪問數(shù)據(jù)_綁定對象的聲明性特性以供控制用于數(shù)據(jù)_綁定對象的數(shù)據(jù)集。該系統(tǒng)還包括在數(shù)據(jù)_綁定對象之間建立引用以檢索來自先輩或子孫數(shù)據(jù)-綁定對象中的至少一個的數(shù)據(jù)值的引用組件,該引用組件允許建立對先輩或子孫數(shù)據(jù)-綁定對象中的至少一個的先輩或子孫引用中的至少一個,并且基于先輩或子孫引用中的至少一個來檢索與先輩或子孫對象中的至少一個關(guān)聯(lián)的數(shù)據(jù)值。子孫數(shù)據(jù)_綁定對象可以被包含在先輩數(shù)據(jù)_綁定對象中,并且基于顯式結(jié)合條件將不同數(shù)據(jù)集的子孫數(shù)據(jù)行與先輩數(shù)據(jù)集的先輩數(shù)據(jù)行聲明性地相關(guān)。子孫數(shù)據(jù)_綁定對象可以被包含在先輩數(shù)據(jù)_綁定對象中,并且基于不同數(shù)據(jù)集與先輩數(shù)據(jù)集之間的包含分層結(jié)構(gòu)關(guān)系將不同數(shù)據(jù)集的子孫數(shù)據(jù)行與先輩數(shù)據(jù)集的先輩數(shù)據(jù)行隱式地相關(guān)。先輩數(shù)據(jù)_綁定對象包含多個不同的子孫數(shù)據(jù)_綁定對象,基于顯式結(jié)合條件、以及對應(yīng)地不同的數(shù)據(jù)集與先輩數(shù)據(jù)集之間的包含分層關(guān)系來將不同的子孫數(shù)據(jù)_綁定對象與對應(yīng)地不同的數(shù)據(jù)集聲明性地相關(guān)。數(shù)據(jù)_綁定對象包括具有嵌套分組的對象、具有行分組分層結(jié)構(gòu)和列分組分層結(jié)構(gòu)的對象,配置組件允許將嵌套分組與不同于關(guān)聯(lián)的先輩分組的數(shù)據(jù)集的一數(shù)據(jù)集相關(guān),并且配置組件允許將行分組與第一數(shù)據(jù)集、將列分組與第二數(shù)據(jù)集、以及將數(shù)據(jù)-綁定對象的單元與第三數(shù)據(jù)集聲明性地相關(guān)。此處所包括的是表示用于執(zhí)行所揭示的體系結(jié)構(gòu)的新穎方面的示例性方法的一組流程圖。盡管出于解釋簡明的目的,此處例如以流圖或流程圖形式示出的一個或多個方法被示出并描述為一系列動作,但是可以理解和明白,各方法不受動作的次序的限制,因為根據(jù)本發(fā)明,某些動作可以按與此處所示并描述的不同的次序和/或與其它動作同時發(fā)生。例如,本領(lǐng)域技術(shù)人員將會明白并理解,方法可被替換地表示為一系列相互關(guān)聯(lián)的狀態(tài)或事件,諸如以狀態(tài)圖的形式。此外,并非在一方法中示出的所有動作都是新穎實現(xiàn)所必需的。圖10示出了根據(jù)所揭示的體系結(jié)構(gòu)的計算機實現(xiàn)的相關(guān)方法。在1000,在文檔中安排數(shù)據(jù)-綁定對象以供呈現(xiàn)。在1002,將頂層數(shù)據(jù)-綁定對象綁定到頂層數(shù)據(jù)集。在 1004,將子孫數(shù)據(jù)-綁定對象與不同于頂層數(shù)據(jù)集的一數(shù)據(jù)集聲明性地綁定。在1006,基于分層結(jié)構(gòu)經(jīng)由顯式結(jié)合條件或隱式相關(guān)對數(shù)據(jù)集進行關(guān)聯(lián)。圖11示出了圖10的方法的更多方面。在1100,展示數(shù)據(jù)-綁定對象的聲明性特性以控制數(shù)據(jù)_綁定對象被綁定到哪些數(shù)據(jù)集。在1102,在數(shù)據(jù)-綁定對象之間應(yīng)用引用以檢索來自先輩或子孫數(shù)據(jù)_綁定對象中的至 少一個的數(shù)據(jù)值。在1104,基于不同數(shù)據(jù)集與先輩數(shù)據(jù)集之間的包含分層關(guān)系,用子孫數(shù)據(jù)行與先輩數(shù)據(jù)行之間的隱式相關(guān)來將子孫數(shù)據(jù)_綁定對象與不同于先輩數(shù)據(jù)_綁定對象的一數(shù)據(jù)集聲明性地綁定。在1106,將數(shù)據(jù)_綁定對象的外分組、數(shù)據(jù)_綁定對象的內(nèi)分組(例如,行或列)、以及數(shù)據(jù)_綁定對象的單元與對應(yīng)地不同的數(shù)據(jù)集聲明性地綁定,并且經(jīng)由分層結(jié)構(gòu)或結(jié)合條件來與數(shù)據(jù)集關(guān)聯(lián)。在1108,將數(shù)據(jù)-綁定對象的行分組、數(shù)據(jù)-綁定對象的列分組、以及數(shù)據(jù)-綁定對象的單元與對應(yīng)地不同的數(shù)據(jù)集聲明性地綁定,并且經(jīng)由結(jié)合條件來與數(shù)據(jù)集關(guān)聯(lián)。如在本申請中所使用的,術(shù)語“組件”和“系統(tǒng)”旨在表示計算機相關(guān)的實體,其可以是硬件、硬件和軟件的組合、軟件、或者執(zhí)行中的軟件。例如,組件可以是,但不限于,諸如處理器、芯片存儲器、大容量存儲設(shè)備(例如,光驅(qū)、固態(tài)驅(qū)動器、和/或磁存儲介質(zhì)驅(qū)動器)、以及計算機等有形組件,以及諸如運行在處理器上的進程、對象、可執(zhí)行碼、模塊、執(zhí)行的線程和/或程序等軟件組件。作為說明,在服務(wù)器上運行的應(yīng)用和服務(wù)器兩者都可以是組件。一個或多個組件可以駐留在進程和/或執(zhí)行的線程內(nèi),且組件可以位于一臺計算機上和/或分布在兩臺或更多的計算機之間。詞語“示例性”此處可用于表示用作示例、實例或說明。在此被描述為“示例性”的任何方面或設(shè)計并不一定要被解釋為相比其它方面或設(shè)計更優(yōu)選或有利?,F(xiàn)在參考圖12,示出了執(zhí)行根據(jù)所揭示的體系結(jié)構(gòu)的相關(guān)的計算系統(tǒng)1200的框圖。為了提供用于其各方面的附加上下文,圖12及以下討論旨在提供對其中可實現(xiàn)各方面的合適的計算系統(tǒng)1200的簡要概括描述。盡管以上描述是在可在一個或多個計算機上運行的計算機可執(zhí)行指令的一般上下文中進行的,但是本領(lǐng)域的技術(shù)人員將認識到,新穎實施例也可結(jié)合其它程序模塊和/或作為硬件和軟件的組合來實現(xiàn)。用于實現(xiàn)各方面的計算系統(tǒng)1200包括計算機1202,其具有處理單元1204、諸如系統(tǒng)存儲器1206等的計算機可讀存儲、以及系統(tǒng)總線1208。處理單元1204可以是各種市場上可買到的處理器中的任一種,諸如單處理器、多處理器、單核單元以及多核單元。此外,本領(lǐng)域的技術(shù)人員可以理解,新穎方法可用其它計算機系統(tǒng)配置來實施,包括小型機、大型計算機、以及個人計算機(例如、臺式、膝上型等)、手持式計算設(shè)備、基于微處理器的或可編程消費電子產(chǎn)品等,其每一個都可在操作上耦合到一個或多個相關(guān)聯(lián)的設(shè)備。 系統(tǒng)存儲器1206可包括計算機可讀存儲(物理存儲介質(zhì)),如易失性(VOL)存儲器1210 (例如,隨機存取存儲器(RAM))和非易失性存儲器(NON-VOL) 1212 (如R0M、EPR0M、 EEPROM等)?;据斎?輸出系統(tǒng)(BIOS)可被存儲在非易失性存儲器1212中,并且包括諸如在啟動期間便于在計算機1202內(nèi)的組件之間傳遞數(shù)據(jù)和信號的基本例程。易失性存儲器1210還可包括諸如靜態(tài)RAM等高速RAM來用于高速緩存數(shù)據(jù)。系統(tǒng)總線1208提供了用于包括,但不限于系統(tǒng)存儲器1206的系統(tǒng)組件到處理單元1204的接口。系統(tǒng)總線1208可以是若干種總線結(jié)構(gòu)中的任一種,這些總線結(jié)構(gòu)還可使用各類市場上可購買到的總線體系結(jié)構(gòu)中的任一種互連到存儲器總線(帶有或沒有存儲器控制器)以及外圍總線(例如,PCI、PCIe、AGP、LPC等)。計算機1202還包括機器可讀存儲子系統(tǒng)1214以及用于將存儲子系統(tǒng)1214接口到系統(tǒng)總線1208和其他所需計算機組件的存儲接口 1216。存儲子系統(tǒng)1214 (物理存儲介質(zhì))可包括例如硬盤驅(qū)動器(HDD)、磁軟盤驅(qū)動器(FDD)和/或光盤存儲驅(qū)動器(例如, ⑶-ROM驅(qū)動器、DVD驅(qū)動器)中的一種或多種。存儲接口 1216可包括諸如,例如EIDE、ATA、 SATA禾口 IEEE 1394等接口技術(shù)。一個或多個程序和數(shù)據(jù)可被存儲在存儲器子系統(tǒng)1206、機器可讀和可移動存儲器子系統(tǒng)1218(例如,閃存驅(qū)動器形狀因子技術(shù))和/或存儲子系統(tǒng)1214(例如,光、磁、固態(tài))中,包括操作系統(tǒng)1220、一個或多個應(yīng)用程序1222、其他程序模塊1224以及程序數(shù)據(jù) 1226。一個或多個應(yīng)用程序1222、其他程序模塊1224以及程序數(shù)據(jù)1226可包括例如圖 1的系統(tǒng)100的實體和組件、圖2的系統(tǒng)200的實體和組件、圖3-8的示例、圖9的系統(tǒng)900 的實體和組件、以及圖10和圖11的流程圖所表示的方法。一般而言,程序包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、方法、數(shù)據(jù)結(jié)構(gòu)、其它軟件組件等等。操作系統(tǒng)1220、應(yīng)用程序1222、模塊1224和/或數(shù)據(jù)1226的全部或部分也可被高速緩存在諸如易失性存儲器1210等的存儲器中。應(yīng)該明白,所揭示的體系結(jié)構(gòu)可以用各種市場上可購得的操作系統(tǒng)或操作系統(tǒng)的組合(例如,作為虛擬機)來實施。存儲子系統(tǒng)1214和存儲器子系統(tǒng)(1206和1218)用作用于數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)、計算機可執(zhí)行指令等的易失性和非易失性存儲的計算機可讀介質(zhì)。指令可以存在于非瞬態(tài)介質(zhì)。這些指令當由計算機或其他機器執(zhí)行時,可使得計算機或其他機器執(zhí)行方法的一個或多個動作。執(zhí)行動作的指令可被存儲在一個介質(zhì)上,或者可跨多個介質(zhì)存儲,使得指令共同出現(xiàn)在一個或多個計算機可讀存儲介質(zhì)上,而不管所有指令是否都在同一介質(zhì)上。計算機可讀介質(zhì)可以是可由計算機1202訪問的任何可用介質(zhì),且包括可移動和不可移動的易失性和非易失性、內(nèi)部和/或外部介質(zhì)。對于計算機1202,介質(zhì)以任意適當?shù)臄?shù)字格式容納數(shù)據(jù)的存儲。本領(lǐng)域的技術(shù)人員應(yīng)當理解,可使用其他類型的計算機可讀介質(zhì),如zip驅(qū)動器、磁帶、閃存卡、閃存驅(qū)動器、磁帶盒等來存儲用于執(zhí)行所揭示的體系結(jié)構(gòu)的新穎方法的計算機可執(zhí)行指令。用戶可以使用諸如鍵盤和鼠標等外部用戶輸入設(shè)備1228來與計算機1202、程序和數(shù)據(jù)交互。其它外部用戶輸入設(shè)備1228可包括話筒、IR(紅外)遠程遙控器、操縱桿、游戲手柄、照相機識別系統(tǒng)、指示筆、觸摸屏、姿勢系統(tǒng)(例如,眼移動、頭移動等)和/或類似物。在計算機1202是例如便攜式計算機的情況下,用戶可以使用諸如觸摸墊、話筒、鍵盤等板載用戶輸入設(shè)備1230來與計算機1202、程序和數(shù)據(jù)交互。這些和其他輸入設(shè)備通過輸入 /輸出(I/O)設(shè)備接口 1232經(jīng)由系統(tǒng)總線1208連接到處理單元1204,但也可通過其它接口連接,如并行端口、IEEE 1394串行端口、游戲端口、USB端口、IR接口等等。I/O設(shè)備接口 1232還便于使用輸出外圍設(shè)備1234,如打印機、音頻設(shè)備、照相機設(shè)備等,如聲卡和/或板載音頻處理能力。一個或多個圖形接口 1236 (通常也稱為圖形處理單元(GPU))提供在計算機1202 和外部顯示器1238 (例如,IXD、等離子)和/或板載顯示器1240 (例如,對于便攜式計算機)之間的圖形和視頻信號。圖形接口 1236也可作為計算機系統(tǒng)板的一部分來制造。計算機1202可以使用經(jīng)由有線/無線通信子系統(tǒng)1242到一個或多個網(wǎng)絡(luò)和/或其他計算機的邏輯連接在聯(lián)網(wǎng)環(huán)境(例如,基于IP的)中操作。其他計算機可包括工作站、 服務(wù)器、路由器、個人計算機、基于微處理器的娛樂設(shè)備、對等設(shè)備或其他常見的網(wǎng)絡(luò)節(jié)點, 并且通常包括以上相對于計算機1202描述的許多或所有元件。邏輯連接可包括到局域網(wǎng) (LAN)、 廣域網(wǎng)(WAN)熱點等的有線/無線連接。LAN和WAN聯(lián)網(wǎng)環(huán)境常見于辦公室和公司, 并且方便了諸如內(nèi)聯(lián)網(wǎng)等企業(yè)范圍計算機網(wǎng)絡(luò),所有這些都可連接到例如因特網(wǎng)等全球通信網(wǎng)絡(luò)。當在聯(lián)網(wǎng)環(huán)境中使用時,計算機1202經(jīng)由有線/無線通信子系統(tǒng)1242 (例如,網(wǎng)絡(luò)接口適配器、板載收發(fā)機子系統(tǒng)等)連接到網(wǎng)絡(luò)來與有線/無線網(wǎng)絡(luò)、有線/無線打印機、有線/無線輸入設(shè)備1244等通信。計算機1202可包括用于通過網(wǎng)絡(luò)建立通信的調(diào)制解調(diào)器或其他裝置。在聯(lián)網(wǎng)環(huán)境中,相對于計算機1202的程序和數(shù)據(jù)可被存儲在遠程存儲器/存儲設(shè)備中,如與分布式系統(tǒng)相關(guān)聯(lián)。應(yīng)該理解,所示網(wǎng)絡(luò)連接是示例性的,并且可以使用在計算機之間建立通信鏈路的其他手段。計算機1202可用于使用諸如IEEE 802. xx標準家族等無線電技術(shù)來與有線/無線設(shè)備或?qū)嶓w通信,例如在操作上安置在與例如打印機、掃描儀、臺式和/或便攜式計算機、個人數(shù)字助理(PDA)、通信衛(wèi)星、任何一件與無線可檢測標簽相關(guān)聯(lián)的設(shè)備或位置(例如,電話亭、報亭、休息室)以及電話的無線通信(例如,IEEE 802. 11空中調(diào)制技術(shù))中的無線設(shè)備。這至少包括用于熱點的Wi-Fi (即無線保真)、WiMax和藍牙 無線技術(shù)。由此,通信可以是如對于常規(guī)網(wǎng)絡(luò)那樣的預(yù)定義結(jié)構(gòu),或者僅僅是至少兩個設(shè)備之間的自組織(ad hoc)通信。Wi-Fi網(wǎng)絡(luò)使用稱為IEEE 802. llx(a、b、g等等)的無線電技術(shù)來提供安全、可靠、快速的無線連接。Wi-Fi網(wǎng)絡(luò)可用于將計算機彼此連接、連接到因特網(wǎng)以及連接到有線網(wǎng)絡(luò)(使用IEEE 802. 3相關(guān)介質(zhì)和功能)。所示和所描述的各方面可以在其中某些任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠程處理設(shè)備來執(zhí)行的分布式計算環(huán)境中實施。在分布式計算環(huán)境中,程序模塊可以位于本地和/或遠程存儲和/或存儲器系統(tǒng)中。上面描述的包括所揭示的體系結(jié)構(gòu)的各示例。當然,描述每一個可以想到的組件和/或方法的組合是不可能的,但本領(lǐng)域內(nèi)的普通技術(shù)人員應(yīng)該認識到,許多其它組合和排列都是可能的。因此,該新穎體系結(jié)構(gòu)旨在涵蓋所有這些落入所附權(quán)利要求書的精神和范圍內(nèi)的更改、修改和變化。此外,就在詳細描述或權(quán)利要求書中使用術(shù)語“包括”而言,這一術(shù)語旨在以與術(shù)語“包含”在被用作權(quán)利要求書中的過渡詞時所解釋的相似的方式為 包含性的。
權(quán)利要求
1.一種計算機實現(xiàn)的相關(guān)系統(tǒng)(100),所述系統(tǒng)具有存儲由處理器執(zhí)行的可執(zhí)行指令的非臨時性計算機可讀介質(zhì),包括對數(shù)據(jù)-綁定對象(102)的安排,用于供對來自相關(guān)聯(lián)的數(shù)據(jù)集的數(shù)據(jù)的呈現(xiàn);以及配置組件(106),允許將子孫數(shù)據(jù)-綁定對象與不同于先輩數(shù)據(jù)-綁定對象的先輩數(shù)據(jù)集的一數(shù)據(jù)集聲明性地相關(guān)。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述子孫數(shù)據(jù)_綁定對象被包含在所述先輩數(shù)據(jù)-綁定對象中,并且基于顯式結(jié)合條件將不同數(shù)據(jù)集的子孫數(shù)據(jù)行與所述先輩數(shù)據(jù)集的先輩數(shù)據(jù)行聲明性地相關(guān)。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述子孫數(shù)據(jù)_綁定對象被包含在所述先輩數(shù)據(jù)-綁定對象中,并且基于不同數(shù)據(jù)集與先輩數(shù)據(jù)集之間的包含分層結(jié)構(gòu)關(guān)系將不同數(shù)據(jù)集的子孫數(shù)據(jù)行與所述先輩數(shù)據(jù)集的先輩數(shù)據(jù)行隱式地相關(guān)。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述先輩數(shù)據(jù)_綁定對象包含多個不同的子孫數(shù)據(jù)-綁定對象,基于顯式結(jié)合條件、以及對應(yīng)地不同的數(shù)據(jù)集與所述先輩數(shù)據(jù)集之間的包含分層關(guān)系來將不同的子孫數(shù)據(jù)_綁定對象與對應(yīng)地不同的數(shù)據(jù)集聲明性地相關(guān)。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述數(shù)據(jù)_綁定對象包括嵌套分組,所述配置組件允許將所述嵌套分組與不同于先輩分組的數(shù)據(jù)集的一數(shù)據(jù)集相關(guān)。
6.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述數(shù)據(jù)對象包括作為行分組分層結(jié)構(gòu)或列分組分層結(jié)構(gòu)的成員的對象,所述配置組件允許將第一數(shù)據(jù)集的行分組與第二數(shù)據(jù)集的列分組聲明性地相關(guān)。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述配置組件允許訪問所述數(shù)據(jù)-綁定對象的聲明性特性以控制用于所述數(shù)據(jù)_綁定對象的數(shù)據(jù)集。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括引用組件,所述引用組件在數(shù)據(jù)-綁定對象之間建立引用以檢索來自先輩數(shù)據(jù)-綁定對象的數(shù)據(jù)值。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述引用組件允許對先輩或子孫數(shù)據(jù)-綁定對象中的至少一個的先輩或子孫引用中的至少一個的建立,與所述先輩或子孫數(shù)據(jù)對象中的至少一個關(guān)聯(lián)的數(shù)據(jù)值基于所述先輩或子孫引用中的至少一個來檢索并聚集。
10.一種可由處理器和存儲器執(zhí)行的計算機實現(xiàn)的相關(guān)方法,包括在文檔中安排數(shù)據(jù)-綁定對象以供呈現(xiàn)(1000);將頂層數(shù)據(jù)-綁定對象綁定到頂層數(shù)據(jù)集(1002);將子孫數(shù)據(jù)-綁定對象與不同于所述頂層數(shù)據(jù)集的一數(shù)據(jù)集聲明性地綁定(1004);以及基于分層結(jié)構(gòu)經(jīng)由顯式結(jié)合條件或隱式相關(guān)來關(guān)聯(lián)所述數(shù)據(jù)集(1006)。
11.如權(quán)利要求10所述的方法,其特征在于,還包括展示所述數(shù)據(jù)-綁定對象的聲明性特征以控制所述數(shù)據(jù)_綁定對象被綁定到哪些數(shù)據(jù)集。
12.如權(quán)利要求10所述的方法,其特征在于,還包括在數(shù)據(jù)-綁定對象之間應(yīng)用引用, 以檢索來自先輩或子孫數(shù)據(jù)_綁定對象中的至少一個的數(shù)據(jù)值。
13.如權(quán)利要求10所述的方法,其特征在于,還包括基于不同數(shù)據(jù)集與先輩數(shù)據(jù)集之間的包含分層關(guān)系,用子孫數(shù)據(jù)行與先輩數(shù)據(jù)行之間的隱式相關(guān)來將子孫數(shù)據(jù)_綁定對象與不同于所述先輩數(shù)據(jù)_綁定對象的一數(shù)據(jù)集聲明性地綁定。
14.如權(quán)利要求10所述的方法,其特征在于,還包括將數(shù)據(jù)_綁定對象的外分組、所述數(shù)據(jù)-綁定對象的內(nèi)分組、以及所述數(shù)據(jù)-綁定對象的單元與對應(yīng)地不同的數(shù)據(jù)集聲明性地綁定,并且經(jīng)由分層結(jié)構(gòu)或結(jié)合條件來關(guān)聯(lián)所述數(shù)據(jù)集。
15.如權(quán)利要求10所述的方法,其特征在于,還包括將數(shù)據(jù)_綁定對象的行分組、所述數(shù)據(jù)_綁定對象的列分組、以及所述數(shù)據(jù)_綁定對象的單元與對應(yīng)地不同的數(shù)據(jù)集聲明性地綁定,并且經(jīng)由結(jié)合條件來關(guān)聯(lián)所述數(shù)據(jù)集。
全文摘要
公開了內(nèi)聯(lián)數(shù)據(jù)相關(guān)和分層數(shù)據(jù)集。提供了這樣的體系結(jié)構(gòu),它可以由報告作者配置報告中的某些數(shù)據(jù)-綁定對象以使用來自特定查詢結(jié)果的數(shù)據(jù),而不是從包含的數(shù)據(jù)綁定對象中取數(shù)據(jù)。報告作者定義所包含的對象中的數(shù)據(jù)與容器中的數(shù)據(jù)之間的關(guān)系,允許將子孫對象的實例與先輩對象的實例相關(guān)。這一關(guān)系可以由于查詢結(jié)果之間的本征分層關(guān)系而對結(jié)合條件是顯式的或隱式的。
文檔編號G06F17/30GK102214197SQ20111008743
公開日2011年10月12日 申請日期2011年3月31日 優(yōu)先權(quán)日2010年4月1日
發(fā)明者C·A·海斯, J·H·武爾那, R·M·布魯克納 申請人:微軟公司