2017-09-15 7 views
0

레이아웃에 크로스 탭 요소가 있습니다. 열 그룹의 값 중 하나가 null이고 출력에 null 값이있는 해당 열을 표시하고 싶지 않습니다.크로스 탭에서 null/empty 열을 제거하는 방법은 무엇입니까?

Null 값을 확인하고 표현 속성을 수정할 때 인쇄를 수정 해 보았습니다. 하지만 null 값을 공백으로 바꾸는 것뿐입니다.하지만 여전히 출력에 열이 있습니다.

전류 출력

enter image description here

예상 출력

enter image description here

답변

1

다른 사람이 bucketExpression

을 수정할 수 있습니다 뭔가 널에서 열 머리글의 이름을 변경하려면
<bucketExpression><![CDATA[($F{myField==null}?"New name":$F{myField})]]></bucketExpression> 

값을 새 버킷 (열)으로 옮길 수도 있습니다.

전체 열을 제거하려는 경우 AFIK는 크로스 탭에 전달하기 전에 데이터 원본의 null 값을 필터링하지 않는 다른 방법이 없습니다.

옵션은 다음과 같습니다

  • 당신이 WHERE myField is not null

  • 같은 뭔가 귀하의 데이터 소스에 filterExpression을 사용 mysql을 위해, 단지 WHERE 절에 필드를 추가하여 SQL 데이터 소스를 사용하는 경우 예.

    <filterExpression><![CDATA[($F{myField}!=null)]]></filterExpression> 
    
  • 는 기록이 null 값을 갖는 경우 무시 데이터 소스와 점프를 포장 사용자 정의 JRDatasource을 개발한다.

결론 : 열을 제거하려면, 당신은 당신이 크로스 탭에 전달하기 전에 데이터 소스에서 레코드를 제거해야합니다.