【问题标题】:Parameter is missing a value ssrs 2008参数缺少值 ssrs 2008
【发布时间】:2012-06-23 10:22:06
【问题描述】:

我有一个隐藏的整数数据类型参数。当我运行报告时,报告给我一个错误

参数 X 缺少值

但是,如果我使参数可见,它就可以工作。我尝试提供默认值 0 但这不足以满足我的要求,因为我的子报告(Drill-dowm)取决于此参数。请帮忙。谢谢!

【问题讨论】:

  • 嗯?如果您有一个既是隐藏参数又是 必需的,那么您必须 通过其他方式提供一个值。如果您这样做,请扩展您的答案并告诉我们您是如何做到的。如果没有这些信息,我们将无法为您提供任何进一步的帮助......

标签: reporting-services ssrs-2008


【解决方案1】:

确保您没有为参数指定可用值。内部和隐藏参数的可用值应为“无”。

【讨论】:

    【解决方案2】:

    首先,

    通过报告参数属性检查该参数的 - 可用值

    不得指定任何值。所以我们应该把它设置为None

    第二个解决方法是,

    只需在 Specify values 处添加一个空格 - 在 Default values 在报告参数属性中。

    这肯定会奏效。希望它能节省您的时间。

    【讨论】:

    • 如果必须从数据库中检索默认值(使用数据集)怎么办?将可用值设置为无不起作用。
    【解决方案3】:

    我必须做一个“如果存在”声明才能让它消失。它对我有用,因为它使它始终返回一个值,即使我的查询不需要该值。

        if exists (my select query)
        my select query
        else 
        select '2' 
        // '2' would never be used, but it made ssrs stop giving me
        // the stupid error and execute the rest of the query
    

    【讨论】:

      【解决方案4】:

      如果您从查询中指定可用值,则默认值必须在可用值列表中。 (Available) 中的默认值 = true。

      【讨论】:

        【解决方案5】:

        如果您有一个参数依赖于另一个参数,而数据集查询中没有“默认值”并且不接受空值,也会出现问题。

        例如:

        参数1有一个默认值:来自数据集“EmployeeSearch”的NameEmployee

        但是数据集“EmployeeSearch”在名为@Month 的查询中有一个过滤器或一个参数,用于指示月份的编号。所以如果@Month 的值为null,SSRS 会说“Parameter is missing a value”。

        【讨论】:

          【解决方案6】:

          假设您遇到与我相同的问题,尝试使用 ReportViewer 组件在网页上运行报告,我设法通过在呈现报告之前添加 null 参数来解决该问题:

          C# 代码:

          var parameters = new List<ReportParameter>();
          parameters.Add(new ReportParameter("ParameterName", (string)null));
          ReportViewer1.ServerReport.SetParameters(parameters);
          

          希望对你有所帮助

          【讨论】:

            【解决方案7】:

            只需添加 1 个默认值即可绕过此错误(即使永远不会使用该默认值)。

            -在该特定参数的“报告参数属性”下,转到“默认值”页面。

            -切换“指定值”

            -添加一个值(我添加了:“just_a_filler_to_get_around_hidden_​​value_error”,所以当我稍后回顾它时,我记得我为什么要做这样的事情)

            -点击确定

            【讨论】:

              【解决方案8】:

              我想添加到 dmbreth 的正确答案。

              我错过了参数的值仍然需要与某些东西相关联的概念。最初,我通过使用参数属性的可用值部分来绑定数据集的输出,但根据 dmbreth 的回答,情况并非如此。最后,我将输出依赖设置从 Available Values 部分移至 Default Values 部分,这样就成功了。

              所以,总而言之,在参数属性对话框中:

              常规页面 - 允许选中多个值(此选项特定于我的应用程序),参数可见性设置为内部

              可用值页面 - 无

              默认值页面 - 从查询中获取值,[适当的数据集,此处的值]

              高级页面 - 这里没有意义

              希望这足以让其他有同样问题的人受益......

              【讨论】:

                【解决方案9】:

                我遇到了类似的问题,SSRS 设置的默认值为(Null),但是我的报告不需要该参数;我发现它对测试过滤列表很有用,所以我保留了它,我想我可以在数据集配置的 SSRS 中删除它。但是我将其更改为=System.DBNull.Value(我想这可能是任何表达式),这对我有用,所以如果需要,我仍然可以传入一个值并设置可用值(必须确保 NULL 值是添加到我的数据集中)如果我决定在以后取消隐藏。

                【讨论】:

                  【解决方案10】:

                  这里还有另一种潜力。我遇到过报表设计器工作但服务器报表对象没有工作的情况。解决方案是删除服务器对象,然后从设计器中重新保存。

                  【讨论】:

                    猜你喜欢
                    • 2023-03-24
                    • 1970-01-01
                    • 2013-02-27
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2012-05-08
                    • 1970-01-01
                    相关资源
                    最近更新 更多