[SharePoint 2007/2010]Query SharePoint Calendar Event
首先要搞清楚日历事件的各种类型,参考文章:
| Type | Description | fRecurrence | fAllDayEvent | EventType | 
| Single event | 
 An event created with the All Day Event and Recurrence checkboxes unselected.  | 
FALSE | FALSE | 0 | 
| All-day event | 
 An event created with the All Day Event checkbox selected.  | 
FALSE | TRUE | 0 | 
| Recurring event | 
 An event created with the Recurrence checkbox selected. Has a recurrence icon in the All Events view. Appears as a single master event on the All Events view, but as recurring instances on the Current Events and Calendar views.  | 
TRUE | FALSE | 1 | 
| Recurring all-day event | 
 Same as above, but with the All Day Event checkbox selected at creation time.  | 
TRUE | TRUE | 1 | 
| Recurrence exception | 
 Created by editing an instance of a recurring event. Has a strikethrough recurrence icon in the All Events view.  | 
TRUE | FALSE | 4 | 
| All-day recurrence exception | 
 Same as above, but created by editing an instance of an all-day recurring event.  | 
TRUE | TRUE | 4 | 
| 
 Deleted instance of a recurring event  | 
 Created by deleting a instance of a recurring event. Title is prefixed with “Deleted:” in the All Events view, and is hidden in the Current Events and Calendar views.  | 
TRUE | FALSE | 3 | 
| 
 Deleted instance of an all-day recurring event  | 
 Same as above, but created by deleting an instance of an all-day recurring event.  | 
TRUE | TRUE | 3 | 
重复事件
| Field | Value for single event | Value for recurring event | 
| EventDate | Start date and time | 
 Start date and time set for the recurring event when it was created, which may be an earlier date than the first instance of the recurring event.  | 
| EndDate | End date and time | 
 End date and time for the last instance of the recurring event. For recurring events with no end date, this is a computed date several years in the future.  | 
| Duration | 
 The time in seconds between EventDate and EndDate.  | 
The duration in seconds of an individual instance of the recurring event. | 
特例事件和已删除事件
| Field | Value for exception or deleted instance | 
| MasterSeriesItemID | 
 The ID of the recurring event from which this exception or deleted instance was made.  | 
| RecurrenceID | 
 The date and time of the instance of the recurring event which this exception or deleted instance takes the place of.  | 
重复事件的重复模式
| Recurrence type | RecurrenceData field value | 
| Daily every 1 days, no end date | 
 <recurrence> <rule> <firstDayOfWeek>su</firstDayOfWeek> <repeat><daily dayFrequency="1" /></repeat> <repeatForever>FALSE</repeatForever> </rule> </recurrence>  | 
| 
 Weekly every Monday, Tuesday, and Wednesday, end by 5/31/2007  | 
 <recurrence> <rule> <firstDayOfWeek>su</firstDayOfWeek> <repeat> <weekly mo="TRUE" tu="TRUE" we="TRUE" weekFrequency="1" /> </repeat> <windowEnd>2007-05-31T22:00:00Z</windowEnd> </rule> </recurrence>  | 
| 
 Monthly the third Wednesday of every 2 months, no end date  | 
 <recurrence> <rule> <firstDayOfWeek>su</firstDayOfWeek> <repeat> <monthlyByDay we="TRUE" weekdayOfMonth="third" monthFrequency="2" /> </repeat> <repeatForever>FALSE</repeatForever> </rule> </recurrence>  | 
| Yearly every May 18, end after 10 instances | 
 <recurrence> <rule> <firstDayOfWeek>su</firstDayOfWeek> <repeat><yearly yearFrequency="1" month="5" day="18" /></repeat> <repeatInstances>10</repeatInstances> </rule> </recurrence>  | 
虽然事件的重复模式是以XML格式储存,但在使用ClientObjectModel查询时,并不需要手动去解析XML。
使用SPQuery对象查询时,需指定以下属性:
ExpandRecurrence -- 是否展开重复事件
CalendarDate -- 指定查询的参考时间
查询每日事件
using (SPSite site = new SPSite(siteUrl))
{
using (SPWeb web = site.OpenWeb())
{
SPList calendar = web.GetList(listUrl);
SPQuery caml = new SPQuery();
caml.Query = @"<Where>
<DateRangesOverlap>
<FieldRef Name='EventDate' />;
<FieldRef Name='EndDate' />
<FieldRef Name='RecurrenceID' />
<Value Type='DateTime'><Today /></Value>
</DateRangesOverlap>
</Where>"; caml.ExpandRecurrence = true;
caml.CalendarDate = DateTime.Now; return calendar.GetItems(caml);
}
}
查询每周事件
caml.Query = @"<Where>
<DateRangesOverlap>
<FieldRef Name='EventDate' />;
<FieldRef Name='EndDate' />
<FieldRef Name='RecurrenceID' />
<Value Type='DateTime'><Week /></Value>
</DateRangesOverlap>
</Where>";
查询每月事件
caml.Query = @"<Where>
<DateRangesOverlap>
<FieldRef Name='EventDate' />;
<FieldRef Name='EndDate' />
<FieldRef Name='RecurrenceID' />
<Value Type='DateTime'><Month /></Value>
</DateRangesOverlap>
</Where>";
查询每年事件
caml.Query = @"<Where>
<DateRangesOverlap>
<FieldRef Name='EventDate' />;
<FieldRef Name='EndDate' />
<FieldRef Name='RecurrenceID' />
<Value Type='DateTime'><Year /></Value>
</DateRangesOverlap>
</Where>";
[SharePoint 2007/2010]Query SharePoint Calendar Event的更多相关文章
- [Beginning SharePoint Designer 2010]探索SharePoint Designer
		
本章概要: 1.SharePoint Designer是如何进入到微软的工具集中去的 2.SharePoint Designer的基本特性 3.如何创建SharePoint站点 4.如何打开一个已经存 ...
 - 更改SharePoint  2007/2010/2013 Web 应用程序端口号
		
之前创建的Web应用程序端口为80,因为其他需要要将端口更改为85,下面是具体步骤: 第一步:更改IIS绑定. 打开IIS服务管理器,右击需要更改的站点,选择编辑绑定. 在打开的网站绑定窗口,选择端口 ...
 - WIN中SharePoint Server 2010 入门安装部署详解
		
目前流行的原始安装文件基本都是这样的:Windows Server 2008 R2+SQL Server 2008R2+SharePoint Server 2010 这个初始环境原本也无可厚非 ...
 - SharePoint Server 2010 中的基本任务
		
SharePoint Foundation 和 SharePoint Server 概述 SharePoint Foundation 2010 是一项用于 SharePoint 网站的基础技术,它可以 ...
 - SharePoint Srver 2010 资源汇总
		
转:http://bbs.winos.cn/thread-93681-1-1.html Microsoft SharePoint Server 2010 是适用于企业和网络的业务协作平台,可以帮助您通 ...
 - 【SharePoint 2010】SharePoint 2010开发方面的课堂中整理有关问题
		
SharePoint 2010开发方面的课堂中整理有关问题陈希章 ares@xizhang.com1. 对于SharePoint的体系结构不甚清楚,觉得有点乱了解了就不会觉得乱了,请理解1) 场服务 ...
 - SharePoint Server 2010安装图解
		
SharePoint Server 2010作为MOSS 2007的升级版本,自从2009年底发布Beta版本以来就备受关注,网络上已经出现了很多相关的文章,其中也不乏中文的信息. 最近SharePo ...
 - SharePoint 2013/2010 中的日历重合 (Calendars Overlay)
		
本文介绍 SharePoint 2013/2010 中的日历重合 (Calendars Overlay). 日历重合 (Calendars Overlay)的用途就是将 不多于10个日历或日历视图聚集 ...
 - 【SharePoint 2010】将Sharepoint Server 2010部署到WINDOWS 7
		
1.部署-安装环境: 在这里先说明一下:2007的版本中我们只能装在WINDOWS 2003 SERVER 上,这种限制在2010被彻底打破了.我们可以将它安装在VISTA/WINDOWS 7/SER ...
 
随机推荐
- Yii2 数据查询
			
转载来自: http://www.yiichina.com/tutorial/95 数据查询 User::find()->all(); 此方法返回所有数据: User::findOne($id) ...
 - Xib中UIScrollView添加约束步骤
			
要往scrollView里面添加子控件--从向往下排 0.设置scrollView的上下左右约束距离控制器view边距为零(确定frame的大小) 1.要往scrollView添加一个内容View 2 ...
 - 《DSP using MATLAB》示例Example5.8
			
代码: n = [0:1:99]; x = cos(0.48*pi*n) + cos(0.52*pi*n); n1 = [0:1:9]; y1 = x(1:1:10); % N = 10 figure ...
 - [spring源码学习]五-BeanPostProcessor的使用
			
一.接口描述 spring提供了一个接口类-BeanPostProcessor,我们叫他:bean的加工器,应该是在bean的实例化过程中对bean做一些包装处理,里边提供两个方法 public in ...
 - Django学习笔记之二
			
一.使用Django自带的后端管理平台 1.后台创建管理员 python manage.py createsuperuser Email address: admin@example.com Pass ...
 - pointers on c (day 1,chapter3)
			
第3章 数据 c中,仅有4中基本数据类型——整型.浮点型.指针和聚合类型(如数组和结构等). 整型:字符.短整型和长整型,它们都分为有符号(signed)和无符号(unsigned). short i ...
 - Leetcode Minimum Window Substring
			
Given a string S and a string T, find the minimum window in S which will contain all the characters ...
 - ZooKeeper个人笔记Session管理
			
Session 1.sessionId <机器的SID,当前时间>生成一个sessionId,这是全局唯一的. 2.TimeOut 会话的超时时间,注意,这个值和客户端ZooKeeper ...
 - 我的jQuery源码读后感
			
(function(window, undefined) { // 构造jQuery对象 var jQuery = (function() { var jQuery = function(select ...
 - C#_Express-ickd接口
			
爱查快递接口使用 using System; using System.Collections.Generic; using System.IO; using System.Net; using Sy ...