2014-03-07 2 views
0

정수 필드가 "LEVEL"인 데이터베이스 테이블에 연결하는 JasperReports를 사용하여 보고서를 만들고 있습니다. 이 레벨은 1, 2, 3 등의 숫자를 저장합니다. 보고서에서이 수의 밑줄이있는 문자열을 만들려고합니다. 즉 레벨이 4이면 생성 된 문자열은 "_ _"이됩니다. 나는이 같은 자바 뭔가 함께 할 수있어 :동적 범위가있는 단일 문자로 문자열 만들기

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); 

같은 시험하지 만, LEVEL의 수는 다음 조건으로 쓸 수,별로 더 많은 수의 경우

+0

문제는 JasperReports에서 텍스트 필드 표현식의 명령을 실행할 수 없기 때문에 텍스트 필드의 지정된 클래스의 객체를 리턴하는 단일 명령 만 실행할 수 있다는 것입니다. –

0

좋아 보인다 다른 경우 아래와 같이

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

...

그것은 좋은 해결책이되지 않습니다하지만 당신은 JAS에서 다른 옵션을 가질 수 없습니다 이러한 작업에 대해 :)

+0

숫자는 0에서 무한대로 바뀌므로 불가능합니다. –

+0

오 ... 그러면 재 스퍼로는 전혀 불가능합니다. – Parth