特定の日にすべてのアイテムを取得したい。プログラムによって、エントリは定期的なイベントとして追加されます。次に、ユーザーが選択した日付に従って、定期的なイベントのすべてのインスタンスを取得する必要があります。
TIME
例: 9 月 12 日に 3 つの定期的なエントリを作成し、9 月 21 日に終了します。ROOM NAME
選択した日付に従って、12 日、13 日、14 日、というように 21 日までのすべてのアイテムを取得したいと考えています。
以下は、選択した日のすべてのエントリを取得するために使用しているコードです。ここで発生している問題は、日付を 12thSept として選択し、他のすべての日付、つまり 13 日から 21 日までを選択した場合にのみ、クエリがアイテムを返すことです。クエリは結果を返しません。
SPQuery oQueryBookings = new SPQuery();
string strQuery = "";
oQueryBookings.ExpandRecurrence = true;
//oQueryBookings.Query = strQuery;
oQueryBookings.CalendarDate = date.Date;
SPListItemCollection oCollBookings = null;
strQuery = "<Where><And><DateRangesOverlap><FieldRef Name='EventDate' />" +
"<FieldRef Name='EndDate' />" +
"<FieldRef Name='RecurrenceID'/>" +
"<Value Type='DateTime'>" +
"<Today />" +
"</Value>" +
"</DateRangesOverlap>" +
"<Eq><FieldRef Name='Room' /><Value Type='Lookup'>" + room + "</Value></Eq>" +
"</And></Where>";
oQueryBookings.ViewFields = string.Concat("<FieldRef Name='Title' />" +
"<FieldRef Name='EventDate' />" +
"<FieldRef Name='EndDate' />" +
"<FieldRef Name='Location' />" +
"<FieldRef Name='Description' />" +
"<FieldRef Name='fRecurrence' />" +
"<FieldRef Name='RecurrenceData' />" +
"<FieldRef Name='fAllDayEvent' />" +
"<FieldRef Name='LinkTitle'/>" +
"<FieldRef Name='Room'/>");
oQueryBookings.Query = strQuery;
oCollBookings = list.GetItems(oQueryBookings);
if (oCollBookings.Count > 0)
{
//Code Here
}