2014-03-03 1 views
1

iReport의 언어 별 패턴을 어떻게 재정의 할 수 있습니까? 필드에 #,##0.00 패턴을 Double 값으로 설정했습니다. 보고서가 영어 인 경우iReport의 언어 별 패턴 재정의

, 나는 다음 예제 출력 : 얻을

보고서가 독일어 인 경우
10,000.00 

, 나는 다음 예제 출력 :

10.000,00 

필요 얻을 영어 및 독일어 보고서에 대한 출력은 10.000,00입니다.

어떻게 알 수 있습니까?

답변

5

패턴을 설정하지 마십시오 (제거하십시오). 대신, TextFieldExpression 필드에 (이것은 문자열입니다. 당신의 텍스트 필드의 표현 클래스는 더블 경우, 당신은 결과를 분석 할 수 있습니다.)

new java.text.DecimalFormat("#,##0.00", new java.text.DecimalFormatSymbols(java.util.Locale.GERMANY)).format($P{parameter1}). 

를 사용 이 모든 언어에 대한 독일어 로케일로 숫자를 포맷합니다.

+0

패턴과 로케일을 함께 사용하여 2 일 동안 단일 회선 코드를 찾고있었습니다. 이것은 나를 도왔다. 고마워! – StarCrafter

0

iReport의 최신 버전에는 패턴 표현식이라는 기능이 있습니다. 패턴 문자열을 지정하고 나머지 필드 계산을 동일하게 유지하면됩니다. 이렇게하면 형식에서 데이터를 분리 할 수 ​​있으며, 일을보다 깨끗하게 유지할 수 있다고 생각합니다.하지만 런타임시 형식을보다 잘 제어 할 수 있습니다.

편집. 예는 여기있다,에 대한 질문을 받았다 : 마법이 표현에서 일어나는 https://gist.github.com/ilopez/9369809#file-so22141769-jrxml

: 당신은 REPORT_LOCALE 매개 변수를 통해 보고서 로케일을 지정할 수 있습니다

new DecimalFormat().toPattern() 

Report Using Local Locale Settings

참조 : Setting REPORT_LOCALE in IReport?

+0

어떻게? 모범이 있습니까? –

+0

예를 들어 gist, expression 및 screenshot 예제를 추가했습니다. –