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字段类型,所以会有字符出现,这里我没有做处理,需要的可以自行更改。

Sharepoint lookup字段的关联列表查询相关推荐

  1. SharePoint 2013 中代码创建列表查阅项字段

    1.首先,打开VS创建两个List Definition,各自是Address和City,例如以下图: 2.City列表里改动Title为City Name,事实上内部名称还是Title,注意一下: ...

  2. MongoDB中的聚合管道($lookup多表关联查询、$unwind、$match、$project)

    MongoDB中的聚合管道($lookup多表关联查询.$unwind.$match.$project) 管道的概念 聚合框架 $lookup的功能及语法 主要功能 基本语法 例子 说明 $unwin ...

  3. Sharepoint学习笔记—ECMAScript对象模型系列-- 7、获取和修改List的Lookup字段

    在前面我们提到了如何使用ECMAscript对象模型来操作普通的List Items,但如果我们操作的List包含有Lookup字段,那么我们又该怎么做呢? 首先参考此文搭建我们本文的测试环境 Sha ...

  4. SharePoint【ECMAScript对象模型系列】-- 07. 获取和修改List的Lookup字段

    在前面我们提到了如何使用ECMAscript对象模型来操作普通的List Items,但如果我们操作的List包含有Lookup字段,那么我们又该怎么做呢? 首先参考此文搭建我们本文的测试环境 Sha ...

  5. Day109.尚医通:集成Nacos、翻译字段、医院列表分页条件、下拉列表查询、医院状态、医院详情

    目录 一.搭建Nacos服务 二.医院需求分析 三.医院列表功能(接口) 1.医院列表接口初步实现 2.cmn模块 实现翻译字段接口服务 3.实现跨模块远程调用 4.在 hosp 实现跨模块调用 四. ...

  6. SharePoint中跨列表查询

    1,最近的项目中遇到一个需求,站点中有几十个列表,其中每5,6个列表属于一个模块下的.客户的需求是,首页上显示一个模块下所有列表数据的前5条,并按创建时间排序. 2,刚刚考虑到这块的实现方法时,用的是 ...

  7. SpringBoot使用JPA多表关联动态查询指定字段

    SpringBoot使用JPA多表关联动态查询指定字段 目标需求 Maven依赖 项目结构 代码 运行结果 源码下载 目标需求 在SpringBoot中用JPA实现多表关联动态查询,并且只查询指定字段 ...

  8. Sharepoint学习笔记---SPList--创建一个带有Lookup字段的List

    这里我们用代码创建一个带有Lookup字段(名为: LookupStaffName)的List (名为:TestSale),它的Lookup字段从另一个名为SaleStaff的List中获取. 因此, ...

  9. SharePoint2010 对象模型 关联列表

    有关列表的创建其实网上已经有很多文章了,其中练习 :利用Visual Studio 2010创建列表这篇文章个人感觉还不错,这里我强调的是对象模型来创建.在这之前我插入一点其他的东东,导入电子表格和数 ...

  10. Mybatis实现多对多关联组合查询

    个人网站:http://xiaocaoshare.com/ 1.需求 用户信息表.标签表.用户标签关联信息表 在做用户列表查询的时候,需要查询出该用户对应的用户标签 <resultMap id= ...

最新文章

  1. 无线信号功率计算公式(自由空间模型,地面反射模型)
  2. 应用架构设计原则、模式摘录
  3. 一台台式计算机的主要配件有哪些,电脑的基本配件有哪些
  4. GAN之父NIPS 2016演讲现场直击:全方位解读生成对抗网络的原理及未来(附PPT)
  5. 边缘检测(5)Canny算法
  6. 局域网中另外一台服务器的内存_局域网共享打印机,但另外一台电脑却看不到,可能是这3个原因...
  7. ProPublica Illinois如何每天使用GNU Make加载1.4GB数据
  8. python读取大数据量xml_多快好省地使用pandas分析大型数据集
  9. 计算机单词大全及缩写,计算机英文单词和缩写
  10. 【Oracle】ORA-04031错误解决
  11. NodeJs 实现 WebSocket 即时通讯(简单版)
  12. [书目20080630]人一生要养成的50个习惯
  13. 一句“哭什么哭”,说得好
  14. CTP: 平昨仓与平今仓,log轻轻告诉你.......
  15. 【数据分析】重要环节--缺失值怎么处理
  16. 60秒轻松计算出任意一年任意一天星期几?
  17. Lambda表达式的学习
  18. DSSD : Deconvolutional Single Shot Detector
  19. 关于esxi主机上vm无法ping通edge网关设备ip的处理
  20. 隆重推荐Gloo:旨在成为您房间装饰亮点的时尚无线充电站

热门文章

  1. iOS多张图片合成一个视频
  2. java怎么停止工作_Java停止工作怎么办
  3. 统计学之偏度系数和峰度系数
  4. 电脑只能上微信不能打开网页_能上微信不能打开网页
  5. 使用 reduce 函数计算阶乘
  6. ps界面为啥突然变大了_PS如何用快速蒙版抠图,超实用的技巧!!!
  7. linux系统中source什么意思,Linux中source是什么指令?
  8. SPSS单因素方差分析流程 分析某因素对试验结果是否有显著影响
  9. Ubuntu 安装 peek 动态截图软件
  10. 基于mpvue创建微信小程序项目