繁体   English   中英

如何根据在Infopath表单中选择的用户过滤Sharepoint中的视图?

[英]How to filter the view in Sharepoint, basing on user selected in Infopath form?

我有一个发布到Sharepoint 2013的Infopath表单,其中用户使用人员选择器选择一个人。 在表格之外,我有DisplayName和AccountID列。 我希望正在查看列表的用户只能看到由他修改,由他创建或在表单中被选中的对象。

试图限制基于浏览器的视图创建器的视图很可能是不可能的,因为外部可用的列都不属于User类型。 然后,我移至Sharepoint Designer 2013,并涉足CAML。 这也没有帮助。

如果当前登录的用户与表单中选择的用户相同,该如何检查? 我尝试使用CAML,但没有任何效果(在此示例AccountID中,最后一个FieldRef是对列的引用)。

  <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的答案,我希望对我的问题有任何可行的答案:)

对于要设置为[Me]的要过滤的每个列,在视图中都有一个简单的过滤器应仅向登录用户显示与自己相等的人员选取器值。

如果表单中的字段是人员选取器,那么您必须将用户数据存储在某处的列中,除非您在使用规则更新其他字段来处理数据后将其丢弃。 如果是这样,我不明白为什么您不能将人员选择器数据存储在视图中未显示的列中。 您不必将过滤器基于正在显示的字段即可正常工作,并且您已经在使用正确的控件类型来获取所需的数据。

“创建者”和“修改者”列始终是用户值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM