【问题标题】:Birt report Parameter allow multiple valueBirt 报告参数允许多个值
【发布时间】:2014-08-18 10:24:22
【问题描述】:

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

【问题讨论】:

  • 请贴出代码

标签: java birt


【解决方案1】:

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

因此假设该参数是“IN”子句中的SQL过滤器,我们需要将其作为逗号分隔的字符串传递给存储过程。

将您的 dataset 参数声明为 String,并且不要将其链接到 report 参数,而是根据报告参数设置默认值表达式。在此示例中,“myMultivalueParam”表示数据库中的一个数字字段:

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

如果“myMultivalueParam”代表一个字符串,我们需要添加引号:

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

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

【讨论】:

  • 我调用了像 {call usp_rpt_PartnerLoginReport(?)} 这样的存储过程,并使用了带有多选选项的 ListBox。它接受多个值,但在传递给 sp 时只传递第一个值,我在 sp 中处理以选择多值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多