Report Builder 3.0:尝试遍历报表参数列表时出现语法错误

Report Builder 3.0: syntax error when trying to loop through list of report parameters

我正在尝试执行以下操作:

  1. 提供参数的可用值列表。用户可以 select 多个值或 none.
  2. 如果selected参数列表中存在某个值,则显示相应的列。如果不是,请隐藏该列。

为此,我编写了一个自定义函数,它接受一个整数,检查该整数是否存在于参数列表中,并将 False/True 输出到 hide/show 列。

参数示例:

Label          Value
Pallet         1
Item           2
.
.
.
nth-label      n

代码: Report Builder 3.0 说我在第 8 行有语法错误,但我不确定它可能是什么。

dim parm_array() as String
dim col_num as Integer 
dim i as Integer

function hide_column (ByVal col_num as Integer) as Boolean
    parm_array = Split(Join(Report.Parameters!show.Value,","), ",")
    for i in LBound(parm_array) To UBound(parm_array)
        if col_num = CInt(parm_array(i)) then 
            hide_column = 0
            exit for
        else
            hide_column = 1
        end if
    next
end function

您可以直接在表达式中执行此操作,例如

=Array.IndexOf(Parameters!myParameter.Value, 1) > -1

注意:如果您将参数类型保留为默认文本,则表达式的值必须像这样引用

=Array.IndexOf(Parameters!myParameter.Value, "1") > -1

或者为了可读性,我们可以使用参数标签而不是它的值

=Array.IndexOf(Parameters!myParameter.Label, "Pallet") > -1

如果列可见性与预期相反,您可能需要反转结果(即 <=-1)。