【问题标题】:Subreport Not Showing Error子报表未显示错误
【发布时间】:2017-12-06 10:22:26
【问题描述】:

我在 SSRS 中构建了两个报表:一个主报表和一个子报表。子报表嵌入在主报表中。子报表有几个参数:开始日期、结束日期等。

然后我尝试运行主报告并收到错误消息,指出无法显示子报告。我搜索了这个错误,发现传递给子报表的参数类型应该与子报表接受的参数类型匹配

考虑到这一点,我检查了十几次传递给子报表的参数类型。没有运气。

【问题讨论】:

    标签: reporting-services ssrs-2012


    【解决方案1】:

    我回答了我自己的问题,因为我最终想通了这一点,但没有从谷歌找到解决方案。我也认为其他人可能有同样的问题。

    这个问题就像类型问题的一个特例。虽然传递给子报表的数据类型应与子报表采用的参数类型相匹配,但当您尝试传递类型 DATETIME 时情况会发生变化

    假设您的主报告采用一些 DATETIME 类型参数(在我的情况下,我的主报告采用开始日期和结束日期,这两个都是 DATETIME 类型参数)。当您调用也采用 DATETIME 参数的子报表时,您需要将 DATETIME 类型更改为 TEXT 类型(在 SSRS 的上下文中)或字符串。保持 DATETIME 类型会导致不显示子报表的错误。

    我认为这可能是由于应在子报表中接受的 DATETIME 类型在幕后隐式转换为 TEXT 类型。

    更新(2017 年 12 月 5 日):我应该更清楚一点:通过更改数据类型,我并不是说您应该更改参数的类型,但您应该考虑在传递时在表达式中使用 Format 函数将此 DATETIME 类型参数添加到子报表中,以便此参数将被格式化为字符串。

    【讨论】:

    • 我不同意这一点..它一定是你的情况所独有的..我已经建立了很多报告就是这样做的,我从来不需要在传递参数之前转换它们..我会看在您的子报告中仔细查看它所期望的数据类型
    • @Harry 我的子报表中的两个输入参数 BeginDate 和 EndDate 都是日期时间类型。起初我可以运行主报告,但没有显示子报告,显示错误。我已经检查了几次,并确定我保持主报告和子报告的类型相同。哦,我应该这样说:在将参数传递给子报表时,我在表达式中使用了 Format 函数。我在表达式中格式化了 BeginDate 和 EndDate。
    • 奇怪..有时从主报告中删除子报告会有所帮助..将其重新添加并将参数传回..这不应该发生..
    • @Harry 是的,我也尝试过,但没有运气。我花了大约 5 到 6 个小时在这上面,幸运的是,我想通了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多