一種數據查詢和報表導出的方法及系統的製作方法
2023-05-26 22:57:21 1
專利名稱:一種數據查詢和報表導出的方法及系統的製作方法
技術領域:
本發明涉及數據查詢和報表導出技術,特別涉及一種在Web伺服器上實現的大數據快速查詢和報表導出的方法及其相關系統。
背景技術:
隨著企業的不斷發展,ERP (Enterprise Resource Planning,企業資源規劃)數據逐日猛增,不斷擴大的數據量使系統的數據查詢和導出變得異常緩慢。目前,伺服器端的數據通過列表控制項的方式發送至客戶端緩存、查看並導出。例如,DataSet對象將客戶需要查看和導出的數據都加載到客戶端內存中,然後通過用於顯示數據的DataGrid可視控制項綁定DataSet數據,並將所述DataSet數據輸出到Excel文件中,形成報表文件。也就是說,所述DataSet可以看做是客戶端內存中的資料庫,客戶端請求的數據都需要加載到內存上執行,並通過位於客戶端的DataGrid控制項顯示。當導出數據量較小時,上述系統工作流暢,運行正常。隨著導出數據量的增大,力口載到客戶端內存中的數據越來越多,即綁定的數據越來越多,此時佔用的客戶端內存就會越來越大。當數據量增大到一定程度時,客戶端內存就會被數據全部佔用,導致機器運行緩慢甚至假死的情況出現。數據報表對企業至關重要,靠硬體升級改善系統數據查詢導出緩慢的問題,不但會增加企業成本,其升級過程也會影響系統的正常運轉,並且產生的效果並不明顯。此外,上述數據查看和導出的方法中,客戶端在前臺向伺服器端發出數據查詢請求後,需要等待伺服器端返回相應的報表文件後才能進行其它工作。當導出數據量較大時,等待數據導出的過程不僅浪費了用戶的寶貴時間,也降低了企業的工作效率,如圖1所示。因此,在大數據查詢和報表導出的過程中,如何解決數據查詢和導出速度緩慢的問題就成為當前首要解決的技術問題。
發明內容
本發明的目的在於提供一種數據查詢和報表導出的方法及系統,能更好的解決大數據查詢和報表導出速度緩慢的技術問題。根據本發明的一個方面,本發明提供的一種數據查詢和報表導出的方法包括A)客戶端經由網際網路將用戶在數據查詢頁面輸入的數據查詢請求發送至Web伺服器;B)Web伺服器收到所述數據查詢請求後,提取其中的查詢條件信息、分組方式信息、排序方式信息,並生成查詢統計命令;C)資料庫伺服器根據所述查詢統計命令,查詢資料庫,並生成報表文件;D)資料庫伺服器將所述報表文件複製到Web伺服器,以供客戶端下載。進一步地,所述步驟B)包括所述Web伺服器從所述數據查詢請求中提取報表名和輸出文件路徑。
進一步地,所述步驟B)還包括Web伺服器將所述查詢統計命令作為資料庫伺服器的存儲過程的參數,發送至所述資料庫伺服器的存儲過程。進一步地,當所述查詢統計命令的字節數大於預定字節時,Web伺服器將所述查詢統計命令截斷為幾個不大於預定字節的參數後,發送至資料庫伺服器並進行重新組合。進一步地,所述步驟C)包括調用資料庫伺服器的存儲過程,執行所述查詢統計命令;查詢資料庫,並將查詢結果寫入其生成的Excel表格中,形成報表文件。進一步地,所述步驟D)還包括資料庫伺服器生成導出文件信息表,並將包含所述報表文件的報表名、文件生成日期和文件大小的文件信息保存至所述導出文件信息表中。根據本發明的另一方面,本發明提供的一種數據查詢和報表導出的系統包括客戶端,用於經由網際網路將用戶在數據查詢頁面輸入的數據查詢請求發送至Web伺服器;Web伺服器,用於在收到所述數據查詢請求後,提取其中的查詢條件信息、分組方式信息、排序方式信息,並生成查詢統計命令;資料庫伺服器,用於根據所述查詢統計命令,查詢資料庫,生成報表文件,並將所述報表文件複製到Web伺服器,以供客戶端下載。進一步地,所述Web伺服器還用於從所述數據查詢請求中提取報表名和輸出文件路徑。進一步地,所述Web伺服器還用於在所述查詢統計命令的字節數大於預定字節時,將所述查詢統計命令截斷為幾個不大於預定字節的參數後,發送至資料庫伺服器並進行重新組合。進一步地,所述資料庫伺服器還用於生成導出文件信息表,並將包含所述報表文件的報表名、文件生成日期和文件大小的文件信息保存至所述導出文件信息表中。與現有技術相比較,本發明的有益效果在於本發明能夠節省系統資源,提高工作效率,為數據使用者節省寶貴的時間,為企業帶來更高的效益。
圖1是現有技術提供的客戶端從伺服器端讀取數據的工作框圖;圖2是本發明提供的一種數據查詢和報表文件導出的方法原理圖;圖3是本發明提供的客戶端從伺服器端讀取數據的工作框圖;圖4是本發明實施例提供的數據查詢頁面示意圖;圖5是本發明實施例提供的數據查詢和報表文件導出流程框圖;圖6是圖5所示實施例提供的數據查詢頁面示意圖;圖7是圖5所示實施例提供的導出文件信息表示意圖;圖8是圖5所不實施例提供的報表文件不意圖;圖9是本發明提供的一種數據查詢和報表文件導出的系統框圖。
具體實施例方式以下結合附圖對本發明的優選實施例進行詳細說明,應當理解,以下所說明的優選實施例僅用於說明和解釋本發明,並不用於限定本發明。圖2顯示了本發明提供的一種數據查詢和報表文件導出的方法原理圖,如圖2所示,步驟包括步驟201 :客戶端經由網際網路將用戶在數據查詢頁面輸入的數據查詢請求發送至Web伺服器。步驟202 =Web伺服器收到所述數據查詢請求後,提取其中的查詢條件信息、分組方式信息、排序方式信息,並生成查詢統計命令。所述步驟202包括所述Web伺服器從所述數據查詢請求中提取報表名和輸出文件路徑。所述步驟202還包括Web伺服器將所述查詢統計命令作為資料庫伺服器的存儲過程的參數,發送至所述資料庫伺服器的存儲過程。進一步地,當所述查詢統計命令的字節數大於預定字節時,Web伺服器將所述查詢統計命令截斷為幾個不大於預定字節的參數後,發送至資料庫伺服器並進行重新組合。步驟203 :資料庫伺服器根據所述查詢統計命令,查詢資料庫,並生成報表文件。所述步驟203包括調用資料庫伺服器的存儲過程,執行所述查詢統計命令;查詢資料庫,並將查詢結果寫入其生成的Excel表格中,形成報表文件。步驟204 :資料庫伺服器將所述報表文件複製到Web伺服器,以供客戶端下載。所述步驟204還包括資料庫伺服器生成導出文件信息表,並將包含所述報表文件的報表名、文件生成日期和文件大小的文件信息保存至所述導出文件信息表中。圖3顯示了本發明提供的客戶端從伺服器端讀取數據的工作框圖,如圖3所示。在前臺的客戶端經由網際網路將用戶在數據查詢頁面(以圖4為例)輸入的數據查詢請求發送至伺服器端後,客戶端可以去做其他工作,後臺的伺服器端根據客戶端的所述數據查詢請求完成數據查詢和導出任務,並將導出的數據保存至報表存儲區。導出完畢後,提示客戶端查詢任務已完成,客戶端就可以在方便的時候查看所述導出的文檔。也就是說,本發明採用異步方式進行數據的查詢和導出,客戶端發送數據查詢請求後,伺服器端在執行所述數據查詢請求的同時,客戶端可以進行其它工作,而不必等待伺服器端完成查詢任務,從而大大節省了用戶的時間。圖5顯示了本發明實施例提供的數據查詢和報表文件導出流程框圖,如圖5所示,以查詢並導出庫存匯總報表為例進行說明。第一步、用戶通過客戶端的數據查詢頁面輸入數據查詢請求,並經由網際網路發送到Web伺服器上。例如,用戶通過如圖6所示的數據查詢頁面輸入數據查詢請求,其中,查詢在庫數量範圍1000 2000,數據導出時按型號分組、按倒序排列等等。第二步、Web伺服器根據所述數據查詢請求,提取其中的查詢條件信息、分組方式信息、排序方式信息,並生成查詢統計命令。具體地說,Web伺服器接收所述數據查詢請求後,解析所述數據查詢請求,並從中提取查詢條件信息、分組方式信息、排序方式信息等信息。進行信息提取後,將提取的信息插入到數據查詢表達式中,從而形成查詢統計命令。以第一步所述數據查詢請求為例,將提取的信息插入到數據查詢表達式後,得到的查詢統計命令如下pro_stockcompute ' and(isnull(tl. sl3,0)+isnull(t2.1nnumber,0)) > =1000and (isnull (tl. sl3,0) +isnull (t2.1nnumber, 0)) < = 2000—查詢條件group by a. pn—分組方式order by a. pn DESC'—排序方式所述數據查詢表達式是SQL (Structured Query Language,結構化查詢語言)表達式。所述Web 伺服器可以是使用 IIS (Internet Information Services, Internet 信息服務)軟體的伺服器,用於監聽用戶請求,並為用戶返回結果。第三步、Web伺服器將所述查詢統計命令作為資料庫伺服器的存儲過程的參數,發送至所述資料庫伺服器的存儲過程。進一步地,當所述查詢統計命令的字節數大於預定字節時,Web伺服器將所述查詢統計命令截斷為幾個不大於預定字節的參數,並發送至資料庫伺服器進行重新組合。例如,當所述查詢統計命令的字節數大於8000位元組時,Web伺服器將所述查詢統計命令進行截斷處理,得到幾個不大於8000位元組的參數,本例中,將所述查詢統計命令進行每4000位元組截斷一次的截斷處理,得到的多個參數如下strSQLl = strSQL. Substring(0,4000);strSQL2 = strSQL. Substring(4000,4000);strSQL3 = strSQL. Substring(8000, strSQL. Length-8000);截斷為多個參數後,將所述參數傳入資料庫伺服器的存儲過程,在存儲過程中重新組合成查詢統計命令,即string strSQL = strSQLl+strSQL2+strSQL3 ;所述存儲過程是CLR存儲過程,所述CLR存儲過程可以返回包括輸出參數、表格結果和消息。第四步、資料庫伺服器根據所述查詢統計命令,查詢資料庫,並生成報表文件。具體地說,首先調用資料庫的存儲過程,執行所述查詢統計命令,即查詢資料庫,並得到結果集。然後在資料庫伺服器中創建Excel表格,設置Excel表格格式,並根據查詢的結果集,填充所述Excel表格,從而形成報表文件。例如,將所述查詢統計命令、報表名、輸出文件路徑作為參數帶入資料庫伺服器CLR存儲過程「SP_saVeeXCel 」,執行所述查詢統計命令的過程如下Sqlparameter[] sqlparam=SqlParameter[5];
sqlparam
=new SqlParameter(「@strSqlI」,SqlDbType.VarChar);
sqlparam
. Value=StrSQLl;
sqlparam[l]=new SqlParameter(「@strSql2」,SqlDbType.VarChar); sqlparam[ I ].Value=strSQL2;
sqlparam[2]=new SqlParameter(「@strSql3」,SqlDbType.VarChar); sqlparam[2].Value=strSQL3;
sqlparam[3]=new SqlParameter(「@strExportPath」,SqlDbType. VarChar); sqlparam[3]. Value=ConfigurationSettings. AppSettings[「clientPath,,]; sqlparam[4]=new SqlParameter(「@strFileName」,SqlDbType.VarChar,200); sqlp aram [4]. Value=tmpRealFil eN ame;
sda.ExcuteNoneQuery(CommandTypa.StoredProcedure,,,SP_saveexcer,myTran
s,sqlparam);第五步、資料庫伺服器將形成的報表文件複製到Web伺服器,並釋放本地資源。也就是說,所述報表文件從資料庫伺服器拷貝到Web伺服器的預設路徑(輸出文件路徑)後,為了節省資料庫伺服器的空間,刪除資料庫伺服器上生成的所述報表文件。第六步、資料庫伺服器生成導出文件信息表,並將包含所述報表文件的報表名、文件生成日期和文件大小的文件信息保存至所述導出文件信息表中。客戶端顯示的導出文件信息表如圖7所示。 第七步、客戶端可以隨時通過其瀏覽器查看所述導出文件信息表,並下載顯示的報表文件。客戶端顯示的報表文件如圖8所示。圖9顯示了本發明提供的一種數據查詢和報表導出的系統框圖,如圖9所示,包括客戶端,用於經由網際網路將用戶在數據查詢頁面輸入的數據查詢請求發送至Web伺服器;Web伺服器,用於在收到所述數據查詢請求後,提取其中的查詢條件信息、分組方式信息、排序方式信息,並生成查詢統計命令;資料庫伺服器,用於根據所述查詢統計命令,查詢資料庫,生成報表文件,並將所述報表文件複製到Web伺服器,以供客戶端下載。所述Web伺服器所述Web伺服器還用於從所述數據查詢請求中提取報表名和輸出文件路徑。所述Web伺服器還用於在所述查詢統計命令的字節數大於預定字節時,將所述查詢統計命令截斷為幾個不大於預定字節的參數後,發送至資料庫伺服器並進行重新組合。所述資料庫伺服器還用於生成導出文件信息表,並將包含所述報表文件的報表名、文件生成日期和文件大小的文件信息保存至所述導出文件信息表中。
所述系統的工作流程如下第一步、客戶端將用戶在數據查詢頁面輸入的數據查詢請求發送至Web伺服器。第二步、Web伺服器根據客戶端錄入數據查詢請求,提取查詢條件信息、分組方式信息、排序方式信息和報表名、輸出文件路徑等信息,並根據提取的信息生成查詢統計命令。所述報表名是用戶為將要導出的報表文件自定義的文件名。第三步、調用存儲過程,執行所述查詢統計命令,得到查詢的結果集,並生成報表文件。第四步、資料庫伺服器將所述報表文件發送到Web伺服器,並釋放本地數據服務端資源。第五步、客戶端隨時到Web伺服器下載報表。綜上所述,本發明具有以下技術效果1、用戶通過數據查詢頁面輸入數據查詢請求,能夠更加滿足用戶查詢需要,使用戶查詢數據更方便; 2、導出報表文件的大小不限,且報表文件在後臺伺服器端生成,不佔用前臺客戶端的內存資源,即節省了客戶端的內存資源;3、將資料庫伺服器的報表文件完全備份至Web伺服器,減少了數據冗餘,使報表 文件導出速度更快,為用戶節省了寶貴時間,既提高了工作效率,又為企業帶來更高的效.、/■
Mo儘管上文對本發明進行了詳細說明,但是本發明不限於此,本技術領域技術人員可以根據本發明的原理進行各種修改。因此,凡按照本發明原理所作的修改,都應當理解為落入本發明的保護範圍。
權利要求
1.一種數據查詢和報表導出的方法,其特徵在於,包括 A)客戶端經由網際網路將用戶在數據查詢頁面輸入的數據查詢請求發送至Web伺服器; B)Web伺服器收到所述數據查詢請求後,提取其中的查詢條件信息、分組方式信息、排序方式信息,並生成查詢統計命令; C)資料庫伺服器根據所述查詢統計命令,查詢資料庫,並生成報表文件; D)資料庫伺服器將所述報表文件複製到Web伺服器,以供客戶端下載。
2.根據權利要求1所述的方法,其特徵在於,所述步驟B)包括 所述Web伺服器從所述數據查詢請求中提取報表名和輸出文件路徑。
3.根據權利要求1所述的方法,其特徵在於,所述步驟B)還包括 Web伺服器將所述查詢統計命令作為資料庫伺服器的存儲過程的參數,發送至所述資料庫伺服器的存儲過程。
4.根據權利要求3所述的方法,其特徵在於,當所述查詢統計命令的字節數大於預定字節時,Web伺服器將所述查詢統計命令截斷為幾個不大於預定字節的參數後,發送至資料庫伺服器並進行重新組合。
5.根據權利要求1所述的方法,其特徵在於,所述步驟C)包括 調用資料庫伺服器的存儲過程,執行所述查詢統計命令; 查詢資料庫,並將查詢結果寫入其生成的Excel表格中,形成報表文件。
6.根據權利要求1所述的方法,其特徵在於,所述步驟D)還包括 資料庫伺服器生成導出文件信息表,並將包含所述報表文件的報表名、文件生成日期和文件大小的文件信息保存至所述導出文件信息表中。
7.一種數據查詢和報表導出的系統,其特徵在於,包括 客戶端,用於經由網際網路將用戶在數據查詢頁面輸入的數據查詢請求發送至Web伺服器; Web伺服器,用於在收到所述數據查詢請求後,提取其中的查詢條件信息、分組方式信息、排序方式信息,並生成查詢統計命令; 資料庫伺服器,用於根據所述查詢統計命令,查詢資料庫,生成報表文件,並將所述報表文件複製到Web伺服器,以供客戶端下載。
8.根據權利要求7所述的系統,其特徵在於,所述Web伺服器還用於從所述數據查詢請求中提取報表名和輸出文件路徑。
9.根據權利要求7所述的系統,其特徵在於,所述Web伺服器還用於在所述查詢統計命令的字節數大於預定字節時,將所述查詢統計命令截斷為幾個不大於預定字節的參數後,發送至資料庫伺服器並進行重新組合。
10.根據權利要求7所述的方法,其特徵在於,所述資料庫伺服器還用於生成導出文件信息表,並將包含所述報表文件的報表名、文件生成日期和文件大小的文件信息保存至所述導出文件信息表中。
全文摘要
本發明公開了一種數據查詢和報表導出的方法及系統,所述方法包括以下步驟客戶端經由網際網路將用戶在數據查詢頁面輸入的數據查詢請求發送至Web伺服器;Web伺服器收到所述數據查詢請求後,提取其中的查詢條件信息、分組方式信息、排序方式信息,並生成查詢統計命令;資料庫伺服器根據所述查詢統計命令,查詢資料庫,並生成報表文件;資料庫伺服器將所述報表文件複製到Web伺服器,以供客戶端下載。本發明能夠節省系統資源,提高工作效率,為用戶節省寶貴的時間,為企業帶來更高的效益。
文檔編號G06F17/30GK103034658SQ201110304270
公開日2013年4月10日 申請日期2011年9月29日 優先權日2011年9月29日
發明者楊壽標 申請人:福建睿能電子有限公司