質問

SPQueryとDataRangesoverLapに問題があります。

私のカレンダーの中では、今日起こらないイベントが3つあります。 spquery.query.Query私はこれらのイベントを除外したいです。 残念ながらすべてのイベントが返されます。テキスト列のためのConsule Filterはうまく機能しますが、DataRangeSoverLapはフィルタリングをしません。これが私のコードです:

SPListCollection oLists = oSiteCollection.AllWebs["MYSITE"].Lists;
String res = "";
SPQuery spquery = new SPQuery();
string datasel = SPUtility.CreateISO8601DateTimeFromSystemDateTime(caldata.SelectedDate.Date);

spquery.Query = "<Where><And><DateRangesOverlap><FieldRef Name=\"EventDate\" /><FieldRef Name=\"EndDate\" /><FieldRef Name=\"RecurrenceID\" /><Value Type=\"DateTime\" IncludeTimeValue=\"True\">Today</Value></DateRangesOverlap><Or><Contains><FieldRef Name=\"Title\" /><Value Type=\"Text\">" + tbnome.Text + "</Value></Contains></Or></And></Where>";
spquery.ExpandRecurrence = true;
spquery.RowLimit = 100;


foreach (SPList l in oLists)  {
  String title =  l.Title;
  if (title.IndexOf("MyCalendar")==0)  {

    SPListItemCollection items = l.GetItems(spquery);

    foreach (SPListItem item in items)
    {
      res += "<li>" + item["Title"]  + " date1 " + item["Start Time"] + " date2 " + item["End Time"] + "</li>";
    }
  }
}
res = "<ul>"+res+"</ul>";
.

役に立ちましたか?

解決

私は

を書いた
<Value Type=\"DateTime\" IncludeTimeValue=\"True\">Today</Value>
.

の代わりにp>
<Value Type=\"DateTime\" IncludeTimeValue=\"True\"><Today /></Value>
.

他のヒント

残念ながら、CAMLの日付のものはほとんどSharePointで吸います。時間に基づいて比較はできません、そして、私はDaterangesoverLapが繰り返しイベントのためにのみ機能すると思います。繰り返しまたは単一のインスタンスイベントを表示しないと予想されるイベントは?

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top