本發(fā)明涉及ERP系統(tǒng)領(lǐng)域,具體地說是一種表單設(shè)計器控件的通用描述方法。
背景技術(shù):
:隨著企業(yè)信息化的不斷深入,ERP系統(tǒng)已經(jīng)涉及到企業(yè)經(jīng)營和管理的方方面面,這必然帶來ERP單據(jù)量的急劇增加,傳統(tǒng)的手工編碼的方式已經(jīng)無法滿足對單據(jù)開發(fā)速度和穩(wěn)定性的要求,越來越多的ERP供應(yīng)商開始通過表單設(shè)計器來實現(xiàn)單據(jù)的快速開發(fā)。使用表單設(shè)計器進(jìn)行單據(jù)開發(fā)時所有的操作基本上都是圍繞對控件和控件之間的關(guān)系來進(jìn)行展開的,所以控件在表單設(shè)計器中占據(jù)了非常重要的位置,直接影響了表單設(shè)計器能否開發(fā)出功能強(qiáng)大、豐富多樣的單據(jù)。隨著ERP單據(jù)越來越復(fù)雜,越來越多的控件被加入到表單設(shè)計器中,然而傳統(tǒng)的設(shè)計器中,表單設(shè)計器與控件集成往往采用硬編碼的方式來實現(xiàn),在表單設(shè)計器中新增、刪除、修改控件都要對設(shè)計器上做大量的代碼調(diào)整,維護(hù)的成本和難度非常高,大量的手工編碼也直接導(dǎo)致表單設(shè)計器功能穩(wěn)定性的下降。專利號為CN104267962A的專利文獻(xiàn)公開了一種基于描述的界面UI控件配置方法,包括如下步驟:步驟一、對控件在圖形化表單設(shè)計器中的屬性和事件進(jìn)行描述;步驟二、對控件的屬性和事件在圖形化表單設(shè)計器上關(guān)聯(lián)的編輯器信息進(jìn)行描述;步驟三、對控件屬性在圖形化表單設(shè)計器上編輯時的控制規(guī)則進(jìn)行描述;步驟四、對控件在圖形化表單設(shè)計器上生成的Xml元素結(jié)構(gòu)進(jìn)行描述;步驟五、對控件在生成部署引擎中的生成規(guī)則進(jìn)行描述。但是該技術(shù)方案不能解決ERP系統(tǒng)中表單設(shè)計器與控件集成的問題。技術(shù)實現(xiàn)要素:本發(fā)明的技術(shù)任務(wù)是針對以上不足之處,提供一種表單設(shè)計器控件的通用描述方法,來解決表單設(shè)計器與控件集成往往采用硬編碼的方式來實現(xiàn),在表單設(shè)計器中新增、刪除、修改控件都要對設(shè)計器上做大量的代碼調(diào)整,維護(hù)的成本和難度非常高,大量的手工編碼也直接導(dǎo)致表單設(shè)計器功能穩(wěn)定性的下降的問題。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種表單設(shè)計器控件的通用描述方法,該方法是定義一組標(biāo)準(zhǔn)接口實現(xiàn)控件與表單設(shè)計器各組成部分之間的集成,標(biāo)準(zhǔn)接口包括控件整體描述接口、控件在工具箱面板內(nèi)的描述接口、控件在設(shè)計視圖面板內(nèi)的描述接口、控件在屬性面板內(nèi)的描述接口以及控件在持久存儲層內(nèi)的描述接口;其中,控件整體描述接口涵蓋與表單設(shè)計器各組裝部分之間關(guān)系的描述;控件在工具箱面板內(nèi)的描述接口用于將控件以預(yù)期的方式展示到工具箱面板中并對控件進(jìn)行描述;控件在設(shè)計視圖面板內(nèi)的描述接口用于在設(shè)計視圖面板上展示一個可視化的控件供用戶操作;控件在屬性面板內(nèi)的描述接口用于屬性面板中對控件進(jìn)行展示和編輯;控件在持久存儲層內(nèi)的描述接口用于使用XML將表單設(shè)計器的設(shè)計結(jié)果保存到持久存儲層中。作為優(yōu)選,所述控件整體描述接口的具體描述如下:(1)、控件標(biāo)識:用于唯一標(biāo)識一個控件;(2)、控件在工具箱面板內(nèi)的描述:用于描述控件在表單設(shè)計器的工具箱面板內(nèi)的展示;(3)、控件在設(shè)計視圖面板內(nèi)的描述:用于描述控件在表單設(shè)計器的設(shè)計視圖面板上的展示與行為;(4)、控件在屬性面板內(nèi)的描述:用于描述控件在表單設(shè)計器的屬性面板內(nèi)的展示與行為;(5)、控件在持久存儲層內(nèi)的描述:用于定義控件在表單設(shè)計器的屬性面板中的存儲格式。作為優(yōu)選,所述控件在工具箱面板內(nèi)的描述接口的具體描述如下:(1)、控件名稱:表單設(shè)計器的工具欄面板中控件的顯示名稱;(2)、控件類別:表單設(shè)計器的工具欄面板中控件分組的依據(jù);(3)、控件圖標(biāo):表單設(shè)計器的工具欄面板中控件的圖表路徑;(4)、控件的顯示順序:表單設(shè)計器工具欄面案中控件的顯示順序。作為優(yōu)選,所述控件在設(shè)計視圖面板內(nèi)的描述接口的具體描述如下:設(shè)計視圖控件構(gòu)造器,設(shè)計視圖控件構(gòu)造器用于創(chuàng)建控件在設(shè)計視圖展示的圖形控件。作為優(yōu)選,所述控件在屬性面板內(nèi)的描述接口為了支持屬性的嵌套需要定義以下接口:屬性容器描述接口、屬性描述接口、屬性值校驗規(guī)則接口、屬性與設(shè)計視圖面板內(nèi)控件的映射接口以及屬性與持久層節(jié)點值的映射接口;屬性容器描述接口可以相互嵌套,對應(yīng)到控件面板上就是一個嵌套的屬性;其中,屬性容器描述接口的具體描述如下:(1)、容器名稱:用于屬性容器在屬性面板內(nèi)展示的名稱;(2)、容器類別:用于控制屬性容器在屬性面板內(nèi)的哪個類別下顯示,頂級容器此類別為空;(3)、是否顯示:用于控制屬性容器及子屬性在屬性面板內(nèi)的可見性;(4)、顯示順序:用于控制屬性容器在屬性面板內(nèi)的顯示順序;(5)、子容器描述集合:用于存儲子屬性容器描述的集合;(6)、子屬性描述集合:用于存儲子屬性描述的集合。更優(yōu)地,所述屬性描述接口的具體描述如下:(1)、標(biāo)識:用于在屬性面板內(nèi)唯一標(biāo)識該屬性;(2)、顯示名:用于在屬性面板內(nèi)的顯示的名稱;(3)、描述:用于在屬性面板內(nèi)顯示的對該屬性的描述;(4)、類別:用于在屬性面板內(nèi)的哪個類別下展示;(5)、值類型:存儲該屬性的值類型;(6)、默認(rèn)值:存儲該屬性的默認(rèn)值;(7)、是否可見:用于控制該屬性在屬性面板中是否顯示;(8)、是否只讀:用來控制屬性面板上該屬性是否只讀;(9)、顯示順序:用來控制在屬性面板上的顯示順序;(10)、屬性值編輯器:用來控制該屬性在屬性面板上用什么編輯器進(jìn)行編輯;(11)、屬性值校驗規(guī)則集合:用來存儲一組校驗規(guī)則,來對屬性值進(jìn)行校驗;(12)、屬性與視圖面板映射集合:用來存儲一組映射,用來雙向同步屬性面板上的值和設(shè)計視圖上控件的屬性值;(13)、屬性與持久層映射集合:用來存儲一組映射,來雙向同步屬性面板上的屬性值和持久層中對應(yīng)節(jié)點的屬性值。更優(yōu)地,所述定義屬性值校驗規(guī)則接口是為了當(dāng)屬性面板中的屬性值發(fā)生變化后,要對屬性值的合法性進(jìn)行校驗,定義屬性值校驗規(guī)則接口的具體描述如下:(1)、校驗規(guī)則:一個描述校驗規(guī)則的表達(dá)式,如果是自定義校驗,指定校驗器的調(diào)用方式;(2)、校驗失敗提示:校驗失敗的提示信息。更優(yōu)地,所述屬性與設(shè)計視圖面板內(nèi)控件的映射接口是為了當(dāng)屬性面板中的屬性值發(fā)生變化或設(shè)計視圖面板內(nèi)的控件屬性發(fā)生變化后,對兩者進(jìn)行同步,屬性與設(shè)計視圖面板內(nèi)控件的映射接口的具體描述如下:(1)、屬性面板屬性路徑:用于在屬性面板上查找屬性;(2)、設(shè)計面板控件屬性路徑:用于在設(shè)計視圖面板上查找可視化控件的屬性;(3)、轉(zhuǎn)換器:通過轉(zhuǎn)換器處理屬性面板上屬性值和設(shè)計面板控件屬性值不一致的情況。更優(yōu)地,所述屬性與持久存儲層節(jié)點值的映射接口是為了當(dāng)屬性欄面板中的屬性值發(fā)生變化后,將變化保存到持久層,或者通過持久層加載控件的時候需要將持久層內(nèi)的數(shù)據(jù)映射到屬性面板上,屬性與持久存儲層節(jié)點值的映射接口的具體描述如下:(1)、屬性面板屬性路徑:用于在屬性面板上查找屬性;(2)、持久存儲層屬性節(jié)點路徑:用于在持久存儲層的控件結(jié)構(gòu)中查找對應(yīng)節(jié)點;(3)、轉(zhuǎn)換器:處理屬性面板中的值和持久存儲層中的值不一致的情況。作為優(yōu)選,所述控件在持久存儲層內(nèi)的描述接口中的持久存儲層采用XML格式對控件進(jìn)行存儲并定義元素節(jié)點描述接口和屬性節(jié)點描述接口用于描述控件的XML結(jié)構(gòu);其中,定義元素節(jié)點描述接口的具體描述如下:(1)、標(biāo)簽名:用于定義XML元素節(jié)點的標(biāo)簽名;(2)、子元素集合:元素內(nèi)子元素的集合;(3)、子屬性集合:元素屬性的集合;屬性節(jié)點描述接口的屬性名用于定義XML屬性節(jié)點的名稱。本發(fā)明的表單設(shè)計器控件的通用描述方法和現(xiàn)有技術(shù)相比,具有以下有益效果:本發(fā)明為表單設(shè)計器控件定義了標(biāo)準(zhǔn)接口來描述表單設(shè)計器控件本身的屬性以及與表單設(shè)計器各組成部分之間的關(guān)聯(lián),表單設(shè)計器可以通過解析控件的描述與定義,快速對控件進(jìn)行集成,大量減少表單設(shè)計器控件變更時帶來的編碼量,大大提高了表單設(shè)計器開發(fā)和維護(hù)的效率,當(dāng)控件的定義和描述發(fā)生變化后,表單設(shè)計器可以將這些變更快速應(yīng)用到設(shè)計器的各個組成部分上。故本發(fā)明具有設(shè)計合理、使用方便、一物多用等特點,因而,具有很好的推廣使用價值。附圖說明下面結(jié)合附圖對本發(fā)明進(jìn)一步說明。附圖1為表單設(shè)計器結(jié)構(gòu)框圖;附圖2為表單設(shè)計器控件的整體架構(gòu)圖。具體實施方式下面結(jié)合附圖和具體實施例對本發(fā)明作進(jìn)一步說明。實施例1如附圖1和2所示,本發(fā)明的表單設(shè)計器控件的通用描述方法,該方法是定義一組標(biāo)準(zhǔn)接口實現(xiàn)控件與表單設(shè)計器各組成部分之間的集成,標(biāo)準(zhǔn)接口包括控件整體描述接口、控件在工具箱面板內(nèi)的描述接口、控件在設(shè)計視圖面板內(nèi)的描述接口、控件在屬性面板內(nèi)的描述接口以及控件在持久存儲層內(nèi)的描述接口;其中,控件整體描述接口涵蓋與表單設(shè)計器各組裝部分之間關(guān)系的描述;控件在工具箱面板內(nèi)的描述接口用于將控件以預(yù)期的方式展示到工具箱面板中并對控件進(jìn)行描述;控件在設(shè)計視圖面板內(nèi)的描述接口用于在設(shè)計視圖面板上展示一個可視化的控件供用戶操作;控件在屬性面板內(nèi)的描述接口用于屬性面板中對控件進(jìn)行展示和編輯;控件在持久存儲層內(nèi)的描述接口用于使用XML將表單設(shè)計器的設(shè)計結(jié)果保存到持久存儲層中??丶w描述接口的具體描述如下:(1)、控件標(biāo)識:用于唯一標(biāo)識一個控件;(2)、控件在工具箱面板內(nèi)的描述:用于描述控件在表單設(shè)計器的工具箱面板內(nèi)的展示;(3)、控件在設(shè)計視圖面板內(nèi)的描述:用于描述控件在表單設(shè)計器的設(shè)計視圖面板上的展示與行為;(4)、控件在屬性面板內(nèi)的描述:用于描述控件在表單設(shè)計器的屬性面板內(nèi)的展示與行為;(5)、控件在持久存儲層內(nèi)的描述:用于定義控件在表單設(shè)計器的屬性面板中的存儲格式??丶诠ぞ呦涿姘鍍?nèi)的描述接口的具體描述如下:(1)、控件名稱:表單設(shè)計器的工具欄面板中控件的顯示名稱;(2)、控件類別:表單設(shè)計器的工具欄面板中控件分組的依據(jù);(3)、控件圖標(biāo):表單設(shè)計器的工具欄面板中控件的圖表路徑;(4)、控件的顯示順序:表單設(shè)計器工具欄面案中控件的顯示順序??丶谠O(shè)計視圖面板內(nèi)的描述接口的具體描述如下:設(shè)計視圖控件構(gòu)造器,設(shè)計視圖控件構(gòu)造器用于創(chuàng)建控件在設(shè)計視圖展示的圖形控件。控件在屬性面板內(nèi)的描述接口為了支持屬性的嵌套需要定義以下接口:屬性容器描述接口、屬性描述接口、屬性值校驗規(guī)則接口、屬性與設(shè)計視圖面板內(nèi)控件的映射接口以及屬性與持久層節(jié)點值的映射接口;屬性容器描述接口可以相互嵌套,對應(yīng)到控件面板上就是一個嵌套的屬性;其中,屬性容器描述接口的具體描述如下:(1)、容器名稱:用于屬性容器在屬性面板內(nèi)展示的名稱;(2)、容器類別:用于控制屬性容器在屬性面板內(nèi)的哪個類別下顯示,頂級容器此類別為空;(3)、是否顯示:用于控制屬性容器及子屬性在屬性面板內(nèi)的可見性;(4)、顯示順序:用于控制屬性容器在屬性面板內(nèi)的顯示順序;(5)、子容器描述集合:用于存儲子屬性容器描述的集合;(6)、子屬性描述集合:用于存儲子屬性描述的集合。屬性描述接口的具體描述如下:(1)、標(biāo)識:用于在屬性面板內(nèi)唯一標(biāo)識該屬性;(2)、顯示名:用于在屬性面板內(nèi)的顯示的名稱;(3)、描述:用于在屬性面板內(nèi)顯示的對該屬性的描述;(4)、類別:用于在屬性面板內(nèi)的哪個類別下展示;(5)、值類型:存儲該屬性的值類型;(6)、默認(rèn)值:存儲該屬性的默認(rèn)值;(7)、是否可見:用于控制該屬性在屬性面板中是否顯示;(8)、是否只讀:用來控制屬性面板上該屬性是否只讀;(9)、顯示順序:用來控制在屬性面板上的顯示順序;(10)、屬性值編輯器:用來控制該屬性在屬性面板上用什么編輯器進(jìn)行編輯;(11)、屬性值校驗規(guī)則集合:用來存儲一組校驗規(guī)則,來對屬性值進(jìn)行校驗;(12)、屬性與視圖面板映射集合:用來存儲一組映射,用來雙向同步屬性面板上的值和設(shè)計視圖上控件的屬性值;(13)、屬性與持久層映射集合:用來存儲一組映射,來雙向同步屬性面板上的屬性值和持久層中對應(yīng)節(jié)點的屬性值。定義屬性值校驗規(guī)則接口是為了當(dāng)屬性面板中的屬性值發(fā)生變化后,要對屬性值的合法性進(jìn)行校驗,定義屬性值校驗規(guī)則接口的具體描述如下:(1)、校驗規(guī)則:一個描述校驗規(guī)則的表達(dá)式,如果是自定義校驗,指定校驗器的調(diào)用方式;(2)、校驗失敗提示:校驗失敗的提示信息。屬性與設(shè)計視圖面板內(nèi)控件的映射接口是為了當(dāng)屬性面板中的屬性值發(fā)生變化或設(shè)計視圖面板內(nèi)的控件屬性發(fā)生變化后,對兩者進(jìn)行同步,屬性與設(shè)計視圖面板內(nèi)控件的映射接口的具體描述如下:(1)、屬性面板屬性路徑:用于在屬性面板上查找屬性;(2)、設(shè)計面板控件屬性路徑:用于在設(shè)計視圖面板上查找可視化控件的屬性;(3)、轉(zhuǎn)換器:通過轉(zhuǎn)換器處理屬性面板上屬性值和設(shè)計面板控件屬性值不一致的情況。屬性與持久存儲層節(jié)點值的映射接口是為了當(dāng)屬性欄面板中的屬性值發(fā)生變化后,將變化保存到持久層,或者通過持久層加載控件的時候需要將持久層內(nèi)的數(shù)據(jù)映射到屬性面板上,屬性與持久存儲層節(jié)點值的映射接口的具體描述如下:(1)、屬性面板屬性路徑:用于在屬性面板上查找屬性;(2)、持久存儲層屬性節(jié)點路徑:用于在持久存儲層的控件結(jié)構(gòu)中查找對應(yīng)節(jié)點;(3)、轉(zhuǎn)換器:處理屬性面板中的值和持久存儲層中的值不一致的情況??丶诔志么鎯觾?nèi)的描述接口中的持久存儲層采用XML格式對控件進(jìn)行存儲并定義元素節(jié)點描述接口和屬性節(jié)點描述接口用于描述控件的XML結(jié)構(gòu);其中,定義元素節(jié)點描述接口的具體描述如下:(1)、標(biāo)簽名:用于定義XML元素節(jié)點的標(biāo)簽名;(2)、子元素集合:元素內(nèi)子元素的集合;(3)、子屬性集合:元素屬性的集合;屬性節(jié)點描述接口的屬性名用于定義XML屬性節(jié)點的名稱。實施例2通過一個實際的實施場景,使本發(fā)明的上述目標(biāo)、優(yōu)點更加清晰易懂。實施過程包括兩個階段,分別為:控件定義階段和表單設(shè)計器集成階段。假設(shè)我們是要新增一個按鈕控件,具體的實施流程如下:控件定義階段1、定義按鈕在工具箱面板的描述屬性名稱值控件名稱按鈕控件類別輸入控件控件圖標(biāo)Button.png。控件的顯示順序102、定義按鈕在屬性面板中的描述,我們假設(shè)有以下屬性:尺寸:顯示在“布局”類別下,尺寸下又包含寬度和高度;文本:顯示在“常規(guī)”類別下,用來設(shè)置按鈕上顯示的文本;下面我們開始對這些屬性進(jìn)行描述:3、定義按鈕在持久層的描述,按鈕在持久層的結(jié)構(gòu)如下:<ButtonText=”按鈕文本”><SizeWidth=“80”Height=”28”/></Button>為了描述這個結(jié)構(gòu)我們要對該結(jié)構(gòu)的所有元素和屬性進(jìn)行定義:(二)、表單設(shè)計器集成階段(1)、表單設(shè)計器通過讀取控件在工具箱面板上的描述,將控件顯示到工具箱中;(2)、當(dāng)用戶將按鈕從工具箱拖動到設(shè)計視圖面板時,設(shè)計器做以下三項工作:①、根據(jù)控件在設(shè)計視圖內(nèi)的描述,在設(shè)計視圖上上創(chuàng)建可視化控件;②、根據(jù)控件在持久層內(nèi)的描述創(chuàng)建一段XML片段放入到內(nèi)存中;③、根據(jù)控件在屬性面板內(nèi)的描述;(3)、當(dāng)用戶修改屬性欄中的屬性值時,表單設(shè)計器做以下三項工作:①、根據(jù)屬性面板內(nèi)的屬性校驗規(guī)則,對屬性值的合法性進(jìn)行校驗;②、根據(jù)屬性面板內(nèi)的屬性與設(shè)計視圖面板的映射規(guī)則,修改設(shè)計視圖面板內(nèi)可視化控件的屬性值;③、根據(jù)屬性面板內(nèi)的屬性與持久層映射規(guī)則,修改內(nèi)存中的XML節(jié)點值;(4)、當(dāng)用戶在設(shè)計視圖面板對可視化控件進(jìn)行調(diào)整時,根據(jù)屬性面板內(nèi)的屬性與設(shè)計視圖面板的映射規(guī)則,將變化同步到屬性面板內(nèi)的屬性上,此時會觸發(fā)屬性面板內(nèi)的屬性值的變化,再去執(zhí)行上述步驟(2)中的處理。通過上面具體實施方式,所述
技術(shù)領(lǐng)域:
的技術(shù)人員可容易的實現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的兩種具體實施方式。在公開的實施方式的基礎(chǔ)上,所述
技術(shù)領(lǐng)域:
的技術(shù)人員可任意組合不同的技術(shù)特征,從而實現(xiàn)不同的技術(shù)方案。除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。當(dāng)前第1頁1 2 3