2012-04-25 4 views
2

보고서에 문제가 있습니다. 텍스트와 매개 변수로 출력물을 씁니다. 매개 변수를 넣을 때. 결과는 텍스트와 매개 변수를 보여줍니다. 하지만 문제는 내가 매개 변수에 중요하지 않은 경우 결과가 여전히 출력을위한 텍스트 필드를 보여줍니다. 나는 자바에서하고있다. 나는 그 문제가 뭔지 모른다.출력이 null 일 때 textfield를 숨기는 방법은 무엇입니까?

(($P{daterangefrom} != null) && ($P{daterangeto}!=null)) ? 
" From (" + $P{daterangefrom} + " - " + $P{daterangeto} + ")" 
: null 

누구든지 내 공식 무엇을 잘못 알고

이 내 코드입니다.

답변

4

매개 변수의 값이 비어 있지 않아야합니다.

예를 들어 Guava 라이브러리의 도움으로 확인하실 수 있습니다.

샘플 :

<?xml version="1.0" encoding="UTF-8"?> 
<jasperReport ..> 
    <import value="com.google.common.base.*"/> 
    <parameter name="daterangefrom" class="java.lang.String"/> 
    <parameter name="daterangeto" class="java.lang.String"/> 

    <title> 
     <band height="79" splitType="Stretch"> 
      <textField isBlankWhenNull="true"> 
       <reportElement x="185" y="12" width="100" height="20" isRemoveLineWhenBlank="true"/> 
       <textElement/> 
       <textFieldExpression><![CDATA[(!Strings.isNullOrEmpty($P{daterangefrom}) && 
    !Strings.isNullOrEmpty($P{daterangeto})) ? 
" From (" + $P{daterangefrom} + " - " + $P{daterangeto} + ")" 
: null]]></textFieldExpression> 
      </textField> 
     </band> 
    </title> 
</jasperReport> 

isRemoveLineWhenBlankisBlankWhenNull에 textField의 속성에 대해 잊지 마세요.

+0

고맙습니다. 당신은 매우 도움이됩니다. 답변을 주셔서 감사합니다. :) –

+0

@Amin 환영합니다 :) –

+0

질문이 하나 더 있습니다. 입력 한 날짜와 날짜를 처음 입력 할 때부터 입력하려고합니다. 내가 두 개의 매개 변수에 데이터를 넣을 때. 그것은 날짜와 날짜이며, 데이터가 표시됩니다. 하지만 문제는 두 개의 매개 변수 중 하나의 데이터를 넣을 때입니다. 데이터도 표시됩니다. 어떻게 하나의 매개 변수를 넣어 오류 메시지를 제공합니다. 데이터는 두 매개 변수가 일치하는 경우에만 표시됩니다. –

관련 문제