将日期作为参数传递到子报表/其他报表以用作参数

时间:2009-09-18 05:33:28

标签: reporting-services subreport

我有两份报告。第一个报告从下拉框中选择报告类型,并接受从/到日期,并在单击视图报告时 - 列出此报告类型的客户名称。

当您点击customername时,第二个报告被调用(操作)传递3个参数 - customernamedatefromdateto作为要用于的参数第二份报告。

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

  

'为报告参数'reportdatefrom'提供的值不是   对于其类型'(rsReportParameterTypeMismatch)

有效

请帮忙。

3 个答案:

答案 0 :(得分:1)

使用格式(参数!reportdatefrom.Value,“YYYYMMDD”)之类的内容将值强制转换为规范字符串,然后再将其传递给子报表。

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

无论如何,为了解决这个问题,只需将日期转换为ODBC规范形式的字符串文字,然后再传递它们。

答案 1 :(得分:0)

这也取决于您如何将URL传递到子报告中。

如果您通过主报表中的SubReport对象传递它,并通过URL选项传递Action属性:

enter image description here

我建议您创建URL字符串,并为其添加满足子报表参数要求所需的字段引用。

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

这样你就强迫SSRS将整个字段值渲染为一个字符串,并使用Fields表中的正确值。

答案 2 :(得分:0)

检查第2个报告中的类型参数两个参数!来自和参数!要是日期时间类型,但我不知道你称之为第2次报告的方法,但在我的情况下,我是这样的

右键单击Textbox>属性>选择左窗格上的操作>选择转到报告选项,如下图

enter image description here

然后添加参数以发送到第2个报告。

确保参数!From和To(两个报告)都是日期时间类型。