Sharepoint 2007 在采用CAML 查询人员和组时有个缺点,就是会用人员的显示名进行查询,

<where>
<eq>
<fieldref name="Employee"/>
<value type="User">zhang san</value>
</eq>
</where>

例如上例中查询叫做zhang san 的人,如果公司中有多个叫张三的人,就会出现问题, 
目前有两种解决办法,但都不是很好

1. 在设置list中的Employee列时,修改该列的显示方法,采用帐户的方式显示,这样在CAML中就能用mydomain\zhangsan1的形式来查询,但这种办法影响了正常的显示。
2.对人员的ID进行查询,如果能确定人员的ID,则可以采用以下方法查询,准确,且不会影响显示。

<where>
<eq>
<fieldref name="PersonFieldName" LookupId="TRUE"/>
<value type="int">UserID</value>
</eq>
</where>