專利名稱::基于vo的表單定制配置與解析運(yùn)行方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及電子表單領(lǐng)域,具體涉及vo實體類生成、設(shè)計時表單定制與配置、運(yùn)行時表單解析與運(yùn)行等內(nèi)容。
背景技術(shù):
:目前,在電子政務(wù)、電子商務(wù)等軟件中涉及到大量的業(yè)務(wù)表單,傳統(tǒng)軟件中的業(yè)務(wù)表單一般通過硬編碼方式實現(xiàn),與業(yè)務(wù)表單相關(guān)的界面設(shè)計及數(shù)據(jù)庫讀寫的開發(fā)工作繁瑣、耗時,且硬編碼方式實現(xiàn)的表單難以滿足頻繁變更的用戶需求及業(yè)務(wù)需要,當(dāng)業(yè)務(wù)發(fā)生變更時,必須由程序員對代碼進(jìn)行修改和調(diào)整,效率低下且受到較多的限制。為了解決上述問題,需將與業(yè)務(wù)表單相關(guān)的功能抽取出來,并提供定制配置與解析運(yùn)行方式,使得不但是開發(fā)人員,用戶也可以對表單進(jìn)行直接的靈活控制。表單定制與配置及解析運(yùn)行方法不但有助于實現(xiàn)業(yè)務(wù)表單功能的敏捷開發(fā),也有助于滿足表單靈活調(diào)整的需要。題為"基于web的數(shù)據(jù)表單"(申請?zhí)?00510099656.4,公開號CN1755624A)、"流程表單處理系統(tǒng)及方法"(申請?zhí)?00610200869.6,公開號CN101145217A)、"從數(shù)據(jù)庫模式中自動生成WEB表單"(申請?zhí)?00780020776,公開號CN101460950A)及"一種通用業(yè)務(wù)數(shù)據(jù)采集表單的定義與生成方法"(申請?zhí)?00810238002.9,公開號CN101419552A)均是針對Web表單的發(fā)明專利,難以適用于Winform表單,題為"表單自定義方法"(申請?zhí)?00810014332.X,公開號CN101241434A)是針對Winform表單的發(fā)明專利,但幾乎未涉及如何對表單進(jìn)行定制配置,以及如何解析運(yùn)行表單。
發(fā)明內(nèi)容本發(fā)明的目的在于本發(fā)明旨在解決桌面軟件開發(fā)中Winform業(yè)務(wù)表單相關(guān)頁面設(shè)計及數(shù)據(jù)庫訪問功能重復(fù)開發(fā)的問題,提出一種表單定制配置及解析運(yùn)行方法,提供可視化設(shè)計及應(yīng)用程序接口調(diào)用兩種方式進(jìn)行表單定制與配置及表單解析與運(yùn)行。用戶無需編寫代碼或編寫很少的代碼,即可完成復(fù)雜頁面設(shè)計及數(shù)據(jù)庫配置操作,表單控件及函數(shù)的復(fù)用有利于提高開發(fā)效率,減少軟件開發(fā)過程中錯誤的產(chǎn)生。本發(fā)明的總體思路是將軟件項目中的數(shù)據(jù)庫數(shù)據(jù)增刪改、數(shù)據(jù)校驗、打印等常見功能點在表單中實現(xiàn),對于這些功能的使用直接通過設(shè)置界面進(jìn)行簡單設(shè)置或調(diào)用表單提供的應(yīng)用程序接口即可完成表單頁面設(shè)計、數(shù)據(jù)庫表字段配置、權(quán)限控制等功能,對于一些個性化功能,可以編寫代碼進(jìn)行擴(kuò)展,以達(dá)到既能提高開發(fā)效率又能實現(xiàn)復(fù)雜功能的雙重目的。本發(fā)明的技術(shù)方案是基于V0的表單定制配置及解析運(yùn)行方法,該方法包括以下三個部分步驟1實現(xiàn)數(shù)據(jù)庫表值對象(ValueObject,V0)實體類的自動生成;步驟2實現(xiàn)基于V0的設(shè)計時表單定制與配置;步驟3實現(xiàn)基于V0的運(yùn)行時表單解析與運(yùn)行(顯示)。所述步驟1是指讀取數(shù)據(jù)庫字典表,包括用戶表、字段表和字段注釋表中的信息并自動生成與業(yè)務(wù)數(shù)據(jù)表對應(yīng)的V0實體類,作為后續(xù)步驟實施的基礎(chǔ);所述步驟2基于VO的設(shè)計時表單定制與配置,是基于步驟1中的VO實體類,在表單設(shè)計時,通過表單編輯器定制頁面,關(guān)聯(lián)表單單元格與VO實體類中的字段,以XML文件或數(shù)據(jù)庫方式存儲表單定制信息,通過接口參數(shù)設(shè)置對表單單元格的讀寫與打印權(quán)限進(jìn)行配置,并保存配置信息;所述步驟3基于VO的運(yùn)行時表單解析與運(yùn)行,是基于步驟1中的VO實體類與步驟2中的表單設(shè)計時所定義的表單定制與配置信息,在表單運(yùn)行時,首先,通過表單解析引擎讀取并解析表單定制及配置信息,其次,動態(tài)生成并顯示帶有權(quán)限控制的表單對象。表單單元格的值所做的修改將反應(yīng)到VO對象中,并通過VO對象傳遞到數(shù)據(jù)源中,從而實現(xiàn)表單數(shù)據(jù)的增刪改。所述基于VO的設(shè)計時表單定制與配置過程流程如下1)新建表單,根據(jù)業(yè)務(wù)需求將其與業(yè)務(wù)數(shù)據(jù)主表及子表VO實體類相關(guān)聯(lián),并保存關(guān)聯(lián)關(guān)系至數(shù)據(jù)庫中的表單實體類關(guān)聯(lián)信息表(GRID_VO_INFO)中,需保存的信息包括GRIDID(表單ID)、VOPATH(VO程序集路徑,相對路徑形式)、MAINTABLEVOLIST(主表VO實體類名稱列表)及SUBTABLEVOLIST(子表VO實體類名稱列表);2)表單定制過程如下a)利用表單編輯器初始化基本表單定義,如行數(shù)、列數(shù)、行寬、列寬、單元格合并拆分、單元格樣式(字體、字號、是否斜體、是否加粗、是否有下劃線、字體顏色、背景色、文本對齊方式、邊框線型及線寬);b)將主表及子表VO實體類中的字段與單元格進(jìn)行綁定,并設(shè)置單元格類型(文本框、下拉框、復(fù)選框、圖片框);c)為有約束需求的單元格進(jìn)行約束設(shè)置(如最大值、最小值、最大長度和最小長度),可通過自定義正則表達(dá)式定義更多約束。3)表單定制信息的保存過程如下a)新建用以保存表單定制信息的數(shù)據(jù)集,讀取表單的XML架構(gòu)文件至該數(shù)據(jù)集中,在該架構(gòu)文件中,定義了Grid與Cell兩個元素,其中,Grid由多個Cell所組成;b)獲取當(dāng)前表單中單元格的行數(shù)和列數(shù)并賦值予Grid的rowcount與columnco皿t字段;c)按照從左至右、從上至下的順序遍歷表單中的單元格Grid[i,j],讀取單元格Grid[i,j]的當(dāng)前值、行跨度、列跨度、字體、字號、是否斜體、是否加粗、是否有下劃線、字體顏色、背景色、文本對齊方式、邊框線型及線寬、單元格類型、校驗?zāi)J?、校驗類型、計算表達(dá)式信息,并賦值予Cell的name、caption、row皿m、colum皿um、datatype、datavalue、width、height、flag、rowspan、columnspan、fontName、fontSize、fontltalic、fontBold、fontUnderline、forecolor、backColor、textAlig腹ent、leftlinecolor、leftlineDashStyle、1ef11ineWidth、right1inecolor、rightlineDashStyle、rightlineWidth、toplinecolor、toplineDashStyle、toplineWidth、bottomlinecolor、bottomlineDashStyle、bottomlineWidth、cellType、comboboxlnfo、dataValueType、6validationPattern、validationType、printable、comboboxEditable、cellMask、expression字段;d)至步驟c,表單的定制信息已完全讀取到數(shù)據(jù)集中,可將數(shù)據(jù)集中的當(dāng)前數(shù)據(jù)寫入數(shù)據(jù)庫中的表單模板表(GRID_TEMPLATE)中,主要記錄項包括GRIDID、GRIDCONTENT(表單內(nèi)容,以大二進(jìn)制形式存儲),也可寫入指定的XML文件;4)表單配置與保存過程如下1)將表單與任務(wù)(如工作流流程節(jié)點)關(guān)聯(lián);2)按照從左至右、從上至下的順序依次遍歷表單中的單元格Grid[i,j],過濾出配置了VO字段信息的單元格并存放到帶VO字段信息的單元格列表中;3)對于上述單元格列表中每個單元格,設(shè)置當(dāng)前任務(wù)中其是否可讀、可寫及可打印。4)記錄表單與任務(wù)關(guān)聯(lián)信息到表單任務(wù)關(guān)聯(lián)表(GRID_TASK)中,記錄項包括GRIDID和TASKID。記錄權(quán)限配置信息至數(shù)據(jù)庫中的權(quán)限配置表(GRID_C0NFIG)中,記錄項包括GRIDID、TASKID(任務(wù)ID)、IsReadable、IsEditable及IsPrintable。所述表單的解析與運(yùn)行算法流程如下1)根據(jù)表單ID在數(shù)據(jù)庫GRID_V0_INF0表中查詢?yōu)楫?dāng)前表單所配置的VOPATH、MAINTABLEVOLIST及SUBTABLEVOLIST;2)根據(jù)表單實例ID、MAINTABLEVOLIST及SUBTABLEVOLIST,利用接口objectLoadMainTableData(objectkeyValue,stringmainTableVO,stringmainTableDLLPath)禾口ArrayListLoadSubTableData(objectforeignKeyValue,stringsubTableVO,stringsubTableDLLPath)查詢主表及子表數(shù)據(jù),如查詢結(jié)果非空,加載到主表V0對象列表和子表V0對象列表中;3)根據(jù)表單ID在數(shù)據(jù)庫GRID_TEMPLATE表中查詢表單定制信息,初始化表單。讀取GRID中的行列數(shù),初始化空白表單,依次讀取每個單元格Cell的定制信息并實例化,如果當(dāng)前單元格為未配置V0字段信息的單元格,且非計算字段,則只需按照該單元格的配置信息初始化單元格,如果當(dāng)前單元格為配置VO字段信息的單元格,除按照該單元格的配置信息初始化單元格外,還需將所配置的VO字段信息存儲到單元格標(biāo)簽中,如單元格設(shè)置了校驗規(guī)則,則為該單元格添加校驗事件,如單元格為計算字段,則按照計算表達(dá)式計算出當(dāng)前值并賦予單元格;4)根據(jù)單元格標(biāo)簽中的VO字段信息與主表VO對象字段的匹配關(guān)系,將主表VO對象列表中的每一個主表對象的相關(guān)字段的值賦予與之對應(yīng)的表單單元格。對于子表VO對象列表中的第一個VO對象,根據(jù)單元格標(biāo)簽中的VO字段信息與子表VO對象字段的匹配關(guān)系,將該子表VO對象的相關(guān)字段的值賦予與之對應(yīng)的表單單元格,對于子表VO對象列表中的其他VO對象,依次在上一個VO對象所在行后面增加新行,并以上一行為模板設(shè)置新增行樣式及相關(guān)信息,根據(jù)單元格標(biāo)簽中的vo字段信息與子表VO對象字段的匹配關(guān)系,將該子表VO對象的相關(guān)字段的值賦予與之對應(yīng)的表單單元格;5)根據(jù)GRIDID從數(shù)據(jù)庫GRID_CONFIG表中獲取單元格的讀寫及打印權(quán)限配置信息,利用應(yīng)用程序接口對相關(guān)單元格的權(quán)限信息進(jìn)行設(shè)置,可通過設(shè)置單元格顏色方式以突出需要處理的業(yè)務(wù)內(nèi)容。所述表單數(shù)據(jù)增刪改算法流程如下1)遍歷配置主表V0字段信息的表單單元格,并將單元格值賦予相對應(yīng)的主表VO對象,得到更新后的主表VO對象列表;2)遍歷配置子表VO字段信息帶有子表行標(biāo)識的表單單元格,遍歷子表行各個單元格并將值保存到子表VO對象列表;3)利用數(shù)據(jù)訪問層接口SaveTableData(objectpMainTableObj)將主表VO對象更新到數(shù)據(jù)庫中;4)獲取原有子表VO對象列表并利用數(shù)據(jù)訪問層接口DeleTableData(ArrayListpSubTableDeleObjList)在數(shù)據(jù)庫中進(jìn)行刪除后,利用接口SaveTableData(ArrayListpSubTableObjList)將現(xiàn)有子表VO對象列表保存到數(shù)據(jù)庫中。本發(fā)明方法,提供可視化設(shè)計及應(yīng)用程序接口調(diào)用兩種方式進(jìn)行表單定制與配置及表單解析與運(yùn)行。用戶無需編寫代碼或編寫很少的代碼,即可完成復(fù)雜頁面設(shè)計及數(shù)據(jù)庫配置操作,表單控件及函數(shù)的復(fù)用有利于提高開發(fā)效率,減少軟件開發(fā)過程中錯誤的產(chǎn)生。圖1示出了依照本發(fā)明,表單應(yīng)用實施例的結(jié)構(gòu)圖。圖2是房屋產(chǎn)權(quán)初始登記[新建房]流程中的房屋產(chǎn)權(quán)初始登記審批表CQ—RIGHT_CONFIRM的表結(jié)構(gòu)(計算機(jī)顯示界面截圖)。圖3是利用表單編輯器所定制的帶有VO字段信息的麗水市房地產(chǎn)業(yè)務(wù)受理單(計算機(jī)顯示界面截圖)。圖4是工作流流程任務(wù)節(jié)點與表單建立關(guān)聯(lián)的示例(計算機(jī)顯示界面截圖)。圖5是帶有VO字段信息的表單單元格讀寫權(quán)限配置(計算機(jī)顯示界面截圖)。圖6是針對VO的數(shù)據(jù)訪問層類圖(計算機(jī)顯示界面截圖)。圖7是表單運(yùn)行時帶有VO字段信息的單元格表示方式(計算機(jī)顯示界面截圖)。圖8是加載有數(shù)據(jù)的麗水市房地產(chǎn)業(yè)務(wù)受理單運(yùn)行界面(計算機(jī)顯示界面截圖)。具體實施例方式下面結(jié)合附圖和實施例做進(jìn)一步詳細(xì)說明。實施例1依據(jù)本發(fā)明所提出的基于VO的表單定制配置與解析運(yùn)行方法實現(xiàn)的表單常表現(xiàn)為中間件形式,其使用運(yùn)行需依賴于其他系統(tǒng)或平臺環(huán)境。本實例以基于工作流的電子政務(wù)平臺中的房屋產(chǎn)權(quán)初始登記[新建房]流程中的業(yè)務(wù)表單為實施例進(jìn)行描述。本實例以WindowsXPSP3為操作系統(tǒng)環(huán)境,VisualStudio2005為開發(fā)環(huán)境,cS為開發(fā)語言,以開源SourceGrid控件為表單顯示控件的基礎(chǔ),oracle10g為后臺數(shù)據(jù)庫。如圖1所示,是表單應(yīng)用實施例的結(jié)構(gòu)圖?;赩O的面向工作流的表單定制與配置及解析運(yùn)行方法,該方法包括以下三個部分步驟1實現(xiàn)數(shù)據(jù)庫表值對象(ValueObject,VO)實體類的自動生成;步驟2實現(xiàn)基于VO的工作流設(shè)計時表單定制與配置;8步驟3實現(xiàn)基于V0的工作流運(yùn)行時表單解析與運(yùn)行。具體實施步驟如下步驟1實現(xiàn)數(shù)據(jù)庫表值對象(ValueObject,V0)實體類的自動生成,采取的技術(shù)方案為從Oracle數(shù)據(jù)庫字典表user_tables(用戶表)、user_tab_columns(表字段)、user—col—comments(字段注釋)中獲取指定表的列名、類型、長度、注釋等信息,結(jié)合Oracle數(shù)據(jù)類型與NETFramework數(shù)據(jù)類型的映射關(guān)系(表1示出部分類型的映射)生成與數(shù)據(jù)庫表對應(yīng)的值對象(ValueObject,V0)實體類?;谠摷夹g(shù)方案可實現(xiàn)V0生成器,在VO生成器中輸入數(shù)據(jù)庫連接信息及表名,即可自動生成該表所對應(yīng)的VO實體類源代碼。表1部分Oracle數(shù)據(jù)類型與.NETFramework數(shù)據(jù)類型的映射Oracle數(shù)據(jù)類型.NETFramework數(shù)據(jù)類型BLOBByte[]CLOBStringDATEDateTimeFLOATDecimalINTEGERDecimalNUMBERDecimalVARCHAR2String在本實例中,以生成房屋產(chǎn)權(quán)初始登記[新建房]流程中的房屋產(chǎn)權(quán)初始登記審批表CQ_RIGHT_CONFIRM(表結(jié)構(gòu)如圖2所示)的VO實體類代碼進(jìn)行說明。為VO生成器如下提供信息(1)數(shù)據(jù)庫連接信息"user=FCOFFICE;datasource=orcl_132.1.11.248;persistsecurityinfo=False;password=fcoffice〃;(2)表名"CQ—RIGHTJX)NF麗",利用VO生成器所自動生成的VO實體類代碼如下所示usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingDAL.DALATTRIBUTES;namespaceVO{[DataTable("cq_right_confirm〃)]publicclassCQ_RIGHT_CONFIRM{stringsys_xh=〃〃;9stringsys_xmh=〃〃;stringsys—djh=〃〃;DateTimesys_bgrq;decimalsys一recordno;stringfirst_trial_notion=〃〃;stringreview—notion=〃";stringauditing—notion="";stringremark=〃〃;stringdocid=〃〃;stringfirst—trial—name二〃〃;stringreview—name=〃〃;stringauditing_name=〃〃;stringfirst_trial_time二〃〃;stringreview_time=〃〃;stringauditing_time="";[DataField("sys_xh〃,Size=30)]publicstringSYS_XH{get{returnsys_xhset{sys—xh=value;}}[KeyField("sys_xmh〃)]publicstringSYS_XMH{get{returnsys_xmhset{sys_xmh=value;}}[DataField("sys_djh〃,Size=24)]publicstringSYS—DJH{get{returnsys_djhset{sys_djh=value;}}[DataField("sys_bgrq",Size=7)]publicDateTimeSYS_BGRQ{get{returnsys—bgrq;}set{sys—bgrq=value;■}[O川]}10:0112][DataField(〃sys—recordno〃,Size=22)]:0113]publicdecimalSYS_REC0RDN0:0114]{:0115]get{returnsys_recordno:0116]set{sys_recordno=value;}:0117]}:0118][DataField("first—trial—notion",Size=4000)]:0119]publicstringFIRST_TRIAL—NOTION:0120]{:0121]get{returnfirst_trial_notion;}:0122]set{first_trial_notion=value;}:0123]}:0124][DataField("review—notion",Size=4000)]:0125]publicstringREVIEW_N0TI0N:0126]{:0127]get{returnreview—notion;}:0128]set{review_notion=value;}:0129]}:0130][DataField("auditing—notion〃,Size=4000)]:0131]publicstringAUDITING—NOTION:0132]{:0133]get{returnauditing—notion;}:0134]set{auditing—notion=value;}:0135]}:0136][DataField("remark",Size=4000)]:0137]publicstringREMARK:0138]{:0139]get{returnremark;}:0140]set{remark二value;}:0141]}:0142][DataField(〃docid〃,Size=24)]:0143]publicstringDOCID:0144]{get{returndocid;}set{docid=value;}}[DataField(〃first_trial_name〃,Size=16)]publicstringFIRST_TRIAL_NAME{11get{returnfirst_t:rial_name;]set{first_t:rial_name=value}[DataField("review_name〃,Size=16)]}[DataField("auditing_name〃,Size=16)]}[DataField(〃first_trial_time〃,Size=10)]}[DataField("review_time〃,Size=10)]}[DataField("auditing_time〃,Size=10)]}}}步驟2實現(xiàn)基于VO的設(shè)計時表單定制與配置,基于步驟1中的VO實體類,在表單設(shè)計時,通過表單編輯器定制頁面,關(guān)聯(lián)表單單元格與VO實體類中的字段,以XML文件或數(shù)據(jù)庫方式存儲表單定制信息,通過接口參數(shù)設(shè)置對表單單元格的讀寫與打印權(quán)限進(jìn)行配置,并保存配置信息。表單定制與配置具體實施過程如下1)新建表單,根據(jù)業(yè)務(wù)需求將其與業(yè)務(wù)數(shù)據(jù)主表及子表VO實體類相關(guān)聯(lián),并保存關(guān)聯(lián)關(guān)系至數(shù)據(jù)庫中的表單實體類關(guān)聯(lián)信息表(GRID_V0_INF0)中,需保存的信息包括GRIDID(表單ID)、V0PATH(V0程序集路徑,相對路徑形式)、MAINTABLEVOLIST(主表VO實體類名稱列表)及SUBTABLEVOLIST(子表VO實體類名稱列表)。VO程序集路徑采用相對路徑,形如"..\..\VO\XXX.dll",主表與子表VO實體類信息格式為"名稱空間.類名",如VO.HP.HPZB。當(dāng)配置多個主表或子表時,以","作為分隔符。在本實例中,新建表單麗水市房地產(chǎn)業(yè)務(wù)受理單,與該業(yè)務(wù)表單相關(guān)的VO程序集路徑為"..\..\..\VO\VO.dll",主表名為"VO.FKJK",子表名為"VO.SJCL"。2)設(shè)置表單的行列數(shù)、單元格樣式、類型及顯示內(nèi)容,配置VO字段信息的單元格值顯示格式為"#表名.字段名#"Jn"#FKJK.SJRQ#"。對于主表字段,可以不受任何約束的放置到任意單元格內(nèi),對于子表字段,通常放置在同一行單元格內(nèi),如所定制的麗水市房地產(chǎn)業(yè)務(wù)受理單(如圖3所示)中,標(biāo)注了原權(quán)利人、房產(chǎn)證號、交件人、共有權(quán)人、房屋坐落、聯(lián)系電話后的單元格為配置了主表VO字段信息的單元格,而內(nèi)容為繳納證件、證件類別、份數(shù)、頁數(shù)、材料說明下的單元格為配置了子表VO字段信息的單元格。3)新建用以保存表單定制信息的數(shù)據(jù)集,讀取表單的XML架構(gòu)文件至該數(shù)據(jù)集中,在該架構(gòu)文件中,定義了Grid與Cell兩個元素,其中,Grid由多個Cell所組成。本實例中表單的XML架構(gòu)如下所示:0192]〈?xmlversion=〃1.0〃encoding=〃utf_8〃?>:0193]〈xs:schemaid=〃XMLSchemal〃:0194]targetNamespace=〃http://tempuri.org/XMLSchemal.xsd〃:0195]elementFormDefault=〃qualified":0196]xmlns=〃http://tempuri.org/XMLSchemal.xsd":0197]xmlns:mstns=〃http://tempuri.org/XMLSchemal.xsd":0198]xmlns:xs=〃http://www.w3.org/2001/XMLSchema">:0199]〈xs:elementname=〃Grid">:0200]〈xs:complexType>:0201]〈xs:sequence>:0202]〈xs:elementname=〃rowco皿t"type=〃xs:int"/〉:0203]〈xs:elementname=〃columnco皿t"type=〃xs:int":0204]〈xs:elementname=〃Cell"maxOccurs=〃unbounded:0205]〈xs:complexType>:0206]〈xs:sequence>:0207]〈xs:elementname=〃id"type=〃xs:int"/>:0208]〈xs:elementname=〃name"type=〃xs:string"/>:0209]〈xs:elementname=〃caption"type=〃xs:string"/>:0210]〈xs:elementname=〃row皿m"type=〃xs:int"/>:0211]〈xs:elementname=〃column皿m"type=〃xs:int"/>:0212]〈xs:elementname=〃datatype"type=〃xs:string"/>〈xs:elementname二〃datavalue〃type=〃xs:string〃/〉〈xs:elementname二〃wiclth〃type=〃xs:int〃/〉〈xs:elementname二〃height〃type=〃xs:int〃/〉〈xs:elementname二〃flag〃type=〃xs:int〃/〉〈xs:elementname二〃rowspan〃type=〃xs:int〃/〉〈xs:elementname二〃columnspan〃type=〃xs:int〃/〉〈xs:elementname二〃fontName〃type=〃xs:string〃/〉〈xs:elementname二〃fontSize〃type=〃xs:float〃/〉〈xs:elementname二〃fontltalic〃type=〃xs:boolean〃/〉〈xs:elementname二〃fontBold〃type=〃xs:boolean〃/〉〈xs:elementname二〃fontUnderline〃type=〃xs:boolean〃/〉〈xs:elementname二〃forecolor〃type=〃xs:int〃/〉〈xs:elementname二〃backColor〃type=〃xs:int〃/〉〈xs:elementname二〃textAlignment〃type=〃xs:string〃/〉〈xs:elementname二〃leftlinecolor〃type=〃xs:int〃/〉〈xs:elementname=〃leftlineDashStyle〃type=〃xs:string〃/〈xs:elementname=〃leftlineWidth〃type=〃xs:float"/〉〈xs:elementname二〃rightlinecolor〃type=〃xs:int〃/〉〈xs:elementname=〃rightlineDashStyle〃type=〃xs:string'rightlineWidth〃type=〃xs:float〃/>toplinecolor〃type=〃xs:int〃/〉toplineDashStyle〃type=〃xs:string〃/toplineWidth〃type=〃xs:float〃/〉bottomlinecolor〃type=〃xs:int〃/〉bottomlineDashStyle〃type=〃xs:string'bottomlineWidth〃type=〃xs:float〃/〉cellType〃type=〃xs:string〃/〉comboboxlnfo〃type=〃xs:string〃/〉dataValueType〃type=〃xs:string〃/〉validationPattern〃type=〃xs:string〃/validaticmType〃type=〃xs:string"/〉printable"type=〃xs:boolean〃/〉comboboxEditable〃type=〃xs:boolean"/cellMask〃type=〃xs:string〃/〉expression"type=〃xs:string〃/〉〈xselementn膽6〈xselementn謹(jǐn)6〈xselement〈xselement〈xselement脇m6〈xselement脇m6/〉〈xselementn膽6〈xselementn膽6〈xselement皿m6〈xselement〈xselementn柳6〈xselement脇m6〈xselement脇m6〈xselementn膽6〈xselementn膽6〈xselementnam6:/xs:sequence〉7xs:complexType〉〈/xs:element>〈/xs:sequence>〈/xs:complexType>〈/xs:element>〈/xs:schema>4)獲取當(dāng)前表單中單元格的行數(shù)和列數(shù)并賦值予Grid的rowcount與columncount字段。按照從左至右、從上至下的順序遍歷表單中的單元格Grid[i,j],讀取單元格Grid[i,j]的當(dāng)前值、行跨度、列跨度、字體、字號、是否斜體、是否加粗、是否有下劃線、字體顏色、背景色、文本對齊方式、邊框線型及線寬、單元格類型、校驗?zāi)J?、校驗類型、計算表達(dá)式信息,并賦值予Cell的name、caption、row皿m、colum皿um、datatype、datavalue、width、height、flag、rowspan、columnspan、fontName、fontSize、fontltalic、fontBold、fontUnderline、forecolor、backColor、textAlig腹ent、leftlinecolor、leftlineDashStyle、lef11ineWidth、right1inecolor、right1ineDashSty1e、rightlineWidth、toplinecolor、toplineDashStyle、toplineWidth、bottomlinecolor、bottomlineDashStyle、bottomlineWidth、cellType、comboboxlnfo、dataValueType、validationPattern、validationType、printable、comboboxEditable、cellMask、e鄧ression字段。本實例中部分定制信息的XML片段如下所示,以共有權(quán)人字段為例〈Cell〉〈id>54〈/id>〈name/>〈rownum>6〈/rownum>〈columrmum>5〈/columrmum>〈datatype>textbox〈/datatype>〈dat£iv£ilue>共有權(quán)人〈/dat£iv£ilue>〈width>80〈/width>〈height>30〈/height>〈flag>l〈/flag>〈rowspan>l〈/rowspan>〈columnspan>l〈/columnspan>〈fontName〉宋體〈/fontName〉〈fontSize〉12〈/fontSize〉〈fontItalic>false〈/fontItalic>〈fontBold〉false〈/fontBold〉〈fontUnderline>false〈/fontUnderline>〈forecolor>_16777216〈/forecolor>〈backColor>_l〈/backColor>〈textAlignment>MiddleLeft〈/textAlignment>〈leftlinecolor>_l〈/leftlinecolor>〈leftlineDashStyle>Solid〈/leftlineDashStyle>12/15頁<leftlineWidth>0〈/leftlineWidth〉<rightlinecolor>_16777216〈/rightlinecolor>〈rightlineDashStyle>Solid〈/rightlineD£ishStyle>〈rightlineWidth>l</rightlineWidth>〈toplinecolor>-1〈/toplinecolor>〈toplineDashStyle>Solid〈/toplineDashStyle〉〈toplineWidth>0〈/toplineWidth><bottomlinecolor>_16777216〈/bottomlinecolor>〈bottomlineDashStyle>Solid〈/bottomlineDashStyle>〈bottomlineWidth>l〈/bottomlineWidth>〈cellType>cell〈/cellType〉〈dataValueType>string〈/dataValueType>〈validationP£ittern/><valicktionType/>〈printable>true〈/printable>〈/Cell>〈Cell〉〈id〉55〈/id>〈name/>〈rownum>6〈/rownum><columrmum>6〈/columnnum>〈datatype>textbox〈/datatype>〈datavalue>#FKJK.XMWZ#〈/datavalue>〈width〉94</width〉<height>30〈/height〉〈flag>l〈/flag>〈rowspan>l〈/rowspan>〈columnspan>2〈/columnspan>〈fontName>宋體</fontName〉〈fontSize〉10〈/fontSize〉<fontItalic>false〈/fontItalic>〈fontBold>true〈/fontBold>〈fontUnderline>false〈/fontUnderline>〈forecolor>_16777216〈/forecolor>〈backColor〉-l〈/backColor〉〈textAlignment>MiddleLeft〈/textAlignment〉<leftlinecolor>_l〈/leftlinecolor>〈leftlineDashStyle>Solid〈/leftlineDashStyle>〈leftlineWidth>0〈/leftlineWidth>〈rightlinecolor>_16777216〈/rightlinecolor>〈rightlineDashStyle>Solid〈/rightlineDashStyle>〈rightlineWidth>l〈/rightlineWidth>〈toplinecolor>_l〈/toplinecolor>〈toplineDashStyle>Solid〈/toplineDashStyle>〈toplineWidth>0〈/toplineWidth>〈bottomlinecolor>_16777216〈/bottomlinecolor>〈bottomlineDashStyle>Solid〈/bottomlineDashStyle>〈bottomlineWidth>l〈/bottomlineWidth>〈cellType〉cell〈/cellType〉〈dataValueType>string〈/dataValueType>〈/Cell>5)表單的定制信息讀取到數(shù)據(jù)集中后,將數(shù)據(jù)集中的當(dāng)前數(shù)據(jù)寫入數(shù)據(jù)庫中的表單模板表(GRID_TEMPLATE)中,主要記錄項包括GRIDID、GRIDCONTENT(表單內(nèi)容,以大二進(jìn)制形式存儲)。6)在工作流流程的節(jié)點上配置表單,如圖4所示,在房屋產(chǎn)權(quán)初始登記[新建房]流程的收件節(jié)點下掛有麗水市房地產(chǎn)業(yè)務(wù)受理單,在案例初審節(jié)點下掛有麗水市房地產(chǎn)登記申請書、產(chǎn)權(quán)房屋、申請人、房屋產(chǎn)權(quán)初始登記審批表等多個表單。在存儲工作流流程的節(jié)點與表單的配置信息時,需記錄工作流節(jié)點ID(收件ID為01900100)與其下所掛的表單ID(收件節(jié)點下的表單ID為106)。配置工作流任務(wù)節(jié)點的表單中單元格的讀寫權(quán)限時,按照從左至右、從上至下的順序依次遍歷表單中的單元格Grid[i,j],過濾出配置了VO字段信息的單元格并存放到帶VO字段信息的單元格列表中,如圖5所示,在本實例中,復(fù)選框選中的為可寫字段,未選中的為可讀字段,所需記錄到數(shù)據(jù)庫中的信息為節(jié)點ID(如01900001)、表單ID(如107)、可寫字段(如CQ_OTHERREGIST_UNCHAIN.sys_xmh,CQ_OTHERREGIST_UNCHAIN.OTHERRIGHT_NAME,CQ_OTHERREGIST_UNCHAIN.PLEDGOR_CARDTYPE,CQ_OTHERREGIST_UNCHAIN.PLEDG0R_CARDN0,CQ_OTHERREGIST_UNCHAIN.HYP0THEC_NAME,CQ_OTHERREGIST_UNCHAIN.HYPOTHEC_CARDTYPE,CQ_OTHERREGIST_UNCHAIN.HYPOTHEC—CARDNO,CQ_OTHERREGIST_UNCHAIN.BORROWER)等。步驟3實現(xiàn)基于V0的運(yùn)行時表單解析與運(yùn)行。基于步驟1中的V0實體類與步驟2中的設(shè)計時所存儲的表單定制與配置信息,在表單運(yùn)行時,表單解析引擎讀取并解析表單定制及配置信息,動態(tài)生成帶有權(quán)限控制的表單對象,對表單單元格中的值所做出的修改將反應(yīng)到V0對象中,并通過V0對象傳遞到數(shù)據(jù)源中,從而實現(xiàn)數(shù)據(jù)的增刪改。表單的解析與顯示算法流程如下1)根據(jù)表單ID在數(shù)據(jù)庫GRID_V0_INF0表中查詢?yōu)楫?dāng)前表單所配置的VOPATH、MAINTABLEVOLIST及SUBTABLEV0LIST;2)為了進(jìn)行基于VO的主表及子表數(shù)據(jù)查詢,需實現(xiàn)針對VO的數(shù)據(jù)訪問層,主要接17口如圖6所示。根據(jù)表單實例ID、MAINTABLEVOLIST及SUBTABLEVOLIST,利用接口objectLoadMainTableData(objectkeyValue,stringmainTableVO,stringmainTableDIXPath)禾口ArrayListLoadSubTableData(objectforeignKeyValue,stringsubTableVO,stringsubTableDLLPath)查詢主表及子表數(shù)據(jù),如查詢結(jié)果非空,加載到主表V0對象列表和子表V0對象列表中;3)根據(jù)表單ID在數(shù)據(jù)庫GRID_TEMPLATE表中查詢表單定制信息,初始化表單。讀取GRID中的行列數(shù),初始化空白表單,依次讀取每個單元格Cell的定制信息并實例化,如果當(dāng)前單元格為未配置V0字段信息的單元格,且非計算字段,則只需按照該單元格的配置信息初始化單元格,如果當(dāng)前單元格為配置V0字段信息的單元格,除按照該單元格的配置信息初始化單元格外,還需將所配置的VO字段信息存儲到單元格標(biāo)簽中(如圖7所示),如單元格為計算字段,則按照計算表達(dá)式計算出當(dāng)前值并賦予單元格,如單元格設(shè)置了校驗規(guī)則,則為該單元格添加校驗事件,與校驗有關(guān)的部分代碼如下所示publicboolValidationErrorMsg(stringvalidationtype,stringvalidatio叩attern,stringcellval){GridEdit.CellValidatecv=newSourceGrid.GridEdit.CellValidate0;stringerrorstr=cv.CellValidation(validationtype,validatio叩attern,cellval);ValidationErrorMsgEventArgse=newValidationErrorMsgEventArgs(errorstr);OnValidationErrorMsg(e);boolisvalidate=false;if(errorstr==〃符合要求〃||errorstr==〃數(shù)值符合要求〃IIerrorstr==〃字符串符合要求")isvalidate=true;returnisvalidate;}[Browsable(true)]publiceventValidationErrorMsgEventHandlerValidationErrorMsgEvent;protectedvirtualvoidOnValidationErrorMsg(ValidationErrorMsgEventArgse){if(ValidationErrorMsgEvent!=null){ValidationErrorMsgEvent(this,e);}18}4)根據(jù)單元格標(biāo)簽中的V0字段信息與主表VO對象字段的匹配關(guān)系,將主表VO對象列表中的每一個主表對象的相關(guān)字段的值賦予與之對應(yīng)的表單單元格。對于子表VO對象列表中的第一個VO對象,根據(jù)單元格標(biāo)簽中的VO字段信息與子表VO對象字段的匹配關(guān)系,將該子表VO對象的相關(guān)字段的值賦予與之對應(yīng)的表單單元格,對于子表VO對象列表中的其他VO對象,依次在上一個VO對象所在行后面增加新行,并以上一行為模板設(shè)置新增行樣式及相關(guān)信息,根據(jù)單元格標(biāo)簽中的VO字段信息與子表VO對象字段的匹配關(guān)系,將該子表V0對象的相關(guān)字段的值賦予與之對應(yīng)的表單單元格,圖8所示為一個加載了主表和子表數(shù)據(jù)的麗水市房產(chǎn)業(yè)務(wù)受理單的運(yùn)行實例;5)根據(jù)GRIDID從數(shù)據(jù)庫GRID_CONFIG表中獲取單元格的讀寫及打印權(quán)限配置信息,利用應(yīng)用程序接口對相關(guān)單元格的權(quán)限信息進(jìn)行設(shè)置,可通過設(shè)置單元格顏色方式以突出需要處理的業(yè)務(wù)內(nèi)容。表單定制配置與解析運(yùn)行方法中表單數(shù)據(jù)增刪改過程如下1)在用戶完成某個業(yè)務(wù)表單(如麗水市房地產(chǎn)業(yè)務(wù)受理單)的填寫工作后,提交保存請求,表單解析引擎遍歷配置主表VO.FKJK字段信息的表單單元格,并將單元格值賦予相對應(yīng)的VO.FKJK對象,得到更新后的主表VO對象列表;2)遍歷配置子表VO.SJCL字段信息帶有子表行標(biāo)識的表單單元格,遍歷子表行各個單元格并將值保存到VO.SJCL對象列表;3)基于針對VO的數(shù)據(jù)訪問層接口SaveTableData(objectpMainTableObj)將主表VO對象更新到數(shù)據(jù)庫中;4)獲取原有子表VO對象列表并利用針對VO的數(shù)據(jù)訪問層DeleTableData(ArrayListpSubTableDeleObjList)在數(shù)據(jù)庫中進(jìn)行刪除后,利用接口SaveTableData(ArrayListpSubTableObjList)將現(xiàn)有子表VO對象列表保存到數(shù)據(jù)庫中,主要實現(xiàn)代碼為ArrayListsubTableDeleOb幾ist=this,gridl.GetSubTableDelOb幾ist();if(subTableDeleObjList!=null&&subTableDeleObjList.Count>0)dalvo.DeleTableData(subTableDeleOb幾ist);ArrayListsubTableObjList=this,gridl.GetSubTableObjList();if(subTableObjList!=null&&subTableObjList.Count>0)dalvo.SaveTableData(subTableObjList);19權(quán)利要求基于VO的表單定制配置與解析運(yùn)行方法,該方法包括以下三個部分步驟1實現(xiàn)數(shù)據(jù)庫表值對象實體類的自動生成;步驟2實現(xiàn)基于VO的設(shè)計時表單可視化定制與配置;步驟3實現(xiàn)基于VO的運(yùn)行時表單解析與運(yùn)行。2.根據(jù)權(quán)利要求1所述的基于VO的表單定制配置與解析運(yùn)行方法,其特征是所述數(shù)據(jù)庫表值對象實體類的自動生成,是指讀取數(shù)據(jù)庫字典表,并自動生成與業(yè)務(wù)數(shù)據(jù)表對應(yīng)的VO實體類,作為后續(xù)步驟實施的基礎(chǔ);所述基于VO的設(shè)計時表單可視化定制與配置,是基于步驟1中的VO實體類,在表單設(shè)計時,通過表單編輯器定制頁面,關(guān)聯(lián)表單單元格與VO實體類中的字段,以XML文件或數(shù)據(jù)庫方式存儲表單定制信息,通過接口參數(shù)設(shè)置對表單單元格的讀寫與打印權(quán)限進(jìn)行配置,并保存配置信息;所述基于VO的運(yùn)行時表單解析與運(yùn)行,是基于步驟1中的VO實體類與步驟2中的表單設(shè)計時所定義的表單定制與配置信息,在表單運(yùn)行時,表單解析引擎讀取并解析表單定制及配置信息,動態(tài)生成帶有權(quán)限控制的表單對象,表單單元格的值所做的修改將反應(yīng)到VO對象中,并通過VO對象傳遞到數(shù)據(jù)源中,從而實現(xiàn)數(shù)據(jù)的增刪改操作。3.根據(jù)權(quán)利要求1所述的基于VO的表單定制配置與解析運(yùn)行方法,其特征是,所述步驟2中的表單定制與配置過程包括新建表單、表單定制、表單定制信息保存、表單配置、表單配置信息保存五個部分。4.根據(jù)權(quán)利要求3所述的基于VO的表單定制配置與解析運(yùn)行方法,其特征是,所述的表單定制與配置過程,新建表單時,根據(jù)業(yè)務(wù)需求將其與業(yè)務(wù)數(shù)據(jù)主表及子表VO實體類相關(guān)聯(lián),并保存關(guān)聯(lián)關(guān)系至數(shù)據(jù)庫中的表單實體類關(guān)聯(lián)信息表中,需保存的信息包括GRIDID、VOPATH、MAINTABLEVOLIST及SUBTABLEVOLIST;5.根據(jù)權(quán)利要求3所述的基于VO的表單定制配置與解析運(yùn)行方法,其特征是,所述的表單定制與配置過程,表單定制的過程如下1)利用表單編輯器初始化基本表單定義;2)將主表及子表VO實體類中的字段與單元格進(jìn)行綁定,并設(shè)置單元格類型;3)為有約束需求的單元格進(jìn)行約束設(shè)置。6.根據(jù)權(quán)利要求3所述的基于VO的表單定制配置與解析運(yùn)行方法,其特征是,所述的表單定制與配置過程,表單定制信息的保存過程如下1)新建用以保存表單定制信息的數(shù)據(jù)集,讀取表單的XML架構(gòu)文件至該數(shù)據(jù)集中,在該架構(gòu)文件中,定義了Grid與Cell兩個元素,其中,Grid由多個Cell所組成;2)獲取當(dāng)前表單中單元格的行數(shù)和列數(shù)并賦值予Grid的rowcount與columncount字段;3)按照從左至右、從上至下的順序遍歷表單中的單元格Grid[i,j],讀取單元格Grid[i,j]的當(dāng)前值、行跨度、列跨度、字體、字號、是否斜體、是否加粗、是否有下劃線、字體顏色、背景色、文本對齊方式、邊框線型及線寬、單元格類型、校驗?zāi)J?、校驗類型、計算表達(dá)式信息,并依次賦值予Cell的name、caption、row皿m、colum皿um、datatype、datavalue、width、height、flag、rowspan、columnspan、fontName、fontSize、fontltalic、fontBold、fontUnderline、forecolor、backColor、textAlig腹ent、leftlinecolor、leftlineDashStyle、1eft1ineWidth、rightlinecolor、right1ineDashSty1e、rightlineWidth、toplinecolor、toplineDashStyle、toplineWidth、bottomlinecolor、bottomlineDashStyle、bottomlineWidth、cellType、comboboxlnfo、dataValueType、validationPattern、validationType、printable、comboboxEditable、cellMask、expression字段;4)至步驟3),表單的定制信息已讀取到數(shù)據(jù)集中,將數(shù)據(jù)集中的當(dāng)前數(shù)據(jù)寫入數(shù)據(jù)庫中的表單模板表中,記錄項包括GRIDID、GRIDCONTENT,或,寫入指定的XML文件;7.根據(jù)權(quán)利要求3所述的基于VO的表單定制配置與解析運(yùn)行方法,其特征是,所述的表單定制與配置過程,表單配置過程如下1)將表單與任務(wù)關(guān)聯(lián);2)按照從左至右、從上至下的順序依次遍歷表單中的單元格Grid[i,j],過濾出配置了VO字段信息的單元格并存放到帶VO字段信息的單元格列表中;3)對于上述單元格列表中每個單元格,設(shè)置當(dāng)前任務(wù)中其是否可讀、可寫及可打印。8.根據(jù)權(quán)利要求3所述的基于VO的表單定制配置與解析運(yùn)行方法,其特征是,所述的表單定制與配置過程,表單配置信息保存是記錄表單與任務(wù)關(guān)聯(lián)信息到表單任務(wù)關(guān)聯(lián)表中,記錄項包括GRIDID和TASKID;記錄權(quán)限配置信息至數(shù)據(jù)庫中的權(quán)限配置表中,記錄項包括GRIDID、TASKID、IsReadable、IsEditable及IsPrintable。9.根據(jù)權(quán)利要求1所述的基于VO的表單定制配置與解析運(yùn)行方法,其特征是所述步驟3中表單的解析算法流程如下1)根據(jù)表單ID在數(shù)據(jù)庫GRID_V0_INF0表中查詢?yōu)楫?dāng)前表單所配置的VOPATH、MAINTABLEVOLIST及SUBTABLEVOLIST;2)根據(jù)表單實例ID、MAINTABLEVOLIST及SUBTABLEVOLIST,禾U用接口objectLoadMainTableData禾口ArrayListLoadSubTableData查詢主表及子表數(shù)據(jù),如查詢結(jié)果非空,加載到主表VO對象列表和子表VO對象列表中;3)根據(jù)表單ID在數(shù)據(jù)庫GRID_TEMPLATE表中查詢表單定制信息,初始化表單;讀取GRID中的行列數(shù),初始化空白表單,依次讀取每個單元格Cell的定制信息并實例化,如果當(dāng)前單元格為未配置VO字段信息的單元格,且非計算字段,則只需按照該單元格的配置信息初始化單元格,如果當(dāng)前單元格為配置VO字段信息的單元格,除按照該單元格的配置信息初始化單元格外,還需將所配置的VO字段信息存儲到單元格標(biāo)簽中,如單元格設(shè)置了校驗規(guī)則,則為該單元格添加校驗事件,如單元格為計算字段,則按照計算表達(dá)式計算出當(dāng)前值并賦予單元格;4)根據(jù)單元格標(biāo)簽中的VO字段信息與主表VO對象字段的匹配關(guān)系,將主表VO對象列表中的每一個主表對象的相關(guān)字段的值賦予與之對應(yīng)的表單單元格;對于子表VO對象列表中的第一個VO對象,根據(jù)單元格標(biāo)簽中的VO字段信息與子表VO對象字段的匹配關(guān)系,將該子表VO對象的相關(guān)字段的值賦予與之對應(yīng)的表單單元格,對于子表VO對象列表中的其他VO對象,依次在上一個VO對象所在行后面增加新行,并以上一行為模板設(shè)置新增行樣式及相關(guān)信息,根據(jù)單元格標(biāo)簽中的VO字段信息與子表VO對象字段的匹配關(guān)系,將該子表VO對象的相關(guān)字段的值賦予與之對應(yīng)的表單單元格;5)根據(jù)GRIDID從數(shù)據(jù)庫GRIDJX)NFIG表中獲取單元格的讀寫及打印權(quán)限配置信息,利用應(yīng)用程序接口對相關(guān)單元格的權(quán)限信息進(jìn)行設(shè)置,可通過設(shè)置單元格顏色方式以突出需要處理的業(yè)務(wù)內(nèi)容。10.根據(jù)權(quán)利要求1所述的基于V0的表單定制配置與解析運(yùn)行方法,其特征是所述步驟3中表單數(shù)據(jù)增刪改算法流程如下1)遍歷配置主表vo字段信息的表單單元格,并將單元格值賦予相對應(yīng)的主表vo對象,得到更新后的主表VO對象列表;2)遍歷配置子表VO字段信息帶有子表行標(biāo)識的表單單元格,遍歷子表行各個單元格并將值保存到子表VO對象列表;3)利用數(shù)據(jù)訪問層接口SaveTableData將主表VO對象更新到數(shù)據(jù)庫中;4)獲取原有子表VO對象列表并利用數(shù)據(jù)訪問層接口DeleTableData在數(shù)據(jù)庫中進(jìn)行刪除后,利用接口SaveTableData將現(xiàn)有子表VO對象列表保存到數(shù)據(jù)庫中。全文摘要本發(fā)明提供了一種基于VO的表單定制配置與解析運(yùn)行方法,包括值對象實體類生成、表單設(shè)計和表單運(yùn)行三個技術(shù)環(huán)節(jié)。讀取數(shù)據(jù)庫字典表信息,自動生成與數(shù)據(jù)庫主表與子表相對應(yīng)的VO實體類;在表單設(shè)計時,通過表單編輯器定制頁面,關(guān)聯(lián)表單單元格與VO實體類中的字段,以文件或數(shù)據(jù)庫方式存儲表單定制信息,通過接口參數(shù)設(shè)置對表單單元格的讀寫及打印權(quán)限進(jìn)行配置,并保存配置信息;在表單運(yùn)行時,表單解析引擎會讀取并解析設(shè)計時所定義的表單定制和配置信息,動態(tài)生成帶有權(quán)限控制的表單對象,表單單元格的值所做的修改將反應(yīng)到VO對象中,并通過VO對象傳遞到數(shù)據(jù)源中,從而實現(xiàn)數(shù)據(jù)的增刪改操作。文檔編號G06F9/44GK101706716SQ200910034808公開日2010年5月12日申請日期2009年9月8日優(yōu)先權(quán)日2009年9月8日發(fā)明者李安波,林冰仙,閭國年申請人:南京師范大學(xué)