1

我在将报告参数传递给连接到 SharePoint 列表的报告后面的 CAML 查询时遇到了一些问题。我有一个参数 Date(日期时间类型)。

=Parameters!Date.Value在查询中使用,但默认情况下<CalendarDate>将当前日期作为默认日期,并返回当前日期的结果,即今天的日期。但是,如果我使用像报告这样的实际硬编码日期,2012-11-03T00:42:34Z 则效果很好。

所以我不确定我错过了什么,我的查询如下

<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetListItems</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap/" Name="GetListItems">
<Parameters>
<Parameter Name="listName">
<DefaultValue>Bookings</DefaultValue>
</Parameter>

<Parameter Name="query" Type="xml">
<DefaultValue>
<Query>
<Where>
<DateRangesOverlap>
<FieldRef Name="EventDate"/>
<FieldRef Name="EndDate"/>
<FieldRef Name="RecurrenceID"/>
<Value Type="DateTime">
<Today/>
</Value>
</DateRangesOverlap>
</Where>
</Query>
</DefaultValue>
</Parameter>

<Parameter Name="queryOptions" Type="xml">
<DefaultValue>
<QueryOptions>
<ExpandRecurrence>TRUE</ExpandRecurrence>
<CalendarDate>=Parameters!Date.Value</CalendarDate>
</QueryOptions>
</DefaultValue>
</Parameter>

<Parameter Name="ViewFields" Type="xml">
<DefaultValue>
<ViewFields>
    <FieldRef Name="Title" />
    <FieldRef Name="EventDate" />
    <FieldRef Name="EndDate" />
    <FieldRef Name="Room" />
    <FieldRef Name="Hosted_x0020_By" />
    <FieldRef Name="External_x0020_Attendees" />
    <FieldRef Name="Catering_x0020_Requirements" />
    <FieldRef Name="Fixed_x0020_Facilities" />
    <FieldRef Name="Other_x0020_Facilities" />
    <FieldRef Name="Company" />
    <FieldRef Name="Layout" />
</ViewFields>
</DefaultValue>
</Parameter>

</Parameters>
</Method>
<ElementPath IgnoreNamespaces="True">*</ElementPath>
</Query>

我尝试了不同的格式选项

=CDate(Parameters!Date.Value).ToString("yyyy-MM-ddTHH:mm:ssZ")

但它仍然无法正常工作,它只是返回当前日期的结果,即使我没有在 .

如果我放比它返回当天。我认为参数值根本没有在查询中传递。请帮助

4

1 回答 1

0

是针对同一问题的另一篇文章,这是解决此问题的方法。

于 2012-11-10T08:46:50.833 回答