Sharepoint lookup字段的关联列表查询
来源:互联网 发布:魏志香 知乎 编辑:程序博客网 时间:2024/05/02 00:31
Sharepoint lookup字段的关联列表查询
考虑到对lookup字段的CAML查询的模糊,在此举例验证。
1. 假设我有两个列表,薪资列表(Salary)和员工列表(Employee)。而薪资列表需要引用到员工编号,即lookup。
2. 薪资列表包含员工编号(Employee)和薪资(Salary)。
3. 员工列表包含员工编号(Employee), 员工名字(EmployeeFullName)和部门名称(EmployeeDepartment)
4. 现在我需要用CAML语句查询Salary列表, 并包含员工名字和部门,这里就需要用到列表的关联查询,具体如下:
a. 首先我用caml语句查询Salary列表。
SPQuery query = new SPQuery(); query.Query = @"<Where> <Gt> <FieldRef Name='Salary'/> <Value Type='Text'>2000</Value> </Gt> </Where>";
注意:该查询语句返回的是薪资大于2000的薪资信息。
b. 然后在关联到Employee列表。
query.Joins = @"<Join Type='LEFT' ListAlias='Employee'> <Eq> <FieldRef Name='Employee' RefType='Id'/> <FieldRef List='Employee' Name='Id'/> </Eq> </Join>";
注意:<FieldRef Name='Employee' RefType='Id'/>指定薪资列表lookup字段名称,RefType永远是Id; <FieldRef List='Employee' Name='Id'/> 指定了关联列表同名词,Name永远是Id。
c. 关联Salary列表里面引用的字段
query.ProjectedFields = @"<Field Name='FullName' Type='Lookup' List='Employee' ShowField='EmployeeFullName'/>";
注意: ShowField 指定员工名字字段,Name是该字段的引用名称, 这样才能将FullName在返回结果中使用。
d. 显示需要的字段信息。
query.ViewFields = @"<FieldRef Name='Employee'/> <FieldRef Name='Salary'/><FieldRef Name='FullName'/>";
5. 以下是完整代码:
SPQuery query = new SPQuery(); query.Query = @"<Where> <Gt> <FieldRef Name='Salary'/> <Value Type='Text'>2000</Value> </Gt> </Where>"; query.Joins = @"<Join Type='LEFT' ListAlias='Employee'> <Eq> <FieldRef Name='Employee' RefType='Id'/> <FieldRef List='Employee' Name='Id'/> </Eq> </Join>"; query.ProjectedFields = @"<Field Name='FullName' Type='Lookup' List='Employee' ShowField='EmployeeFullName'/>"; query.ViewFields = @"<FieldRef Name='Employee'/> <FieldRef Name='Salary'/><FieldRef Name='FullName'/>"; string str = ""; using(SPSite site = new SPSite("http://dev-sp")){ SPWeb web = site.RootWeb; SPList list = web.Lists.TryGetList("Salary"); SPListItemCollection items = list.GetItems(query); foreach(SPListItem item in items){ str += item["Employee"].ToString() + ":" + item["Salary"] + "-" + item["FullName"].ToString() + "\n"; } } Console.WriteLine(str); Console.ReadLine();
6. 查询结果:
注意: 由于员工是lookup字段类型,所以会有字符出现,这里我没有做处理,需要的可以自行更改。
0 0
- Sharepoint lookup字段的关联列表查询
- sharepoint列表关联
- 继续之前的Sharepoint Lookup
- SHAREPOINT - CAML列表查询
- SHAREPOINT - CAML列表查询
- SharePoint 2013 DateTime字段查询
- SharePoint Filtered Lookup Column in a List[Sharepoint过滤选项字段,无代码]
- sharepoint 2010 自定义字段开发(1) 创建一个简单的列表自定义字段
- crm2011创建Lookup类型的字段
- Sharepoint 列表字段赋值取值方法
- Custom Sharepoint Lookup Field
- mysql一个字段包含多个数据的关联查询
- 根据字段不同值关联查询不同表的问题
- SharePoint 2010: Lookup column在SQL里面的最大限制
- 对象左列表增加非对象关联表的字段,添加两个以上字段
- mybatis中如何查询一对多的关联列表数据
- SharePoint, 如何在列表项的只读界面DispForm.aspx控制字段的显示和隐藏
- SharePoint列表跟字段类型,网站栏,内容类型的关系
- 7000万嫁女煤老板折射中国式土豪困境:富而不贵
- 升级可能导致数据库不可用[待看]
- perl 文件/路径 读写删
- AwesomePlayer的准备工作
- 如何在iOS地图上高效的显示大量数据
- Sharepoint lookup字段的关联列表查询
- 明星煤老板的喜与忧
- 【分享】娱乐圈大V微博信息数据
- maven - Maven Weed
- ftp
- 现在就开始使用AngularJS的三个重要原因
- OSTREAM
- UIView的常见属性
- 用Android-X86和VirtualBox打造高性能Android开发环境