2012-11-07 22 views
0

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

我在查询中使用了=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(参数!Date.Value)的ToString( “yyyy-MM-ddTHH:mm:ssZ”)

但是它仍然不能正常工作,即使我不提供任何价值,它仍然会返回当前日期的结果。

如果我把它比当天返回。我想不知道该参数值在查询中根本没有传递。 请帮助

+0

如果您在运行报表时在TextBox中放置** = CDate(Parameters!Date.Value).ToString(“yyyy-MM-ddTHH:mm:ssZ”)**,您会看到什么? –

+0

值正确的文本框,但查询没有采取输入值,我做错了传递参数?该查询只是采用当天的默认日期并执行。 – Ishan

回答

0

Here是另一个问题,这是解决这个问题。