【问题标题】:SSRS Nested IIF statements in expression throwing error表达式抛出错误中的 SSRS 嵌套 IIF 语句
【发布时间】:2021-11-11 09:18:04
【问题描述】:

我不断收到错误 [,无效。 InvalidSyntax] 在 Visual Studio 中部署此报表时。我找不到不正确的 [ , ],也不确定括号是否正确定位。我对 SSRS 很陌生,如果有人可以在这里帮助我,将不胜感激。

先谢谢你了。

简要说明我想要实现的目标。

如果满足以下条件

=iif((First(Fields!ShowCut.Value, "SalesDataSet") = "No",

然后在下面

运行这个IIF语句

iif((Fields!CutSize1.Value = "C1" or Fields!CutSize1.Value = "C2", Space(0), Iif(Fields!SalesUnitTxt.Value<>Fields!PriceUnitId.Value,FormatNumberCulture(CStr(Fields!PriceQty.Value), Parameters!AX_RenderingCulture.Value) + vbCRLF + FormatNumberCulture(CStr(Fields!Qty.Value), Parameters!AX_RenderingCulture.Value), FormatNumberCulture(CStr(Fields!PriceQty.Value), Parameters!AX_RenderingCulture.Value)),

下面

运行此 IIF 语句

iif((Fields!CutSize.Value = "C2",FormatNumberCulture(CStr(Fields!PriceQty.Value),Parameters!AX_RenderingCulture.Value), Iif(Fields!SalesUnitTxt.Value<>Fields!PriceUnitId.Value,FormatNumberCulture(CStr(Fields!PriceQty.Value), Parameters!AX_RenderingCulture.Value) + vbCRLF + FormatNumberCulture(CStr(Fields!Qty.Value), Parameters!AX_RenderingCulture.Value), FormatNumberCulture(CStr(Fields!PriceQty.Value), Parameters!AX_RenderingCulture.Value)) )

【问题讨论】:

    标签: visual-studio reporting-services nested iif


    【解决方案1】:

    经过一些尝试和错误,我已经找到了解决方案。

    =iif(First(Fields!ShowCut.Value, "SalesDataSet") = "No",

    iif(Fields!CutSize1.Value = "C1" or Fields!CutSize1.Value = "C2", Space(0), Iif(Fields!SalesUnitTxt.Value<>Fields!PriceUnitId.Value,FormatNumberCulture(CStr(Fields!PriceQty.Value), Parameters!AX_RenderingCulture.Value) + vbCRLF + FormatNumberCulture(CStr(Fields!Qty.Value), Parameters!AX_RenderingCulture.Value), FormatNumberCulture(CStr(Fields!PriceQty.Value), Parameters!AX_RenderingCulture.Value))),

    iif((Fields!CutSize.Value = "C2",FormatNumberCulture(CStr(Fields!PriceQty.Value),Parameters!AX_RenderingCulture.Value), Iif(Fields!SalesUnitTxt.Value<>Fields!PriceUnitId.Value,FormatNumberCulture(CStr(Fields!PriceQty.Value), Parameters!AX_RenderingCulture.Value) + vbCRLF + FormatNumberCulture(CStr(Fields!Qty.Value), Parameters!AX_RenderingCulture.Value), FormatNumberCulture(CStr(Fields!PriceQty.Value), Parameters!AX_RenderingCulture.Value))) )

    到许多放置和错误定位的括号。

    【讨论】:

      【解决方案2】:

      您仍然有一组不必要的括号,并且格式无法帮助您弄清楚它在做什么。为 IIF 的每个条件添加一个新行并将条件缩进可以更容易进行故障排除。

      =IIF(First(Fields!ShowCut.Value, "SalesDataSet") = "No",
          IIF(Fields!CutSize1.Value = "C1" or Fields!CutSize1.Value = "C2",  
              Space(0), 
              IIF(Fields!SalesUnitTxt.Value<>Fields!PriceUnitId.Value,
                  FormatNumberCulture(CStr(Fields!PriceQty.Value), Parameters!AX_RenderingCulture.Value) + vbCRLF + FormatNumberCulture(CStr(Fields!Qty.Value), Parameters!AX_RenderingCulture.Value),
                  FormatNumberCulture(CStr(Fields!PriceQty.Value), Parameters!AX_RenderingCulture.Value)
                  )
              ),
          IIF(Fields!CutSize.Value = "C2", 
              FormatNumberCulture(CStr(Fields!PriceQty.Value),Parameters!AX_RenderingCulture.Value), 
              IIF(Fields!SalesUnitTxt.Value<>Fields!PriceUnitId.Value,
                  FormatNumberCulture(CStr(Fields!PriceQty.Value), Parameters!AX_RenderingCulture.Value) + vbCRLF + FormatNumberCulture(CStr(Fields!Qty.Value), Parameters!AX_RenderingCulture.Value), FormatNumberCulture(CStr(Fields!PriceQty.Value), Parameters!AX_RenderingCulture.Value)
                  )
              )
          )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多