[發(fā)明專利]一種基于XML技術(shù)的通用報表生成方法及系統(tǒng)在審
| 申請?zhí)枺?/td> | 201410411380.8 | 申請日: | 2014-08-20 |
| 公開(公告)號: | CN104216952A | 公開(公告)日: | 2014-12-17 |
| 發(fā)明(設(shè)計)人: | 劉代雄 | 申請(專利權(quán))人: | 烽火通信科技股份有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30;G06F17/21 |
| 代理公司: | 北京捷誠信通專利事務(wù)所(普通合伙) 11221 | 代理人: | 魏殿紳;龐炳良 |
| 地址: | 430074 湖北省武*** | 國省代碼: | 湖北;42 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 xml 技術(shù) 通用報表 生成 方法 系統(tǒng) | ||
1.一種基于XML技術(shù)的通用報表生成方法,其特征在于,包括以下步驟:
A、約定通用的報表數(shù)據(jù)接口,通過報表數(shù)據(jù)接口導(dǎo)出原始數(shù)據(jù),所有原始數(shù)據(jù)包括表頭部分和數(shù)據(jù)部分,表頭部分和數(shù)據(jù)部分均包括每一行的數(shù)據(jù)和每一列的數(shù)據(jù);初始化報表數(shù)據(jù)接口,獲取配置數(shù)據(jù);
B、遍歷所有的原始數(shù)據(jù),生成XML數(shù)據(jù);判斷是否需要裝載用戶自定義XSL模板,若是,轉(zhuǎn)到步驟C,否則轉(zhuǎn)到步驟D;
C、解析用戶自定義XSL模板文件,生成XSL數(shù)據(jù),轉(zhuǎn)到步驟E;
D、解析原始數(shù)據(jù)的表頭部分和數(shù)據(jù)部分,生成XSL數(shù)據(jù),轉(zhuǎn)到步驟E;
E、將XML數(shù)據(jù)通過XSL數(shù)據(jù)轉(zhuǎn)換成報表文件。
2.如權(quán)利要求1所述的基于XML技術(shù)的通用報表生成方法,其特征在于:步驟A中所述配置數(shù)據(jù)包括用戶自定義模板和數(shù)據(jù)條目。
3.如權(quán)利要求1所述的基于XML技術(shù)的通用報表生成方法,其特征在于:步驟B中所述遍歷所有的原始數(shù)據(jù)的順序為先行后列。
4.如權(quán)利要求1所述的基于XML技術(shù)的通用報表生成方法,其特征在于:步驟C中所述解析用戶自定義XSL模板文件包括以下步驟:獲取當(dāng)前模板文件對應(yīng)導(dǎo)出的報表格式類型、以及當(dāng)前模板能夠使用的數(shù)據(jù)類型,根據(jù)當(dāng)前模板文件的報表格式類型和數(shù)據(jù)生成XSL數(shù)據(jù)。
5.如權(quán)利要求1所述的基于XML技術(shù)的通用報表生成方法,其特征在于:步驟D中所述解析原始數(shù)據(jù)的表頭部分和數(shù)據(jù)部分,生成XSL數(shù)據(jù)包括以下步驟:
D1、遍歷原始數(shù)據(jù)表頭部分的每一列數(shù)據(jù)、并寫入XSL文件;
D2、判斷是否需要生成CSV格式的報表,若是,直接根據(jù)原始數(shù)據(jù)的數(shù)據(jù)部分生成XSL數(shù)據(jù),轉(zhuǎn)到步驟E,否則根據(jù)原始數(shù)據(jù)的數(shù)據(jù)部分,形成若干矩形區(qū)域,轉(zhuǎn)到步驟D4;
D4、選取一個最小的矩形區(qū)域;
D5、掃描當(dāng)前矩形區(qū)域,選取當(dāng)前矩形區(qū)域中未掃描的一行數(shù)據(jù);遍歷當(dāng)前行數(shù)據(jù)的所有列,判斷當(dāng)前行所有列是否有合并,若是,針對不同的報表格式,在XSL文件中寫入不同的單元格合并信息,否則通過XSL語法取到與當(dāng)前行所有列的數(shù)據(jù)對應(yīng)的報表數(shù)據(jù)、并寫入XSL文件;將合并的行起始值、列起始值和數(shù)目記錄在合并信息表中、并標(biāo)記為已掃描;
D6、重復(fù)執(zhí)行步驟D5,直至當(dāng)前矩形區(qū)域中的所有數(shù)據(jù)遍歷完成;
D7、重復(fù)執(zhí)行步驟D4~D6,直至所有原始數(shù)據(jù)遍歷完成,生成所有原始數(shù)據(jù)的XSL數(shù)據(jù),轉(zhuǎn)到步驟E。
6.如權(quán)利要求5所述的基于XML技術(shù)的通用報表生成方法,其特征在于:步驟D2中每個矩形區(qū)域中第一行的單元與上個矩形區(qū)域倒數(shù)第一行的單元未合并,倒數(shù)第一行的單元和下個矩形區(qū)域第一行的單元未合并;矩形塊的第一行和最后一行之間可以有任意行、列合并。
7.如權(quán)利要求1至6任一項所述的基于XML技術(shù)的通用報表生成方法,其特征在于:步驟E中所述將XML數(shù)據(jù)通過XSL數(shù)據(jù)轉(zhuǎn)換成報表文件包括以下步驟:通過MSXML3.0中的transformNodeToObject函數(shù),將XML數(shù)據(jù)通過XSL數(shù)據(jù)轉(zhuǎn)換成報表文件。
8.如權(quán)利要求1至6任一項所述的基于XML技術(shù)的通用報表生成方法,其特征在于:步驟E之后還包括以下步驟:向報表文件中添加額外信息,所述額外信息包括統(tǒng)計某列數(shù)據(jù)信息和報表生成時間。
9.一種實現(xiàn)權(quán)利要求1至8任一項所述方法的基于XML技術(shù)的通用報表生成系統(tǒng),其特征在于:包括原始數(shù)據(jù)導(dǎo)出模塊、XML數(shù)據(jù)生成模塊、用戶XSL數(shù)據(jù)生成模塊、原始XSL數(shù)據(jù)生成模塊和報表轉(zhuǎn)換模塊;
所述原始數(shù)據(jù)導(dǎo)出模塊用于:約定通用的報表數(shù)據(jù)接口,通過報表數(shù)據(jù)接口導(dǎo)出原始數(shù)據(jù),所有原始數(shù)據(jù)包括表頭部分和數(shù)據(jù)部分,表頭部分和數(shù)據(jù)部分均包括每一行的數(shù)據(jù)和每一列的數(shù)據(jù);初始化報表數(shù)據(jù)接口,獲取配置數(shù)據(jù),向XML數(shù)據(jù)生成模塊發(fā)送XML數(shù)據(jù)生成信號;
所述XML數(shù)據(jù)生成模塊用于:收到XML數(shù)據(jù)生成信號后,按先行后列的順序遍歷所有的原始數(shù)據(jù),生成XML數(shù)據(jù);判斷是否需要裝載用戶自定義XSL模板,若是,向用戶XSL數(shù)據(jù)生成模塊發(fā)送XSL數(shù)據(jù)生成信號,否則向原始XSL數(shù)據(jù)生成模塊發(fā)送XSL數(shù)據(jù)生成信號;
所述用戶XSL數(shù)據(jù)生成模塊用于:收到XSL數(shù)據(jù)生成信號后,解析用戶自定義XSL模板文件,生成XSL數(shù)據(jù),向報表轉(zhuǎn)換模塊發(fā)送報表轉(zhuǎn)換信號;
所述原始XSL數(shù)據(jù)生成模塊用于:收到XSL數(shù)據(jù)生成信號后,解析原始數(shù)據(jù)的表頭部分和數(shù)據(jù)部分,生成XSL數(shù)據(jù),向報表轉(zhuǎn)換模塊發(fā)送報表轉(zhuǎn)換信號;
所述報表轉(zhuǎn)換模塊用于:收到報表轉(zhuǎn)換信號后,將XML數(shù)據(jù)通過XSL數(shù)據(jù)轉(zhuǎn)換成報表文件。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于烽火通信科技股份有限公司,未經(jīng)烽火通信科技股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410411380.8/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





