一種應(yīng)用于企業(yè)信息系統(tǒng)開發(fā)過(guò)程中快速構(gòu)建表單的方法
【專利摘要】本發(fā)明公開了一種應(yīng)用于J2EE企業(yè)信息系統(tǒng)開發(fā)過(guò)程中快速構(gòu)建動(dòng)態(tài)業(yè)務(wù)表單的方法,該發(fā)明屬于電子信息【技術(shù)領(lǐng)域】軟件中間件軟件技術(shù)。它是在表單域UI設(shè)計(jì),采用HTML動(dòng)態(tài)模版技術(shù),提供B/S方式的表單定制頁(yè)面和表單域定制頁(yè)面,利用JDBC方式直接操作表單數(shù)據(jù),完成表單定制后,后臺(tái)自動(dòng)生成模塊兒根據(jù)定制信息對(duì)整個(gè)表單及對(duì)表單域的設(shè)計(jì)要求生成表定義數(shù)據(jù),并存放在后臺(tái)基礎(chǔ)數(shù)據(jù)庫(kù)中,前臺(tái)頁(yè)面顯示數(shù)據(jù)時(shí),使用后臺(tái)統(tǒng)一的頁(yè)面模板,從對(duì)應(yīng)的實(shí)體表中動(dòng)態(tài)取出真實(shí)數(shù)據(jù),根據(jù)表定義數(shù)據(jù)顯示。本發(fā)明具有代碼量小,系統(tǒng)簡(jiǎn)單,高效,系統(tǒng)不需要重啟,對(duì)表單域定義的修改操作可以立即看到實(shí)際效果的優(yōu)點(diǎn),可以提升表單的定制效率,降低開發(fā)成本,用戶隨時(shí)根據(jù)自身的需要定制表單,并實(shí)時(shí)見效及應(yīng)用。
【專利說(shuō)明】一種應(yīng)用于企業(yè)信息系統(tǒng)開發(fā)過(guò)程中快速構(gòu)建表單的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明所屬領(lǐng)域是電子信息技術(shù)-> 軟件-> 中間件軟件特別是涉及到表單生成技術(shù)
【背景技術(shù)】
[0002]在大多數(shù)企業(yè)信息系統(tǒng)中,表單是系統(tǒng)和用戶交互的基本接口,表單提供信息的展現(xiàn)及輸入信息的接收,實(shí)現(xiàn)信息的收集、處理及流轉(zhuǎn),表單在企業(yè)信息系統(tǒng)中有著十分重要的地位。在企業(yè)信息系統(tǒng)的開發(fā)過(guò)程中,需處理的表單數(shù)量眾多、種類繁雜;在企業(yè)信息系統(tǒng)的使用過(guò)程中,隨企業(yè)生產(chǎn)流程的變更,表單又表現(xiàn)出很強(qiáng)的易變動(dòng)性。以上兩點(diǎn)給企業(yè)系統(tǒng)的開發(fā)人員帶來(lái)很大的挑戰(zhàn),能否快速構(gòu)建表單和及時(shí)有效變更表單,在很大程度上決定了企業(yè)系統(tǒng)的開發(fā)進(jìn)度和質(zhì)量。為解決上述問(wèn)題,我們提出了動(dòng)態(tài)表單構(gòu)建方法。
[0003]目前已有的表單構(gòu)建方法一般采用在線自定義表單的方法,該方法描述如下: 提供由JavaScript腳本語(yǔ)言實(shí)現(xiàn)的表單定制頁(yè)面,利用鼠標(biāo)拖拽方式,在頁(yè)面上用系
統(tǒng)提供的控件構(gòu)建表單;頁(yè)面構(gòu)建完成后,為每頁(yè)表單生成相應(yīng)的一整套HTML頁(yè)面代碼、后臺(tái)控制代碼Action/Struts和Dao/Hibernate (業(yè)務(wù)邏輯層)業(yè)務(wù)代碼及Spring等配置文件。整套頁(yè)面需要重新部署才能生效。
[0004]優(yōu)點(diǎn):
1、可視化設(shè)計(jì)——所見即所得
2、易于使用,可以快速生成表單
3、控件種類齊全,交互性好
4、開發(fā)要求低 缺點(diǎn):
1、表單相關(guān)定義文件數(shù)量繁多、冗余
2、不能滿足表單信息項(xiàng)的變化
3、表單數(shù)據(jù)繁雜、無(wú)規(guī)律
4、表單定制效率低、開發(fā)成本高
5、必須重啟系統(tǒng),表單才能生效。
【發(fā)明內(nèi)容】
[0005]表單的快速定制
提供B/S方式的表單定制頁(yè)面和表單域定制頁(yè)面,定制表單及表單域的基本參數(shù),包括頁(yè)面顯示選項(xiàng)、jquery腳本校驗(yàn)選項(xiàng)、數(shù)據(jù)源選擇、輸出頁(yè)面格式及是否支持緩存等表單要素。
[0006]表單與后臺(tái)業(yè)務(wù)模塊的集成
在表單定制過(guò)程中,除了可靈活自定義常規(guī)的表單類型外,還可以與后臺(tái)的業(yè)務(wù)功能模塊緊密銜接,調(diào)用后臺(tái)的短信、彩信傳輸模塊,實(shí)現(xiàn)一定的短彩信業(yè)務(wù)邏輯。[0007]表單的數(shù)據(jù)庫(kù)存儲(chǔ)
完成表單定制后,后臺(tái)自動(dòng)生成模塊,根據(jù)定制信息對(duì)整個(gè)表單及對(duì)表單域的設(shè)計(jì)要求生成表定義數(shù)據(jù),并存放在后臺(tái)基礎(chǔ)數(shù)據(jù)庫(kù)中。
[0008]表單的動(dòng)態(tài)變更
所有定制表單的操作立即生效,即使實(shí)體表里有數(shù)據(jù)的時(shí)候也可以動(dòng)態(tài)修改表單和表單域的定義,系統(tǒng)不需要重啟,對(duì)表單域定義的修改操作可以立即看到實(shí)際效果。
[0009]表單的統(tǒng)一展現(xiàn)
前臺(tái)頁(yè)面顯示數(shù)據(jù)時(shí),使用后臺(tái)統(tǒng)一的頁(yè)面模板,從對(duì)應(yīng)的實(shí)體表中動(dòng)態(tài)取出真實(shí)數(shù)據(jù),根據(jù)表定義數(shù)據(jù)顯示。所有對(duì)數(shù)據(jù)表的讀寫操作采用JDBC的方式直接操作數(shù)據(jù)庫(kù)以達(dá)到高效的目的。
[0010]表單的緩存讀取
表單定義數(shù)據(jù)在系統(tǒng)啟動(dòng)時(shí)一次性裝入系統(tǒng)緩存中,當(dāng)有動(dòng)態(tài)修改表單定義需求時(shí),系統(tǒng)會(huì)先更新到數(shù)據(jù)庫(kù)表對(duì)應(yīng)的表定義,再同步到系統(tǒng)緩存,接下來(lái)所有對(duì)動(dòng)態(tài)表的操作都會(huì)先讀取緩存中的表定義數(shù)據(jù),以提升表單處理性能。
[0011 ] 本技術(shù)發(fā)明優(yōu)點(diǎn)總結(jié):
1、整個(gè)定制過(guò)程隨時(shí)修改、及時(shí)生效,系統(tǒng)不用重啟即可看到效果。
[0012]2、即使在表單里存在業(yè)務(wù)數(shù)據(jù)時(shí)也可動(dòng)態(tài)修改表單的定義,最大程度 上保證數(shù)據(jù)不丟失。
[0013]3、采用HTML動(dòng)態(tài)模板技術(shù),所有表單共用一套展現(xiàn)代碼,代碼量小。
[0014]4、利用JDBC方式直接操作表單數(shù)據(jù),系統(tǒng)簡(jiǎn)單、高效。
【專利附圖】
【附圖說(shuō)明】
[0015]圖1是本發(fā)明動(dòng)態(tài)表單構(gòu)建結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0016]表單定制步驟:
在表單定制頁(yè)面定制整個(gè)表單(Form)及對(duì)應(yīng)域(Field)的基本屬性.點(diǎn)擊確定按鈕提交到后臺(tái)處理模塊。
[0017]根據(jù)用戶定義在系統(tǒng)HTML模板庫(kù)及JQuery腳本庫(kù)中生成表單域(Field)對(duì)應(yīng)的相關(guān)HTML源碼片斷,將表單定義信息存入相關(guān)表.(tb_form, tb_form_conf , tb_form_field)。
[0018]系統(tǒng)的SQL分析器生成與表單對(duì)應(yīng)的SQL建表語(yǔ)句,利用JDBC方式生成動(dòng)態(tài)表單數(shù)據(jù)存儲(chǔ)表。
[0019]表單顯示步驟:
后臺(tái)采用統(tǒng)一的4個(gè)頁(yè)面模板:list.html (列表頁(yè)模板),add.html (添加頁(yè)模板);edit, html (修改頁(yè)模板),view, html (查看頁(yè)模板),以列表頁(yè)模板(list, html)為例,數(shù)據(jù)的顯示過(guò)程如下:
I).利用 JDBC 方式從表單定義相關(guān)表(tb_form, tb_form_conf , tb_form_field)中讀出列表頁(yè)面上要顯示的具體域(Field)的相關(guān)列信息,包括:列名、中文名、排序參數(shù),封裝成一個(gè)查詢用的SQL語(yǔ)句。
[0020]2).利用JDBC方式查詢真實(shí)的動(dòng)態(tài)表單數(shù)據(jù)存儲(chǔ)返回對(duì)應(yīng)的分頁(yè)數(shù)據(jù)集變量pageList。
[0021]3).list, html頁(yè)面模板會(huì)循環(huán)處理pageList變量中的數(shù)據(jù)顯示。
[0022]
3.主要類及方法說(shuō)明:
DynamicFormAct.java:動(dòng)態(tài)表單Action動(dòng)作控制器:負(fù)責(zé)頁(yè)面請(qǐng)求的跳轉(zhuǎn)處理,調(diào)用DynamicFormService.java類中相應(yīng)的方法完成業(yè)務(wù)數(shù)據(jù)的請(qǐng)求處理過(guò)程。
[0023]DynamicFormService.java:動(dòng)態(tài)表單業(yè)務(wù)控制層:負(fù)責(zé)業(yè)務(wù)請(qǐng)求的封裝,并調(diào)用DynamicFormDa0.java 類操作數(shù)據(jù)庫(kù)。
[0024]DynamicFormDa0.java:動(dòng)態(tài)表單涉及到的所有JDBC操作封裝DAO層。
[0025]其中DynamicFormAct.java類的主要方法說(shuō)明如下:
public String list O查詢數(shù)據(jù)方法:提供頁(yè)面上的列表顯示,處理方式如下:
I)調(diào)用 DynamicFormService.java 類的 queryFormByField O 方法定位到 Form 表單對(duì)象,并獲取Field表單域的相關(guān)定義信息。
[0026]2)調(diào)用getSearchKeys O方法組裝頁(yè)面上Request查詢請(qǐng)求里傳過(guò)來(lái)的參數(shù)和值到指定的Map變量queryMap里。
[0027]3) 封裝必要的分頁(yè),排序等查詢參數(shù),調(diào)用DynamicFormService.java類中的search O 方法。
[0028]4) 最后調(diào)用DynamicFormDa0.java類的search O方法根據(jù)queryMap里的查詢條件結(jié)合表單定義信息拼裝成對(duì)應(yīng)的SQL查詢語(yǔ)句,執(zhí)行數(shù)據(jù)庫(kù)查詢操作并返回列表格式的分頁(yè)數(shù)據(jù)。
[0029]數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)。
[0030]I).表單基本信息配置表:tb_form
用來(lái)存儲(chǔ)表單的基本信息,其中關(guān)鍵字段如下:
db_type:數(shù)據(jù)庫(kù)類型:支持Oracle, SQL Server, DB2, Mysql等常見數(shù)據(jù)庫(kù)類型。
[0031]module_name:表單所屬的模塊名:
tb_name:數(shù)據(jù)存儲(chǔ)表單的真實(shí)名字:形如d_xxxxxxxxxx_tb,是由系統(tǒng)自動(dòng)生成唯一的名字,其中xxxxxxxxxx表示系統(tǒng)生成的唯一序號(hào)。
[0032]其中,“ tb_name ”字段有著重要的作用,通過(guò)該字段的信息我們才能將表單中信息與其具體含義對(duì)應(yīng)起來(lái)。
[0033]2).表單詳細(xì)配置表:tb_form_conf
以key:value的方式存儲(chǔ)的表單業(yè)務(wù)相關(guān)配置:包括表單數(shù)據(jù)源配置,消息模板配置,及緩存配置。
[0034]3).表單域配置子表:tb_form_field
用來(lái)存放表單數(shù)據(jù)存儲(chǔ)表中的列的具體含義。包括列的基本數(shù)據(jù)類型,長(zhǎng)度,列名,中文顯示名,默認(rèn)值等。其中關(guān)鍵字段如下:add_html:對(duì)應(yīng)到添加頁(yè)面的HTML片斷edit_html:對(duì)應(yīng)到修改頁(yè)面的HTML片斷 view_html:對(duì)應(yīng)到查看頁(yè)面的HTML片斷
通過(guò)頁(yè)面上定制的表單域(Field)的詳細(xì)配置,系統(tǒng)生成相對(duì)應(yīng)的HTML源碼片斷保存到數(shù)據(jù)庫(kù)中,由這三個(gè)字段決定表單域(Field)的具體顯示效果。
[0035] 4).表單數(shù)據(jù)存儲(chǔ)表,例如:d_20111224134000673_tb 是動(dòng)態(tài)表單數(shù)據(jù)的具體存儲(chǔ)表。
【權(quán)利要求】
1.一種應(yīng)用于企業(yè)信息系統(tǒng)開發(fā)過(guò)程中快速構(gòu)建動(dòng)表單的方法,在包括表單的快速定制、表單與后臺(tái)業(yè)務(wù)模塊的集成、表單的數(shù)據(jù)庫(kù)存儲(chǔ)、表單的動(dòng)態(tài)變更、表單的統(tǒng)一展現(xiàn)、表單的緩存讀取,其特征在于:用下述方法實(shí)現(xiàn)表單的動(dòng)態(tài)快速的構(gòu)建: (1)提供B/S方式的表單定制頁(yè)面和表單域定制頁(yè)面,定制表單及表單域的基本參數(shù),包括頁(yè)面顯示選項(xiàng)、jquery腳本校驗(yàn)選項(xiàng)、數(shù)據(jù)源選擇、輸出頁(yè)面格式及是否支持緩存等表單要素; (2)在表單定制過(guò)程中,除了可靈活自定義常規(guī)的表單類型外,還可以與后臺(tái)的業(yè)務(wù)功能模塊緊密銜接,調(diào)用后臺(tái)的短信、彩信傳輸模塊,實(shí)現(xiàn)一定的短彩信業(yè)務(wù)邏輯; (3)完成表單定制后,后臺(tái)自動(dòng)生成模塊兒根據(jù)定制信息對(duì)整個(gè)表單及對(duì)表單域的設(shè)計(jì)要求生成表定義數(shù)據(jù),并存放在后臺(tái)基礎(chǔ)數(shù)據(jù)庫(kù)中; (4)所有定制表單的操作立即生效,即使實(shí)體表里有數(shù)據(jù)的時(shí)候也可以動(dòng)態(tài)修改表單和表單域的定義,系統(tǒng)不需要重啟,對(duì)表單域定義的修改操作可以立即看到實(shí)際效果; (5)前臺(tái)頁(yè)面顯示數(shù)據(jù)時(shí),使用后臺(tái)統(tǒng)一的頁(yè)面模板,從對(duì)應(yīng)的實(shí)體表中動(dòng)態(tài)取出真實(shí)數(shù)據(jù),根據(jù)表定義數(shù)據(jù)顯示,所有對(duì)數(shù)據(jù)表的讀寫操作采用JDBC的方式直接操作數(shù)據(jù)庫(kù)以達(dá)到聞效的目的; (6)表單定義數(shù)據(jù)在系統(tǒng)啟動(dòng)時(shí)一次性裝入系統(tǒng)緩存中,當(dāng)有動(dòng)態(tài)修改表單定義需求時(shí),系統(tǒng)會(huì)先更新到數(shù)據(jù)庫(kù)表對(duì)應(yīng)的表定義,再同步到系統(tǒng)緩存,接下來(lái)所有對(duì)動(dòng)態(tài)表的操作都會(huì)先讀取緩存中的表定義數(shù)據(jù),以提升表單處理性能。
【文檔編號(hào)】G06F9/44GK103853543SQ201210521801
【公開日】2014年6月11日 申請(qǐng)日期:2012年12月7日 優(yōu)先權(quán)日:2012年12月7日
【發(fā)明者】不公告發(fā)明人 申請(qǐng)人:北京云天時(shí)空科技有限公司