一種自適應表單的生成方法及系統的制作方法
【專利摘要】本發明公開了一種自適應表單的生成方法及系統,該方法首先創建一個對象表用來存儲所有的對象名,創建對象屬性表用來存儲每個對象的屬性信息,并根據不同的對象創建與其相對應的用來存儲其相關數據的數據表;在收到用戶的表單定制申請時,先查看對象表中是否存在與申請所對應的對象名,若是則讀取數據表中的該對象的相關數據并返回,若否則根據表單定制申請,創建一個新對象,并設置新對象的屬性信息及類型,并將新對象的對象名增加到對象表中,將新對象的屬性信息增加到對象屬性表中。通過該方法及系統,用戶可以自定義新表單的類型,并可以設定每個字段的類型、查詢列表顯示頁面以及查詢字段。
【專利說明】一種自適應表單的生成方法及系統
【技術領域】
[0001]本發明涉及表單生成領域,具體涉及一種自適應表單的生成方法及系統。
【背景技術】
[0002]隨著計算機技術的不斷發展,政府和企業中的信息化建設規模變得越來越大速度也越來越快。在信息化建設的過程中很多業務邏輯不是很強,單一表單的增、刪、改、查的不斷重復建設耗費了信息化建設中大量的時間與資源。目前解決該類問題的最普遍形式有以下幾種:
[0003](一 )制作一種代碼生成工具,每次需要單一表單的定制工作,通過配置生成一套從數據庫到頁面的包括各個層的代碼,然后將代碼加入到系統框架中經過簡單配置即可實現一個應用。
[0004](二)通過反射機制將后臺所有的操作制作成通用方法,需要增加一個應用的時候,只要編寫相應的類以及前臺表單即可新增一個應用。
[0005](三)傳統方式將所有的應用從后臺到前臺重新寫一遍。
[0006](四)設計一種表單能自適應,但是所有的操作都是基于數據庫的操作,不涉及ORM(Object/Relation Mapping,對象映射機制),不能引入反射機制,代碼的編寫相對復雜,實現起來不靈活。
【發明內容】
[0007]針對現有技術中存在的缺陷,本發明的目的在于提供一種自適應表單的生成方法及系統,通過該方法及系統,用戶可以自定義新表單的類型,并可以設定每個字段的類型、查詢列表顯示頁面以及查詢字段。
[0008]為實現上述目的,本發明采用的技術方案如下:
[0009]一種自適應表單的生成方法,包括以下步驟:
[0010](I)創建一個對象表用來存儲所有的對象名以及對象對應的對象表的表名,創建對象屬性表用來存儲每個對象的屬性信息;讀取對象表中的所有對象并持久化;
[0011](2)為每一個對象創建一個與其相對應的數據表,所述的數據表用來存儲該對象數據;對象數據由用戶根據需要進行設置,包括對象的表單字段及各字段的類型;數據表的表名與該對象的對象名一致;(3)用戶發出表單定制申請,根據表單中的對象名查看對象表中是否存在定制申請所對應的對象,若是則讀取該對象數據表中的對象數據并返回給用戶;若否則進入步驟(4);
[0012](4)根據表單中的對象名,創建一個新對象,并設置新對象的屬性信息及類型;所述的屬性信息包括新對象的屬性id和對象名;
[0013](5)將所述新對象的對象名增加到對象表中,將新對象的屬性信息增加到對象屬性表中,并創建一個新的數據表用來存儲新對象的對象數據。
[0014]進一步,如上所述的一種自適應表單生成方法,步驟(4)中,創建新對象后,用戶根據需要設置新對象的查詢項及查詢時的顯示項;所述的查詢項及顯示項是在新對象的屬性信息中選出的。
[0015]進一步,如上所述的一種自適應表單生成方法,步驟(I)中,將所建立的對象表和對象屬性表保存到數據庫,并建立對象與對象表、以及對象與對象屬性表的映射關系。
[0016]再進一步,如上所述的一種自適應表單生成方法,用戶申請查詢表單時,在數據庫中根據所設置的查詢項查詢申請對象所對應的對象數據,并根據所設置的顯示項將顯示項所對應的數據返回給用戶。
[0017]更進一步,如上所述的一種自適應表單生成方法,步驟(5)中,新對象的數據表的表名與其對象名一致。
[0018]—種自適應表單的生成系統,包括:
[0019]存儲模塊:用于創建一個對象表用來存儲所有的對象名以及對象對應的對象表的表名,創建對象屬性表用于記錄每個對象的屬性信息,并讀取對象表中的所有對象并持久化;
[0020]數據表創建模塊:用于為每一個對象創建一個與其相對應的數據表,所述的數據表用來存儲該對象數據;對象數據由用戶根據需要進行設置,包括對象的表單字段及各字段的類型;數據表的表名與該對象的對象名一致;
[0021]對象查找模塊:用于根據用戶發出的表單定制申請中的對象名查看對象表中是否存在定制申請所對應的對象,若是則讀取該對象數據表中的對象數據并返回給用戶;若否則進入新對象創建模塊;
[0022]新對象創建模塊:用于根據表單中的對象名,創建一個新對象,并設置新對象的屬性信息及類型;所述的屬性信息包括新對象的屬性id和對象名;
[0023]新對象存儲模塊:用于將所述新對象的對象名增加到對象表中,將新對象的屬性信息增加到對象屬性表中,并創建一個新的數據表用來存儲新對象的對象數據。
[0024]進一步,如上所述的一種自適應表單的生成系統,該系統還包括,
[0025]映射關系建立模塊:用于建立對象與對象表、以及對象與對象屬性表的映射關系。
[0026]再進一步,如上所述的一種自適應表單的生成系統,所述的對象查找模塊包括:
[0027]對象數據查找單元:用于在對象表中存在表單中的對象名時,根據對象與對象屬性表的映射關系查找對象屬性表的對象數據,并將查找的對象數據返回給用戶。
[0028]本發明的有益效果在于:本發明所述的方法及系統能夠通過簡單的配置通過界面的操作即可完成傳統的通過復雜而又重復的編碼工作才能完成的軟件功能開發。基于開發者需要編寫的代碼比較少,大大增加開發速度,而且本發明適用于所有的表單情況,任何表單的開發都可以通過本系統的引入而解決。基于維護者系統不需要額外的配置以及更新維護,維護界面統一功能強大,系統穩定。基于使用者系統界面風格統一,可以基于自適應表單提出自己各種不同的需求,以及隨著系統的使用引入新的模塊本發明都能滿足。
【專利附圖】
【附圖說明】
[0029]圖1為本發明一種自適應表單的生成系統的結構框圖;
[0030]圖2為本發明一種自適應表單的生成方法的流程圖。【具體實施方式】
[0031]下面結合說明書附圖與【具體實施方式】對本發明做進一步的詳細說明。
[0032]圖1示出了本發明一種自適應表單的生成系統的結構框圖,該系統包括存儲模塊
11、數據表創建模塊12、對象查找模塊13、新對象創建模塊14和新對象存儲模塊15,其中:
[0033]存儲模塊11用于創建一個對象表用來存儲所有的對象名以及對象對應的對象表的表名,創建對象屬性表用于記錄每個對象的屬性信息,并讀取對象表中的所有對象并持久化;
[0034]數據表創建模塊12用于為每一個對象創建一個與其相對應的數據表,所述的數據表用來存儲該對象數據;對象數據由用戶根據需要進行設置,包括對象的表單字段及各字段的類型;數據表的表名與該對象的對象名一致;
[0035]對象查找模塊13用于根據用戶發出的表單定制申請中的對象名查看對象表中是否存在定制申請所對應的對象,若是則讀取該對象數據表中的對象數據并返回給用戶;若否則進入新對象創建模塊;
[0036]新對象創建模塊14用于根據表單中的對象名,創建一個新對象,并設置新對象的屬性信息及類型;所述的屬性信息包括新對象的屬性id和對象名;
[0037]新對象存儲模塊15用于將所述新對象的對象名增加到對象表中,將新對象的屬性信息增加到對象屬性表中,并創建一個新的數據表用來存儲新對象的對象數據。
[0038]此外,該系統還包括用于建立對象與對象表、以及對象與對象屬性表的映射關系的映射關系建立模塊;映射關系建立模塊將實體類與數據庫表自動建立對象關系映射,而不需要另外去建設配置文件以及注解等,有新類以及新的數據庫表建立起來以后,該裝置能夠自動將類以及數據庫表建立起orm映射。對象查找模塊13還包括用于在對象表中存在表單中的對象名時,根據對象與對象屬性表的映射關系查找對象屬性表的對象數據,并將查找的對象數據返回給用戶的對象數據查找單元。
[0039]圖2示出了基于圖1中自適應表單生成系統的一種自適應表單的生成方法的流程圖,該方法主要包括以下步驟:
[0040]步驟S21:創建對象表存儲所有的對象名,創建對象屬性表存儲每個對象的屬性信息;
[0041]創建一個對象表用來存儲所有的對象名以及對象對應的對象表的表名,創建對象屬性表用來存儲每個對象的屬性信息;讀取對象表中的所有對象并持久化;將所建立的對象表和對象屬性表保存到數據庫,并建立對象與對象表、以及對象與對象屬性表的映射關系O
[0042]步驟S22:為不同的對象創建與其相對應的數據表;
[0043]為每一個對象創建一個與其相對應的數據表,所述的數據表用來存儲該對象數據;對象數據由用戶根據需要進行設置,包括對象的表單字段及各字段的類型;數據表的表名與該對象的對象名一致。
[0044]步驟S23:根據表單定制申請查找對象查看;
[0045]用戶發出表單定制申請,根據表單中的對象名查看對象表中是否存在定制申請所對應的對象,若是則讀取該對象數據表中的對象數據并返回給用戶;若否則進入步驟S24 ;
[0046]步驟S24:創建一個新對象,并設置新對象的屬性信息及類型;[0047]根據表單中的對象名,創建一個新對象,并設置新對象的屬性信息及類型;所述的屬性信息包括新對象的屬性id和對象名;創建新對象后,還包括用戶根據需要設置新對象的查詢項及查詢時的顯示項;所述的查詢項及顯示項是由新對象的屬性信息中選出的。用戶申請查詢表單時,在數據庫中根據所設置的查詢項查詢申請對象所對應的信息并返回。
[0048]步驟S25:將新對象的對象名增加到對象表中,將其屬性信息增加到對象屬性表中。
[0049]將所述新對象的對象名增加到對象表中,將新對象的屬性信息增加到對象屬性表中,并創建一個新的數據表用來存儲新對象的對象數據。新的數據表用來記錄新對象的表單字段以及各字段類型情況,用戶的查詢條件以及查詢列表的實現情況依賴于這個表。
[0050]本發明所述的方法及系統,用戶需要增加內容時,系統根據選擇對象自動調用為用戶動態創建表單,系統收到用戶提交表單以后通過反射機制自動創建對象,并通過統一與數據庫對接接口將數據保存到數據庫中。該方法及系統在通過軟件開發編碼實現時,通過實體類(對象名)與具體的表單(對象表、數據表)進行對象關系映射。用戶需要新增一個新的表單的時候,只要在管理界面中增加實體類的名稱以及該類的各種屬性,系統會將對象的各個屬性保存到數據庫中,并在系統中創建該類。通過該方法及系統用戶能夠自定義查詢表單的查詢界面以及查詢界面的字段以及各自段類型,當用戶需要查詢的時候就會自動生成一個查詢表單,用戶可以查詢出對應的數據,用戶將前臺自動生成的表單自動映射成對象通過反射機制將數據賦予相應的對象。然后通過統一的數據存儲接口通過映射將數據保存到相應的表中。
[0051]本發明的效果在于能夠通過簡單的配置通過界面的操作即可完成傳統的通過復雜而又重復的編碼工作才能完成的軟件功能開發。基于開發者需要編寫的代碼比較少,大大增加開發速度,而且本發明適用于所有的表單情況,任何表單的開發都可以通過本系統的引入而解決。基于維護者系統不需要額外的配置以及更新維護,維護界面統一功能強大,系統穩定。基于使用者系統界面風格統一,可以基于自適應表單提出自己各種不同的需求,以及隨著系統的使用引入新的模塊本發明都能滿足。
[0052]下面結合具體的實施例對本申請進行進一步的說明:
[0053]實施例
[0054]用戶需要管理一類新的物品(書),用戶登錄到系統以后首先進入表單定制界面,創建一個新對象book,并指定book的各個屬性id、名稱、出版社、作者、出版時間、價格等信息。并設置名稱、作者為查詢項,設置名稱、出版社、作者、出版時間、價格為列表顯示相。點擊保存按鈕以后,系統會在對象表tl中增加數據book,并在對象屬性表t2中增加book對應的屬性(id、名稱、出版社、作者、出版時間、價格等)。創建一個新表book其對應的屬性為id、名稱、出版社、作者、出版時間、價格。數據庫操作完成以后系統自動刷新,將book添加到session管理系統之中去。用戶從對象新增界面中就能看到書的管理,點擊書新增就能彈出書的新增界面,同時點擊查詢管理中的圖書能夠進入查詢界面查詢項根據我們的定制可以看到只有名稱、作者兩項。
[0055]顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其同等技術的范圍之內,則本發明也意圖包含這些改動和變型在內。
【權利要求】
1.一種自適應表單的生成方法,包括以下步驟: (1)創建一個對象表用來存儲所有的對象名以及對象對應的對象表的表名,創建對象屬性表用來存儲每個對象的屬性信息;讀取對象表中的所有對象并持久化; (2)為每一個對象創建一個與其相對應的數據表,所述的數據表用來存儲該對象數據;對象數據由用戶根據需要進行設置,包括對象的表單字段及各字段的類型;數據表的表名與該對象的對象名一致; (3)用戶發出表單定制申請,根據表單中的對象名查看對象表中是否存在定制申請所對應的對象,若是則讀取該對象數據表中的對象數據并返回給用戶;若否則進入步驟(4); (4)根據表單中的對象名,創建一個新對象,并設置新對象的屬性信息及類型;所述的屬性信息包括新對象的屬性id和對象名; (5)將所述新對象的對象名增加到對象表中,將新對象的屬性信息增加到對象屬性表中,并創建一個新的數據表用來存儲新對象的對象數據。
2.如權利要求1所述的一種自適應表單生成方法,其特征在于:步驟(4)中,創建新對象后,用戶根據需要設置新對象的查詢項及查詢時的顯示項;所述的查詢項及顯示項是在新對象的屬性信息中選出的。
3.如權利要求1或2所述的一種自適應表單生成方法,其特征在于:步驟(1)中,將所建立的對象表和對象屬性表保存到數據庫,并建立對象與對象表、以及對象與對象屬性表的映射關系。
4.如權利要求3所述的一種自適應表單生成方法,其特征在于:用戶申請查詢表單時,在數據庫中根據所設置的查詢項查詢申請對象所對應的對象數據,并根據所設置的顯示項將顯示項所對應的數據返回給用戶。
5.如權利要求1所述的一種自適應表單生成方法,其特征在于:步驟(5)中,新對象的數據表的表名與其對象名一致。
6.一種自適應表單的生成系統,包括: 存儲模塊:用于創建一個對象表用來存儲所有的對象名以及對象對應的對象表的表名,創建對象屬性表用于記錄每個對象的屬性信息,并讀取對象表中的所有對象并持久化; 數據表創建模塊:用于為每一個對象創建一個與其相對應的數據表,所述的數據表用來存儲該對象數據;對象數據由用戶根據需要進行設置,包括對象的表單字段及各字段的類型;數據表的表名與該對象的對象名一致; 對象查找模塊:用于根據用戶發出的表單定制申請中的對象名查看對象表中是否存在定制申請所對應的對象,若是則讀取該對象數據表中的對象數據并返回給用戶;若否則進入新對象創建模塊; 新對象創建模塊:用于根據表單中的對象名,創建一個新對象,并設置新對象的屬性信息及類型;所述的屬性信息包括新對象的屬性id和對象名; 新對象存儲模塊:用于將所述新對象的對象名增加到對象表中,將新對象的屬性信息增加到對象屬性表中,并創建一個新的數據表用來存儲新對象的對象數據。
7.如權利要求6所述的一種自適應表單的生成系統,其特征在于:該系統還包括, 映射關系建立模塊:用于建立對象與對象表、以及對象與對象屬性表的映射關系。
8.如權利要求7所述的一種自適應表單的生成系統,其特征在于,所述的對象查找模塊包括: 對象數據查找單元:用于在對象表中存在表單中的對象名時,根據對象與對象屬性表的映射關系查找對象屬性表·的對象數據,并將查找的對象數據返回給用戶。
【文檔編號】G06F17/30GK103853759SQ201210508701
【公開日】2014年6月11日 申請日期:2012年12月3日 優先權日:2012年12月3日
【發明者】張百春, 樂以長, 高超, 朱軍, 于文超, 于海龍 申請人:方正國際軟件(北京)有限公司, 常州市公安局