我有两份报告。第一个报告从下拉框中选择报告类型,并接受从/到日期,并在单击视图报告时 - 列出此报告类型的客户名称。
当您点击customername
时,第二个报告被调用(操作)传递3个参数 - customername
,datefrom
和dateto
作为要用于的参数第二份报告。
当我单独运行每个报告时,两者都运行良好。当我运行第一个报告(选择报告类型,选择datefrom
/ dateto
)时,此报告会列出此报告类型的所有客户名称。当我点击customername
时,出现错误:
'为报告参数'reportdatefrom'提供的值不是 对于其类型'(rsReportParameterTypeMismatch)
有效
请帮忙。
答案 0 :(得分:1)
使用格式(参数!reportdatefrom.Value,“YYYYMMDD”)之类的内容将值强制转换为规范字符串,然后再将其传递给子报表。
SSRS有时会出现日期时间问题。 URL可寻址性意味着无论如何都会将所有参数值转换为字符串,但默认转换规则可以在组件之间运行。一个组件将生成另一个组件无法读取的日期时间文字。通常这是由于非美国区域设置。
无论如何,为了解决这个问题,只需将日期转换为ODBC规范形式的字符串文字,然后再传递它们。
答案 1 :(得分:0)
这也取决于您如何将URL传递到子报告中。
如果您通过主报表中的SubReport对象传递它,并通过URL选项传递Action属性:
我建议您创建URL字符串,并为其添加满足子报表参数要求所需的字段引用。
即
="http://serverXXXX/ReportServer?/FernandoReports/rptTET&rs:Command=Render&rc:toolbar=false&wsTETID=" + Fields!TETID.Value.ToString()
这样你就强迫SSRS将整个字段值渲染为一个字符串,并使用Fields表中的正确值。
答案 2 :(得分:0)