경우 나는 iReport로이 식을 가지고 :의 iReport는 그렇지 표현
($F{Q3_February}==0)?"-":$F{Q3_February}
표현 클래스 Double
, 난 등의 반환이 원하는 "-"$F{Q3_February}
의 값이 0
경우.
내가 얻을 "-"나는 표현 클래스 String
로 변경하지만 문제가있는 경우에만 가치가 당신의 문제는 텍스트 필드 패턴이 적용되지 않습니다 것을 #,##0.00 %
경우 나는 iReport로이 식을 가지고 :의 iReport는 그렇지 표현
($F{Q3_February}==0)?"-":$F{Q3_February}
표현 클래스 Double
, 난 등의 반환이 원하는 "-"$F{Q3_February}
의 값이 0
경우.
내가 얻을 "-"나는 표현 클래스 String
로 변경하지만 문제가있는 경우에만 가치가 당신의 문제는 텍스트 필드 패턴이 적용되지 않습니다 것을 #,##0.00 %
의 값을 반환하지 않는 거짓이면 표현식 클래스가 숫자가 아닌 경우 조건 적으로 값뿐만 아니라 클래스도 변경하려고합니다. 단일 textField에서는이 작업을 수행 할 수 없습니다.
최선의 방법은 이것을 두 개의 textFields, 하나의 문자열 및 하나의 double로 분리하는 것입니다. 서로를 위에 놓고 원하지 않는 것을 숨기려면 printWhenExpression
을 사용하십시오. 최종 결과는 조건식이있는 단일 입력란과 유사하지만 다른 요소 속성 (예 : 클래스 및 패턴)에 더 많은 유연성을 제공합니다.
예 :
<textField pattern="#,##0.00 %">
<reportElement x="200" y="80" width="100" height="20">
<printWhenExpression>
<![CDATA[$F{Q3_February}!=0]]>
</printWhenExpression>
</reportElement>
<textFieldExpression class="java.lang.Double">
<![CDATA[$F{Q3_February}]]>
</textFieldExpression>
</textField>
<textField>
<reportElement x="200" y="80" width="100" height="20">
<printWhenExpression>
<![CDATA[$F{Q3_February}==0]]>
</printWhenExpression>
</reportElement>
<textFieldExpression class="java.lang.String">
<![CDATA["-"]]>
</textFieldExpression>
</textField>
몇 가지 다른 방법이 있습니다 [해결하기 GenericJon의 제안에이] : "패턴의 표현"이라고 텍스트 상자에 필드가 4.1.1로
[Define Scriptlet name="bob"] <textFieldExpression class="java.lang.String"> <!CDATA[$P{[bob]_SCRIPTLET}.formatValues(fields1:n..)]]></textFieldExpression>
안녕 genericjon ... 감사합니다 ... 다시 한번 감사 – toink