[英]Birt report Parameter allow multiple value
我创建了一个参数类型列表框,我允许选择多个值。 我想在数据集中使用此参数。 我曾经在其他数据集中使用StoredProcdureName(?,?)作为SP的参数。 此过滤器的问题是,如果我选择一个或多个值,它会显示选择,但在传递给sp时,它只发送一个值。 我怎么处理这个?
您应该至少发布您的存储过程,以便我们可以看到如何使用此参数。 多值参数由BIRT作为java数组处理,这不是存储例程识别的数据类型。 这就是为什么你只得到第一个项目。
因此,假设此参数是“IN”子句中的SQL过滤器,我们需要将其作为逗号分隔的String传递给存储过程。
将数据集参数声明为String,不要将其链接到报表参数,而是根据报表参数设置默认值表达式。 在此示例中,“myMultivalueParam”表示数据库中的数字字段:
params["myMultivalueParam"].value.join(",");
如果“myMultivalueParam”表示String,我们需要添加引号:
params["myMultivalueParam"].value.join("','");
然后在存储过程中使用此逗号分隔的字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.