我想将过滤器应用于Sharepoint列表:
(((user == currentuser)&&(dept ==“editor”))&&((status == published)||(status == edited)||(status == printed )))
这是我的代码
<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>
提前感谢您的帮助
答案 0 :(得分:0)
有助于在CAML中使用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>