【发布时间】:2015-11-25 10:13:53
【问题描述】:
我有一份报告,其中包含 6 个参数。我想做的是让这些参数成为我报告标题的一部分。我的参数如下:
@BMDataType1 Text
@BMDataComp1 Float
@BMDataType2 Text
@BMDataComp2 Float
@BMDataType3 Text
@BMDataComp3 Float
总会有一个@BMDataType1 和@BMDataComp1 参数被传递,其他的可以为null。我需要的标题是如果只传递了@BMDataType1 和@BMdataComp1,那么标题应该是例如:
Benchmark1 100% 基准成分
到目前为止,我已经为此编写了以下代码:
=Parameters!BMDataType1.Value + " " + Parameters!BMDataComp1.Value.ToString + "%" + " Benchmark Constituents"
但是,如果填充了 @BMDataType2 和 @BMDataComp2,那么我需要标题如下所示:
基准 1 50% 基准 2 50% 基准成分
如果通过了 3 则相同:
基准 1 50% 基准 2 30% 基准 3 20% 基准成分
永远不会说基准 1 和基准 3。它只会是 1,或 1 和 2 或 1、2 和 3。
有人可以指出如何编写 IIF 语句以检查 Benchmark2 和 Benchmark3 参数是否为 NULL 的正确方向吗?
谢谢
编辑:
经过一些工作,我想出了以下代码,但我仍然得到:
"Object reference not set to an instance of an object"
我的代码如下:
=IIF(
IIF(IsNothing(Parameters!BMDataType1.Value),1,0)=0 AND IIF(IsNothing(Parameters!BMDataType2.Value),1,0)=1 AND IIF(IsNothing(Parameters!BMDataType3.Value),1,0)=1
, Parameters!BMDataType1.Value + " " + Parameters!BMDataComp1.Value.ToString + "%" + " Benchmark Constituents"
, IIF(
IIF(IsNothing(Parameters!BMDataType1.Value),1,0)=0 AND IIF(IsNothing(Parameters!BMDataType2.Value),1,0)=0 AND IIF(IsNothing(Parameters!BMDataType3.Value),1,0)=1
, Parameters!BMDataType1.Value + " " + Parameters!BMDataComp1.Value.ToString + "%" + " " + Parameters!BMDataType2.Value + " " + Parameters!BMDataComp2.Value.ToString + "%" + " Benchmark Constituents"
, IIF(
IIF(IsNothing(Parameters!BMDataType1.Value),1,0)=0 AND IIF(IsNothing(Parameters!BMDataType2.Value),1,0)=0 AND IIF(IsNothing(Parameters!BMDataType3.Value),1,0)=0
, Parameters!BMDataType1.Value + " " + Parameters!BMDataComp1.Value.ToString + "%" + " " + Parameters!BMDataType2.Value + " " + Parameters!BMDataComp2.Value.ToString + "%" + " " + Parameters!BMDataType3.Value + " " + Parameters!BMDataComp3.Value.ToString + "%" + " Benchmark Constituents"
, " ")))
但是,如果所有 3 个参数都不为空,则它不会返回任何错误,并且会填充我希望显示的标题。这怎么可能?
【问题讨论】:
-
在这种情况下是否使用过
BMDataComp2或BMDataComp2? -
通过检查
Isnothing()多次使用IIF
标签: reporting-services ssrs-2008 ssrs-2008-r2 ssrs-expression