CAML查询

时间:2009-06-19 15:50:05

标签: sharepoint caml

我想要一个CAML查询来从日历列表中获取事件。

我想在即将到来的30天内收到所有活动,包括今天。

到目前为止,我有:

<Where>
  <DateRangesOverlap>
    <Geq>
      <FieldRef Name=\"EventDate\" />
      <Value Type=\"DateTime\">
        <Today />
      </Value>
    </Geq>
    <FieldRef Name=\"EndDate\" />
    <FieldRef Name=\"RecurrenceID\" />
    <Value Type=\"DateTime\">
      <Month />
    </Value>
  </DateRangesOverlap>
</Where>

这不起作用:(任何想法?

2 个答案:

答案 0 :(得分:3)

正如Nat已经说过你暗示(但没有指明)你在日历列表中使用重复事件所以我假设那部分不起作用?

您需要在运行CAML查询之前设置SPQuery.ExpandRecurrancesSPQuery.CalendarDate属性,并且只能使用对象模型,而不是Web服务或通过在CAML中设置属性来执行此操作。 / p>

此外 - IIRC这只会扩展在与.CalendarDate相同的日历月中发生的重复事件的实例,因此您必须多次运行才能获得多月视图。

这是迄今为止我发现的经常性事件的最佳参考资料。

欢迎来到SharePoint中反复出现的事件的噩梦!

答案 1 :(得分:1)

重复实际上并不会将所有事件添加到列表中,但CAML只能查询存储在列表中的“实际”事件。