表达式抛出错误中的 SSRS 嵌套 IIF 语句

SSRS Nested IIF statements in expression throwing error

我一直收到错误 [,无效。 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)),

Else 运行 这个 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)) )

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

=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))) )

放置的括号太多,而且位置不对。

您仍然有一组不必要的括号,格式也无法帮助您弄清楚它在做什么。为 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)
            )
        )
    )