2012-06-29 3 views
1

레이블을 표시해야하는 꺾은 선형 차트가있는 JasperReport가 있는데 각 데이터 요소에 대해 조건부로 표시하려고합니다. 실제로 값을 표시하기 위해 customizer 클래스를 만들었지 만 값 필드와 다른 필드를 사용하여 표시할지 여부를 결정하려고합니다.JasperReports는 범주 값 이외의 값을 기준으로 계열 레이블을 사용자 정의합니다.

은 기본적으로 내 데이터 세트에서 나는 3 개 필드가 : 나는 레이블의 값을 인쇄 할

Date: (Category Axis) 
Value: (Value Axis) 
PrintValue: Boolean field 

을 경우에만 PrintValue = 사실

답변

0

하나 개의 솔루션에 의해 구현되는 방법 중 하나를 무시하는 것 Scriptlet 클래스의 JRDefaultScriptlet을 사용하여 원하는 방식으로 "PrintValue"값을 설정하십시오. 그런 다음 차트 데이터 세트에서 $V{PRINTVALUE}을 피연산자로 참조 할 수 있어야합니다.

보고서 디자인에 iReport를 사용한다고 가정합니다.

  1. 은의 iReport에서 보고서를 열고 (보고서 Inspector에서 최상위 노드) 패키지 이름과 클래스, 예를 들어, org.company.scriptlets에 Scriplet 클래스 설정

  2. 보고서 이름을 클릭합니다. MyChartClass

  3. iReport에서 보고서 변수를 선언하십시오. 이 경우 "PRINTVALUE"가 변수 이름이됩니다. 각 눈금에 대해 조건부로 분류 라벨을 표시 할 때문에

  4. 당신이 아마를 사용해야합니다, beforeDetailEval처럼 scriplet 방법을 재정의하는 자바 클래스, 예를 들어, :

    @Override 
    public void beforeDetailEval() throws JRScriptletException { 
         super.beforeDetailEval(); 
         ... 
         this.setVariableValue("PRINTVALUE", true); 
    } 
    

    만들기 키/밸류 쌍의 맵. 키는 카테고리 라벨이되며 값은 "PRINTVALUE"에 대해 true/false가됩니다. 참고 위의 예제 코드에서는이를 설명하지 않았지만 완전히 가능함을 설명했습니다. 보고서 변수를지도 (예 : HashMap<String, Boolean> hm)로 선언하십시오.

  5. iReport의 클래스 패스에 새로운 scriplet 클래스를 추가해야합니다.

호프 이것은 도움이되거나 적어도 시작하도록하겠습니다.

관련 문제