0

我所拥有的是这个String [125, 154, 749, 215, 785, 1556, 3214, 7985] (字符串中可以包含 1 到 15 个 ID,它是字符串而不是列表的原因是,它是通过 URL 发送的)

我需要填充一个campusAndFaculty用它调用的列表

我正在使用 iReport 5.0.0

我试过在campusAndFaculty默认值表达式字段中输入这个

Array.asList(($P{campusAndFacultyString}.substring( 1, ($P{campusAndFacultyString}.length() -2 ))).split("\\s*,\\s*"))

但它不填充campusAndFaculty列表

知道如何List campusAndFaculty使用它来填充String ("campusAndFacultyString")吗?

====================== 更新

我在 iReport (5.0.0) 中有这些变量

String campusAndFacultyFromBack = "[111, 125, 126, 4587, 1235, 1259]"

String noBrackets = $P{campusAndFacultyFromBack}.substring(1 ($P{campusAndFacultyFromBack}.length() -1 ))

List campusAndFacultyVar = java.util.Arrays.asList(($V{noBrackets}).split("\\s*,\\s*"))

当我打印 CampusAndFacultyVar 它返回“[111, 125, 126, 4587, 1235, 1259]”

但是当我在过滤器中使用它时,我得到“无法评估以下表达式:org_organisation.org_be_id in null”

4

1 回答 1

0

这对我有用:

String something = "[125, 154, 749, 215, 785, 1556, 3214, 7985]";
Arrays.asList((something.substring(1, (something.length() -1 ))).split("\\s*,\\s*"));

这意味着您可以在iReport中执行此操作:

java.util.Arrays.asList(($P{campusAndFacultyString}.substring(1, (something.length() -1 ))).split("\\s*,\\s*"));

与您的代码段的差异:

  • 是数组,不是数组
  • 你应该从长度中取 1,而不是 2
  • 对 Arrays 类的完全限定引用(取决于 iReport 的配置方式,这可能重要也可能不重要)
于 2013-08-13T11:50:46.510 回答