Birt报告参数允许多个值

时间:2014-08-18 10:24:23

标签: java birt

我创建了一个参数类型列表框,我可以在其中选择多个值。我想在数据集中使用此参数。我曾经在其他数据集中使用StoredProcdureName(?,?)作为SP的参数。此过滤器的问题是,如果我选择一个或多个值,它会显示选择,但在传递给sp时,它只发送一个值。我怎么处理这个?

1 个答案:

答案 0 :(得分:3)

您至少应该发布您的存储过程,以便我们可以看到如何使用此参数。多值参数由BIRT作为java数组处理,这不是存储例程识别的数据类型。这就是为什么你只得到第一个项目。

因此,假设此参数是" IN"中的SQL过滤器。我们需要将它作为逗号分隔的String传递给存储过程。

数据集参数声明为String,并且不要将其链接到报告参数,而是根据报告参数设置默认值表达式。在这个例子中" myMultivalueParam"表示数据库中的数字字段:

params["myMultivalueParam"].value.join(",");

如果" myMultivalueParam"表示我们需要添加引号的字符串:

params["myMultivalueParam"].value.join("','");

然后在存储过程中使用此逗号分隔的字符串。