1

特定の日にすべてのアイテムを取得したい。プログラムによって、エントリは定期的なイベントとして追加されます。次に、ユーザーが選択した日付に従って、定期的なイベントのすべてのインスタンスを取得する必要があります。

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
                            }
4

2 に答える 2

1

問題はアイテムの保存にあり、EventDate&EndDateは同じ日に保存されました。

于 2012-12-01T05:52:06.913 に答える
0

問題は、使用していることです<Today/>。クエリで既に CalendarDate プロパティを設定しているため、代わりに<Week/>orを使用<Month/>して残りの項目を取得することをお勧めします。

于 2012-11-30T14:43:06.437 に答える