2014-03-07 23 views
0

我正在使用JasperReports进行报告,它连接到具有整数字段“LEVEL”的数据库表。 这个级别将存储一些数字... 1,2,3,并继续。 在报告中,我想创建一个带有下划线数字的字符串,这意味着如果等级为4,则生成的字符串将是“__”。 我知道我可以在java中这样的事情与做:用动态范围的单个字符创建一个字符串

int i = 3; 
char[] vect = new char[i]; 
Arrays.fill(vect, '_'); 
System.out.println(vect); 

但在JasperReports的我不能叫命令,我可以当Arrays.fill将返回数组本身,而不是无效的。 还有别的办法吗?

回答

0

你可以使用for循环来附加一个字符串。 林不知道,如果我知道你的意思到底是什么,但也许这样的事情

int i = 3; 
String s; 
for(int k = 0; k < i; i++){ 
    s = s + "_"; 
} 
System.out.print(s); 

没有测试过,但看起来不错

+0

问题是,在JasperReports中,您不能在文本字段表达式中运行一批命令,只能执行一个返回指定类文本字段的对象的命令。 –

0

如果LEVEL的数量并不多人数较多,那么你可以有条件地将其与写如果其他如下图所示:

$F{level}.equals("1")?"_": 
       $F{level}.equals("2")?"__": 
         $F{level}.equals("3")?"___":____ <---- last one is 4 

如此下去......

这不会是一个很好的解决方案,但你不能在JAS另一种选择每个这样的操作。 :)

+0

数字从0变为无限,所以不可能做到这一点。 –

+0

哦......那么碧玉根本就不可能。 – Parth

相关问题