2015-02-04 5 views
0

클라이언트에 대한 세부 정보를 수집하고 Jasper Dynamic Report를 사용하여 월간 보고서를 생성하는 앱을 작성했습니다. 지금까지 내 보고서는 모든 필드를 표시하고 일부 보고서는 일부 클라이언트에서 공백으로 표시 될 수 있으며 나머지는 전체 보고서로 표시 될 수 있습니다.Java를 통해 dynamicreports에서 동적 열을 생성하는 방법

각 클라이언트에 대해 비어 있지 않은 열만 선택하는 동적 보고서를 만들고 싶습니다.

aggregationSubtotalBuilder, TextColumnBuilder, ConditionalStyleBuilder, StyleBuilder,

그래서 대신이

TextColumnBuilder<Double> offLine = col.column "OffLine","offline",type.doubleType()); 
TextColumnBuilder<Double> onLine = col.column("OnLine","online",type.doubleType()); 

일 : 내가위한 배열을 만든 것을 성취한다. . . 이 일을

메신저 : "activeColumns"나는 추가 할 모든 활성 열의 이름을 가진 배열입니다

for (int i = 0; i < activeColumns.length; i++) 
    { 
    activeColumnsForDataSource[i] = activeColumns[i]; 
    textColumnBuilder[i] = col.column("\"" + activeColumnsForDataSource[i] + "\"","\"" + activeColumns[i] + "\"",type.doubleType()).setTitleFixedHeight(30); 
    conditionStyleBuilder[i] = stl.conditionalStyle(cnd.unEqual(textColumnBuilder[i], 0)).setFontSize(12).bold(); 
    styleBuilder[i] = stl.style().conditionalStyles(conditionStyleBuilder[i]).setBorder(stl.pen1Point()); 

    textColumnBuilder[i].setStyle(styleBuilder[i]).setHorizontalAlignment(HorizontalAlignment.CENTER); 
    aggregationSubtotalBuilder[i] = sbt.sum(textColumnBuilder[i]).setLabel("סהכ" + activeColumns[i]).setLabelStyle(sumLabelStyle).setStyle(dataNameStyle); 

. 나는에 문제가 문제의

하나는 내가 항상 표시되어야 날짜 열을 가지고있다, 그것은 문자열 유형 인 :

TextColumnBuilder<String> dayDate = col.column("תאריך","date",type.stringType()).setStyle(rowNamesStyle); 

그래서 나는 TextColumnBuilder 배열에 추가 할 수 없습니다 . 어떻게 보고서에 추가 할 수 있습니까? 나는이

.columns(//add columns 
      textColumnBuilder,dayDate) 
     .columnGrid(
      textColumnBuilder,dayDate) 

과 같이 할 경우 빌드

() 는 단지 DayDate이다 내가 마지막으로 추가 한 항목을 표시합니다.

어떻게해야합니까?

도와주세요!

감사합니다.

dave.

답변

0

컬럼 (textColumnBuilder) .addColumn (dayDate)

및 ColumnGrid 제거.

이제는 작동 중입니다.

관련 문제