專利名稱:用于動態(tài)報表區(qū)域的公式處理系統(tǒng)及其方法
技術領域:
本發(fā)明涉及動態(tài)表格區(qū)域處理技術,更具體地涉及用于動態(tài)報 表區(qū)域的公式處理系統(tǒng)及其方法。
背景技術:
從系統(tǒng)中提煉出有價值的數據信息,及時掌握企業(yè)動態(tài),以幫 助企業(yè)領導^L出經營決策,真正實現(xiàn)企業(yè)才艮表分沖斤的隨需而動。在現(xiàn)有的企業(yè)報表分析系統(tǒng)中,在數據抽取和轉換方面有很多 限制,動態(tài)報表區(qū)域不支持按照單元位置定義和計算公式,不能靈 活組合出復雜的條件。格式和數據的關聯(lián)性很強,數據填充規(guī)則可 以靈活的把數據填充和擴展到輕量級的數據才莫型中。用戶不能將關 注的數據抽取、轉換并靈活地填充、擴展出來。發(fā)明內容為了解決上述技術問題至少之 一 ,本發(fā)明提供了 一種用于動態(tài)報表區(qū)域的公式處理系統(tǒng),包括取數公式生成裝置,用于在所述 動態(tài)報表區(qū)域按照單元位置生成取數公式,使用所述取數公式從報 表的單元位置取數;公式解析裝置,用于對所述取數公式進行解析, 驗證所述取數公式的合法性;/>式才莫型裝置,用于儲存動態(tài)才艮表區(qū) 域的取數公式;以及動態(tài)區(qū)模型裝置,用于儲存所述動態(tài)報表區(qū)域。在上述7>式處理系統(tǒng)中,進一步包^":計算和調度引擎,用于在計算發(fā)起后,使用所述取數公式抽取和轉換數據。公式模型裝置 還可以^f諸存主表的耳又凄t/^式。在上述/>式處理系統(tǒng)中,所述y^式處理系統(tǒng)二換照動態(tài)區(qū)域j史寺居 擴充和填充規(guī)則將所述一各式模型和所述動態(tài)區(qū)模型轉換成輕量數據 模型。報表包括本報表和其他報表。上述公式處理系統(tǒng)進一步包括格式模型裝置,用于儲存所述報 表中的單元格式信息、公式模型、動態(tài)區(qū)模型,并將所述單元格式 信息、所述7>式才莫型、所述動態(tài)區(qū)才莫型持久化到物理數據庫中。上述公式處理系統(tǒng)進一步包括公式鏈構建裝置,用于根據所述 公式模型裝置所儲存的所述公式數據模型和所述動態(tài)區(qū)模型裝置所 儲存的數據模型,來構建公式鏈,以供所述公式解析裝置使用。本發(fā)明還提供了一種用于動態(tài)報表區(qū)域的公式處理方法,包括 步驟602,在所述動態(tài)報表區(qū)域按照單元位置生成取數公式,使用 所述取數公式從報表的單元位置取數;步驟604,通過公式解析裝 置解析所述取數公式,— 險證所述取數公式的合法性;步驟606,將 動態(tài)報表區(qū)域的取數公式儲存在公式模型中;以及步驟608,將所 述動態(tài)報表區(qū)域儲存在動態(tài)區(qū)才莫型中。上述/>式處理方法進一步包4舌在計算發(fā)起后,通過計算和調 度引擎使用所述取數公式抽取和轉換數據。所述7>式處理系統(tǒng)按照動態(tài)區(qū)域數據擴充和填充身見則將所述公 式的數據模型和所述動態(tài)區(qū)域報表的數據模型轉換成輕量數據模型o上述 >式處理方法進一步包括通過7>式《連構建裝置4艮據所述公式數據模型和所述數據才莫型,來構建公式鏈,以供所述公式解析 裝置使用。在上述公式處理方法中,使用格式模型裝置儲存所述報表中的 單元格式信息、公式模型、動態(tài)區(qū)模型,并將所述單元格式信息、 所述公式模型、所述動態(tài)區(qū)模型持久化到物理數據庫中。才艮表包括本才艮表和其他^艮表。通過上述技術方案,徹底打破了傳統(tǒng)4艮表工具在數據抽取和轉 換上的種種限制,動態(tài)區(qū)域內4姿照單元位置定義和計算7>式,由,> 式4由耳又和轉換后的凄t據可以纟要照 一種-見則靈活的填充和擴展到動態(tài) 區(qū)i或內。上述4支術方案具有以下4尤點至少之一動態(tài)報表區(qū)域支持按照單元位置定義和計算公式。公式模型、公式解析器(公式驅動)、公式計算和調度引擎服務, 可以靈活組合出復雜的條件,支持組合出通用的集合運算。格式和數據的弱關聯(lián)性具有格式模型和輕量數據模型,數據 可以在動態(tài)區(qū)內動態(tài)靈活、有層次的擴展。數據填充規(guī)則可以靈活的把數據填充和擴展到輕量級的數據模 型中。
通過下面結合附圖的具體描述可以更清楚地理解本發(fā)明的上述 和其^f也方面、特;f正以及其他/f尤點。圖1是根據本發(fā)明的一個實施例的用于動態(tài)報表區(qū)域的公式處理系統(tǒng)的才匡圖;圖2示出了才艮據本發(fā)明的一個實施例的公式定義、解析、存儲 的流程圖;圖3示出了根據本發(fā)明的一個實施例的公式解析、計算、調度、 凄t據抽耳又轉換的流程圖;圖4示出了根據本發(fā)明的一個實施例的用于動態(tài)凈艮表區(qū)域的7> 式處理方法的濟u禾呈圖;圖5示出了根據本發(fā)明的一個實施例中使用的取數公式的模型 示意圖。
具體實施方式
下面將參考附圖具體描述本發(fā)明的示例性實施例。圖1是根據本發(fā)明的一個實施例的用于動態(tài)報表區(qū)域的公式處 理系統(tǒng)的4匡圖。該7>式處理系統(tǒng)10包括|又數7>式生成裝置102,用于在所述 動態(tài)報表區(qū)域按照單元位置生成取數公式,使用所述取數公式從報 表的單元位置取lt; />式解4斤裝置104,用于對所述耳又H仝式進4亍 解析,驗證所述取數公式的合法性;公式模型裝置106,用于儲存 動態(tài)報表區(qū)域的取數公式;以及動態(tài)區(qū)模型裝置108,用于儲存所 述動態(tài)報表區(qū)域。在上述7>式處理系統(tǒng)中,進一步包4舌計算和調度引擎110, 用于在計算發(fā)起后,使用取數公式抽取和轉換數據。公式才莫型裝置 106還可以^f諸存主表的耳又^y^式。在上述公式處理系統(tǒng)中,所述公式處理系統(tǒng)10按照動態(tài)區(qū)域數 據擴充和填充規(guī)則將所述格式模型和所述動態(tài)區(qū)模型轉換成輕量數 據模型。報表包括本報表和其他報表。上述公式處理系統(tǒng)進一步包括格式才莫型裝置112,用于儲存所 述報表中的單元格式信息、公式模型、動態(tài)區(qū)模型,并將所述單元 格式信息、所述公式模型、所述動態(tài)區(qū)模型持久化到物理數據庫中。上述/>式處理系統(tǒng)進一步包括7>式《連構建裝置114,用于才艮據 所述公式模型裝置所儲存的所述公式數據模型和所述動態(tài)區(qū)模型裝 置所儲存的數據模型,來構建公式鏈,以供所述公式解析裝置使用。圖2示出了根據本發(fā)明的一個實施例的公式定義、解析、存儲 的流禾呈圖。流禾呈i兌明如下定義靈活的取JPA式在才良表的動態(tài)區(qū)內,可以4姿照單元位置 定義公式,此單元位置可以是本表的也可以是其他報表的。公式解析器公式驅動程序把定義好的公式進行語法、語義檢 查,確保公式定義的合法性。靈活組合出復雜的條件,支持組合出 通用的集合。解析出的公式保存在公式模型中。動態(tài)區(qū)域中定義的公式,按照動態(tài)區(qū)PK保存到公式模型中。格式模型存儲公式模型,最后把格式模型持久化到物理數據庫。圖3示出了根據本發(fā)明的一個實施例的公式解析、計算、調度、 數據抽耳又轉換的流程圖。;充禾呈i兌明i口下由格式模型、公式模型構建公式鏈。公式解析公式驅動程序4巴定義好的公式進行語法、語義4全查, 確保/>式定義的合法性。計算、調度引擎服務計算發(fā)起之后,公式通過計算、調度引 擎抽取和轉換數據。動態(tài)區(qū)f史據擴展、填充^見則由于7>式是4安照單元4立置定義在 動態(tài)區(qū)內的,所以凄t據填充^見則會自動地4巴數據擴展和填充到動態(tài) 區(qū)i或內。由格式模型、公式模型、動態(tài)區(qū)模型轉化成輕量級的數據模型, 抽取和轉換后的數據靈活的擴展到輕量級的數據才莫型中,體現(xiàn)出格式和lt據的弱關聯(lián)性。圖4示出了根據本發(fā)明的一個實施例的用于動態(tài)才艮表區(qū)域的乂> 式處J里方法的流禾呈圖。用于動態(tài)報表區(qū)域的公式處理方法包括步驟602,在所述動 態(tài)報表區(qū)域按照單元位置生成取數公式,使用所述取數公式從報表 的單元位置耳又凄t;步驟604,通過7>式解析裝置對所述耳又#:/>式進 行解析,驗證所述取數公式的合法性;步驟606,將動態(tài)才艮表區(qū)域 的公式儲存在公式模型中;以及步驟608,將所述動態(tài)報表區(qū)域儲 存在動態(tài)區(qū)模型中。上述/>式處理方法進一步包4舌在計算發(fā)起后,通過計算和調 度引擎使用所述公式抽取和轉換數據。所述公式處理系統(tǒng)按照動態(tài)區(qū)域數據擴充和填充規(guī)則將所述才各 式模型和所述動態(tài)區(qū)模型轉換成輕量數據模型。上迷公式處理方法進一步包括通過公式鏈構建裝置根據所述 公式數據模型和所述數據模型,來構建公式鏈,以供所述公式解析 裝置使用。在上述公式處理方法中,使用格式模型裝置儲存所述報表中的 單元格式信息、公式模型、動態(tài)區(qū)模型,并將所述單元格式信息、 所述公式模型、所述動態(tài)區(qū)模型持久化到物理數據庫中。才艮表包括 本報表和其他報表。通過上迷技術方案,徹底打破了傳統(tǒng)報表工具在數據抽取和轉 換上的種種限制,動態(tài)區(qū)域內按照單元位置定義和計算公式,由公 式抽取和轉換后的數據可以按照 一種規(guī)則靈活的填充和擴展到動態(tài) 區(qū)i或內。本發(fā)明中使用的一些術語定義如下格式模型存儲報表中單元格式信息、以及其它格式模型的數 據模型,其他格式模型比如公式模型、動態(tài)區(qū)模型等。輕量數據模型在格式模型的基礎上,輕量、靈活的填充和擴 展數據,負責數據的展示。動態(tài)區(qū)模型存儲動態(tài)區(qū)的數據模型報表中的動態(tài)區(qū)域,相 當于表中表,也可以理解為此報表的子表,此區(qū)域負責靈活的數據 填充和擴展才兒制,甚至可以加上對此動態(tài)區(qū)lt寺居的處理。公式模型存儲各種公式的數據模型,包括主表和動態(tài)區(qū)的公式。公式解析器(驅動)解析公式模型中的公式,由各個7>式驅動 推動公式語法、語義檢查。計算、調度引擎服務 一套包含公式計算、調度的服務。動態(tài)區(qū)PK:在一個報表數據模型中唯一的標識一個動態(tài)區(qū)域, 相當于此動態(tài)區(qū)域的主4建。本技術方案所述的報表動態(tài)區(qū)域支持按照單元位置定義和計算 公式的方法包括兩大流程(可以參考技術方案中的兩個流程圖..圖 2和圖3,方^更理解)1. />式定義、解析、存〗諸流程2. 公式解析、調度、計算、數據抽取轉換流程為4吏本4支術方案的目的、特征和優(yōu)點能夠更加明顯易懂,下邊 將結合例子^f故進一步詳細i兌明例如公式數據集公式GETDATA('銷售情況','分公司編碼/>司名稱,日期, 銷售額','月'=ZMONTH())。該公式描述1.該/>式定義在才艮表的動態(tài)區(qū)域上,比如此區(qū)*或是A6:F6,此區(qū) 域是數據填充和轉換的一個動態(tài)區(qū)域塊;2. 公式的含義從數據集"銷售情況"中把所有分乂>司當前月 的銷售額數據抽取并展示出來;3. 公式條件'月,=ZMONTH(),其中ZMONTH()也是一個公式,耳又當前月的<直。此乂A式的結構(請參見圖5):一般公式結構包括公式名稱和公式參數兩個部分,而公式參 數才艮據函數的功能而不同,比如有的7>式參#1含有過濾條件 GETDATA('銷售情況','分7>司編碼,7>司名稱,日期,銷售額','月 '=ZMONTH(》7〉式解析上邊定義好的公式,由公式驅動負責公式的語法檢查,保證公 式的正確性,/>式包纟舌一下幾個步-驟1. 檢查函數名稱是否合法;2. ;險查函凄t中的符號是否匹配,比如符號()、',;3. 檢查函數各個參數是否合法比如有些參數是數據庫的字段, 檢查此參ft是否存在;4. 4企查運算符,是否符合系統(tǒng)預制的運算符;5. 函數可以嵌套,也要保證每個函數的正確性;6. 如果該公式通過語法4企查,要把公式翻譯成數據庫形式,以 4更讀耳又時還能翻i,成用戶形式。公式存儲把解析出的公式數據庫表達式加入到公式鏈和公式模型中,并 存入豸t據庫。7>式計算、抽取和轉換數據到動態(tài)擴展區(qū)域下邊將詳細介紹一下公式的計算、調度、抽取數據的流程1. 公式解析;2. 計算服務、調度引擎服務執(zhí)行公式計算;3. 動態(tài)區(qū)域把抽取和轉換后的數據根據填充規(guī)則,將數據橫 向或者縱向的擴展。7>式解析由公式驅動解析出公式各個參數把每個參數構建成各個表達式 或者批命令,包括操作符。每個表達式里面含有每個參數的詳細信 自、比如上邊的乂>式會解4斤出以下表達式 l乂^式名稱;2. tt據集名稱;3. 字段信息包括要取出那些字段的數據;4. 過濾條件,此函數中的過濾條件又是一個公式;5. 操作符如果含有操作符號,操作符號也是一個表達式, 可以乂人表達式中知道是哪個沖喿作符。計算服務、調度引擎執(zhí)^亍7^式的計算,抽取和轉換數據各個公式執(zhí)行器負責把解析出的各個表達式,從中抽取數據 此函數中含有過濾條件'月'-ZMONTH(),會先執(zhí)行過濾條件,把所 有的過濾條件匯總成最終的條件,取出當前月的所有分公司的銷售 額情況明細。數據填充抽取和轉換后的數據填充到輕量的數據才莫型中,動態(tài)區(qū)域會負 責數據的橫向或者縱向擴展。上述4支術方案具有以下優(yōu)點至少之一動態(tài)報表區(qū)域支持按照單元位置定義和計算公式。公式模型、公式解析器(公式驅動)、公式計算和調度引擎,可 以靈活組合出復雜的條件,支持組合出通用的集合運算。格式和數據的弱關聯(lián)性具有格式模型和輕量數據模型,數據 可以在動態(tài)區(qū)內動態(tài)靈活、有層次的擴展。數據填充規(guī)則可以靈活的把數據填充和擴展到輕量級的數據模 型中。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明, 對于本領域的寺支術人員來說,本發(fā)明可以有各種更改和變化。凡在 本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等, 均應包含在本發(fā)明的4呆護范圍之內。
權利要求
1.一種用于動態(tài)報表區(qū)域的公式處理系統(tǒng),其特征在于,包括取數公式生成裝置,用于在所述動態(tài)報表區(qū)域按照單元位置生成取數公式,使用所述取數公式從報表的單元位置取數;公式解析裝置,用于對所述取數公式進行解析,驗證所述取數公式的合法性;公式模型裝置,用于儲存動態(tài)報表區(qū)域的取數公式;動態(tài)區(qū)模型裝置,用于儲存所述動態(tài)報表區(qū)域。
2. 根據權利要求1所述的公式處理系統(tǒng),其特征在于,進一步包 括計算和調度引擎,用于在計算發(fā)起后,使用所述取數公式 抽耳又和轉換f史據。
3. 根據權利要求1或2所述的公式處理系統(tǒng),其特征在于,所述 7>式處理系統(tǒng)4安照動態(tài)區(qū)域Jt據擴充和填充身見則將所述耳又凄丈 公式的數據模型和動態(tài)報表區(qū)域的數據模型轉換成輕量數據 模型。
4. 根據權利要求1或2所述的公式處理系統(tǒng),其特征在于,所述 公式處理系統(tǒng)進一步包括格式模型裝置,用于儲存所述報表中 的單元格式信息、公式模型、動態(tài)區(qū)模型,并將所述單元格式 信息、所述公式模型、所述動態(tài)區(qū)模型持久化到物理數據庫中。
5. 根據權利要求1或2所述的公式處理系統(tǒng),其特征在于,所述 公式處理系統(tǒng)進一步包括公式鏈構建裝置,用于根據所述公式 模型裝置所儲存的所述取數公式的數據模型和所述動態(tài)區(qū)才莫型裝置所儲存的數據模型,構建公式鏈,以供所述公式解析裝 置使用。
6. —種用于動態(tài)報表區(qū)域的7>式處理方法,其特征在于,包括步驟602,在所述動態(tài)報表區(qū)域按照單元位置生成取數公 式,使用所述取數公式從報表的單元位置取數;步驟604,通過公式解析裝置對所述取數公式進行解析, 驗證所述取數公式的合法性;步驟606,將動態(tài)報表區(qū)域的取數公式儲存在公式模型中;步驟608,將所述動態(tài)報表區(qū)域儲存在動態(tài)區(qū)模型中。
7. 根據權利要求6所述的公式處理方法,其特征在于,進一步包 括在計算發(fā)起后,通過計算和調度引擎服務使用所述取數公 式抽耳又和轉換lt據。
8. 一艮據權利要求6或7所述的/>式處理方法,其特4正在于,所述 7>式處理系統(tǒng)4要照動態(tài)區(qū)域凄丈據擴充和填充少見則將所述耳又凄t 公式的數據模型和所述動態(tài)才艮表區(qū)域的數據才莫型轉換成輕量 數據模型。
9. 根據權利要求6或7所述的公式處理方法,其特征在于,使用 格式模型裝置儲存所述報表中的單元格式信息、公式模型、動 態(tài)區(qū)模型,并將所述單元一各式信息、所述公式才莫型、所述動態(tài) 區(qū)才莫型持久化到物理凝:據庫中。
10. 根據權利要求6或7所述的公式處理方法,其特征在于,進一 步包括通過公式鏈構建裝置根據所述公式數據模型和所述數 據才莫型,構建公式鏈,以供所述公式解析裝置使用。
全文摘要
本發(fā)明提供了一種用于動態(tài)報表區(qū)域的公式處理系統(tǒng),包括取數公式生成裝置,用于在所述動態(tài)報表區(qū)域按照單元位置生成取數公式,使用所述取數公式從報表的單元位置取數;公式解析裝置,用于對所述取數公式進行解析,驗證所述取數公式的合法性;公式模型裝置,用于儲存動態(tài)報表區(qū)域的取數公式;以及動態(tài)區(qū)模型裝置,用于儲存所述動態(tài)報表區(qū)域。從而,可以靈活的把抽取和轉換出的數據填充和擴展到輕量級的數據模型中。
文檔編號G06F17/24GK101556579SQ20091008385
公開日2009年10月14日 申請日期2009年5月8日 優(yōu)先權日2009年5月8日
發(fā)明者王宇光 申請人:用友軟件股份有限公司