做SharePoint開(kāi)發(fā)這兩年來(lái),InfoPath使用的頻率頗高,用InfoPath來(lái)填寫(xiě)數據,查詢(xún)數據等非常方便,并且InfoPath還可以承載代碼,使得它在SharePoint的開(kāi)發(fā)中大有作為,但是代碼只有開(kāi)發(fā)人員才懂寫(xiě),對于一般的管理人員來(lái)說(shuō)實(shí)在有點(diǎn)難,前不久,學(xué)到了一招,今天特來(lái)做個(gè)筆記,可以不使用代碼將InfoPath中的數據提交到列表,具體方法如下:
首先,需要建立一個(gè)待提交數據的列表,我建了一個(gè)名為“Reporting Data”的列表,然后給其新建了3欄,具體結構如下:

然后我用記事本新建了一個(gè)名為“添加新項目”的XML文檔,當中的字段名和列表中字段名的Internal Name一一對應,文檔內容如下:
1 <?xml version='1.0' encoding='UTF-8'?>
2 <Batch OnError='Continue'>
3 <Method ID='1' Cmd='New'>
4 <Field Name='Title'></Field>
5 <Field Name='Money'></Field>
6 <Field Name='Month'></Field>
7 <Field Name='Year'></Field>
8 </Method>
9 </Batch>
接下來(lái),我打開(kāi)InfoPath新建了一個(gè)空白表單,對其添加了一個(gè)從“XML文檔”接收數據的數據連接:

選擇了我剛剛新建的XML文檔作為數據源:

然后再添加一個(gè)從“SharePoint庫或列表”接收數據的數據連接,選擇最開(kāi)始建立的那個(gè)名為“Reporting Data”的列表,這個(gè)數據源主要用來(lái)展示數據,方便用戶(hù)直觀(guān)的看到是否將新的數據成功添加了。不過(guò)在添加的時(shí)候選擇域的那一步需要將我之前添加的字段全部勾上,如下:

OK,現在已經(jīng)對該表單添加了兩個(gè)數據連接,這兩個(gè)數據連接均需勾上“在表單打開(kāi)時(shí)自動(dòng)檢索數據”這個(gè)選項。
好了,接收數據的工作到這里就已經(jīng)做完了,接下來(lái)需要做的是提交數據了,先將InfoPath表單做好,首先將查看數據的部分先做好,在域中選擇輔助數據源“Reporting Data”,建立一個(gè)重復表用來(lái)展示列表的數據:

建完后然后建立一個(gè)提交數據的表,在域中選擇輔助數據源“添加新項目”,選擇Field組,建立一個(gè)重復表:

建完后再在表單中添加一個(gè)按鈕,用來(lái)做提交,然后給之前建立的兩個(gè)重復表添加列名,做完后整個(gè)表如下:

現在整個(gè)表單的結構設計基本就完成了,但是還差一步,也是最重要的一步,就是數據提交,這里我才用的Web Service提交,新建一個(gè)提交數據的數據連接,選擇“提交到Web服務(wù)”,如下:

然后在Web服務(wù)中輸入:http://YourServerName/_vti_bin/Lists.asmx,下一步,選擇UpdateListItems方法:

然后下一步,將參數listName設置為主數據源的listName域:

將updates參數設置為輔助數據源“添加新項目”的Batch組,特別要注意的一點(diǎn)就是包括那里必須選擇為“XML 子樹(shù)(包括選定元素)”:

好了,這下提交數據的連接也有了,下面就對表單中的按鈕做提交設置,選中按鈕,右鍵選擇其“屬性”,在常規一欄中將操作設置為“提交”,然后單擊“提交選項”,選擇“使用規則執行自定義操作”,然后將提交后的選項選擇“保持表單打開(kāi)”,這個(gè)的目的是為了能立即看到是否添加數據成功了,具體操作界面如下:

由于我所選擇的是“使用規則執行自定義操作”提交數據,所以還需要設置下規則,為了提交完能立即看到新的數據,所以提交完數據后需要做一次查詢(xún)操作:

現在幾乎所有的工作都做完了,但是我們提交到哪個(gè)列表呢,好像還沒(méi)指定吧,所以還需要最后一步,給主數據源的listName設置域值,這里可以設置為目標列表的名稱(chēng),如我最開(kāi)始建立的列表“Reporting Data”,或者填寫(xiě)該列表的Guid值,列表的Guid值如何取得呢?有個(gè)很簡(jiǎn)單的方法,打開(kāi)我最開(kāi)始建立的列表,在Ribbon上選擇“列表設置”,然后去看URL地址欄,發(fā)現URL為http://ServerName/_layouts/listedit.aspx?List=%7B3D955683%2D4AB0%2D470C%2DB309%2D315BD9755850%7D

URL中的QueryString “List”的值即為該列表的Guid,但是還不是Guid的格式,這里需要更改一下,將“%7B”替換為“{”,“%2D”替換為“-”,“%7D”替換為“}”,所以上面的一串字符串替換成Guid就變成了{3D955683-4AB0-470C-B309-315BD9755850},將此Guid值或列表名填寫(xiě)在listName域的默認值中:

然后點(diǎn)擊確定,OK,所有的設置就全部結束了,現在選擇“預覽表單”,就看到了如下的界面,上面顯示了“Reporting Data”列表中現在已經(jīng)存在的值,下面就是用來(lái)填寫(xiě)新數據的表:

下面填寫(xiě)一組數據提交測試一下吧,新的數據提交完立馬就能在上面看到了。
聯(lián)系客服