我有一個Infopath表格,發佈到Sharepoint 2013,用戶使用人員選取器精確選擇一個人。在表單之外,我有列DisplayName和AccountID。我希望正在查看列表的用戶僅查看由他修改的,由他創建的對象,或者如果他被選中的對象。如何根據在Infopath表單中選擇的用戶過濾Sharepoint中的視圖?
試圖限制基於瀏覽器的視圖創建者的視圖很可能是不可能的,因爲外部可用的列都不是User
類型。然後,我轉移到Sharepoint Designer 2013,並跳入CAML。這也沒有幫助。
如何檢查當前登錄的用戶是否與在表單中選擇的用戶相同?我嘗試使用CAML,但沒有效果(最後FieldRef
是對列的引用,在這個例子中是AccountID)。
<Where>
<Or>
<Or>
<Eq>
<FieldRef Name="Editor"/>
<Value Type="Integer">
<UserID Type="Integer"/>
</Value>
</Eq>
<Eq>
<FieldRef Name="Author"/>
<Value Type="Integer">
<UserID Type="Integer"/>
</Value>
</Eq>
</Or>
<Eq>
<FieldRef Name="_638fe3aa_9161_4aa5_8bd1_862678d9fc06"/>
<Value Type="Integer">
<UserID Type="Integer"/>
</Value>
</Eq>
</Or>
</Where>
如果這可以從代碼InfoPath中來實現,或者以任何其他方式,答案也將被廣泛接受 - 我不想要的是基於CAML的答案,我想任何可行的回答我的問題:)
我現在無法檢查它,因爲我將繼續工作一週,但我確定人員選擇器不會創建'user'類型的列,而是具有三列類型的行的集合'string'。當試圖在外面顯示'selectedUser'時,InfoPath顯示,它將成爲選定值的計數器。儘管我沒有嘗試過,並且一回到工作崗位就會嘗試。 –
完全可以將InfoPath人員選擇器保存到SharePoint中的個人/組列,事實上,如果要創建新列表並添加個人或組列,然後在InfoPath中編輯表單,這將是默認行爲。當您查看InfoPath中的用戶數據時,它似乎分解爲各種文本字段,但這正是InfoPath處理基礎對象的方式。 –
經過兩次檢查,我必須說設置爲外部列後,列'Person'是int類型。正如我之前提到的那樣,這是反面的。 –