一種從web查詢系統(tǒng)導(dǎo)出報表的方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了從web查詢系統(tǒng)導(dǎo)出報表的方法,應(yīng)用于客戶端上,包括:檢測到用戶在當(dāng)前查詢結(jié)果界面上觸發(fā)了報表導(dǎo)出操作后修改原始查詢請求,在其中增加導(dǎo)出標(biāo)識后發(fā)送給服務(wù)器,接收服務(wù)器端返回的包含報表文件的響應(yīng)。還公開了相應(yīng)的應(yīng)用于服務(wù)器上的方法,包括:接收客戶端發(fā)送的查詢請求并生成查詢結(jié)果頁面,為查詢結(jié)果頁面中的表格對象設(shè)置統(tǒng)一的標(biāo)識,如查詢請求包含導(dǎo)出標(biāo)識,將查詢結(jié)果頁面轉(zhuǎn)換為文檔對象模型,根據(jù)所述標(biāo)識定位到文檔對象模型中的表格對象,將文檔對象模型中的表格對象轉(zhuǎn)換為報表文件,攜帶在響應(yīng)中返回到客戶端。本發(fā)明能達(dá)到對服務(wù)器端查詢程序無侵入,實現(xiàn)所見即所得的報表文件的導(dǎo)出,提高系統(tǒng)開發(fā)和維護(hù)的效率。
【專利說明】一種從web查詢系統(tǒng)導(dǎo)出報表的方法、裝置及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)通信【技術(shù)領(lǐng)域】,尤其涉及的是一種從web查詢系統(tǒng)導(dǎo)出報表的方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]Excel格式的報表是我們當(dāng)今工作和生活中使用得最廣泛的一種報表格式,而通過瀏覽器在web應(yīng)用系統(tǒng)中查詢到用戶所需數(shù)據(jù),然后將查詢結(jié)果導(dǎo)出到excel已經(jīng)是人們普遍認(rèn)為最方便的獲取報表數(shù)據(jù)的方式。
[0003]現(xiàn)有的從web查詢系統(tǒng)導(dǎo)出報表的方式主要有2大類,第一類是在瀏覽器所在的客戶端安裝微軟提供的excel插件,當(dāng)用戶在查詢結(jié)果界面上點擊導(dǎo)出按鈕后,瀏覽器直接將當(dāng)前web頁面中顯示的表格數(shù)據(jù)轉(zhuǎn)換為excel文件。這種方式的缺陷在于:客戶端必須安裝excel插件,而且目前只支持Internet Explorer瀏覽器,不支持其他類型的瀏覽器。第二類是在服務(wù)器側(cè)通過預(yù)先定義好模板,在用戶查詢出結(jié)果后點擊導(dǎo)出按鈕后,將相同查詢條件再次發(fā)送到服務(wù)器端進(jìn)行查詢,將查詢結(jié)果根據(jù)預(yù)定義的模板格式組裝成excel文件再響應(yīng)到客戶端。這種方式對于開發(fā)來說具有明顯的缺點:每個查詢頁面都要預(yù)先定義對應(yīng)的模板,如果要讓導(dǎo)出的excel文件達(dá)到所見即所得,這要求后臺開發(fā)人員必須要清楚前臺web頁面的結(jié)構(gòu),而且還要隨著前臺web頁面結(jié)構(gòu)的變化而修改后臺程序,這是非常低效的,而且還容易產(chǎn)生web頁面顯示結(jié)果與excel文件顯示結(jié)果不一致。
[0004]因此,為了使報表導(dǎo)出達(dá)到所見即所得,提高web系統(tǒng)開發(fā)和維護(hù)的效率,現(xiàn)有的方法還有待改進(jìn)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所要解決的技術(shù)問題是提供一種從web查詢系統(tǒng)導(dǎo)出報表的方法、裝置及系統(tǒng),能夠使從web查詢系統(tǒng)導(dǎo)出的報表滿足用戶所見即所得的要求,提高web查詢系統(tǒng)開發(fā)和維護(hù)的效率。
[0006]為了解決上述技術(shù)問題,本發(fā)明提供了一種從web查詢系統(tǒng)導(dǎo)出報表的方法,應(yīng)用于客戶端上,該方法包括:
[0007]檢測到用戶在當(dāng)前查詢結(jié)果界面上觸發(fā)了報表導(dǎo)出操作后,修改原始查詢請求,所述修改包括:在其中增加導(dǎo)出標(biāo)識,其中,所述原始查詢請求是之前為了獲取當(dāng)前查詢結(jié)果所提交的查詢請求;
[0008]將修改后的查詢請求發(fā)送給服務(wù)器;
[0009]接收服務(wù)器端返回的包含報表文件的查詢響應(yīng),所述報表文件記錄了要導(dǎo)出的查詢結(jié)果頁面中的表格對象。
[0010]進(jìn)一步地,所述修改原始查詢請求,還包括:如果用戶觸發(fā)的報表導(dǎo)出操作是要導(dǎo)出全部查詢結(jié)果且當(dāng)前查詢頁面是分頁的數(shù)據(jù),則將原始查詢請求中的當(dāng)前頁碼設(shè)置為首頁,且將每頁記錄數(shù)目設(shè)置為查詢系統(tǒng)性能允許的最大值。[0011]為了解決上述技術(shù)問題,本發(fā)明還提供了一種從web查詢系統(tǒng)導(dǎo)出報表的方法,應(yīng)用于服務(wù)器上,該方法包括:
[0012]接收到客戶端發(fā)送的查詢請求,獲取查詢結(jié)果并生成查詢結(jié)果頁面,在生成查詢結(jié)果頁面時為查詢結(jié)果頁面中的表格對象設(shè)置統(tǒng)一的標(biāo)識;
[0013]如所述查詢請求包含導(dǎo)出標(biāo)識,將所述查詢結(jié)果頁面轉(zhuǎn)換為文檔對象模型,根據(jù)所述統(tǒng)一的標(biāo)識定位到文檔對象模型中的表格對象,將所述文檔對象模型中的表格對象轉(zhuǎn)換為報表文件;
[0014]將所述報表文件攜帶在查詢響應(yīng)中返回到客戶端。
[0015]進(jìn)一步地,所述報表文件為EXCEL格式的報表文件。
[0016]為了解決上述技術(shù)問題,本發(fā)明還提供了一種從web查詢系統(tǒng)導(dǎo)出報表的方法,該方法包括:
[0017]客戶端執(zhí)行上述應(yīng)用于客戶端上的從web查詢系統(tǒng)導(dǎo)出報表的方法;
[0018]服務(wù)器端執(zhí)行上述應(yīng)用于服務(wù)器上的從web查詢系統(tǒng)導(dǎo)出報表的方法。
[0019]為了解決上述技術(shù)問題,本發(fā)明還提供了一種從web查詢系統(tǒng)導(dǎo)出報表的裝置,應(yīng)用于客戶端上,包括:
[0020]檢測模塊,用于檢測到用戶在當(dāng)前查詢結(jié)果界面上觸發(fā)了報表導(dǎo)出操作后,修改原始查詢請求,所述修改包括:在其中增加導(dǎo)出標(biāo)識,其中,所述原始查詢請求是之前為了獲取當(dāng)前查詢結(jié)果所提交的查詢請求;
[0021]發(fā)送模塊,用于將修改后的查詢請求發(fā)送給服務(wù)器;
[0022]接收模塊,用于接收服務(wù)器端返回的包含報表文件的查詢響應(yīng),所述報表文件記錄了要導(dǎo)出的查詢結(jié)果頁面中的表格對象。
[0023]進(jìn)一步地,所述修改原始查詢請求,還包括:如果用戶觸發(fā)的報表導(dǎo)出操作是要導(dǎo)出全部查詢結(jié)果且當(dāng)前查詢頁面是分頁的數(shù)據(jù),則將原始查詢請求中的當(dāng)前頁碼設(shè)置為首頁,且將每頁記錄數(shù)目設(shè)置為查詢系統(tǒng)性能允許的最大值。
[0024]為了解決上述技術(shù)問題,本發(fā)明還提供了一種從web查詢系統(tǒng)導(dǎo)出報表的裝置,應(yīng)用于服務(wù)器上,包括:
[0025]接收模塊,用于接收到客戶端發(fā)送的查詢請求,獲取查詢結(jié)果并生成查詢結(jié)果頁面,在生成查詢結(jié)果頁面時為查詢結(jié)果頁面中的表格對象設(shè)置統(tǒng)一的標(biāo)識;
[0026]轉(zhuǎn)換模塊,用于如所述查詢請求包含導(dǎo)出標(biāo)識,將所述查詢結(jié)果頁面轉(zhuǎn)換為文檔對象模型,根據(jù)所述統(tǒng)一的標(biāo)識定位到文檔對象模型中的表格對象,將所述文檔對象模型中的表格對象轉(zhuǎn)換為報表文件;
[0027]發(fā)送模塊,用于將所述報表文件攜帶在查詢響應(yīng)中返回到客戶端。
[0028]進(jìn)一步地,所述報表文件為EXCEL格式的報表文件。
[0029]為了解決上述技術(shù)問題,本發(fā)明還提供了一種從web查詢系統(tǒng)導(dǎo)出報表的系統(tǒng),包括:
[0030]上述應(yīng)用于客戶端上的從web查詢系統(tǒng)導(dǎo)出報表的裝置;及上述應(yīng)用于服務(wù)器上的從web查詢系統(tǒng)導(dǎo)出報表的裝置。
[0031]與現(xiàn)有技術(shù)相比,本發(fā)明提供的從web查詢系統(tǒng)導(dǎo)出報表的方法、裝置及系統(tǒng),通過對客戶端在檢測到用戶觸發(fā)了導(dǎo)出報表的操作后對查詢請求的過濾處理,服務(wù)器端在判斷出查詢請求中攜帶導(dǎo)出標(biāo)識后對查詢結(jié)果頁面的響應(yīng)攔截,將響應(yīng)轉(zhuǎn)換為文檔對象模型,在文檔對象模型中定位到表格對象,將表格對象轉(zhuǎn)換為報表文件作為響應(yīng)返回到客戶端。利用本發(fā)明實現(xiàn)報表導(dǎo)出,可以達(dá)到對服務(wù)器端查詢程序無侵入,不受服務(wù)端編程語言類型的限制,不受后臺數(shù)據(jù)來源的限制,可以讓系統(tǒng)以最小的改動實現(xiàn)所見即所得的報表文件的導(dǎo)出,大大提高web查詢系統(tǒng)開發(fā)和維護(hù)的效率。
【專利附圖】
【附圖說明】
[0032]圖1為本發(fā)明實施例的從web查詢系統(tǒng)導(dǎo)出報表的方法流程圖(應(yīng)用于客戶端上)。
[0033]圖2為圖1實施例的查詢結(jié)果頁面顯示示例。
[0034]圖3為本發(fā)明實施例的從web查詢系統(tǒng)導(dǎo)出報表的方法流程圖(應(yīng)用于服務(wù)器上)。
[0035]圖4為圖2的查詢結(jié)果頁面的表格數(shù)據(jù)的DOM結(jié)構(gòu)圖。
[0036]圖5為本發(fā)明實施例的從web查詢系統(tǒng)導(dǎo)出報表的方法流程圖(包括客戶端和服務(wù)器)。
[0037]圖6為本發(fā)明實施例的從web查詢系統(tǒng)導(dǎo)出報表的裝置結(jié)構(gòu)示意圖(應(yīng)用于客戶端上)。
[0038]圖7為本發(fā)明實施例的從web查詢系統(tǒng)導(dǎo)出報表的裝置結(jié)構(gòu)示意圖(應(yīng)用于服務(wù)器上)。
[0039]圖8為本發(fā)明實施例的從web查詢系統(tǒng)導(dǎo)出報表的系統(tǒng)結(jié)構(gòu)示意圖(包括客戶端和服務(wù)器)。
【具體實施方式】
[0040]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
[0041]如圖1所示,本發(fā)明實施例提供了一種從web查詢系統(tǒng)導(dǎo)出報表的方法,應(yīng)用于客戶端上,該方法包括:
[0042]S10,檢測到用戶在當(dāng)前查詢結(jié)果界面上觸發(fā)了報表導(dǎo)出操作后,修改原始查詢請求,所述修改包括:在其中增加導(dǎo)出標(biāo)識,其中,所述原始查詢請求是之前為了獲取當(dāng)前查詢結(jié)果所提交的查詢請求;
[0043]S20,將修改后的查詢請求發(fā)送給服務(wù)器;
[0044]S30,接收服務(wù)器端返回的包含報表文件的查詢響應(yīng),所述報表文件記錄了要導(dǎo)出的查詢結(jié)果頁面中的表格對象。
[0045]步驟SlO進(jìn)一步包括下述特點:
[0046]其中,所述修改原始查詢請求,還包括:如果用戶觸發(fā)的報表導(dǎo)出操作是要導(dǎo)出全部查詢結(jié)果且當(dāng)前查詢頁面是分頁的數(shù)據(jù),則將原始查詢請求中的當(dāng)前頁碼設(shè)置為首頁,且將每頁記錄數(shù)目設(shè)置為查詢系統(tǒng)性能允許的最大值,實際情況中指定查詢條件下的記錄總數(shù)不會超過所述的最大值;[0047]本發(fā)明在當(dāng)前查詢頁面是分頁的數(shù)據(jù)時,無論當(dāng)前頁面是哪一頁時,都能通過修改查詢請求中的當(dāng)前頁碼和每頁記錄數(shù)目來導(dǎo)出全部查詢結(jié)果;
[0048]比如,當(dāng)前查詢結(jié)果的頁面顯示樣例如圖2所示,用戶在當(dāng)前查詢界面“年齡”文本框中輸入“23”,點擊“查詢”按鈕后得到列表數(shù)據(jù),用戶再點擊“導(dǎo)出報表”按鈕觸發(fā)報表導(dǎo)出操作。優(yōu)選地,“導(dǎo)出報表”的按鈕可以包括“導(dǎo)出全部報表”的子選項,如果用戶不選擇“導(dǎo)出全部報表”的子選項,則系統(tǒng)默認(rèn)導(dǎo)出當(dāng)前查詢結(jié)果界面上顯示的列表數(shù)據(jù);
[0049]步驟S30進(jìn)一步包括下述特點:
[0050]其中,所述報表文件記錄了要導(dǎo)出的查詢結(jié)果頁面中的表格對象,也即,所述報表文件記錄的表格與查詢結(jié)果頁面中的表格,二者的顯示完全一樣;
[0051]如圖3所示,本發(fā)明實施例提供了一種從web查詢系統(tǒng)導(dǎo)出報表的方法,應(yīng)用于服務(wù)器上,該方法包括:
[0052]S10,接收到客戶端發(fā)送的查詢請求,獲取查詢結(jié)果并生成查詢結(jié)果頁面,在生成查詢結(jié)果頁面時為查詢結(jié)果頁面中的表格對象設(shè)置統(tǒng)一的標(biāo)識;
[0053]S20,如所述查詢請求包含導(dǎo)出標(biāo)識,將所述查詢結(jié)果頁面轉(zhuǎn)換為文檔對象模型,根據(jù)所述統(tǒng)一的標(biāo)識定位到文檔對象模型中的表格對象,將所述文檔對象模型中的表格對象轉(zhuǎn)換為報表文件;
[0054]S30,將所述報表文件攜帶在查詢響應(yīng)中返回到客戶端。
[0055]步驟SlO進(jìn)一步包括下述特點:
[0056]其中,服務(wù)器根據(jù)所述查詢請求獲取查詢結(jié)果,包括:服務(wù)器查詢程序根據(jù)查詢請求到數(shù)據(jù)庫、文件系統(tǒng)或者第三方系統(tǒng)查詢數(shù)據(jù),獲取查詢結(jié)果;比如,用戶提交的查詢請求是:查詢年齡為23歲的人員姓名,服務(wù)器獲得的查詢結(jié)果是:年齡為23歲的人員姓名列表,則由該姓名列表生成的html格式的查詢結(jié)果頁面的樹形文檔結(jié)構(gòu)如下:
[0057]
【權(quán)利要求】
1.一種從web查詢系統(tǒng)導(dǎo)出報表的方法,應(yīng)用于客戶端上,該方法包括: 檢測到用戶在當(dāng)前查詢結(jié)果界面上觸發(fā)了報表導(dǎo)出操作后,修改原始查詢請求,所述修改包括:在其中增加導(dǎo)出標(biāo)識,其中,所述原始查詢請求是之前為了獲取當(dāng)前查詢結(jié)果所提交的查詢請求; 將修改后的查詢請求發(fā)送給服務(wù)器; 接收服務(wù)器端返回的包含報表文件的查詢響應(yīng),所述報表文件記錄了要導(dǎo)出的查詢結(jié)果頁面中的表格對象。
2.如權(quán)利要求1所述的方法,其特征在于: 所述修改原始查詢請求,還包括: 如果用戶觸發(fā)的報表導(dǎo)出操作是要導(dǎo)出全部查詢結(jié)果且當(dāng)前查詢頁面是分頁的數(shù)據(jù),則將原始查詢請求中的當(dāng)前頁碼設(shè)置為首頁,且將每頁記錄數(shù)目設(shè)置為查詢系統(tǒng)性能允許的最大值。
3.一種從web查詢系統(tǒng)導(dǎo)出報表的方法,應(yīng)用于服務(wù)器上,該方法包括: 接收到客戶端發(fā)送的 查詢請求,獲取查詢結(jié)果并生成查詢結(jié)果頁面,在生成查詢結(jié)果頁面時為查詢結(jié)果頁面中的表格對象設(shè)置統(tǒng)一的標(biāo)識; 如所述查詢請求包含導(dǎo)出標(biāo)識,將所述查詢結(jié)果頁面轉(zhuǎn)換為文檔對象模型,根據(jù)所述統(tǒng)一的標(biāo)識定位到文檔對象模型中的表格對象,將所述文檔對象模型中的表格對象轉(zhuǎn)換為報表文件; 將所述報表文件攜帶在查詢響應(yīng)中返回到客戶端。
4.如權(quán)利要求3所述的方法,其特征在于: 所述報表文件為EXCEL格式的報表文件。
5.一種從web查詢系統(tǒng)導(dǎo)出報表的方法,該方法包括: 客戶端執(zhí)行如權(quán)利要求1或2中所述的應(yīng)用于客戶端上的從web查詢系統(tǒng)導(dǎo)出報表的方法; 服務(wù)器端執(zhí)行如權(quán)利要求3或4中所述的應(yīng)用于服務(wù)器上的從web查詢系統(tǒng)導(dǎo)出報表的方法。
6.一種從web查詢系統(tǒng)導(dǎo)出報表的裝置,應(yīng)用于客戶端上,包括: 檢測模塊,用于檢測到用戶在當(dāng)前查詢結(jié)果界面上觸發(fā)了報表導(dǎo)出操作后,修改原始查詢請求,所述修改包括:在其中增加導(dǎo)出標(biāo)識,其中,所述原始查詢請求是之前為了獲取當(dāng)前查詢結(jié)果所提交的查詢請求; 發(fā)送模塊,用于將修改后的查詢請求發(fā)送給服務(wù)器; 接收模塊,用于接收服務(wù)器端返回的包含報表文件的查詢響應(yīng),所述報表文件記錄了要導(dǎo)出的查詢結(jié)果頁面中的表格對象。
7.如權(quán)利要求6所述的裝置,其特征在于: 所述修改原始查詢請求,還包括: 如果用戶觸發(fā)的報表導(dǎo)出操作是要導(dǎo)出全部查詢結(jié)果且當(dāng)前查詢頁面是分頁的數(shù)據(jù),則將原始查詢請求中的當(dāng)前頁碼設(shè)置為首頁,且將每頁記錄數(shù)目設(shè)置為查詢系統(tǒng)性能允許的最大值。
8.一種從web查詢系統(tǒng)導(dǎo)出報表的裝置,應(yīng)用于服務(wù)器上,包括:接收模塊,用于接收到客戶端發(fā)送的查詢請求,獲取查詢結(jié)果并生成查詢結(jié)果頁面,在生成查詢結(jié)果頁面時為查詢結(jié)果頁面中的表格對象設(shè)置統(tǒng)一的標(biāo)識; 轉(zhuǎn)換模塊,用于如所述查詢請求包含導(dǎo)出標(biāo)識,將所述查詢結(jié)果頁面轉(zhuǎn)換為文檔對象模型,根據(jù)所述統(tǒng)一的標(biāo)識定位到文檔對象模型中的表格對象,將所述文檔對象模型中的表格對象轉(zhuǎn)換為報表文件; 發(fā)送模塊,用于將所述報表文件攜帶在查詢響應(yīng)中返回到客戶端。
9.如權(quán)利要求8所述的裝置,其特征在于: 所述報表文件為EXCEL格式的報表文件。
10.一種從web查詢系統(tǒng)導(dǎo)出報表的系統(tǒng),包括: 如權(quán)利要求6或7所述的應(yīng)用于客戶端上的從web查詢系統(tǒng)導(dǎo)出報表的裝置;及如權(quán)利要求8或9所述的應(yīng)用于服 務(wù)器上的從web查詢系統(tǒng)導(dǎo)出報表的裝置。
【文檔編號】G06F17/30GK103473234SQ201210186444
【公開日】2013年12月25日 申請日期:2012年6月7日 優(yōu)先權(quán)日:2012年6月7日
【發(fā)明者】王慶, 潘易龍, 何栩翊 申請人:中興通訊股份有限公司