專利名稱:聲明序列化報告參數(shù)表示法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及信息系統(tǒng)領(lǐng)域。更具體的說,本發(fā)明涉及數(shù)據(jù)的參數(shù)表示法。
背景技術(shù):
信息系統(tǒng)通常需要檢索來自用戶的數(shù)值,以使適當?shù)男畔⒃谇‘數(shù)臅r刻被傳遞給用戶。在基于詢問的報告系統(tǒng)中,可通過報告參數(shù)表示法來完成這個操作。參數(shù)允許報告根據(jù)用戶的選擇來進行定制。然而傳統(tǒng)的報告產(chǎn)品僅提供靜態(tài)參數(shù)選擇。照這樣,報告發(fā)生器沒有使用數(shù)據(jù)依存(data dependencies),這就導致數(shù)據(jù)和報告的低效率處理和表達。而且傳統(tǒng)的報告產(chǎn)品向用戶提供的是后續(xù)數(shù)據(jù)和可選擇參數(shù)的低效率和不友好表達。
例如,圖2是報告處理和發(fā)生傳統(tǒng)方法的流程圖。在步驟200處,檢索報告定義,其中該報告定義包括參數(shù)列表,而且若指定的話,該報告包括每個參數(shù)的可能值。然后,在步驟230處,檢索來自列表的參數(shù),并且在步驟240處決定該參數(shù)若該參數(shù)是否被標記為下拉(dropdown)。(其具有多個可能的值)如果這樣,那么就在步驟250處選擇該區(qū)域的所有可能值,并將其提供給用戶。這可能是長長的一列值。然后,在步驟260處,用戶從一個或多個下拉列表中被提示數(shù)值。若在步驟240處,該參數(shù)沒有被標記為下拉,則處理直接進行到步驟260,在那里該用戶被提示一個或多個數(shù)值(并非來自下拉列表)。然后,若任何參數(shù)保留在來自步驟220的列表中時,則在步驟270決定它。如果這樣,那么處理就返回到步驟230。在所有的參數(shù)被檢索并被用來提示用戶一個或多個數(shù)值之后,然后就在步驟280處執(zhí)行報告。應當注意的是在這個傳統(tǒng)方法中,報告發(fā)生器不使用數(shù)據(jù)依存,并且提供給用戶的選擇沒有基于其先前選擇被動態(tài)決定或被子集限制(subset-limited)。
因此,有必要提供包括這樣的系統(tǒng)和方法的動態(tài)報告產(chǎn)品,該系統(tǒng)和方法克服優(yōu)先領(lǐng)域的問題并且更精確和有效的適合用戶需求的信息傳遞。希望提供控制(cascaded)參數(shù),從而使用戶選擇參數(shù)依賴于用戶的最早選擇。
發(fā)明內(nèi)容
本發(fā)明旨在改善報告參數(shù)表示法系統(tǒng)和方法,其中用戶數(shù)值和選擇被收集并提供到依照用戶數(shù)值和選擇來定制一般定義報告的報告服務器。
一組有序的報告參數(shù)在報告定義中聲明,然后這個參數(shù)定義被用來驅(qū)動用戶提示和報告執(zhí)行。當在序列次序中收集參數(shù)值時,被檢索的或由用戶對一個參數(shù)指定的數(shù)值可被用來產(chǎn)生序列后部參數(shù)的容許值或默認值的集合。參數(shù)被動態(tài)提供給用戶。在對所有參數(shù)的數(shù)值被檢索或指定后,就由報告服務器產(chǎn)生報告。
參考附圖,并從下面說明性實施例的詳細描述中,我們將明顯看到本發(fā)明的附加特性和優(yōu)點。
當結(jié)合附圖來閱讀時,我們會更好的理解前述概要和下面較佳實施例的詳細描述。為了闡明該發(fā)明,其附圖中示出了該發(fā)明的范例結(jié)構(gòu)。然而,本發(fā)明并不局限于說明的特定方法和工具。在附圖中圖1是示出范例計算環(huán)境的框圖,其中可實現(xiàn)該發(fā)明的特征;圖2是報告處理和發(fā)生傳統(tǒng)方法的流程圖;圖3是依照本發(fā)明的范例系統(tǒng)的高水平框圖;圖4是依照本發(fā)明的報告處理和發(fā)生范例方法的流程圖;圖5是依照本發(fā)明的范例報告定義的簡圖;圖6是用于說明一個和多個范例控制如何對與報告相關(guān)聯(lián)的每個報告參數(shù)被提供給用戶的樹形圖;圖7是用于說明范例控制如何被初始化以及其對與報告相關(guān)聯(lián)的每個報告參數(shù)的默認值的樹形圖;圖8是用于說明一個和多個范例控制如何對與基于條件的報告相關(guān)聯(lián)的每個報告參數(shù)被提供給用戶的樹形圖。
具體實施例方式
綜述參數(shù)化報告通過允許報告設計者指定可由用戶在報告執(zhí)行階段供給的一組數(shù)值來提供靈活性。數(shù)據(jù)從數(shù)據(jù)庫轉(zhuǎn)換為可讀形式,其具有用戶希望看到的信息,而并非其它數(shù)據(jù)。例如,參數(shù)被用來抑制數(shù)據(jù)或加亮數(shù)據(jù)。參數(shù)被動態(tài)提供給用戶。例如,若用戶被提示來選擇駐留狀態(tài)并且該用戶選擇“華盛頓”,則提供給該用戶的下一選擇就被限制為華盛頓內(nèi)的城市。
范例計算環(huán)境圖1闡明可實現(xiàn)本發(fā)明的合適的計算系統(tǒng)環(huán)境100的例子。該計算系統(tǒng)環(huán)境100僅是合適計算環(huán)境的一個例子,并沒有特意暗示有關(guān)使用范圍或本發(fā)明功能性的任何局限性。而且該計算環(huán)境100也不應被解釋為具有對涉及范例操作環(huán)境100中闡明的任何一個組件或其組合的任何依賴性(dependency)或需求。
本發(fā)明可用于許多其它通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置??蛇m合用于本發(fā)明的熟知計算系統(tǒng)、環(huán)境和/或配置的例子包括,但不局限于,個人計算機、服務器計算機、手提式或膝上型裝置、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、可編程消費者電子裝置、網(wǎng)絡PC、小型計算機、大型計算機、包括任何上述系統(tǒng)或裝置的分布式計算環(huán)境以及類似的裝置。
本發(fā)明可用諸如正由計算機執(zhí)行的程序模塊這樣的計算機可執(zhí)行指令的普通上下文來說明。通常,程序模塊包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等,其執(zhí)行特定的任務或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。本發(fā)明也可用于分布式計算環(huán)境,那里由通過通信網(wǎng)絡或其它數(shù)據(jù)傳輸媒介連接的遠程處理裝置來執(zhí)行任務。在分布式計算環(huán)境中,程序模塊和其它數(shù)據(jù)既可位于本地計算機存儲媒體中也可位于遠程計算機存儲媒體中,這包括存儲器存儲裝置。
參考圖1,用于實現(xiàn)本發(fā)明的范例系統(tǒng)包括以計算機110形式的通用計算裝置。計算機110的組件可包括,但不局限于,處理單元120、系統(tǒng)存儲器130和系統(tǒng)總線121,該系統(tǒng)總線將包括系統(tǒng)存儲器的不同系統(tǒng)組件聯(lián)結(jié)到處理單元120。系統(tǒng)總線121可為幾種類型總線結(jié)構(gòu)中的任何一種,其包括存儲器總線或存儲器控制器、外圍總線,以及使用多種總線體系結(jié)構(gòu)中任何一種的本地總線。作為例子,但不限制,這樣的體系結(jié)構(gòu)包括工業(yè)標準結(jié)構(gòu)(ISA)總線、微通道結(jié)構(gòu)(MCA)總線、增強型ISA(EISA)總線、視頻電子標準協(xié)會(VESA)本地總線,以及周邊元件互連(Peripheral Component Interconnect)(PCI)總線(也是所知的小背板總線(Mezzanine bus))。
計算機110代表性的包括多種計算機可讀媒體。計算機可讀媒體可為能被計算機110存取的任何可用媒體,并且既包括易失性媒體又包括非易失性媒體、既包括可移除媒體又包括不可移除媒體。作為例子,但不限制,計算機可讀媒體可包含計算機存儲媒體和通信媒體。計算機存儲媒體包括易失性和非易失性、可移除和不可移除媒體,這些媒體用諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)這樣的信息存儲的任何方法或技術(shù)來實現(xiàn)。計算機存儲媒體包括,但不局限于,RAM、ROM、EEPROM、閃速存儲器或其它存儲器技術(shù)、CD-ROM、數(shù)字多用途光盤(DVD)或其它光盤存儲、盒式磁帶、磁帶、磁盤存儲或其它磁存儲裝置、或者可被用來保存所需信息并可被計算機110存取的任何其它媒體。通信媒體代表性的體現(xiàn)為計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或在諸如載波或其它傳送機制這樣的調(diào)制數(shù)據(jù)信號中的其它數(shù)據(jù),該通信媒體包括任何信息傳遞媒體。術(shù)語“調(diào)制數(shù)據(jù)信號”意指將一個或多個其特征設置或改變?yōu)檫@樣的方式以對信號中的信息進行編碼的信號。作為例子,但不限制,通信媒體包括諸如有線網(wǎng)絡或直接布線連接這樣的有線媒體,以及諸如聲音、RF、紅外線的和其它無線媒體這樣的無線媒體。上述任何的組合也可被包含在計算機可讀媒體的范圍內(nèi)。
系統(tǒng)存儲器130包括以諸如ROM 131和RAM 132這樣的易失性和/或非易失性存儲器形式的計算機存儲媒體?;据斎?輸出系統(tǒng)133(BIOS)包含諸如在啟動階段,幫助在計算機110中的元件之間傳遞信息的基本例程,該基本輸入/輸出系統(tǒng)133(BIOS)代表性的保存在ROM 131中。RAM 132代表性的包含可被處理單元120直接存取和/或當前正由處理單元120操作的數(shù)據(jù)和/或程序模塊。作為例子,但不限制,圖1闡明操作系統(tǒng)134、應用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計算機110也可包括其它可移除/不可移除、易失性/非易失性的計算機存儲媒體。僅作為例子,圖1闡明硬盤驅(qū)動器140、磁盤驅(qū)動器151以及光盤驅(qū)動器155,其中硬盤驅(qū)動器140從不可移除、非易失性磁性媒體讀入或?qū)懙竭@樣的媒體,磁盤驅(qū)動器151從可移除、非易失性磁盤152讀入或?qū)懙竭@樣的磁盤,光盤驅(qū)動器155從諸如CD-ROM或其它光媒體這樣的可移除、非易失性光盤156讀入或?qū)懙竭@樣的光盤??捎糜诜独僮鳝h(huán)境中的其它可移除/不可移除、易失性/非易失性計算機存儲媒體包括,但不局限于,盒式磁帶、閃速存儲器卡、數(shù)字多用途光盤、數(shù)字視頻帶、固態(tài)RAM、固態(tài)ROM以及類似的媒體。硬盤驅(qū)動器141代表性的通過諸如接口140這樣的不可移除存儲器接口與系統(tǒng)總線121相連,而磁盤驅(qū)動器151和光盤驅(qū)動器155代表性的通過諸如接口150這樣的可移除存儲器接口與系統(tǒng)總線121相連。
上面討論并在圖1中闡明的驅(qū)動器和其相關(guān)聯(lián)的計算機存儲媒體提供計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和對計算機110的其它數(shù)據(jù)的存儲。例如在圖1中,硬盤驅(qū)動器141被闡明為保存操作系統(tǒng)144、應用程序145、其它程序模塊146以及程序數(shù)據(jù)147。注意這些組件既可與操作系統(tǒng)134、應用程序135、其它程序模塊136以及程序數(shù)據(jù)137相同也可與其不一樣。操作系統(tǒng)144、應用程序145、其它程序模塊146和程序數(shù)據(jù)147這里被賦予不同的數(shù)字,以闡明至少它們是不同的副本。用戶可通過諸如鍵盤162和點擊設備161這樣的輸入裝置將命令和信息輸入到計算機110中,其中點擊設備一般指鼠標、跟蹤球或觸摸墊。其它輸入裝置(未示出)可包括傳聲器、操縱桿、游戲墊、圓盤式衛(wèi)星電視天線、掃描儀或類似的裝置。這些和其它的輸入裝置通常通過與系統(tǒng)總線聯(lián)結(jié)的用戶輸入接口160連接到處理單元120,但其也可通過諸如并行端口、游戲端口或通用串行總線(USB)這樣的其它接口和總線結(jié)構(gòu)來連接。監(jiān)視器191或其它類型的顯示裝置也通過諸如視頻接口190這樣的接口與系統(tǒng)總線121相連。除監(jiān)視器之外,計算機也可包括諸如揚聲器197和打印機196這樣的其它外圍輸出裝置,其可通過輸出外圍接口195連接。
計算機110可在使用到諸如遠程計算機180這樣的一個或多個遠程計算機邏輯連接的網(wǎng)絡化環(huán)境中工作。遠程計算機180可為個人計算機、服務器、路由器、網(wǎng)絡PC、對等裝置(peer device)或其它普通網(wǎng)絡節(jié)點,并且其代表性的包括上述相對于計算機110的許多或所有元件,盡管圖1中僅闡明了存儲器存儲裝置181。所述邏輯連接包括本地網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但其可也包括其它網(wǎng)絡。這樣的網(wǎng)絡化環(huán)境常見于辦公室、全企業(yè)計算機網(wǎng)絡(enterprise-wide computer networks)、局內(nèi)網(wǎng)和國際互聯(lián)網(wǎng)中。
當在LAN網(wǎng)絡化環(huán)境中使用計算機110時,計算機110通過網(wǎng)絡接口或適配器170與LAN 171相連。當在WAN網(wǎng)絡化環(huán)境中使用計算機110時,計算機110代表性的包括調(diào)制解調(diào)器172或用于在諸如國際互聯(lián)網(wǎng)這樣的WAN173中建立通信的其它裝置。調(diào)制解調(diào)器172可為內(nèi)置或外置,其可通過用戶輸入接口160或其它合適機制與系統(tǒng)總線121相連。在網(wǎng)絡化環(huán)境中,所述相對于計算機110的程序模塊或其部分可被保存在遠程存儲器存儲裝置中。作為例子,但不限制,圖1闡明作為駐留在存儲器裝置181中的遠程應用程序185。應當認識到所示網(wǎng)絡連接是范例性的,而且可使用在計算機之間建立通信連接的其它裝置。
范例分布式計算框架或體系結(jié)構(gòu)不同的分布式計算框架已經(jīng)或正在按照個人計算和國際互聯(lián)網(wǎng)的會聚而發(fā)展。類似的個體和商業(yè)用戶被提供對應用和計算裝置的能無縫化共同操作和網(wǎng)絡允許的接口,這使計算活動愈加網(wǎng)絡瀏覽器或網(wǎng)絡定位。
例如,MICROSOFT的.NET平臺包括服務器、建造塊服務,這諸如基于網(wǎng)絡的數(shù)據(jù)存儲和可下載的裝置軟件。通常而言,該.NET平臺提供(1)使計算裝置的整個范圍一起工作并使用戶信息在其所有裝置上自動更新和同步的能力,(2)增加對網(wǎng)站的交互能力,這通過與HTML相比而言有更廣泛使用的XML來實現(xiàn),(3)以定制存取和從對不同應用管理的中央起點到用戶的產(chǎn)品和服務的傳遞為特色的在線服務,這比如說像電子郵件或諸如Office.NET這樣的軟件,(4)集中的數(shù)據(jù)存儲,其會增加信息存取的效率和簡易程度,也增加用戶和裝置之間的信息同步性,(5)集成諸如電子郵件、傳真和電話這樣的不同通信媒體的能力,(6)對開發(fā)者來說,創(chuàng)建可以再度使用的模塊的能力,從而提高生產(chǎn)率并減少編程錯誤的數(shù)量,以及(7)也有許多其它的跨平臺集成特性。
雖然這里的范例實施例是關(guān)于駐留在計算機裝置中的軟件來說明的,但是也可通過操作系統(tǒng)、API、或介于協(xié)處理器和請求對象之間的“中間人”對象來實現(xiàn)本發(fā)明的一個或多個部分,這樣,服務就可通過所有的.NET語言和服務以及同樣在其它的分布式計算框架中來執(zhí)行,支持或存取了。
范例實施例一組有序的報告參數(shù)在報告的定義中聲明,然后這個參數(shù)定義被用來驅(qū)動用戶提示和該報告的執(zhí)行(報告定義在下面關(guān)于圖5進一步說明)。參數(shù)的范例定義包括參數(shù)名;數(shù)據(jù)類型(串、數(shù)、數(shù)據(jù)等);允許值集合或用來檢索允許值集合的可選擇詢問;默認值或用來檢索默認值和是否提示用戶數(shù)值的可選擇詢問。允許值和默認值詢問可為任意復雜的并且可由報告設計者按愿望來定義。
另外,允許值和默認值詢問的參數(shù)可通過先前指定參數(shù)值的數(shù)值來確定。
這就允許檢索的或由用戶對一個參數(shù)指定的數(shù)值被用來在序列的后部產(chǎn)生該組參數(shù)允許值或默認值。在對所有參數(shù)的數(shù)值被檢索或指定后,由報告服務器產(chǎn)生報告。
例如,假定具有兩個參數(shù)的報告定義,“產(chǎn)品范疇”和“產(chǎn)品名稱”。該列產(chǎn)品范疇從數(shù)據(jù)庫中被檢索并且用戶被提示在該列表中選擇一個項目。一旦該用戶做出選擇,就從數(shù)據(jù)庫中檢索在已選擇范疇中的一列產(chǎn)品名稱。然后該用戶從該列表中選擇一個產(chǎn)品名稱并且報告使用已選擇的產(chǎn)品來執(zhí)行(操作)。
以包括動態(tài)參數(shù)列表和本發(fā)明默認值的另一個范例方案來說,假定存在對報告進行定義的3個參數(shù),“區(qū)域”、“州”和“城市”。用戶接口被顯示為具有用于對每個參數(shù)進行輸入的3個下拉列表。“區(qū)域”下拉列表上聚集了美國的區(qū)域。當選擇區(qū)域(如西北)時,就使用在“區(qū)域”下拉列表中選擇為詢問參數(shù)的區(qū)域來詢問與州參數(shù)相關(guān)聯(lián)的數(shù)據(jù)源?!爸荨毕吕斜碇芯奂藖碜詤?shù)詢問的結(jié)果集合。當在“州”下拉列表中作出選擇(如華盛頓),就使用在“州”下拉列表中選擇為詢問參數(shù)的州來詢問與“城市”參數(shù)相關(guān)聯(lián)的數(shù)據(jù)源。
圖3是依照本發(fā)明范例系統(tǒng)的高水平框圖。包含報告處理器310和數(shù)據(jù)處理器315的報告服務器300,如上所述與請求計算機320互相作用。報告服務器300訪問諸如對不同值和數(shù)據(jù)的外部數(shù)據(jù)源330這樣的存儲裝置。通過響應報告請求,例如通過請求計算機320,報告服務器300產(chǎn)生報告,這如下所述。同樣示出的是用來創(chuàng)建報告定義的報告著作(authoring)/設計工具325,如這里所述。
圖4是依照本發(fā)明的報告處理和產(chǎn)生范例方法的流程圖。依存關(guān)系被決定為預處理步驟是可預期的。具體的說,若不能立即評估個體報告參數(shù)的默認值和/或允許值,則決定一列其依存關(guān)系。這就導至表明參數(shù)輸入依存關(guān)系的樹形結(jié)構(gòu)。例如,假定有對報告定義的3個參數(shù),參數(shù)1、參數(shù)2和參數(shù)3。參數(shù)2組有效值是基于使用參數(shù)1數(shù)值的詢問的。參數(shù)3的默認值是基于使用參數(shù)1數(shù)值的詢問的。這樣,當對報告檢索參數(shù)元數(shù)據(jù)時,其將表明參數(shù)2和參數(shù)3均依賴于參數(shù)1。
在步驟400處,報告服務器開始處理。在步驟400處,從包括參數(shù)、數(shù)據(jù)集和數(shù)據(jù)源的存儲器或其它產(chǎn)生的中檢索合適的報告定義(例如下面關(guān)于圖5來說明)。然后在步驟410處評估參數(shù)元數(shù)據(jù)。這個元數(shù)據(jù)包含諸如參數(shù)允許值和默認值這樣的信息,連同用戶已提供的任何數(shù)值,這如下所述。
若在步驟415處,所有的參數(shù)具有數(shù)值,則在步驟495處執(zhí)行報告。否則,在步驟420處,就選擇對其它參數(shù)沒有未定依存關(guān)系的參數(shù),進行進一步處理。不具有任何未定依存關(guān)系的參數(shù)被處理以檢索其允許值和默認值,用于提供給用戶來提示。照這樣,由用戶對參數(shù)檢索或指定的數(shù)值可被用來產(chǎn)生序列后部的參數(shù)允許值和默認值的集合。這樣,對參數(shù)的允許值和默認值的集合就被動態(tài)提供給用戶,這就允許更有效和更精確的過程。
在步驟425處,選擇不具有任何未定依存關(guān)系的參數(shù)。若由對參數(shù)允許值的詢問,則在步驟430處決定其參數(shù)。如果這樣,那么就在步驟435處使用外部數(shù)據(jù)源450來檢索允許值。這樣,關(guān)于上述例子,若參數(shù)“州”依賴于參數(shù)“區(qū)域”,且對“區(qū)域”而言,用戶先前已選擇“西北”,那么,在步驟435處檢索的允許值就是在美國西北區(qū)域內(nèi)的州。然后,這些州將更適宜的被提供到例如下拉列表中的用戶,作為選擇要在報告產(chǎn)生階段使用的數(shù)值的提示。
若在步驟430處沒有對允許值指定的詢問,或在檢索允許值后,則在步驟440處,決定是否有對默認值的詢問。如果這樣,那么就在步驟445處從外部數(shù)據(jù)源450中檢索默認值。若非如此,或在默認值已被檢索之后,則在步驟460處,決定是否有保留其不具有未定依存關(guān)系的任何附加參數(shù),這來自步驟420。若有保留的附加參數(shù),則處理在步驟425處繼續(xù),那里下一參數(shù)也正被處理。
在已經(jīng)處理了不具有任何未定依存關(guān)系的所有參數(shù)后,在步驟470處,用戶就被提示輸入數(shù)值(例如用戶從通過響應已檢索的允許值和/或默認值而提供的下拉列表中做出其選擇,這諸如,與上述例子一致,用戶從提供于西北區(qū)域中州的下拉列表中的州中選擇州,)而且處理在步驟410處繼續(xù),那里附加參數(shù)正被檢索,且隨后按上述來處理。照這樣,用戶被提供其能對要用在后續(xù)報告產(chǎn)生中的數(shù)值做出選擇的一系列下拉列表(或其它類型的)列表。下拉列表提供了所有選擇的目標(targeted)子集,該子集僅包括預期用戶響應(例如,若用戶已經(jīng)指定了美國西北區(qū)域內(nèi)的州,則其將僅被提供西北區(qū)域內(nèi)州的下拉列表,而非美國所有州的列表;那些西北區(qū)域內(nèi)的州被認為是所有選擇的目標子集)。
圖5是依照本發(fā)明范例報告定義的簡圖。報告500基本上(ultimately)包含諸如姓名、描述、作者和頁寬和高這樣的元數(shù)據(jù)?;谠儐枀?shù)570,依照報告參數(shù)505和數(shù)據(jù)集540產(chǎn)生報告,這在下面進一步說明。每個報告參數(shù)可隨意指定默認值510和有效值520的集合。默認值510既可通過保存的、常數(shù)值515來指定,也可通過數(shù)據(jù)集參考530導出。同樣的,有效值520既可為一組保存的、恒定參數(shù)值525,也可通過數(shù)據(jù)集參考530導出。
依照詢問550和數(shù)據(jù)模型560產(chǎn)生數(shù)據(jù)集540。詢問550包含詢問參數(shù)570,連同包含不同區(qū)域(fields)580的數(shù)據(jù)模型560。數(shù)據(jù)集參考530包含對數(shù)據(jù)集中區(qū)域的參考。這些區(qū)域的數(shù)值被用作默認值(在具有數(shù)據(jù)集參考的默認值的情況下)或用作數(shù)值/標簽對。(在具有數(shù)據(jù)集參考的有效值的情況下)在報告定義中指定參數(shù)。參數(shù)類型包括報告參數(shù)505和詢問參數(shù)570。報告參數(shù)505是供給到報告500的數(shù)值(或包含在報告定義中),其允許報告示出數(shù)據(jù)的不同方面。報告參數(shù)代表性的被用來向詢問參數(shù)提供數(shù)值。報告參數(shù)的附加用途包括依靠在報告中使用的表達式的報告外觀(appearance)的后詢問(post-query)濾波和修正。
詢問參數(shù)570是被供給到詢問550的數(shù)值或在被用來返回其結(jié)果的數(shù)據(jù)處理器中的保存過程。詢問參數(shù)的能力代表性的由數(shù)據(jù)處理器(如數(shù)據(jù)處理器315)來定義。詢問參數(shù)可被設置為任何允許的表達式,這包括基于報告參數(shù)505的不變值或表達式。
詢問參數(shù)更適宜通過數(shù)據(jù)處理器支持的API被傳遞到數(shù)據(jù)處理器。在詢問參數(shù)表達式被評估后,結(jié)果就被轉(zhuǎn)換為合適的數(shù)據(jù)類型,然后被傳遞給數(shù)據(jù)處理器。詢問參數(shù)句法更適宜依靠使用的數(shù)據(jù)處理器。例如,SQL Server可在SELECT語句中使用諸如“SELECT*FROM EMPLOYEES WHERELEVEL=?”這樣的問號字符。其也可使用在保存過程中直接定義的參數(shù)(如“EXECUTEGetEmployee@EmployeeIDParm”)。
表1示出對參數(shù)的范例元數(shù)據(jù)。
表1圖6是用于說明范例控制是如何對每個與報告相關(guān)聯(lián)的報告參數(shù)被提供給用戶的樹形圖。基于詢問的數(shù)值由與參數(shù)元素中數(shù)值子元素的缺席結(jié)合的依存關(guān)系子元素的出現(xiàn)來決定。對數(shù)值子元素,在步驟600,決定其值是否基于詢問,硬編碼或沒有被指定。若數(shù)值是基于詢問的,則注意控制是基于詢問的而且顯示合適的消息,例如在步驟605處。若數(shù)值是硬編碼或沒有被指定,則在步驟610處決定類型子元素數(shù)值。若類型是布爾型,則在步驟615處提供或相反顯示“真”和“假”指示器(如單選按鈕)。否則,若類型例如是日期時間型、雙精度型、整型或串型,則在步驟620處決定是否提供有效值。
若不提供有效值,則在步驟625處決定是否提供依存關(guān)系子元素。若沒有,則若在步驟640處有多個數(shù)值,則在步驟655處提供復式線路(multi-1ine)編輯控制。若多個數(shù)值沒有在步驟640處出現(xiàn),則在步驟650處提供單行(single-line)編輯控制。若依存關(guān)系子元素出現(xiàn)在步驟625處,則在步驟635處提供下拉列表控制。同樣的,若在步驟620處提供有效值,則在步驟630處提供下拉列表控制。關(guān)于下拉列表控制,若有多個數(shù)值出現(xiàn),則下拉列表更適宜為多選;否則下拉列表更適宜為單選。
圖7是用于說明范例控制是如何初始化以及其對每個與報告相關(guān)聯(lián)的報告參數(shù)默認值的樹形圖??刂苹谠S多條件來進行初始化。條件包括是否存在有效值列表和數(shù)值,是否存在有效值等等。注意這個初始化樹代表性的可適用于不是從詢問中導出的或不是基于用戶的參數(shù)。在步驟700處,決定有效值子元素是否出現(xiàn)。若沒有出現(xiàn),則在步驟740處決定數(shù)值子元素。若數(shù)值子元素的數(shù)值是硬編碼的,則在步驟745處顯示該數(shù)值。若數(shù)值子元素的數(shù)值沒有被指定,則在步驟750處決定類型子元素是否為日期時間型。若這樣,則在步驟755處顯示當前日期和時間;否則,就在步驟760處提供空白。
若有效值子元素在步驟700處出現(xiàn),則在步驟705處控制被聚集有效值。在步驟710處,檢索數(shù)值子元素值,并且若數(shù)值沒有被指定,則在步驟715處提供空白。若來自步驟710的數(shù)值是硬編碼的,則在步驟720處決定該數(shù)值是否在先前定義或產(chǎn)生的控制列表內(nèi)。若這樣,則在步驟730處選擇該一個或多個數(shù)值;否則,就在步驟725處顯示空白。
當提示對報告參數(shù)的數(shù)值時,用于設置該數(shù)值的控制(其可為HTML控制)是基于許多條件的。條件包括默認值來自何處,參數(shù)數(shù)據(jù)類型,零是否為可接受的數(shù)值,有效值的預定義列表是否存在等等?;谶@些條件對每個與報告相關(guān)聯(lián)的報告參數(shù)而提供給用戶的一個或多個控制更適宜按圖6中所述,從步驟610處開始產(chǎn)生,如這里所述。
圖8是用于說明一個或多個范例控制如何基于條件對每個與報告相關(guān)聯(lián)的報告參數(shù)而被提供給用戶的樹形圖??刂剖腔谠S多條件而初始化的。條件包括是否存在有效值列表和數(shù)值,是否存在有效值等等。圖8定義基于這些條件控制如何被初始化以及其對每個與報告相關(guān)聯(lián)的報告參數(shù)的默認值。在一些情況下,我們預期數(shù)值子元素的數(shù)值可為零。
在步驟800,決定有效值子元素是否存在。若有效值子元素不存在,則在步驟850處,決定數(shù)值子元素是否存在。若數(shù)值子元素不存在,則在步驟855處提供空白。若數(shù)值子元素存在,則在步驟860處決定數(shù)值子元素的數(shù)值是否為硬編碼。若這樣,則在步驟865處顯示該數(shù)值。若數(shù)值子元素的數(shù)值沒有被指定,則在步驟870處決定類型子元素是否為日期時間型,若這樣,則在步驟875處顯示當前日期和時間;否則,就在步驟880處提供空白。
若在步驟800處提供有效值子元素,則在步驟805處控制聚集有效值。在步驟810處,檢索數(shù)值子元素數(shù)值,并且若該數(shù)值不出現(xiàn),則在步驟815處提供空白。若來自步驟810的數(shù)值出現(xiàn),則在步驟820處決定數(shù)值子元素的數(shù)值是否為硬編碼或沒有被指定。若該數(shù)值沒有被指定,則在步驟825處提供空白。若數(shù)值子元素的數(shù)值是硬編碼,則在步驟830處決定該數(shù)值是否在先前定義或產(chǎn)生的控制列表中。若這樣,就在步驟840處選擇該一個或多個數(shù)值;否則,就在步驟835處顯示空白。
如上所述,雖然已經(jīng)關(guān)于不同的計算裝置和網(wǎng)絡體系結(jié)構(gòu)說明了本發(fā)明的范例實施例,下面的概念還是可適用于任何計算裝置或系統(tǒng)。
這里所述的不同技術(shù)可關(guān)于硬件或軟件或用兩者的恰當組合來實現(xiàn)。這樣,本發(fā)明的方法和裝置,或其特定方面或部分,可采取包含在諸如軟磁盤、CD-ROM、硬盤驅(qū)動器或任何其它的機器可讀存儲媒體這樣的有形媒體中的程序碼(如指令)的形式。其中,當程序碼被加載到諸如計算機這樣的機器中并由這樣的機器執(zhí)行時,該機器就變成用于實施本發(fā)明的裝置。當出現(xiàn)在可編程計算機上進行程序碼執(zhí)行的情況時,計算裝置通常會包括處理器、處理器可讀的存儲媒體(包括易失性和非易失性存儲器和/或存儲元件),至少一個輸入裝置,以及至少一個輸出裝置。例如通過使用數(shù)據(jù)處理API或類似處理,可利用本發(fā)明的創(chuàng)建和/或域指定(domain-specific)編程模型方面實施的一個或多個程序更適宜在高水平程序上或面向?qū)ο缶幊陶Z言中實現(xiàn),以同計算機系統(tǒng)進行通信。然而,若需要的話,該一個或多個程序可被組合實施,或者其為機器語言。在任何情況下,該語言可為編譯或解釋語言程序,并且與硬件實現(xiàn)結(jié)合。
本發(fā)明的方法和裝置也可通過具體體現(xiàn)為在某些傳輸媒體上傳輸?shù)某绦虼a形式的通信來實現(xiàn),其中這些傳輸媒體諸如電線或電纜、光學纖維或者任何其它形式的傳輸,其中,當程序被接收且被載入諸如EPROM、門陣列、可編程邏輯裝置(PLD)、客戶計算機或類似的機器并由這樣的機器執(zhí)行時,該機器就變成用于實施本發(fā)明的裝置。當在通用處理器上實施時,程序碼與處理器組合,以提供工作來調(diào)用本發(fā)明功能性的唯一裝置。另外,與本發(fā)明有關(guān)的使用的任何存儲技術(shù)可總是硬件和軟件的組合。
雖然已經(jīng)關(guān)于不同圖的較佳實施例對本發(fā)明做了說明,應當要認識到的是在不背離本發(fā)明的情況下,也可使用其它類似的實施例,或者可對說明的實施例進行修正和添加以用于執(zhí)行本發(fā)明的相同功能。因此,本發(fā)明不應被局限于任何單個實施例,而是應依照附加權(quán)利要求書的廣度和范圍來解釋。
權(quán)利要求
1.報告處理的方法,其特征在于,包含(a)接收具備有序參數(shù)集合的報告定義;(b)為在其中一個所述有序集合中的第一組參數(shù)接收許多數(shù)值;(c)通過響應對所述第一組參數(shù)接收的數(shù)值,產(chǎn)生許多提示來對后續(xù)的一組參數(shù)的數(shù)值進行請求,所述提示包含對所述后續(xù)參數(shù)的一組允許值;(d)重復步驟(a)到(c),直到對每組參數(shù)已指定所有的參數(shù)值;以及(e)基于所述報告定義和所述接收值執(zhí)行報告。
2.如權(quán)利要求書1所述的方法,其特征在于,產(chǎn)生所述許多提示包含基于對所述第一組參數(shù)接收的數(shù)值,接收對所述后續(xù)組參數(shù)的一組潛在值(potential values)和默認值。
3.如權(quán)利要求書1所述的方法,進一步包含基于對所述第一組參數(shù)接收的數(shù)值,接收對所述后續(xù)參數(shù)的一組潛在值并將所述該組潛在值約束在子集內(nèi),所述子集相應于所述該組允許值。
4.如權(quán)利要求書1所述的方法,其特征在于,產(chǎn)生許多下拉列表,它們包含產(chǎn)生每個后續(xù)參數(shù)的所述該組允許值。
5.如權(quán)利要求書4所述的方法,其特征在于,進一步包括,顯示所述下拉列表并接收輸入選擇,所述輸入選擇相應于對每個后續(xù)參數(shù)接收的數(shù)值。
6.如權(quán)利要求書1所述的方法,其特征在于,接收所述數(shù)值包含從存儲裝置中接收默認值。
7.如權(quán)利要求書1所述的方法,其特征在于,接收所述數(shù)值包含接收相應于用戶輸入值的數(shù)值。
8.如權(quán)利要求書1所述的方法,進一步包含產(chǎn)生附加提示,該提示向?qū)λ鲇行蚪M參數(shù)的附加參數(shù)的數(shù)值進行請求,每個附加提示包含對所述相關(guān)聯(lián)參數(shù)的一組允許值,所述該組允許值通過響應至少一個先前接收的數(shù)值而被決定。
9.如權(quán)利要求書8所述的方法,其特征在于,產(chǎn)生所述附加提示包含基于所述參數(shù)之間的依存關(guān)系按順序產(chǎn)生所述附加提示。
10.如權(quán)利要求書8所述的方法,其特征在于,所述每個附加參數(shù)不具有未定依存關(guān)系。
11.如權(quán)利要求書1所述的方法,其特征在于,所述后續(xù)參數(shù)沒有未定依存關(guān)系。
12.如權(quán)利要求書1所述的方法,進一步包含在接收所述數(shù)值之前,在所述參數(shù)有序集中檢索涉及每個所述參數(shù)的元數(shù)據(jù)。
13.具有其中保存的計算機可執(zhí)行指令并用于執(zhí)行報告處理方法的計算機可讀媒體,包含(a)接收具有參數(shù)有序集的報告定義;(b)接收對其中一個所述有序集合中的第一組參數(shù)的許多數(shù)值;(c)產(chǎn)生許多提示,以通過響應對所述第一組參數(shù)接收的數(shù)值而請求對后續(xù)組參數(shù)的數(shù)值,所述提示包含一組對所述后續(xù)參數(shù)的允許值;(d)重復(a)到(c),直到對每組參數(shù)已經(jīng)指定所有的參數(shù)值;以及(e)基于所述報告定義和所述接收的數(shù)值,執(zhí)行報告。
14.如權(quán)利要求書13所述的計算機可讀媒體,其特征在于,產(chǎn)生所述許多提示包含基于對所述第一組參數(shù)接收的數(shù)值,接收對所述后續(xù)組參數(shù)的一組潛在值和默認值。
15.如權(quán)利要求書13所述的計算機可讀媒體,進一步包含計算機可執(zhí)行指令,其用于根據(jù)對所述第一組參數(shù)接收的數(shù)值接收對所述后續(xù)參數(shù)的一組潛在值,并將所述該組潛在值約束在子集內(nèi),所述子集相應于所述該組允許值。
16.如權(quán)利要求書13所述的計算機可讀媒體,其特征在于,產(chǎn)生所述許多提示包含產(chǎn)生包括對每個后續(xù)參數(shù)允許值集合的下拉列表。
17.如權(quán)利要求書16所述的計算機可讀媒體,進一步包含計算機可執(zhí)行指令,其用于顯示所述下拉列表并接收輸入選擇,所述輸入選擇相應于對每個后續(xù)參數(shù)接收的數(shù)值。
18.如權(quán)利要求書13所述的計算機可讀媒體,其特征在于,接收所述數(shù)值包含從存儲裝置中接收默認值。
19.如權(quán)利要求書13所述的計算機可讀媒體,其特征在于,接收所述數(shù)值包含接收相應于用戶輸入值的數(shù)值。
20.如權(quán)利要求書13所述的計算機可讀媒體,進一步包含計算機可執(zhí)行指令,其用于產(chǎn)生附加提示,該提示向?qū)λ鲇行蚪M參數(shù)的附加參數(shù)的數(shù)值進行請求,每個附加提示包含對所述相關(guān)聯(lián)參數(shù)的一組允許值,所述該組允許值通過響應至少一個先前接收的數(shù)值而被決定。
21.如權(quán)利要求書20所述的計算機可讀媒體,其特征在于,產(chǎn)生所述附加提示包含基于所述參數(shù)之間的依存關(guān)系按順序產(chǎn)生所述附加提示。
22.如權(quán)利要求書20所述的計算機可讀媒體,其特征在于,每個所述附加參數(shù)不具有未定依存關(guān)系。
23.如權(quán)利要求書13所述的計算機可讀媒體,其特征在于,所述后續(xù)參數(shù)不具有未定依存關(guān)系。
24.如權(quán)利要求書13所述的計算機可讀媒體,進一步包含計算機可執(zhí)行指令,其用于在接收所述數(shù)值之前,檢索涉及在所述參數(shù)有序集中的每個所述參數(shù)的元數(shù)據(jù)。
25.用于處理報告的系統(tǒng),包含存儲裝置,其保存涉及許多參數(shù)的數(shù)據(jù);以及報告服務器,其與所述存儲裝置聯(lián)結(jié),并包含報告處理器和數(shù)據(jù)處理器,其接收(a)接收具備有序參數(shù)集合的報告定義;(b)對在其中一個所述有序集合中的第一組參數(shù)接收許多數(shù)值;(c)通過響應對所述第一組參數(shù)接收的數(shù)值,產(chǎn)生許多提示來對后續(xù)的一組參數(shù)的數(shù)值進行請求,所述提示包含對所述后續(xù)參數(shù)的一組允許值;(d)重復步驟(a)到(c),直到對每組參數(shù)已指定所有的參數(shù)值;以及(e)基于所述報告定義和所述接收值執(zhí)行報告。
26.如權(quán)利要求書25所述的系統(tǒng),其特征在于,在產(chǎn)生所述許多提示中,基于對所述第一組參數(shù)接收的數(shù)值,所述報告服務器接收對所述后續(xù)參數(shù)集合的一組潛在值和默認值。
27.如權(quán)利要求書25所述的系統(tǒng),其特征在于,根據(jù)對所述第一組參數(shù)接收的數(shù)值,所述報告服務器接收一組對所述后續(xù)參數(shù)的潛在值,并將所述該組潛在值約束在子集內(nèi),所述子集相應于所述該組允許值。
28.如權(quán)利要求書25所述的系統(tǒng),其特征在于,所述報告處理器產(chǎn)生包含對每個后續(xù)參數(shù)的所述該組允許值的下拉列表。
29.如權(quán)利要求書28所述的系統(tǒng),其特征在于,所述報告服務器顯示所述下拉列表并接收輸入選擇,所述輸入選擇相應于對每個后續(xù)參數(shù)接收的數(shù)值。
30.如權(quán)利要求書25所述的系統(tǒng),其特征在于,至少其中一個所述數(shù)值包含來自所述存儲裝置的默認值。
31.如權(quán)利要求書25所述的系統(tǒng),其特征在于,至少其中一個所述數(shù)值包含相應于用戶輸入值的數(shù)值。
32.如權(quán)利要求書25所述的系統(tǒng),其特征在于,所述報告處理器產(chǎn)生附加提示,該提示是向?qū)λ鲇行蚪M參數(shù)的附加參數(shù)的數(shù)值進行請求,每個附加提示包含對所述相關(guān)聯(lián)參數(shù)的一組允許值,所述該組允許值通過響應至少一個先前接收的數(shù)值而被決定。
33.如權(quán)利要求書32所述的系統(tǒng),其特征在于,根據(jù)所述參數(shù)之間的依存關(guān)系,所述報告處理器按順序產(chǎn)生所述附加提示。
34.如權(quán)利要求書32所述的系統(tǒng),其特征在于,每個所述附加參數(shù)不具有未定依存關(guān)系。
35.如權(quán)利要求書25所述的系統(tǒng),其特征在于,所述后續(xù)參數(shù)不具有未定依存關(guān)系。
36.如權(quán)利要求書25所述的系統(tǒng),其特征在于,所述報告服務器在來自所述存儲裝置的所述參數(shù)有序集中檢索涉及每個所述參數(shù)的元數(shù)據(jù)。
全文摘要
用戶數(shù)值和選擇被收集并提供給報告服務器,其按照用戶數(shù)值和選擇來定制一般定義的報告。一組有序的報告參數(shù)在報告定義中聲明,然后這個參數(shù)定義被用來驅(qū)動用戶提示和報告的執(zhí)行。當按順序收集參數(shù)值時,由用戶對一個參數(shù)檢索或指定的數(shù)值可被用來在序列的后部產(chǎn)生該組參數(shù)允許值或默認值。參數(shù)被動態(tài)提供給用戶。在已經(jīng)檢索或指定了對所有參數(shù)的數(shù)值后,由所述報告服務器產(chǎn)生報告。
文檔編號G06Q10/06GK1525359SQ20041000550
公開日2004年9月1日 申請日期2004年2月12日 優(yōu)先權(quán)日2003年2月12日
發(fā)明者B·L·威爾克, B L 威爾克, C·A·海斯, 海斯 申請人:微軟公司