欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

自定義表單的描述及表單解析方法與流程

文檔序號:12039964閱讀:457來源:國知局
本發(fā)明涉及計算機系統(tǒng)的信息管理,尤指一種能完成基于表單數(shù)據(jù)為核心的信息管理系統(tǒng)的快速搭建的自定義表單的描述及表單解析方法。
背景技術(shù)
:數(shù)據(jù)的管理始終是計算機信息系統(tǒng)管理的核心,計算機信息系統(tǒng)的開發(fā)也圍繞著數(shù)據(jù)管理的核心來進行的,根據(jù)不同的領(lǐng)域及業(yè)務(wù)特點,抽象出要管理的數(shù)據(jù),以及數(shù)據(jù)處理的流程,在各個流程環(huán)節(jié)提供用戶操作界面,使用人員通過操作界面與程序交互從而完成整個數(shù)據(jù)處理的過程,最終將處理的結(jié)果或存儲或呈現(xiàn)給用戶。在信息系統(tǒng)中提供自定義表單功能,可以簡化程序開發(fā)過程,并且可以提高系統(tǒng)的靈活性,自定義表單系統(tǒng)在信息系統(tǒng)中有很廣泛的應(yīng)用?,F(xiàn)行的自定義表單系統(tǒng)實現(xiàn)相對簡單,一般通行的辦法是,通過用戶配置得到表單界面元素的描述數(shù)據(jù),以及表單對應(yīng)的數(shù)據(jù)庫表結(jié)構(gòu),程序根據(jù)描述數(shù)據(jù)自動生成表單管理界面和以及數(shù)據(jù)存儲邏輯?,F(xiàn)有技術(shù)方案示意圖如圖1所示一、用戶通過系統(tǒng)提供的工具完成對表單定義,得到表單描述數(shù)據(jù),表單描述數(shù)據(jù)大致可以分為三點:1.表單錄入界面的描述,基本信息包括錄入界面的樣式,都有哪些控件,控件對應(yīng)表單的那個字段,默認(rèn)值是多少,字段的合法性校驗規(guī)則等。2.表單數(shù)據(jù)查詢界面描述,數(shù)據(jù)包括,用哪些字段檢索,查詢字段條件數(shù)據(jù)采用的輸入控件,查詢結(jié)果返回哪些字段的數(shù)據(jù),以及列表頁的樣式等。3.表單存儲方式描述,包括表單都有那些字段,字段的類型、長度,表單的存儲數(shù)據(jù)表名稱二、通過步驟一的數(shù)據(jù)系統(tǒng)自動生成表單的管理以及查詢界面,用戶通過管理界面完成數(shù)據(jù)的管理,自動完成用戶管理數(shù)據(jù)的存儲工作?,F(xiàn)行的表單系統(tǒng)雖然極大提高了信息系統(tǒng)的靈活行,但是也有很明顯的缺點1.現(xiàn)有自定義表單系統(tǒng),通常邏輯比較固定,僅能實現(xiàn)數(shù)據(jù)的存儲與查詢,一旦數(shù)據(jù)的處理邏輯再局限于表單的查詢和存儲需求,則需要額外引入業(yè)務(wù)邏輯對數(shù)據(jù)進行再加工,現(xiàn)有模式無法適應(yīng),一般需要對表單系統(tǒng)進行定制開發(fā)來擴充現(xiàn)有的系統(tǒng),需要對現(xiàn)有系統(tǒng)做版本升級,成本較高。2.現(xiàn)有表單系統(tǒng)存儲結(jié)構(gòu)比較單一,通常是將數(shù)據(jù)全部存儲在數(shù)據(jù)庫,這種方式雖然方便管理與查詢,但是也有不可忽視的缺點,對于不適合放在數(shù)據(jù)庫的數(shù)據(jù)如大文本等類型的數(shù)據(jù)也放必須在數(shù)據(jù)庫,從而影響數(shù)據(jù)庫的效率,對數(shù)據(jù)庫效率敏感的系統(tǒng)危害較大。技術(shù)實現(xiàn)要素:為解決現(xiàn)有技術(shù)中的問題,本發(fā)明主要目的在于:提供一種能完成基于表單數(shù)據(jù)為核心的信息管理系統(tǒng)的快速搭建的自定義表單的描述及表單解析方法。本發(fā)明提供一種自定義表單的描述及表單解析方法,步驟為:一、通過表單描述信息配置模塊錄入管理表單的描述信息,描述信息中增加:數(shù)據(jù)索引方式、字段的存儲方式及表單控件對應(yīng)表單存儲字段的描述;二、服務(wù)器解析獲取表單配置并保存;三、利用數(shù)據(jù)訪問代理層以數(shù)據(jù)代理方式,根據(jù)表單配置模塊所保存在服務(wù)器端的表單配置數(shù)據(jù)在表單運行環(huán)節(jié)加載配置。前述表單描述信息包括:表單的字段定義:字段類型、字段長度、字段名稱、默認(rèn)值、索引方式及字段的存儲方式;表單管理界面的定義:表單管理界面模板、表單采用的控件、表單控件的描述信息、表單控件對應(yīng)表單存儲字段、表單控件的樣式、表單控件的高度及寬度、默認(rèn)值及數(shù)據(jù)合法性校驗的正則表達(dá)式、表單控件的數(shù)據(jù)源及表單控件的擴展配置;表單數(shù)據(jù)查詢界面描述,數(shù)據(jù)包括:用哪些字段檢索、查詢字段條件數(shù)據(jù)采用的輸入控件、查詢結(jié)果返回哪些字段的數(shù)據(jù)、及表單查詢列表模板以及列表頁的樣式;表單腳本邏輯介入點腳本配置,邏輯腳本介入點包括:數(shù)據(jù)保存前、數(shù)據(jù)保存后及數(shù)據(jù)發(fā)布腳本。前述數(shù)據(jù)代理方式為:將表單數(shù)據(jù)傳遞給代理接口,同時傳遞表單ID;然后,代理接口根據(jù)ID加載對應(yīng)的表單配置,根據(jù)存儲方式的將數(shù)據(jù)存儲到對應(yīng)的位置;之后,根據(jù)表單配置分別從不同的存儲介質(zhì)查詢表單數(shù)據(jù),然后將數(shù)據(jù)合并,并返回表單數(shù)據(jù)。前述方法中:表單數(shù)據(jù)以類實現(xiàn)的哈希表的方式傳遞給代理接口;然后,代理接口解析表單配置,并掃描哈希表的特定鍵key,根據(jù)特定鍵key查找表單配置中表單的存儲方式;之后,并以哈希表的方式返回表單數(shù)據(jù)。前述步驟三的具體方法為:步驟1:通過系統(tǒng)提供的表單視圖頁面,同時將所要請求的表單ID以及要請求的表單數(shù)據(jù)ID以參數(shù)的方式提交到服務(wù)器,服務(wù)器端接受表單ID參數(shù),并根據(jù)表單ID加載表單配置數(shù)據(jù);步驟2:系統(tǒng)根據(jù)步驟1加載的數(shù)據(jù),獲取表單視圖的模板;步驟3:系統(tǒng)根據(jù)提交的表單數(shù)據(jù)ID參數(shù),如果數(shù)據(jù)ID等于零,則為新增數(shù)據(jù)直接轉(zhuǎn)到步驟5,反之則為修改數(shù)據(jù)轉(zhuǎn)到步驟4;步驟:4:根據(jù)步驟1中加載的表單數(shù)據(jù),獲取表單的默認(rèn)值配置,并將默認(rèn)值傳遞給表單視圖模板;步驟5:根據(jù)數(shù)據(jù)ID,加載表單數(shù)據(jù)并將表單數(shù)據(jù)傳遞給表單視圖模板;步驟6:通過模板引擎解析表單模板,得到表單的HTML內(nèi)容;步驟7:將步驟6中所產(chǎn)生的HTML內(nèi)容輸入到web頁面上完成表單視圖的渲染工作。前述步驟2采用的是FreeMarker模板。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點:本發(fā)明自定義表單系統(tǒng)通過數(shù)據(jù)代理模塊實現(xiàn)數(shù)據(jù)儲存結(jié)構(gòu)的自定義,可以輕易實現(xiàn)數(shù)據(jù)的分散存儲,而不增加數(shù)據(jù)查詢存儲的復(fù)雜度,可以很容易的解決系統(tǒng)的數(shù)據(jù)訪問瓶頸平靜問題。附圖說明圖1現(xiàn)有技術(shù)表單的描述及解析方案示意圖。圖2本發(fā)明系統(tǒng)結(jié)構(gòu)劃分示意圖。圖3本發(fā)明表單管理界面渲染流程圖。圖4本發(fā)明表單查詢渲染過程流程圖。圖5本發(fā)明數(shù)據(jù)代理層實現(xiàn)修改數(shù)據(jù)的查詢的流程圖。圖6本發(fā)明數(shù)據(jù)代理層實現(xiàn)表單數(shù)據(jù)的查詢的流程圖。具體實施方式針對現(xiàn)有狀況本發(fā)明在表單處理的過程中通過自定義的腳本來完成表單系統(tǒng)的邏輯擴展,從而提高表單的靈活性,而不需要對系統(tǒng)進行擴展,來完成表單的定制開發(fā),減少開發(fā)成本,通過擴展表單描述定義,增加數(shù)據(jù)訪問代理層,完成數(shù)據(jù)多元化存儲需求,數(shù)據(jù)可以根據(jù)需求存儲到數(shù)據(jù)庫,nosql,磁盤文件,以及上述三種方式的混合,通過數(shù)據(jù)訪問代理,擴展邏輯腳本可以透明訪問數(shù)據(jù)而不需要關(guān)心數(shù)據(jù)存儲方式差異。本發(fā)明中方法中將系統(tǒng)結(jié)構(gòu)劃分如圖2所示,包含:1、表單描述信息配置模塊;2、表單解析渲染模塊;3、執(zhí)行中要用到的自定義邏輯腳本執(zhí)行引擎;4、數(shù)據(jù)訪問代理模塊。主要改進是在現(xiàn)有表單描述信息配置模塊基礎(chǔ)上增加數(shù)據(jù)存儲方式的自定義部分,利用本領(lǐng)域其它技術(shù)中的數(shù)據(jù)訪問代理模塊來完成這個自定義部分。一、表單描述信息配置模塊表單系統(tǒng)通過提供給用戶的表單定制向?qū)Чぞ?,表單向?qū)Чぞ咛峁﹚eb表單視圖,用戶通過web界面錄入管理表單的描述信息。用戶填寫完web表單后,提交表單到服務(wù)器,服務(wù)器解析獲取表單配置并保存。具體可以將html中的表單提交給統(tǒng)一的Action,Action收集表單數(shù)據(jù)傳遞數(shù)據(jù)給數(shù)據(jù)代理,數(shù)據(jù)代理加載表單配置根據(jù)配置存儲數(shù)據(jù)。表單描述信息包括:1、表單的字段定義,字段類型,字段長度,字段名稱,默認(rèn)值,索引方式,字段的存儲方式。2、表單管理界面的定義,表單管理界面模板,表單采用的控件,表單控件的描述信息,表單控件對應(yīng)表單存儲字段,表單控件的樣式,表單控件的高度,寬度,默認(rèn)值,及數(shù)據(jù)合法性校驗的正則表達(dá)式,表單控件的數(shù)據(jù)源,及表單控件的擴展配置。3.表單數(shù)據(jù)查詢界面描述,數(shù)據(jù)包括,用哪些字段檢索,查詢字段條件數(shù)據(jù)采用的輸入控件,查詢結(jié)果返回哪些字段的數(shù)據(jù),及表單查詢列表模板,以及列表頁的樣式等。4.表單腳本邏輯介入點腳本配置,邏輯腳本介入點包括,數(shù)據(jù)保存前,數(shù)據(jù)保存后,數(shù)據(jù)發(fā)布腳本。即:在現(xiàn)有表單描述信息中增加:數(shù)據(jù)索引方式、字段的存儲方式及表單控件對應(yīng)表單存儲字段的描述,以實現(xiàn)透明訪問數(shù)據(jù)而不需要關(guān)心數(shù)據(jù)存儲方式差異的效果。二、表單解析渲染模塊系統(tǒng)根據(jù)表單配置模塊所保存在服務(wù)器端的表單配置數(shù)據(jù)在表單運行環(huán)節(jié)加載配置,根據(jù)配置生成提供給用戶的數(shù)據(jù)管理和查詢界面,表單管理界面渲染流程圖如圖3所示。步驟1:用戶通過系統(tǒng)提供的表單視圖頁面,同時將所要請求的表單ID以及要請求的表單數(shù)據(jù)ID以參數(shù)的方式提交到服務(wù)器,服務(wù)器端接受表單ID參數(shù),并根據(jù)表單ID加載模塊1所產(chǎn)生數(shù)據(jù)。步驟2:系統(tǒng)根據(jù)步驟1加載的數(shù)據(jù),獲取表單視圖的模板,該模板通常使用已有的模板技術(shù)的模板文件來處理,本方案采用的是FreeMarker模板來解決問題,以此類推技術(shù)人員可以使用其他模板方式來完成模板的解析工作。步驟3:系統(tǒng)根據(jù)提交的表單數(shù)據(jù)ID參數(shù),如果數(shù)據(jù)ID等于零則為新增數(shù)據(jù)直接轉(zhuǎn)到步驟5,反之則為修改數(shù)據(jù)轉(zhuǎn)到步驟4。步驟:4:根據(jù)步驟1中加載的表單數(shù)據(jù),獲取表單的默認(rèn)值配置,并將默認(rèn)值傳遞給表單視圖模板。步驟5:根據(jù)數(shù)據(jù)ID,加載表單數(shù)據(jù)并將表單數(shù)據(jù)傳遞給表單視圖模板。步驟6:通過FreeMarker模板引擎解析表單模板,得到表單的HTML內(nèi)容。步驟7:將步驟6中所產(chǎn)生的HTML內(nèi)容輸入到web頁面上完成表單視圖的渲染工作。圖4為本發(fā)明表單查詢渲染過程流程圖。腳本引擎:腳本是使用一種特定的描述性語言,依據(jù)一定的格式編寫的可執(zhí)行文件,又稱作宏或批處理文件。腳本引擎對腳本進行編譯和執(zhí)行。腳本引擎通常用于嵌入到編譯型應(yīng)用程序中,用于執(zhí)行擴展的邏輯腳本,來擴充程序的功能,例如EXCEL軟件中的VBA腳本是由EXCEL中嵌入的VBA腳本引擎來執(zhí)行的。三、自定義邏輯腳本執(zhí)行引擎模塊用戶通過管理和查詢界面管理查詢數(shù)據(jù),在用戶管理數(shù)據(jù)過程中,保存數(shù)據(jù)時系統(tǒng)會將需要保存的數(shù)據(jù)以上下文環(huán)境變量的方式傳遞到腳本引擎,腳本引擎加載用戶自定義的數(shù)據(jù)保存前腳本,對傳遞的數(shù)據(jù)進行加工,加工后的數(shù)據(jù)通過腳本引擎上下文變量的方式回傳,完成自定義保存前腳本的處理過程,系統(tǒng)接收回傳數(shù)據(jù)后調(diào)用數(shù)據(jù)代理保存數(shù)據(jù),保存數(shù)據(jù)后將保存數(shù)據(jù)的結(jié)果,以及數(shù)據(jù)本身傳遞給腳本引擎,腳本加載保存后腳本,運行保存后腳本邏輯代碼,將結(jié)果返回給程序,然后同理調(diào)用發(fā)布腳本,完成發(fā)布邏輯的執(zhí)行。步驟1:表單渲染模塊渲染的表單管理界面,系統(tǒng)用戶對表單數(shù)據(jù)輸入或修改,完畢后提交表單。步驟2:由步驟1用戶提交的數(shù)據(jù)以POST的方式提交到服務(wù)器,服務(wù)器端獲取POST數(shù)據(jù),將post過來的數(shù)據(jù)放在HashMap中以鍵值對的方式傳遞給腳本引擎。步驟3:加載表單定義配置里的保存前腳本,腳本引擎執(zhí)行保存前腳本,步驟2中的數(shù)據(jù)以環(huán)境變量的方式傳遞給保存前腳本。步驟4:從腳本引擎獲取保存前腳本執(zhí)行后的環(huán)境變量集合,獲取腳本變量集合中key為verify的變量值(VERIFY()宏,這個宏允許將程序代碼放在布爾表達(dá)式里。這個宏通常用來檢查WindowsAPI的返回值)。步驟5:檢查verify變量的值,如果為TRUE轉(zhuǎn)到步驟7如果為FASLE轉(zhuǎn)到步驟6(True在編程語言中代表邏輯值:真,與邏輯值False“假”意義相反)。步驟6:從步驟4中獲取的腳本變量集合中,獲取key為msg的變量值,并將該變量值作為信息輸出到用戶頁面,然后完成整個過程。步驟7:從步驟4中獲取的腳本變量集合中,獲取key為data的變量數(shù)據(jù),該數(shù)據(jù)為鍵值對集合數(shù)據(jù),從data數(shù)據(jù)中獲取key為id的變量。步驟8:檢查id值是否為0,是0則執(zhí)行步驟9,否則執(zhí)行步驟10。步驟9:將post數(shù)據(jù)插入到存儲設(shè)備獲取id的自增長值,將值改寫到data中key為id的變量中。步驟10:修改數(shù)據(jù),修改該id的存儲記錄。步驟11:加載表單定義配置里的保存后腳本,腳本引擎執(zhí)行保存后腳本,將步驟4中獲取的環(huán)境變量傳遞給保存后前腳本。步驟12:獲取步驟11腳本運行后腳本環(huán)境變量集合,加載發(fā)布腳本,腳本引擎執(zhí)行發(fā)布腳本,將獲取的環(huán)境變量傳遞給發(fā)布前腳本。步驟13:獲取步驟12腳本執(zhí)行后腳本引擎的環(huán)境變量,獲取環(huán)境變量中key為msg的值,將msg的信息輸出到用戶頁面,整個過程完成。HashMap:基于哈希表的Map接口的實現(xiàn)。此實現(xiàn)提供所有可選的映射操作,并允許使用null值和null鍵。(除了非同步和允許使用null之外,HashMap類與Hashtable大致相同。)此類不保證映射的順序,特別是它不保證該順序恒久不變。此實現(xiàn)假定哈希函數(shù)將元素適當(dāng)?shù)胤植荚诟魍爸g,可為基本操作(get和put)提供穩(wěn)定的性能。迭代collection視圖所需的時間與HashMap實例的“容量”(桶的數(shù)量)及其大小(鍵-值映射關(guān)系數(shù))成比例。所以,如果迭代性能很重要,則不要將初始容量設(shè)置得太高(或?qū)⒓虞d因子設(shè)置得太低)。四、數(shù)據(jù)訪問代理模塊數(shù)據(jù)代理實現(xiàn)了表單數(shù)據(jù)的查詢和增加修改的接口,如圖5、6:1.用戶提交數(shù)據(jù)調(diào)用數(shù)據(jù)添加接口,用戶將表單數(shù)據(jù)hashtable方式傳遞給代理接口,同時傳遞表單ID。2.代理接口根據(jù)ID加載對應(yīng)的表單配置,代理接口解析表單配置,并掃描hashtable的key,根據(jù)key查找表單配置中表單的存儲方式,根據(jù)存儲方式的將數(shù)據(jù)存儲到對應(yīng)的位置。3.數(shù)據(jù)查詢的方式和數(shù)據(jù)添加修改類似,根據(jù)表單配置分別從不同的存儲介質(zhì)查詢表單數(shù)據(jù),然后將數(shù)據(jù)合并,以hashtable的方式返回表單數(shù)據(jù)。代理的概念是:假定文件位于文件服務(wù)器上,想讀、寫而整個或部分地運輸這些文件,支持大多數(shù)現(xiàn)代文件服務(wù)器的關(guān)鍵技術(shù)是虛擬文件存儲器,這是一個抽象的文件服務(wù)器。虛擬文件存儲給訪問端提供一個標(biāo)準(zhǔn)化的接口和一套可執(zhí)行的標(biāo)準(zhǔn)化操作。隱去了實際文件服務(wù)器的不同內(nèi)部接口,使訪問端只看到虛擬文件存儲器的標(biāo)準(zhǔn)接口,訪問和運輸遠(yuǎn)地文件的應(yīng)用程序,有可能不必知道各種各樣不兼容的文件服務(wù)器的所有細(xì)節(jié)。具體本發(fā)明的該方式通過統(tǒng)一的訪問接口實現(xiàn)數(shù)據(jù)訪問,數(shù)據(jù)的存儲差異有數(shù)據(jù)代理完成,屏蔽了數(shù)據(jù)存儲組合位置的復(fù)雜性。1.同類系統(tǒng)中,大多采取單一方式的數(shù)據(jù)存儲方式,只將數(shù)據(jù)存儲在nosql,磁盤文件,數(shù)據(jù)庫三者其中一種。2.同類系統(tǒng)中一般也會抽象出一個數(shù)據(jù)訪問層,該訪問層也可以稱為數(shù)據(jù)代理層,不過該方式和我們的方式有著顯著地不同。a.該方式的數(shù)據(jù)訪問層是硬編碼的方式,也就是說只要程序發(fā)布該訪問層是固定的不會隨著數(shù)據(jù)結(jié)構(gòu)的變化而調(diào)整,需要重新修改程序代碼,而這種方式是比較低效且危險的。b.該方式的數(shù)據(jù)存儲位置也是相當(dāng)單一的,對于同一個表單或者一個抽象模型對象的數(shù)據(jù)只存儲在一種存儲介質(zhì)中。該系統(tǒng)需要克服的難點1.需要有一個能夠描述表單的配置,該配置能夠清楚的描述表單各元素的數(shù)據(jù)類型,存儲方式,長度,以及校驗規(guī)則2.在訪問和存儲表單數(shù)據(jù)過程中需要加載并解析表單描述文件,根據(jù)表單描述文件從不同的存儲介質(zhì)查詢或修改數(shù)據(jù)。代理設(shè)置的具體實例:將html中的表單提交給數(shù)據(jù)處理Action,用html中form的Action表示html的表單這樣寫:表單基礎(chǔ)配置信息:表單基礎(chǔ)信息中描述各對應(yīng)字段的存儲方式,表單存儲方式描述如下(只列出了便于理解的表單的存儲方式信息)代理存儲數(shù)據(jù)的處理方式1.接收表單數(shù)據(jù)2.根據(jù)表單id加載表單配置3.根據(jù)配置采取不同的存儲方式,偽代碼如下與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點:本發(fā)明自定義表單系統(tǒng)通過數(shù)據(jù)代理模塊實現(xiàn)數(shù)據(jù)儲存結(jié)構(gòu)的自定義,可以輕易實現(xiàn)數(shù)據(jù)的分散存儲,而不增加數(shù)據(jù)查詢存儲的復(fù)雜度,可以很容易的解決系統(tǒng)的數(shù)據(jù)訪問瓶頸平靜問題。惟以上所述者,僅為本發(fā)明的較佳實施例而已,當(dāng)不能以此限定本發(fā)明實施范圍;故,凡依本發(fā)明申請專利范圍及創(chuàng)作說明書內(nèi)容所作的簡單的等效變化與修飾,皆應(yīng)仍屬本發(fā)明專利涵蓋之范圍內(nèi)。當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
信阳市| 龙胜| 丰城市| 云南省| 浪卡子县| 乐清市| 福泉市| 铜梁县| 历史| 洱源县| 四川省| 南澳县| 渝中区| 金昌市| 峡江县| 阿克苏市| 同德县| 贵州省| 宁阳县| 安多县| 沅江市| 天门市| 玉林市| 凤山县| 绍兴县| 岢岚县| 且末县| 遵义市| 东阿县| 拜泉县| 榆林市| 韶山市| 若羌县| 新乐市| 潜江市| 翼城县| 天峻县| 齐河县| 闵行区| 睢宁县| 衡水市|