在做infopath 2007相關的專案中,我們經常使用infopath來呼叫sharepoint 2007的web service. 那麼如今sharepoint 2010支援了rest,我們可以嘗試呼叫rest。
需求:自定義乙個sharepoint 2010 列表的表單。要求在使用者輸入「title」時,檢查一下當前列表中是否有相同title的item存在,如果存在的話,禁止表單的提交。
思路:使用infopath 2010呼叫rest實現。首先通過rest去列表中查詢是否有title等於當前表單填寫的item,如果有的話,返回結果,並且禁止提交。如果查詢不到,則允許提交。
第一步,自定義表單。點選列表專案的」自定義表單」,然後對表單做一些簡單的處理,如下圖。(列表的列有:title, mydate以及query result,這個是記錄title的rest查詢的返回結果的)
第二步,新增資料來源. 我們需要新增乙個「接收資料(receive data)」的資料來源。我現在需要查詢的是列表testlist,所用rest的url如下: 「http://servername/_vti_bin/listdata.svc/testlist」
第三步,對infopath的rule新增邏輯。
選中表單中的title文字框,新增乙個「當字段的值發生變化時(this field changed)」使用「查詢資料(query for data)」.rules的邏輯和呼叫web service(時的邏輯基本類似:拼接rest, 執行查詢並且返回結果。
拼接rest:
concat("http:///_vti_bin/listdata.svc/testlist", "?$filter=title eq ", "'", title, "'")執行查詢:這裡只需要做乙個指向於data connection的「query for data」的活動即可。
返回查詢結果:(我這裡對返回的結果的幾個屬性做了拼接,並且把結果的值返回到query result這個文字中)
第四步,增加驗證。
我的驗證邏輯是:如果查詢沒有返回結果,表示相同title的item不存在;如果有返回結果,表示存在相同title的item。對title的文字控制項在增加乙個驗證(validating)的邏輯:
condition: qurey resultis not blank.
screentip: the item has existed.
第五步,發布表單。
接下來,就去驗證你的邏輯吧!
注意:1.在使用sharepoint 2010的rest的時候,首先要安裝ado.net 3.5sp1:
2.在你拼接rest時,你最好先在url測試一下,檢查是否能用。
參考:
Infopath2010 實現大寫金額的方法
infopath2010自帶的函式中無大寫金額的轉換,只能通過程式設計方式來實現,步驟如下 1 先插入兩個textbox,如圖所示 2 點選開發工具,語言c 3 開啟 編輯器 4 全部 如下 namespace 金額轉換 set 注意 以下是 microsoft infopath 所需的過程。可以使...
如何在InfoPath2010中轉換主資料來源
使用過infopath2007的人應該都知道,我們在設計或編輯乙個infopath表單時,除了可以在設計介面的同時構建主資料來源外,還可以事先將編輯好的主資料來源xsd檔案匯入到infopath中,然後根據資料來源的結構來設計表單介面。下面是這兩種方法的一些簡單介紹 在xsd中將節點定義為支援inf...
為Infopath2010重複表新增自動遞增的行號
在重複表裡使用自動遞增行號中infopath2010與infopath2007有點不大一樣,2010版本已經刪除了position函式。不過沒關係,2010一樣支援行號的。使用下面的表示式 count preceding sibling local name yourrepeatinggroupna...