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