本發(fā)明涉及計算機應用技術領域,具體地說是一種SpreadJS表格自動生成并綁定數(shù)據(jù)庫表的方法。
背景技術:
SpreadJS純前端表格控件是基于HTML5的JavaScript電子表格和網(wǎng)格功能控件,適用于.NET、Java和移動端等各平臺在線編輯類Excel功能的表格程序開發(fā),具有友好的展示界面和強大的數(shù)據(jù)處理能力。
數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結構來組織、存儲和管理數(shù)據(jù)的倉庫,隨著信息技術和市場的發(fā)展,數(shù)據(jù)管理不再僅僅是存儲和管理數(shù)據(jù),而轉變成用戶所需要的各種數(shù)據(jù)管理的方式。數(shù)據(jù)庫技術是管理信息系統(tǒng)、辦公自動化系統(tǒng)、決策支持系統(tǒng)等各類信息系統(tǒng)的核心部分,是進行科學研究和決策管理的重要技術手段。
如果將SpreadJS純前端表格控件直接應用到web開發(fā)中,可以減少大量的編碼工作量,而通常企業(yè)管理軟件中數(shù)據(jù)的存儲都放到數(shù)據(jù)庫中,這就需要考慮SpreadJS表格與數(shù)據(jù)庫表的綁定問題,傳統(tǒng)的處理方式是編碼階段就將SpreadJS表格的設置與對應的數(shù)據(jù)庫表寫死在程序中,一旦改變表格的設置,對應的數(shù)據(jù)庫表,程序中針對此表格的處理也需要硬性編碼的變更方式,增加了程序的維護和開發(fā)工作量。
基于此,本發(fā)明提出一種SpreadJS表格自動生成并綁定數(shù)據(jù)庫表的方法,可以解決上述問題。
技術實現(xiàn)要素:
本發(fā)明的技術任務是針對以上不足之處,提供一種SpreadJS表格自動生成并綁定數(shù)據(jù)庫表的方法。
一種SpreadJS表格自動生成并綁定數(shù)據(jù)庫表的方法,其具體實現(xiàn)過程為:
1)首先繪制SpreadJS表格,指定數(shù)據(jù)綁定區(qū)域;
2)配置該SpreadJS表格與數(shù)據(jù)庫中數(shù)據(jù)庫表的對應關系,構建出創(chuàng)建或修改數(shù)據(jù)庫表的sql語句;
3)執(zhí)行sql語句創(chuàng)建或修改數(shù)據(jù)庫表;
4)打開SpreadJS表格,根據(jù)SpreadJS表格與數(shù)據(jù)庫表的對應關系查詢出數(shù)據(jù),然后將數(shù)據(jù)庫表中數(shù)據(jù)在指定數(shù)據(jù)綁定區(qū)域顯示;
5)當SpreadJS表格發(fā)生變化時,重復以上步驟1)至4)。
所述步驟1)的SpreadJS表格繪制過程具體為:首先繪制SpreadJS表格顯示樣式,指定表格中需要綁定數(shù)據(jù)的域,確定表格綁定數(shù)據(jù)的開始行及對應列,設置綁定域中列的唯一標識,設置整列的數(shù)據(jù)類型,記錄設置信息。
構建出創(chuàng)建或修改數(shù)據(jù)庫表的sql語句的具體過程為:根據(jù)步驟1)設置的信息,獲取表格列唯一標識作為對應數(shù)據(jù)庫表字段名,將表格列數(shù)據(jù)類型轉換為數(shù)據(jù)庫對應的數(shù)據(jù)類型,根據(jù)數(shù)據(jù)庫表與SpreadJS表格的對應關系判斷SpreadJS表格是否已創(chuàng)建數(shù)據(jù)庫表,如果為否,構建出創(chuàng)建數(shù)據(jù)庫表sql語句,如果為是,則根據(jù)表格列唯一標識與數(shù)據(jù)庫表現(xiàn)有列進行對比,構建出修改數(shù)據(jù)庫表sql語句。
執(zhí)行sql語句創(chuàng)建或修改的數(shù)據(jù)庫表中記錄數(shù)據(jù)庫表與SpreadJS表格的對應關系,記錄數(shù)據(jù)庫字段與表格列序號的對應關系。
所述步驟4)的具體過程為:當打開SpreadJS表格時,根據(jù)表格與數(shù)據(jù)庫表的對應關系查詢出數(shù)據(jù),根據(jù)表格列序號與數(shù)據(jù)庫字段對應關系綁定到表格列上,并根據(jù)綁定域中開始行確定數(shù)據(jù)在表格中顯示的開始行,基于此查詢出的數(shù)據(jù)記錄各字段值會對應到 SpreadJS表格的特定單元格中顯示。
本發(fā)明的一種SpreadJS表格自動生成并綁定數(shù)據(jù)庫表的方法和現(xiàn)有技術相比,具有以下有益效果:
本發(fā)明的一種SpreadJS表格自動生成并綁定數(shù)據(jù)庫表的方法,該方法有效的改變了在編碼階段就將SpreadJS表格的設置與對應的數(shù)據(jù)庫表寫死在程序中,一旦改變表格的設置,對應的數(shù)據(jù)庫表及程序中針對此表格的處理也需要硬性編碼變更的方式,減少程序的維護和開發(fā)工作量,實用性強,適用范圍廣泛,具有很好的推廣應用價值。
附圖說明
附圖1為本發(fā)明的實現(xiàn)示意圖。
具體實施方式
下面結合附圖及具體實施例對本發(fā)明作進一步說明。
如圖1所示,一種SpreadJS表格自動生成并綁定數(shù)據(jù)庫表的方法,其具體實現(xiàn)過程為:
1)首先繪制SpreadJS表格,指定數(shù)據(jù)綁定區(qū)域;
2)配置該SpreadJS表格與數(shù)據(jù)庫中數(shù)據(jù)庫表的對應關系,構建出創(chuàng)建或修改數(shù)據(jù)庫表的sql語句;
3)執(zhí)行sql語句創(chuàng)建或修改數(shù)據(jù)庫表;
4)打開SpreadJS表格,根據(jù)SpreadJS表格與數(shù)據(jù)庫表的對應關系查詢出數(shù)據(jù),然后將數(shù)據(jù)庫表中數(shù)據(jù)在指定數(shù)據(jù)綁定區(qū)域顯示;
5)當SpreadJS表格發(fā)生變化時,重復以上步驟1)至4)。
所述步驟1)的SpreadJS表格繪制過程具體為:首先繪制SpreadJS表格顯示樣式,指定表格中需要綁定數(shù)據(jù)的域,確定表格綁定數(shù)據(jù)的開始行及對應列,設置綁定域中列的唯一標識,設置整列的數(shù)據(jù)類型,記錄設置信息。
構建出創(chuàng)建或修改數(shù)據(jù)庫表的sql語句的具體過程為:根據(jù)步驟1)設置的信息,獲取表格列唯一標識作為對應數(shù)據(jù)庫表字段名,將表格列數(shù)據(jù)類型轉換為數(shù)據(jù)庫對應的數(shù)據(jù)類型,根據(jù)數(shù)據(jù)庫表與SpreadJS表格的對應關系判斷SpreadJS表格是否已創(chuàng)建數(shù)據(jù)庫表,如果為否,構建出創(chuàng)建數(shù)據(jù)庫表sql語句,如果為是,則根據(jù)表格列唯一標識與數(shù)據(jù)庫表現(xiàn)有列進行對比,構建出修改數(shù)據(jù)庫表sql語句。
執(zhí)行sql語句創(chuàng)建或修改的數(shù)據(jù)庫表中記錄數(shù)據(jù)庫表與SpreadJS表格的對應關系,記錄數(shù)據(jù)庫字段與表格列序號的對應關系。
所述步驟4)的具體過程為:當打開SpreadJS表格時,根據(jù)表格與數(shù)據(jù)庫表的對應關系查詢出數(shù)據(jù),根據(jù)表格列序號與數(shù)據(jù)庫字段對應關系綁定到表格列上,并根據(jù)綁定域中開始行確定數(shù)據(jù)在表格中顯示的開始行,基于此查詢出的數(shù)據(jù)記錄各字段值會對應到 SpreadJS表格的特定單元格中顯示。
更為具體的,本發(fā)明以下述實施例進行詳細描述:
步驟一:用戶在軟件中提供的表樣定義功能,繪制SpreadJS表格顯示樣式,劃分表樣行為標題行、表體行和表尾行,劃分表樣列為信息列和數(shù)據(jù)列,在指定行列功能中指定表格綁定數(shù)據(jù)的開始行及對應列,默認數(shù)據(jù)的綁定開始行為表體開始行,綁定列為數(shù)據(jù)列,定義綁定列的唯一標識,設置整列的數(shù)據(jù)類型,用于SpreadJS表格中此列的數(shù)據(jù)展示類型與創(chuàng)建數(shù)據(jù)庫表此列字段的數(shù)據(jù)類型;
步驟二:根據(jù)步驟一設置信息,獲取表格列唯一標識作為對應數(shù)據(jù)庫表字段名,將表格列數(shù)據(jù)類型轉換為數(shù)據(jù)庫對應的數(shù)據(jù)類型,根據(jù)步驟三設置的數(shù)據(jù)庫表與SpreadJS表格的對應關系判斷表格是否已創(chuàng)建數(shù)據(jù)庫表,如果為否,構建出創(chuàng)建數(shù)據(jù)庫表sql語句,如果為是,則根據(jù)表格列唯一標識與數(shù)據(jù)庫表現(xiàn)有列進行對比,構建出修改數(shù)據(jù)庫表sql語句;
其中,表格與數(shù)據(jù)庫表的數(shù)據(jù)類型對應關系為:
步驟三:執(zhí)行sql語句創(chuàng)建或修改數(shù)據(jù)庫表,記錄數(shù)據(jù)庫表與SpreadJS表格的對應關系,記錄數(shù)據(jù)庫字段與表格列序號的對應關系;
步驟四:用戶在軟件中錄入或者查詢功能中打開特定SpreadJS表格時,根據(jù)表格與數(shù)據(jù)庫表的對應關系查詢出數(shù)據(jù),將數(shù)據(jù)轉換為SpreadJS表格識別的格式,根據(jù)表格列序號與數(shù)據(jù)庫字段對應關系綁定到表格列上,并根據(jù)綁定域中開始行確定數(shù)據(jù)在表格中顯示的開始行,基于此查詢出的數(shù)據(jù)記錄各字段值會對應到 SpreadJS表格的特定單元格中顯示;
步驟五:如果SpreadJS表格發(fā)生變化,重復以上步驟。
通過上面具體實施方式,所述技術領域的技術人員可容易的實現(xiàn)本發(fā)明。但是應當理解,本發(fā)明并不限于上述的具體實施方式。在公開的實施方式的基礎上,所述技術領域的技術人員可任意組合不同的技術特征,從而實現(xiàn)不同的技術方案。
除說明書所述的技術特征外,均為本專業(yè)技術人員的已知技術。