【问题标题】:Auto Select parameter Value if only one value如果只有一个值,则自动选择参数值
【发布时间】:2012-05-03 22:27:03
【问题描述】:

我想要一个动态参数,而如果它引用一个数据集,如果数据集只返回一条记录,那么参数下拉列表只会显示该值。但是,如果数据集为该参数返回多个值,那么我想在从数据集返回的值列表之前显示一个初始的“选择一个值”或类似的东西作为下拉列表中的第一个值。

我不知道如何设置条件默认值。所以以某种方式检查数据集计数,如果 > 1 将默认值设置为“选择值”。

我不确定是否需要设置默认值来执行此操作,甚至...任何人?

我尝试在报告参数的默认值选项卡中选择“指定值”,并尝试将其设置为检查从数据集中返回的多个记录,如果是,则添加“选择值”的默认值,但是这不起作用:

 =IIf(Count(Fields!BusinessLine.Value) > 1, "Select a Value", First(Fields!BusinessLine))

我也试过了:

=IIf(Parameters!Organization.Count > 1, "Select a Value", First(Fields!BusinessLine))

运气不好。我收到错误消息“用于报表参数'@ParameterName'的值表达式引用了一个字段。字段不能在报表参数表达式中使用。”

所以我被困在这里如何获取这个表达式或在这里检查我的报告参数的默认选择值。

【问题讨论】:

  • 肯定“选择一个值”本身不是要选择的有效值,因此不应出现在值列表中?
  • @MSSucks 添加到这篇文章中的任何一个答案都有帮助吗? (我整理了一下)

标签: ssrs-2008 reporting-services


【解决方案1】:

您不必这样做,这是参数的默认行为。可能你没有正确配置。

在你的主数据集上做你的选择,在 where 子句上做where BusinessLine in (@BusinessLine)

然后,创建另一个名为 DSBusinessLine 的数据集,其中包含

select ID, BusinessLineName
from BusinessLine

双击BusinessLine参数,转到默认值,选择select value from a query并选择DSBusinessLine并通知ID作为值,BusinessLineName作为文本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    相关资源
    最近更新 更多