【问题标题】:Sharepoint Caml filter listSharepoint Caml 过滤器列表
【发布时间】:2013-11-30 06:23:04
【问题描述】:

我想对 Sharepoint 列表应用过滤器:

((((user == currentuser) && (dept == "editor")) && ((status == 已发布) || (status == 已编辑)|| (status == 已打印)))

这是我的代码

     <Where>
  <And>
     <And>
        <And>
           <And>
              <And>
                 <Eq>
                    <FieldRef Name='Author' />
                    <Value Type='Integer'>
                       <UserID Type='Integer' />
                    </Value>
                 </Eq>
                 <Eq>
                    <FieldRef Name='Dept' />
                    <Value Type='Text'>Editor</Value>
                 </Eq>
              </And>
              <Eq>
                 <FieldRef Name='Status' />
                 <Value Type='Text'>Published</Value>
              </Eq>
           </And>
           <Eq>
              <FieldRef Name='Status' />
              <Value Type='Text'>Draft</Value>
           </Eq>
        </And>
        <Eq>
           <FieldRef Name='Status' />
           <Value Type='Text'>Approved</Value>
        </Eq>
     </And>
     <Eq>
        <FieldRef Name='Status' />
        <Value Type='Text'>Printed</Value>
     </Eq>
  </And>

提前感谢您的帮助

【问题讨论】:

    标签: sharepoint sharepoint-2013 caml


    【解决方案1】:

    在您的 CAML 中使用 Or 运算符以及与您的查询相对应的过滤器值会有所帮助。查看您的查询,当文档在编辑部门并已发布、编辑或打印时,您似乎想要当前用户的所有内容。

    所以基本上你有一组条件 or 然后在上面应用 AND 条款。现在可能有一种更有效的方式来表达这一点,但以下符合您所拥有的逻辑条件。

    <Where>
      <And>
        <And>
          <Or>
            <Or>
              <Or>
                <Eq>
                  <FieldRef Name='Status' />
                  <Value Type='Text'>Published</Value>
                </Eq>
              </Or>
              <Eq>
                <FieldRef Name='Status' />
                <Value Type='Text'>Edited</Value>
              </Eq>
            </Or>
            <Eq>
              <FieldRef Name='Status' />
              <Value Type='Text'>Printed</Value>
            </Eq>
          </Or>
          <Eq>
            <FieldRef Name='Dept' />
            <Value Type='Text'>Editor</Value>
          </Eq>
        </And>
        <Eq>
          <FieldRef Name='Author' />
          <Value Type='Integer'>
            <UserID Type='Integer' />
          </Value>
        </Eq>
      </And>
    </Where>
    

    【讨论】:

      猜你喜欢
      • 2013-01-08
      • 1970-01-01
      • 2022-08-19
      • 1970-01-01
      • 2012-11-17
      • 2013-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多