最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

基于元數(shù)據(jù)驅(qū)動的動態(tài)表單方法

文檔序號:6332526閱讀:452來源:國知局

專利名稱::基于元數(shù)據(jù)驅(qū)動的動態(tài)表單方法
技術(shù)領(lǐng)域
:本發(fā)明涉及一種基于元數(shù)據(jù)驅(qū)動的動態(tài)表單的實現(xiàn)方法,屬于數(shù)據(jù)庫系統(tǒng)應(yīng)用
技術(shù)領(lǐng)域
。
背景技術(shù)
:隨著信息化建設(shè)的深入,信息化系統(tǒng)的需求越來越復(fù)雜,用戶數(shù)據(jù)的使用和展現(xiàn)方式需要能夠滿足需求的變化,需要能夠由用戶自定義。而現(xiàn)有表單技術(shù)包括以下兩種1.基于水晶報表的表單開發(fā)主要原理是由水晶報表提供的可視化工具首先進行表單結(jié)構(gòu)的定義,然后在此結(jié)構(gòu)之上用戶可以自定義該表單一些操作功能。其缺點是表單結(jié)構(gòu)固定,結(jié)構(gòu)的變化需要重新進行開發(fā);表單功能固定,功能的變化也會帶來新的開發(fā)工作;無法提供復(fù)雜功能的擴展,比如在表單中完成趨勢圖的繪制,添加多份附件等等;無法提供多樣性的數(shù)據(jù)展示功能。2.基于Excel表單開發(fā)技術(shù)主要原理是在Excel中編輯表單結(jié)構(gòu),然后通過VSTO組件在Excel中添加的附屬功能,來完成對表單的各種操作功能。其缺點是開發(fā)的組件需要嵌入到所有的Excel中,修改和部署很麻煩;用戶必須對數(shù)據(jù)庫結(jié)構(gòu)非常了解;在Excel中的數(shù)據(jù)修改需要和數(shù)據(jù)庫進行同步。
發(fā)明內(nèi)容為了解決上述問題,本發(fā)明提出了一種基于元數(shù)據(jù)驅(qū)動的動態(tài)表單方法,它可以允許用戶動態(tài)修改表單結(jié)構(gòu),而無需進行額外的表單功能修改或開發(fā)工作。本發(fā)明采用的技術(shù)方案如下一種基于元數(shù)據(jù)驅(qū)動的動態(tài)表單方法,其包括以下步驟1)對表單中的單元格進行分類,對每一種類型的單元格建立相應(yīng)的表單功能集;2)通過元數(shù)據(jù)描述規(guī)則,描述單元格結(jié)構(gòu),形成元數(shù)據(jù)庫;3)通過元數(shù)據(jù)引擎從元數(shù)據(jù)庫中獲取表單元數(shù)據(jù)信息,向表單動態(tài)地加載元數(shù)據(jù);4)選擇表單功能集,動態(tài)生成用戶表單。在所述步驟1)中,對每種類型的單元格,根據(jù)其需要實現(xiàn)的表單功能進行歸納,形成和單元格類型對應(yīng)的表單功能集。所述表單功能集和單元格類型的對應(yīng)關(guān)系是通過功能集的名稱與單元格類型進行關(guān)聯(lián)的。在所述步驟2)中,元數(shù)據(jù)描述規(guī)則包括CellName單元格名稱;Optional單元格是否為選填項,如果單元格是選填項,則在用戶提交表單時不進行非空驗證;Writable單元格是否為可錄入項,如果單元格是不可錄入項,則不允許用戶在該單元格中錄入數(shù)據(jù);BeginRow單元格的開始行;BeginColumn單元格的開始列;RowSpan單元格跨行數(shù);ColumnSpan單元格跨列數(shù);Type單元格類型;DataTypeLen單元格允許輸入字符長度;PropertyName單元格對應(yīng)元數(shù)據(jù)庫中的列名,如果該值為空,則說明該單元格非用戶錄入項。所述元數(shù)據(jù)描述規(guī)則還包括以下輔助信息Comment對單元格的描述信息;FontSize單元格字體的大??;FontColor單元格字體顏色。所述元數(shù)據(jù)庫是表單中的各單元格結(jié)構(gòu)的元數(shù)據(jù)信息的集合。所述步驟3)進一步細分為以下子步驟3.1)元數(shù)據(jù)引擎根據(jù)元數(shù)據(jù)庫中對表單數(shù)據(jù)種類的描述信息,獲取該數(shù)據(jù)種類下的所有可錄入的單元格的元數(shù)據(jù)描述;3.2)元數(shù)據(jù)引擎根據(jù)元數(shù)據(jù)庫中對表單結(jié)構(gòu)的描述,獲取所有可錄入項屬性;3.3)對獲取的可錄入項屬性和單元格進行匹配,并將匹配成功的單元格數(shù)據(jù)設(shè)置到可錄入項屬性中;3.4)根據(jù)屬性數(shù)據(jù)集,組織成有效的數(shù)據(jù)庫sql語句,將用戶在動態(tài)表單中填寫的數(shù)據(jù)寫入到數(shù)據(jù)庫中。所述步驟4)進一步細分為以下子步驟4.1)通過數(shù)據(jù)種類編號構(gòu)造系統(tǒng)數(shù)據(jù)庫表,再利用數(shù)據(jù)編號查詢該表對應(yīng)的用戶數(shù)據(jù);4.2)元數(shù)據(jù)引擎根據(jù)元數(shù)據(jù)庫中對模板數(shù)據(jù)種類的描述信息,獲取該數(shù)據(jù)種類下的所有錄入項的屬性,錄入項屬性對應(yīng)了動態(tài)表單界面中每一個供用戶錄入數(shù)據(jù)信息的單元格;4.3)將獲得的數(shù)據(jù)設(shè)置到錄入項屬性中,設(shè)置規(guī)則是通過數(shù)據(jù)的列編號和錄入屬性的編號進行匹配,如果數(shù)據(jù)的列編號和錄入屬性列編號一致時,則將數(shù)據(jù)設(shè)置到錄入項屬性的數(shù)據(jù)項中;4.4)通過數(shù)據(jù)編號獲取該數(shù)據(jù)所使用的表單;4.5)根據(jù)表單信息獲取整個表單結(jié)構(gòu)信息,主要是表單中各單元格的信息,包括單元格的類型,單元格的位置等等;4.6)將錄入屬性和單元格進行匹配,主要是通過錄入屬性的名稱和單元格的名稱進行匹配,將錄入屬性的數(shù)據(jù)項設(shè)置為對應(yīng)單元格的數(shù)據(jù),并將單元格添加到動態(tài)表單中;4.7)對于表單中的單元格,通過界面解析程序獲得該單元格的位置信息,將其繪制到界面的特定位置;根據(jù)單元格的大小信息,在界面中繪制出單元格的范圍;根據(jù)單元格的類型,選擇具體的控件展示在上述位置和范圍中;根據(jù)單元格數(shù)據(jù),往控件中填充數(shù)據(jù)。本發(fā)明利用了元數(shù)據(jù)驅(qū)動的動態(tài)表單技術(shù),將表單中的功能操作和結(jié)構(gòu)描述進行分離,通過元數(shù)據(jù)的描述來驅(qū)動表單結(jié)構(gòu)的生成和表單功能的使用。該方法能有效地提高表單系統(tǒng)的可擴展性。圖1為本發(fā)明方法的基本原理圖;圖2是根據(jù)本發(fā)明向動態(tài)表單寫入數(shù)據(jù)的示例過程的邏輯流程圖;圖3是根據(jù)本發(fā)明使用動態(tài)表單展示用戶數(shù)據(jù)的示例過程的邏輯流程圖;圖4是IDS系統(tǒng)構(gòu)成圖;圖5是業(yè)務(wù)模型、用戶界面、數(shù)據(jù)庫之間的關(guān)系圖。具體實施例方式本發(fā)明為一種下面結(jié)合附圖詳細說明。本發(fā)明提供了一種基于元數(shù)據(jù)驅(qū)動的動態(tài)表單方法。請參閱圖1,本發(fā)明方法的基本原理是將用戶表單中相對固定的功能操作,比如表單提交、表單查詢等,采用程序的行為控制流來封裝;而表單結(jié)構(gòu)、表單中各數(shù)據(jù)錄入方式等和不同的功能操作存在不同關(guān)聯(lián)關(guān)系的,則采用元數(shù)據(jù)進行描述。這樣向用戶提供的表單服務(wù)的功能邏輯就可以被元數(shù)據(jù)來表達和控制。這就將表單功能模塊中相對穩(wěn)定的部分和可變部分進行了明確分開,對表單結(jié)構(gòu)等可變部分采用元數(shù)據(jù)來描述,提高了表單結(jié)構(gòu)的可操縱性。該方法包括以下步驟1.對表單中的單元格進行分類,對每一種類型的單元格建立相應(yīng)的表單功能集。表單是單元格的集合,對表單內(nèi)部操作的功能集就是對一系列單元格操作的功能的集合。將表單中的單元格進行分類,其類型包括標題單元格和數(shù)據(jù)錄入單元格。標題單元格僅用于展示或指示作用,在用戶使用表單時不需要對其進行任何操作。數(shù)據(jù)錄入單元格的種類包括文本輸入框類型、下拉列表類型、圖像類型等等,其類型還可以根據(jù)用戶要求進行擴展。根據(jù)每種類型的單元格,對其需要實現(xiàn)的表單功能進行歸納,形成和單元格類型對應(yīng)的表單功能集。該對應(yīng)關(guān)系主要是通過功能集的名稱與單元格類型進行關(guān)聯(lián)的。比如文本類型(Text)的單元格,對應(yīng)的功能集為(TextCellFimction),該功能集實現(xiàn)了對文本單元格的數(shù)據(jù)保存、展現(xiàn)以及驗證等處理方法。對每一種類型的單元格建立相應(yīng)的功能集,該功能集一般包括數(shù)據(jù)添加、數(shù)據(jù)讀取、數(shù)據(jù)格式驗證等功能。對于每一種單元格類型,將用戶對該類單元格的功能集通過應(yīng)用程序來實現(xiàn)。62.通過元數(shù)據(jù)描述規(guī)則,描述單元格結(jié)構(gòu),形成元數(shù)據(jù)庫。表單中的單元格結(jié)構(gòu)是單元格的平面擺放結(jié)構(gòu),以及單元格本身形狀大小等信息的集合。通過系統(tǒng)定義的元數(shù)據(jù)描述規(guī)則,對表單中的每一個單元格的結(jié)構(gòu)進行描述,形成表單結(jié)構(gòu)的元數(shù)據(jù)信息。定義單元格元數(shù)據(jù)描述的主要規(guī)則如下·CellName單元格名稱·Optional單元格是否為選填項,如果單元格是選填項,則在用戶提交表單時不進行非空驗證·Writable單元格是否為可錄入項,如果單元格是不可錄入項,則不允許用戶在該單元格中錄入數(shù)據(jù)·BeginRow單元格的開始行參BeginColumn單元格的開始列·RowSpan單元格跨行數(shù)·ColumnSpan單元格跨列數(shù)·Type單元格類型·DataTypeLen單元格允許輸入字符長度·PropertyName單元格對應(yīng)元數(shù)據(jù)庫中的列名,如果該值為空,則說明該單元格非用戶錄入項另外,規(guī)則中還包括對單元格的描述信息(Comment),單元格字體的大小(FontSize),單元格字體顏色(FontColor)等等輔助信息。例如,某單元格的結(jié)構(gòu)描述如下所示<CellName=〃參數(shù)關(guān)系示意圖〃Optional=“True“Writable="True“BeginRow=“19"BeginColumn="1"RowSpan=“27"ColurComment="“FontSize="9"FontColor=“Black"FontAlignment="MiddleLeft“Type=“Picture“DataTypeLen=“255“PropertyInTemplate=“True“Data=〃“Format=““Cellorder=“1〃State="0〃StateComment=““/>通過單元格元數(shù)據(jù)描述規(guī)則,可知該元數(shù)據(jù)信息描述了表單中一個叫“參數(shù)關(guān)系示意圖”(CellName=“參數(shù)關(guān)系示意圖”)的單元格,它是可選填項(Optioanl=“True”),可錄入的(Writable=“True”);單元格從第19行(BeginRow=“19”),第1列(BeginColumn=“1”)開始;該單元格的種類是圖片類型(Type=“Picture,,)。上述描述信息就描述了表單中一個完整單元格的各項結(jié)構(gòu)信息。若干單元格的描述信息就組合成了對完整表單結(jié)構(gòu)的描述。上述元數(shù)據(jù)信息的集合就是元數(shù)據(jù)庫,在實際的應(yīng)用中元數(shù)據(jù)庫可以采用多種存儲方式。比如存儲在XML文件中、存儲在數(shù)據(jù)庫中或者以上兩者相結(jié)合的方式。3.通過元數(shù)據(jù)引擎從元數(shù)據(jù)庫中獲取表單元數(shù)據(jù)信息,向表單動態(tài)地加載元數(shù)據(jù)。系統(tǒng)建立表單元數(shù)據(jù)引擎,表單元數(shù)據(jù)引擎是用來處理元數(shù)據(jù)的系統(tǒng)程序,它包括表單元數(shù)據(jù)獲取程序和表單元數(shù)據(jù)解析程序。其中表單元數(shù)據(jù)獲取程序是數(shù)據(jù)庫訪問程序,通過訪問元數(shù)據(jù)庫中的元數(shù)據(jù)存儲表,讀取元數(shù)據(jù)信息;表單元數(shù)據(jù)解析程序是將獲取到的元數(shù)據(jù)信息,解析成界面描述。界面描述和單元格的元數(shù)據(jù)描述基本相似,不同之處在于指定了單元格在界面展示時使用的控件,以及控件中的數(shù)據(jù)。元數(shù)據(jù)引擎從元數(shù)據(jù)庫中獲取對應(yīng)表單中各個單元格的元數(shù)據(jù)信息,在用戶界面中根據(jù)每一個單元格的位置和大小進行繪制。圖2是根據(jù)本發(fā)明向動態(tài)表單寫入數(shù)據(jù)的示例過程的邏輯流程圖。在塊502,元數(shù)據(jù)引擎根據(jù)元數(shù)據(jù)庫中對表單數(shù)據(jù)種類(表單數(shù)據(jù)種類是對用戶需要通過動態(tài)表單錄入的數(shù)據(jù)的分類,得到的種類和用戶的具體業(yè)務(wù)相關(guān))的描述信息,獲取該數(shù)據(jù)種類下的所有可錄入的單元格的元數(shù)據(jù)描述(簡稱為可錄入項屬性)。它對應(yīng)了動態(tài)表單界面中每一個供用戶錄入數(shù)據(jù)信息的單元格。當所有的可錄入項屬性獲取完畢,處理過程轉(zhuǎn)入到塊503。在塊503,元數(shù)據(jù)引擎根據(jù)元數(shù)據(jù)庫中對表單結(jié)構(gòu)的描述,獲取所有可錄入項屬性。包括標題單元格和數(shù)據(jù)錄入單元格。獲取完畢后,處理過程轉(zhuǎn)入到塊504。在塊504,將在塊502獲取的可錄入項屬性和在塊503獲取的單元格進行匹配,并將匹配上的單元格數(shù)據(jù)設(shè)置到可錄入項屬性中。匹配是按照單元格中的名稱和可錄入項屬性名稱進行的,名稱一致時則認為該單元格和該可錄入項屬性是一對。一旦匹配完成,處理過程就轉(zhuǎn)入判定塊505。在判定塊505處,需要做出判定所有單元格均被處理了嗎?動態(tài)表單中所有的單元格都需要進行匹配。如果還有單元格沒有進行匹配,過程返回塊504處繼續(xù)匹配。如果所有的單元格都已經(jīng)處理完成,所有設(shè)置了單元格數(shù)據(jù)的可錄入項屬性就形成了屬性數(shù)據(jù)集,處理過程將進入到塊506。在塊506中,根據(jù)屬性數(shù)據(jù)集,組織成有效的數(shù)據(jù)庫sql語句,將用戶在動態(tài)表單中填寫的數(shù)據(jù)寫入到數(shù)據(jù)庫中。寫入完成后,過程轉(zhuǎn)入塊507,至此整個處理過程結(jié)束。4.選擇表單功能集,動態(tài)生成用戶表單。元數(shù)據(jù)引擎對于每一個單元格通過單元格元數(shù)據(jù)信息中關(guān)于單元格類型的描述,選擇單元格具體的顯示控件;并按照對應(yīng)關(guān)系獲取相應(yīng)的功能集,將此表單功能集設(shè)置到該控件的相關(guān)事件中,當用戶對單元格進行操作時,響應(yīng)的事件就會調(diào)用系統(tǒng)對不同單元格類型實現(xiàn)的功能方法,從而動態(tài)地生成用戶表單。圖3是根據(jù)本發(fā)明使用動態(tài)表單展示用戶數(shù)據(jù)的示例過程的邏輯流程圖。在塊602處,通過數(shù)據(jù)種類編號構(gòu)造系統(tǒng)數(shù)據(jù)庫表,再利用數(shù)據(jù)編號查詢該表對應(yīng)的用戶數(shù)據(jù)。返回用戶數(shù)據(jù)后,處理過程就轉(zhuǎn)入到塊603。在塊603,元數(shù)據(jù)引擎根據(jù)元數(shù)據(jù)庫中對模板數(shù)據(jù)種類的描述信息,獲取該數(shù)據(jù)種類下的所有錄入項的屬性。錄入項屬性對應(yīng)了動態(tài)表單界面中每一個供用戶錄入數(shù)據(jù)信息的單元格。當所有的錄入項屬性獲取完畢,處理過程就轉(zhuǎn)入到塊604。在塊604,將在塊602中獲得的數(shù)據(jù)設(shè)置到塊603中獲得的錄入項屬性中,設(shè)置規(guī)則是通過數(shù)據(jù)的列編號和錄入屬性的編號進行匹配,如果數(shù)據(jù)的列編號和錄入屬性列編號一致時,則將數(shù)據(jù)設(shè)置到錄入項屬性的數(shù)據(jù)項中。設(shè)置完成后,處理過程就轉(zhuǎn)入到塊605。在塊605,通過數(shù)據(jù)編號獲取該數(shù)據(jù)所使用的表單。獲取展示數(shù)據(jù)的表單信息后,處理過程就轉(zhuǎn)入到塊606。在塊606,根據(jù)表單信息獲取整個表單結(jié)構(gòu)信息,主要是表單中各單元格的信息,包括單元格的類型,單元格的位置等等。獲取完成后,處理過程就轉(zhuǎn)入到塊607。8在塊607,將錄入屬性和單元格進行匹配,主要是通過錄入屬性的名稱和單元格的名稱進行匹配的,將錄入屬性的數(shù)據(jù)項設(shè)置為對應(yīng)單元格的數(shù)據(jù)。并將單元格添加到動態(tài)表單中。處理完成后,處理過程就轉(zhuǎn)入到判斷塊608。在判斷塊608中,需要做出判定所有單元格都處理了嗎?動態(tài)表單中所有錄入單元格都需要進行數(shù)據(jù)設(shè)置。如果還有單元格沒有設(shè)置數(shù)據(jù),則處理過程跳回到塊607繼續(xù)處理。如果所有單元格都設(shè)置數(shù)據(jù)完成,則處理過程就轉(zhuǎn)入到塊609。在塊609,將各單元格組織成動態(tài)表單對象,界面解析程序?qū)⒃搶ο笊蓪?yīng)的用戶界面。界面展示結(jié)束后,處理過程就轉(zhuǎn)入到塊610,處理過程結(jié)束。通過元數(shù)據(jù)驅(qū)動的動態(tài)表單技術(shù)有非常良好的可擴展性,只要能夠通過應(yīng)用程序?qū)崿F(xiàn)的表單功能,都可以在修改相應(yīng)的元數(shù)據(jù)描述信息后,擴充到表單系統(tǒng)當中。當系統(tǒng)處理新增加的表單結(jié)構(gòu)時,會通過元數(shù)據(jù)引擎選擇合適的表單功能進行處理。本發(fā)明已經(jīng)在一個IDS(InterfaceDataSheet)系統(tǒng)中得到完全實施。該系統(tǒng)采用B/S、C/S混合架構(gòu),使用IIS作為應(yīng)用服務(wù)器,Oscar數(shù)據(jù)庫作為數(shù)據(jù)庫服務(wù)器。我們成功的實現(xiàn)了用戶各個業(yè)務(wù)模型,并利用這些業(yè)務(wù)模板完成了IDS系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)和用戶操作界面。整個系統(tǒng)結(jié)構(gòu)圖如圖4所示。從圖4中可以看出根據(jù)用戶自定義的業(yè)務(wù)模型,系統(tǒng)根據(jù)業(yè)務(wù)模型中的樣式信息生成用戶界面文件存儲在應(yīng)用服務(wù)器上;系統(tǒng)根據(jù)業(yè)務(wù)模型中的結(jié)構(gòu)信息在數(shù)據(jù)庫服務(wù)器生成存儲結(jié)構(gòu)。圖5反映了業(yè)務(wù)模型、用戶界面、數(shù)據(jù)庫之間的關(guān)系。首先,用戶自定義業(yè)務(wù)模型,模型中包含樣式描述信息(單元格描述、數(shù)據(jù)驗證規(guī)則描述)、結(jié)構(gòu)描述信息(元數(shù)據(jù)描述、數(shù)據(jù)結(jié)構(gòu)描述)。利用業(yè)務(wù)模型中的元數(shù)據(jù)描述信息作為單元格描述信息的一部分,為用戶操作界面與數(shù)據(jù)庫建立了聯(lián)系,而業(yè)務(wù)模型就是橋梁。其次,用戶在瀏覽業(yè)務(wù)模型時,系統(tǒng)根據(jù)業(yè)務(wù)模型中樣式描述信息生成用戶界面,提供給用戶進行數(shù)據(jù)操作并保存為一個數(shù)據(jù)文件。最后把數(shù)據(jù)文件傳回到應(yīng)用服務(wù)器,根據(jù)業(yè)務(wù)模型并經(jīng)過引擎解析后,把數(shù)據(jù)信息保存到相應(yīng)的數(shù)據(jù)庫中。系統(tǒng)可以根據(jù)業(yè)務(wù)模型中的結(jié)構(gòu)描述信息對已經(jīng)填入的數(shù)據(jù)進行綜合查詢。通過本發(fā)明的應(yīng)用,該系統(tǒng)成功實現(xiàn)了數(shù)據(jù)采集界面和存儲結(jié)構(gòu)的自動生成,自動適應(yīng)了各種不同的業(yè)務(wù),具備了良好的擴展性。與此同時,自定義業(yè)務(wù)模型對于人員沒有額外的技術(shù)要求,便于系統(tǒng)的實施和推廣。權(quán)利要求一種基于元數(shù)據(jù)驅(qū)動的動態(tài)表單方法,其特征在于包括以下步驟1)對表單中的單元格進行分類,對每一種類型的單元格建立相應(yīng)的表單功能集;2)通過元數(shù)據(jù)描述規(guī)則,描述單元格結(jié)構(gòu),形成元數(shù)據(jù)庫;3)通過元數(shù)據(jù)引擎從元數(shù)據(jù)庫中獲取表單元數(shù)據(jù)信息,向表單動態(tài)地加載元數(shù)據(jù);4)選擇表單功能集,動態(tài)生成用戶表單。2.如權(quán)利要求1所述的基于元數(shù)據(jù)驅(qū)動的動態(tài)表單方法,其特征在于在所述步驟1)中,對每種類型的單元格,根據(jù)其需要實現(xiàn)的表單功能進行歸納,形成和單元格類型對應(yīng)的表單功能集。3.如權(quán)利要求2所述的基于元數(shù)據(jù)驅(qū)動的動態(tài)表單方法,其特征在于所述表單功能集和單元格類型的對應(yīng)關(guān)系是通過功能集的名稱與單元格類型進行關(guān)聯(lián)的。4.如權(quán)利要求1所述的基于元數(shù)據(jù)驅(qū)動的動態(tài)表單方法,其特征在于在所述步驟2)中,元數(shù)據(jù)描述規(guī)則包括CellName單元格名稱;Optional單元格是否為選填項,如果單元格是選填項,則在用戶提交表單時不進行非空驗證;Writable單元格是否為可錄入項,如果單元格是不可錄入項,則不允許用戶在該單元格中錄入數(shù)據(jù);BeginRow單元格的開始行;BeginColumn單元格的開始列;RowSpan單元格跨行數(shù);ColumnSpan單元格跨列數(shù);Type單元格類型;DataTypeLen單元格允許輸入字符長度;PropertyName:單元格對應(yīng)元數(shù)據(jù)庫中的列名,如果該值為空,則說明該單元格非用戶錄入項。5.如權(quán)利要求4所述的基于元數(shù)據(jù)驅(qū)動的動態(tài)表單方法,其特征在于所述元數(shù)據(jù)描述規(guī)則還包括以下輔助信息Comment對單元格的描述信息;FontSize單元格字體的大?。籉ontColor單元格字體顏色。6.如權(quán)利要求1所述的基于元數(shù)據(jù)驅(qū)動的動態(tài)表單方法,其特征在于所述元數(shù)據(jù)庫是表單中的各單元格結(jié)構(gòu)的元數(shù)據(jù)信息的集合。7.如權(quán)利要求1所述的基于元數(shù)據(jù)驅(qū)動的動態(tài)表單方法,其特征在于所述步驟3)進一步細分為以下子步驟[3.1)元數(shù)據(jù)引擎根據(jù)元數(shù)據(jù)庫中對表單數(shù)據(jù)種類的描述信息,獲取該數(shù)據(jù)種類下的所有可錄入的單元格的元數(shù)據(jù)描述;[3.2)元數(shù)據(jù)引擎根據(jù)元數(shù)據(jù)庫中對表單結(jié)構(gòu)的描述,獲取所有可錄入項屬性;[3.3)對獲取的可錄入項屬性和單元格進行匹配,并將匹配成功的單元格數(shù)據(jù)設(shè)置到可錄入項屬性中;.3.4)根據(jù)屬性數(shù)據(jù)集,組織成有效的數(shù)據(jù)庫sql語句,將用戶在動態(tài)表單中填寫的數(shù)據(jù)寫入到數(shù)據(jù)庫中。8.如權(quán)利要求1所述的基于元數(shù)據(jù)驅(qū)動的動態(tài)表單方法,其特征在于所述步驟4)進一步細分為以下子步驟.4.1)通過數(shù)據(jù)種類編號構(gòu)造系統(tǒng)數(shù)據(jù)庫表,再利用數(shù)據(jù)編號查詢該表對應(yīng)的用戶數(shù)據(jù);.4.2)元數(shù)據(jù)引擎根據(jù)元數(shù)據(jù)庫中對模板數(shù)據(jù)種類的描述信息,獲取該數(shù)據(jù)種類下的所有錄入項的屬性,錄入項屬性對應(yīng)了動態(tài)表單界面中每一個供用戶錄入數(shù)據(jù)信息的單元格;.4.3)將獲得的數(shù)據(jù)設(shè)置到錄入項屬性中,設(shè)置規(guī)則是通過數(shù)據(jù)的列編號和錄入屬性的編號進行匹配,如果數(shù)據(jù)的列編號和錄入屬性列編號一致時,則將數(shù)據(jù)設(shè)置到錄入項屬性的數(shù)據(jù)項中;.4.4)通過數(shù)據(jù)編號獲取該數(shù)據(jù)所使用的表單;.4.5)根據(jù)表單信息獲取整個表單結(jié)構(gòu)信息,主要是表單中各單元格的信息,包括單元格的類型,單元格的位置等等;.4.6)將錄入屬性和單元格進行匹配,主要是通過錄入屬性的名稱和單元格的名稱進行匹配,將錄入屬性的數(shù)據(jù)項設(shè)置為對應(yīng)單元格的數(shù)據(jù),并將單元格添加到動態(tài)表單中;.4.7)對于表單中的單元格,通過界面解析程序獲得該單元格的位置信息,將其繪制到界面的特定位置;根據(jù)單元格的大小信息,在界面中繪制出單元格的范圍;根據(jù)單元格的類型,選擇具體的控件展示在上述位置和范圍中;根據(jù)單元格數(shù)據(jù),往控件中填充數(shù)據(jù)。全文摘要本發(fā)明涉及基于元數(shù)據(jù)驅(qū)動的動態(tài)表單方法,包括以下步驟1)對表單中的單元格進行分類,對每一種類型的單元格建立相應(yīng)的表單功能集;2)通過元數(shù)據(jù)描述規(guī)則,描述單元格結(jié)構(gòu),形成元數(shù)據(jù)庫;3)通過元數(shù)據(jù)引擎從元數(shù)據(jù)庫中獲取表單元數(shù)據(jù)信息,向表單動態(tài)地加載元數(shù)據(jù);4)選擇表單功能集,動態(tài)生成用戶表單。本發(fā)明將用戶表單中相對固定的功能操作采用程序的行為控制流來封裝;而表單結(jié)構(gòu)、表單中各數(shù)據(jù)錄入方式等和不同的功能操作存在不同關(guān)聯(lián)關(guān)系的則采用元數(shù)據(jù)進行描述。這就將表單功能模塊中相對穩(wěn)定的部分和可變部分進行了明確分開,對表單結(jié)構(gòu)等可變部分采用元數(shù)據(jù)來描述,提高了表單結(jié)構(gòu)的可操縱性。文檔編號G06F17/30GK101968800SQ20101028960公開日2011年2月9日申請日期2010年9月21日優(yōu)先權(quán)日2010年9月21日發(fā)明者劉祺,劉霞,劉鵬,周永輝,李海峰,王嘉春,王德鑫,白仲陶,秦巍,蔣志勇,謝政,趙伶豐,趙飛申請人:北京空間飛行器總體設(shè)計部;天津神舟通用數(shù)據(jù)技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1