[發明專利]一種基于XML技術的通用報表生成方法及系統在審
| 申請號: | 201410411380.8 | 申請日: | 2014-08-20 |
| 公開(公告)號: | CN104216952A | 公開(公告)日: | 2014-12-17 |
| 發明(設計)人: | 劉代雄 | 申請(專利權)人: | 烽火通信科技股份有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30;G06F17/21 |
| 代理公司: | 北京捷誠信通專利事務所(普通合伙) 11221 | 代理人: | 魏殿紳;龐炳良 |
| 地址: | 430074 湖北省武*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 xml 技術 通用報表 生成 方法 系統 | ||
技術領域
本發明涉及網絡管理技術領域,具體涉及網絡管理系統中基于XML技術的通用報表生成方法及系統。
背景技術
隨著通信技術的發展,業務數據種類越來越豐富,用戶經常需要將各種業務數據導出為不同格式的報表,例如CSV(Comma?Separated?Values,逗號分隔值文件格式)、HTML(Hyper?Text?Markup?language,超級文本標記語言)和EXCEL(電子表格);報表功能已經成為網絡管理軟件不可或缺主要功能之一。
現有的網絡管理軟件生成報表的方法一般為以下2種:
(1)針對每一種數據類型編寫個對應報表格式的模板,模板中包含用于替換數據的符號;編寫轉換函數,將模板中的符號通過轉換函數替換為實際數據。
(2)將數據填入某種帶有報表功能的控件,利用該控件自帶的報表導出功能導出報表。
但是,上述2種方法生成報表時,分別存在以下缺陷:
1、通過方法(1)生成報表時,當導出的報表格式發生變化時,需要修改模板文檔和代碼,操作過程比較復雜,維護性較差。
2、通過方法(2)生成報表時,必需依賴帶有報表功能的控件,無法通用和擴展,其適用范圍比較單一。
3、方法(1)針對數據類型編寫特定的模板,方法(2)帶有報表功能的控件導出報表的格式固定,方法(1)和方法(2)導出報表的內容和格式均固定化,不便于用戶使用。
發明內容
針對現有技術中存在的缺陷,本發明的目的在于提供一種基于XML技術的通用報表生成方法及系統,能夠支持自定義的報表樣式,不僅比較靈活,便于用戶使用,而且當導出的報表格式發生變化時,只需修改或者增加XSL數據即可適應,操作過程比較簡單,便于維護。
為達到以上目的,本發明采取的技術方案是:一種基于XML技術的通用報表生成方法,包括以下步驟:
A、約定通用的報表數據接口,通過報表數據接口導出原始數據,所有原始數據包括表頭部分和數據部分,表頭部分和數據部分均包括每一行的數據和每一列的數據;初始化報表數據接口,獲取配置數據;
B、遍歷所有的原始數據,生成XML數據;判斷是否需要裝載用戶自定義XSL模板,若是,轉到步驟C,否則轉到步驟D;
C、解析用戶自定義XSL模板文件,生成XSL數據,轉到步驟E;
D、解析原始數據的表頭部分和數據部分,生成XSL數據,轉到步驟E;
E、將XML數據通過XSL數據轉換成報表文件。
在上述技術方案的基礎上,步驟A中所述配置數據包括用戶自定義模板和數據條目。
在上述技術方案的基礎上,步驟B中所述遍歷所有的原始數據的順序為先行后列。
在上述技術方案的基礎上,步驟C中所述解析用戶自定義XSL模板文件包括以下步驟:獲取當前模板文件對應導出的報表格式類型、以及當前模板能夠使用的數據類型,根據當前模板文件的報表格式類型和數據生成XSL數據。
在上述技術方案的基礎上,步驟D中所述解析原始數據的表頭部分和數據部分,生成XSL數據包括以下步驟:
D1、遍歷原始數據表頭部分的每一列數據、并寫入XSL文件;
D2、判斷是否需要生成CSV格式的報表,若是,直接根據原始數據的數據部分生成XSL數據,轉到步驟E,否則根據原始數據的數據部分,形成若干矩形區域,轉到步驟D4;
D4、選取一個最小的矩形區域;
D5、掃描當前矩形區域,選取當前矩形區域中未掃描的一行數據;遍歷當前行數據的所有列,判斷當前行所有列是否有合并,若是,針對不同的報表格式,在XSL文件中寫入不同的單元格合并信息,否則通過XSL語法取到與當前行所有列的數據對應的報表數據、并寫入XSL文件;將合并的行起始值、列起始值和數目記錄在合并信息表中、并標記為已掃描;
D6、重復執行步驟D5,直至當前矩形區域中的所有數據遍歷完成;
D7、重復執行步驟D4~D6,直至所有原始數據遍歷完成,生成所有原始數據的XSL數據,轉到步驟E。
在上述技術方案的基礎上,步驟D2中每個矩形區域中第一行的單元與上個矩形區域倒數第一行的單元未合并,倒數第一行的單元和下個矩形區域第一行的單元未合并;矩形塊的第一行和最后一行之間可以有任意行、列合并。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于烽火通信科技股份有限公司,未經烽火通信科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410411380.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種工業用冷卻水除藻劑的配制方法
- 下一篇:紡織車間的遠程控制除塵系統





