新四季網

一種表單系統數據源數據綁定方法

2023-06-12 16:01:31 1

〉name復原過程為建立全局綁定關係矩陣對象matrix,對控制項textl進行模型化,發現綁定標記Bind,把綁定關係BindRelation標記轉換為綁定關係對象二元組(Value,name)填入datasetl禾Btextl對應處。數據綁定關係,在表單設計中是可變。綁定關係建立後,可能被取消或者建立新的關係。需要對全局綁定關係矩陣進行維護。全局矩陣的動態維護如圖2,具體描述如下-全局綁定關係矩陣有全局標誌行標r和列標c,每行和每列的頭部又另有index標誌。全局標誌表示當前可用的行和列的數量;index標誌表示本行或者列的綁定關係數。對全局綁定關係矩陣的操作維護如下(1)註冊綁定關係。如果分配了行或者列,則全局行標或者列標減1;填入綁定關係不是替換掉原有的綁定關係,對應的行或者列index增加1;檢測全局行標或者列標,如果有等於o,則壓縮全局矩陣,全局矩陣分配固定行數和列數的空餘,設置全局行標和列標數。(2)註銷綁定關係。如果是整行或者整列註銷,則設置行或者列的index為0;如果是註銷某個綁定關係,對應行或者列index減少1。(3)壓縮全局矩陣。檢測行標和列標,如有為0的,則把本行或者本列刪除。這裡全局標誌顯示剩餘的行或者列,可以作為壓縮矩陣的標誌;行標或列標index,表示本行或者列是否有效,這樣在全局矩陣壓縮前,可以不用對矩陣大小進行變化。例如,以上過程可在Java語言中通過如下代碼來實現//新建綁定關係存儲矩陣Matrixmatrix=newMatrix;〃傳入的是Text的xml節點,根據節點獲取ID屬性值StringcontrolName=TextXml.attributeValue("ID");〃獲取Text中綁定的數據集的名稱StringbindName=TextXml.element("Bind").attributeValue("ID");//新建綁定關係BindRelationbindRelation=newBindRelation;〃把xml形式的綁定關係轉換為綁定關係對象bindRelation.convertToRelation(TextXml.element("BindRelation"));〃把綁定關係存入控制項名稱和數據集對應處matrix.put(bindName,controlName,bindRelation);其中,Matrix類為如下代碼packagedataBind;importjava.util.Has固ap;importjava.util.Stack;publicclassMatrix{〃存儲綁定關係對象,用二維數組表示矩陣BindRelation[][]store;〃記錄每行的indexint[]rowlndex;〃記錄每列的indexint[]columnlndex;〃總的行數introwj〃總的列數intcolumn;〃存儲具體的未使用的行或者列的標號StackrowUnUsed=newStack;StackcolumnUnUsed=newStack<Integer〉;//存儲標誌名和行或者列的對應關係,標誌名是欄位名稱或者控制項名稱HashMap<String,Integer〉idMap=newHashMap<String,Integer〉;〃初始化存儲publicMatrix{〃TODOAuto-generatedconstructorstubstore=newBindRelation[10][50];row=10;column—50;rowlndex=newint[10];columnlndex=newint[50];for(inti=0;i<10;i++)rowUnUsed.push(newInteger(i));for(inti=0;i<50;i++)columnUnUsed.push(newInteger(i));〃初始化存儲publicMatrix(introw,intcolumn){〃TODOAuto-generatedconstructorstubstore=newBindRelation[row][column];this.row—row;this.column=column;rowlndex——newint[row];columnlndex=newint[column];for(inti=0;i<row;i++)rowUnUsed.push(newInteger(i));for(inti=0;i<column;i++)columnUnUsed.push(newInteger(i));〃分配新的行publicbooleannewRow(Integerrowld){if(rowUnUsed.isEmpty(》returnfalse;else{rowld=rowUnUsed.pop;returntrue;//分配新的列publicbooleannewColumn(Integercolumnld){if(columnUnUsed.isEmpty)returnfalse;else{columnld=columnUnUsed.pop;returntruej//存儲綁定關係,存儲成功返回trae,沒有空間存儲返回falsebooleanput(StringDataSetId,StringTextld,BindRelationrelation){booleanisNull=true;//己經有欄位和控制項的,覆蓋以前的綁定關係if(idMap.containsKey(DataSetld)&&idMap.containsKey(TextId)){if(store[idMap.get(DataSetld)][idMap.get(Textld)]!=null)isNull=false;store[idMap.get(DataSetld)][idMap.get(Textld)]=relation;//第一次建立的綁定,需要分配新的位置存儲綁定關係對象elseif(!idMap.containsKey(DataSetld)&&idMap.containsKey(TextId))Integerrowid=0;if(newRow(rowid)){idMap.put(DataSetId,rowid);store[idMap.get(DataSetld)][idMap.get(Textld)]=relation;}elsereturnfalse;elseif(idMap.containsKey(DataSetld)&&!idMap.containsKey(TextId))Integercolumnid=0;if(newRow(columnid)){idMap.put(DataSetId,columnid);store[idMap.get(DataSetld)][idMap.get(Textld)]=relation;}elsereturnfalse;elseif(!idMap.containsKey(DataSetld)&&!idMap.containsKey(Textld))Integercolumnid=0;Integerrowid=0;if(newRow(rowid)&&newRow(columnid)){idMap.put(DataSetId,rowid);idMap.put(DataSetId,columnid);store[idMap.get(DataSetld)][idMap.get(Textld)]=relation;}elsereturnfalse;〃如果是新增的存儲,行和列的index分別加1if(isNull){rowIndex[idMap.get(DataSetId)]++;columnIndex[idMap.get(TextId)]++;returntrue;〃撤銷綁定關係booleanredraw(StringDataSetId,StringTextid){if(idMap.containsKey(DataSetld)&&idMap.containsKey(TextId)){if(store[idMap.get(DataSetld)][idMap.get(Textld)]!=null){store[idMap.get(DataSetld)][idMap.get(Textld)]=null;〃撤銷後,行和列的index分別減1rowIndex[idMap.get(DataSetld)]—;columnlndex[idMap.get(Textld)]—;returntruejreturnfalse;〃壓縮,如果有行標或者列表為0的,又不再未分配的行或者列裡,則在未分配的行或者列裡添加voidcompressO{for(inti=0;i<row;i++){if(rowlndex[i]—0)if(!rowUnUsed.contains(newInteger(i)))rowUnUsed.push(newInteger(i));for(inti=0;i<column;i++){if(columnlndex[i]—畫0)if(!columnUnUsed.contains(newInteger(i)))columnUnUsed.push(newInteger(i));}權利要求1.一種應用於表單設計的將數據集數據綁定於控制項的方法,包括如下步驟(1)構建綁定關係對象,該綁定關係對象包括數據與控制項的綁定類型以及該綁定類型對應的綁定元素信息;(2)建立數據集,同時建立全局綁定關係矩陣,全局綁定關係矩陣為一個二維數組,用於儲存全部綁定關係,將具有綁定關係的數據集欄位元素的表示符號依次轉化為連續的整數作為矩陣的列號或行號,將具有綁定關係的控制項的標識依次轉化為連續的整數作為矩陣的行號或列號,然後將綁定關係對象依次設置為行列對應處數組元素的值;(3)數據集欄位元素與控制項的綁定關係變化通過改變全局綁定關係矩陣來實現綁定關係的取消可通過註銷全局關係表中相應行或列的值來實現,新的綁定關係的建立可通過新建行或列並填入相應綁定關係對象來實現,綁定關係的變更通過將新的綁定關係對象覆蓋原有綁定關係對象來實現;(4)綁定的實施通過讀取全局綁定關係矩陣中相應綁定關係對象的綁定信息來實現。2.根據權利要求1所述的將數據集數據綁定於控制項的方法,其特徵在於,所述欄位元素和控制項的表示符號為字符串或數值。3.根據權利要求2所述的將數據集數據綁定於控制項的方法,其特徵在於,該方法還包括將全局綁定關係矩陣的綁定關係對象存儲於xml文件的步驟。4.根據權利要求1至3中任一權利要求所述的將數據集數據綁定於控制項的方法,其特徵在於,所述數據與控制項的綁定類型是指單值綁定,所述綁定元素信息為綁定關系所對應的數據欄位表示符號。5.根據權利要求4所述的將數據集數據綁定於控制項的方法,其特徵在於,所述單值綁定用字符串或數值表示,所述數據欄位表示符號為字符串或數值。6.根據權利要求1至3中任一權利要求所述的將數據集數據綁定於控制項的方法,其特徵在於,所述數據與控制項的綁定類型是指將數據欄位與控制項屬性進行二元對應的綁定,所述綁定元素信息為所有相互對應的數據欄位與控制項的表示符號。7.根據權利要求6所述的將數據集數據綁定於控制項的方法,其特徵在於,所述將數據欄位與控制項屬性進行二元對應的綁定用字符串或數值表示,所述數據欄位與控制項的表示符號為字符串或數值。8.根據權利要求1至3中任一權利要求所述的的將數據集數據綁定於控制項的方法,其特徵在於,所述數據與控制項的綁定類型是指將數據欄位與控制項屬性進行匹配的綁定,所述綁定元素信息為數據欄位與控制項屬性的匹配規則。9.根據權利要求8所述的將數據集數據綁定於控制項的方法,其特徵在於,將數據欄位與控制項屬性進行匹配的綁定用字符串或數值表示,所述數據欄位與控制項屬性的匹配規則用字符串或數值表示。10.根據權利要求9所述的將數據集數據綁定於控制項的方法,其特徵在於,所述數據欄位與控制項屬性的匹配規則為字符相同匹配和忽略大小寫的字符相同匹配。全文摘要本發明提供一種表單系統數據源數據綁定方法,具體是一種用於表單設計中將數據集中數據綁定於控制項的方法,以解決複雜表單設計中綁定關係建立操作量大和數據集變動引起的搜索時間長的問題。該方法利用包含綁定關係類型和綁定關係值的綁定關係對象表示綁定關係,通過設置全局綁定關係矩陣管理綁定關係,方便了綁定實施的操作,提高了表單程序運行效率。文檔編號G06F17/30GK101566948SQ20091009924公開日2009年10月28日申請日期2009年5月26日優先權日2009年5月26日發明者健吳,吳朝暉,尹建偉,瑩李,楊顯發,鄧水光申請人:浙江大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀