SSRS,不清楚我应该在哪里改变我的代码来摆脱表达式中的重载IIF参数问题



所以我试图解决我有两个字段即"成功"one_answers"失败"的情况。当两个字段(成功和失败)都为零时,我想将"成功"字段的值显示为100,但如果"失败"字段的值不是零,但"成功"字段的值仍然为0,我希望成功字段显示"0",而"失败"应该显示适当的值。

为此,我用嵌套的iif循环编写了下面的表达式,我是SSRS报告的新手。因此,任何帮助/建议将非常感谢。谢谢。

SSRS表达式:

=iif(Fields!CountAlwaysOnSuccess.Value=0,100,iif(Fields!CountAlwaysOnFail.Value!=0,Fields!Always_On_SLO_Success.Value)) & "%," & Fields!CountAlwaysOnSuccess.Value

这是我上面的表达式得到的错误:

文本的Value表达式"Textbox2.Paragraphs[0]。TextRuns[0]的包含一个错误:[BC30516]重载解析失败,因为没有可访问的'IIf'接受它参数个数。

IIF函数有三个参数:

IIF(Condition, ValueWhenTrue, ValueWhenFalse)

你说你想显示:

  • 100%SuccessFail均为零时
  • Success为零且Fail非零时0%, <FailValue>

但是,当Fail非零时,公式显示Always_On_SLO_Success字段。看起来我们可以在SuccessFail非零时显示这两个字段,所以我认为您不需要第二个条件。您可能还需要将数字字段强制转换为字符串。试试这样做:

=IIF(Fields!CountAlwaysOnSuccess.Value + Fields!CountAlwaysOnFail.Value = 0, 
"100%", 
CStr(Fields!Always_On_SLO_Success.Value) & "%," & CStr(Fields!CountAlwaysOnFail.Value) & "%")