我在SSRS中构建了两个报告:一个主报告和一个子报告。子报表嵌入在主报表中。子报表有几个参数:开始日期,结束日期等。
然后我尝试运行主报告并收到错误,说明子报告无法显示。我搜索了这个错误并发现传递给子报表的参数类型应该与子报表接受的参数类型匹配。
考虑到这一点,我检查了十几次传递给子报表的参数类型。没有运气。
答案 0 :(得分:0)
我回答了我自己的问题,因为我最终想出了这个,没有任何运气从谷歌找到解决方案。另外我认为其他人可能会遇到同样的问题。
此问题类似于类型问题的特例。虽然传递给子报表的数据类型应与子报表所使用的参数类型相匹配,但当您尝试传递DATETIME类型时,故事会更改。
假设您的主报告包含一些DATETIME类型参数(在我的情况下,我的主报告采用开始日期和结束日期,两者都是DATETIME类型参数)。当您调用也采用DATETIME参数的子报表时,您需要将DATETIME类型更改为TEXT类型(在SSRS的上下文中)或字符串。保持DATETIME类型将导致不显示子报表的错误。
我认为这可能是由于应该在子报表中接受的DATETIME类型在场景后隐式转换为TEXT类型。
UPDATE(12/05/2017):我应该更清楚一点:通过更改数据类型我并不是说你应该改变参数的类型,但你应该考虑在传递时在表达式中使用Format函数此子参数的DATETIME类型参数,以便将此参数格式化为字符串。