2009-09-18 20 views
5

我有两个报表。第一个报告从下拉列表中选择一个报告类型,并接受日期和时间点击查看报告 - 列出此报告类型的客户名称。将日期作为参数传递给子报表/另一个报表以用作参数

当你点击customername,第二份报告是所谓的(动作)传递3个参数 - customernamedatefrom,并且dateto为在第二份报告中使用的参数。

当我单独运行各个报告,都运行良好。当我运行第一份报告时(选择报告类型,请选择datefrom/dateto),此报告将列出此报告类型的所有客户名称。当我点击customername时,出现错误:

'The value provided for the report parameter 'reportdatefrom' is not valid for its type' (rsReportParameterTypeMismatch)

请帮忙。

回答

1

使用类似的格式(参数!reportdatefrom.Value,“年月日”)来强制值转换为规范的字符串将它传递给子报表之前。

SSRS有时有问题瓦特/日期时间。 URL可寻址性意味着所有参数值无论如何都会转换为字符串,但默认转换规则可以在组件之间运行。一个组件将生成另一个组件无法读取的日期时间字面值。通常这是由于非美国的区域设置。

总之,要解决这个问题,只是转换日期字符串字面量ODBC规范的形式传递左右他们面前。

+2

字符串表达式应该是正确的格式:格式(!参数reportdatefrom.Value,“年月日”)(注意了一年,一天小写)。在我的报告中有类似的问题和下面的表达式:= Format(Parameters!reportdatefrom.Value,“dd/MM/yyyy”) – 2014-09-18 11:15:55

0

它也取决于你如何将网址传递到子报告。

如果您是通过子报表对象传递给它在你的主报告,并通过URL选项的操作属性:

enter image description here

我建议你创建的URL字符串,并添加到它的场您需要完成子报表参数要求的参考。

="http://serverXXXX/ReportServer?/FernandoReports/rptTET&rs:Command=Render&rc:toolbar=false&wsTETID=" + Fields!TETID.Value.ToString() 

这样,你这是在强迫SSRS使整个字段值作为一个字符串从字段表正确的值。在2ST报告

0

检查类型参数两个参数!从和参数!为了有时间类型,但我不知道你所说的方法2ST报告,但在我的情况下,我对你这样

右键单击文本框>属性>选择在左窗格中的操作>选择转到报告选项这样的形象下面

enter image description here

然后添加参数发送给2ST报告。

确保参数!从和到(均报告)是DateTime类型。

相关问题