iReport更改数组大小

时间:2016-08-11 10:46:34

标签: arrays jasper-reports

我目前有一个包含3个变量的报告,这些变量根据“/”的分隔符拆分和修剪要写入不同列的字符串。 E.g。

$F{Batch}.split("/" ,3)[1].trim()

我遇到并发布批号的第一部分可能不会出现导致我的报告错误,因为没有第3个“部分”

我相信唯一的解决方案是在每个表达式中添加一个条件语句来检查数组大小,只写入第二列。

伪英语: 第1栏

    IF Arraysize = 3 THEN
   $F{Batch}.split("/" ,3)[0].trim() 
   ELSE 'do not write to this column'

第2栏

 IF Arraysize = 3 THEN
   $F{Batch}.split("/" ,3)[1].trim() 
   ELSE $F{Batch}.split("/" ,3)[0].trim() 

第3栏

  IF Arraysize = 3 THEN
       $F{Batch}.split("/" ,3)[2].trim() 
       ELSE $F{Batch}.split("/" ,3)[1].trim() 

总结一下,如果数组大小最终为2而不是3,我正在寻找将值写入数组最后两列的方法。

谢谢

1 个答案:

答案 0 :(得分:0)

我自己设法解决了这个问题:

而不是查看数组的最后一部分,而是使用子字符串长度来拉取最终字符。但是如果“第2节”不存在则数组中的任何错误。

唯一的问题是,如果缺少部分,它会有重复的数据,但在我的特定情况下,它是可以接受的。

$F{Batch}.substring($F{Batch}.length()-10)