将日期作为参数传递给子报表/另一个报表以用作参数
我有两份报告。第一个报告从下拉框中选择报告类型并接受开始/结束日期,当单击查看报告时 - 列出该报告类型的客户名称。
当您单击 customername
时,将调用第二个报告(操作)并传递 3 个参数 - customername
、datefrom
和 dateto< /code> 作为第二个报告中使用的参数。
当我单独运行每个报告时,两者都运行良好。当我运行第一个报告(选择报告类型,选择datefrom
/dateto
)时,该报告列出了该报告类型的所有客户名称。当我点击 customername
时,出现错误:
'为报告参数'reportdatefrom'提供的值不是 对其类型有效' (rsReportParameterTypeMismatch)
请帮忙。
I have two reports. The first report selects a report type from a dropdownbox and accepts from/to dates and when click on the view report - lists customer names for this report type.
When you click on the customername
, the second report is called (action) passing 3 parameters - customername
, datefrom
, and dateto
as parameters to be used in the second report.
When I run each report individually, both run fine. When I run the first report (select report type, select datefrom
/dateto
), this report lists all customer names for this report type. When I click on the customername
, I am getting an error:
'The value provided for the report parameter 'reportdatefrom' is not
valid for its type' (rsReportParameterTypeMismatch)
Please help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用类似 format(Parameters!reportdatefrom.Value,"YYYYMMDD") 的方法将值强制转换为规范字符串,然后再将其传递到子报表。
SSRS 有时会出现日期时间问题。 URL 可寻址性意味着所有参数值无论如何都会转换为字符串,但默认转换规则在组件之间运行可能有所不同。一个组件将生成另一组件无法读取的日期时间文字。通常这是由于非美国区域设置造成的。
无论如何,要解决这个问题,只需将日期转换为 ODBC 规范形式的字符串文字,然后再传递它们即可。
Use something like format(Parameters!reportdatefrom.Value,"YYYYMMDD") to force the value into a canonical string before passing it to the subreport.
SSRS sometimes has issues w/ date times. The URL addressability means that all parameter values get converted to strings anyhow, but default conversion rules can run differ between components. One component will generate a date time literal that another component can't read. Usually this is due to non-US regional settings.
Anyhow, to get around this, just convert dates to string literals in ODBC canonical form before passing them around.
这还取决于您如何将 URL 传递到子报告中。
如果您通过主报表中的 SubReport 对象传递它,并通过 URL 选项传递 Action 属性:
我建议您创建 URL 字符串并向其中添加您需要实现的字段引用子报表的参数要求。
即,
这样您就可以强制 SSRS 将整个字段值呈现为一个字符串,并使用字段表中的正确值。
It depends too on how you're passing the URL into the sub-report.
If you're passing it via the SubReport object in your main report, and the Action property via the URL option:
I suggest you create the URL string and add to it the Field references you require to fulfill the subreport's parameter requirements.
ie
That way you're forcing SSRS to render the entire field value as one string with the correct value from the Fields table.
检查第二份报告中的类型参数参数!从和参数!到都是日期时间类型,但我不知道您调用第二份报告的方法,但在我的情况下,我用这种方式
右键单击文本框>;属性>选择左侧窗格中的“操作”>选择转到报告选项,如下图所示
然后添加参数以发送到第二个报告。
确保参数!From 和 To(均报告)为日期时间类型。
Check Type Parameter in 2st report Both Parameters!From and Parameters!To are Datetime Type but i dont know what method you call 2st report but in my case I you this way
Right click on Textbox > Properties > select Action on left pane > choose Go to Report option like this image below
Then add parameter to send to 2st report.
Make sure Parameters!From and To (both report) are Datetime Type.