Boa tarde, galera.
Seguinte, estou querendo gerar um relatório em pdf com uma coluna em cada página. Encontrei um cara chamado “setColumnsPerPage” mas aparentemente ele não está funcionando.
Segue o código:
protected DynamicReport buildReport() throws Exception {
DynamicReportBuilder drb;
SimpleDateFormat dataFormat = new SimpleDateFormat("dd/MM/yyyy");
// Aqui tentei colocar o setColumnsPerPage mas não deu certo.
drb.setUseFullPageWidth(true).setColumnSpace(2)
.setPrintBackgroundOnOddRows(true).setHeaderHeight(10)
.addAutoText("", AutoText.POSITION_HEADER,
AutoText.ALIGMENT_CENTER).addImageBanner(
"jasper/logo.gif", 169, 42,
ImageBanner.ALIGN_LEFT).addAutoText(this.operacao + " / " + this.descricao, AutoText.POSITION_HEADER,
AutoText.ALIGMENT_CENTER).addAutoText(this.nomeRelatorio,
AutoText.POSITION_HEADER, AutoText.ALIGMENT_RIGHT)
.addAutoText(this.nomeUsuario+ " / " + dataFormat.format(this.data), AutoText.POSITION_HEADER,
AutoText.ALIGMENT_RIGHT);
drb.setTemplateFile("jasper/TemplateReportPocLandscape.jrxml");
formatarColunas();
return drb.build();
}
// método formatar colunas
private void formatarColunas() throws ColumnBuilderException {
Class klass = list.get(0).getClass();
Field[] fields = klass.getDeclaredFields();
ReportColumnType annotation = null;
Style headerStyle = new Style();
headerStyle.setFont(Font.TIMES_NEW_ROMAN_SMALL);
headerStyle.setBorder(Border.THIN);
headerStyle.setBorderColor(Color.BLACK);
headerStyle.setHorizontalAlign(HorizontalAlign.LEFT);
headerStyle.setVerticalAlign(VerticalAlign.MIDDLE);
headerStyle.setBackgroundColor(Color.LIGHT_GRAY);
headerStyle.setTextColor(Color.WHITE);
headerStyle.setTransparency(Transparency.OPAQUE);
Style columnStyle = new Style();
columnStyle.setFont(Font.TIMES_NEW_ROMAN_SMALL);
for(Field f : fields) {
annotation = f.getAnnotation(ReportColumnType.class);
// Verifica se o atributo tem annotation e se ele está no array
if(annotation != null && arraySearch(propertyNames, f.getName())) {
AbstractColumn columnState = ColumnBuilder.getInstance()
.setColumnProperty(f.getName(), f.getType().getName())
.setTitle(annotation.nomeColuna())
.setWidth(annotation.weight())
.setStyle(columnStyle)
.setHeaderStyle(headerStyle)
.build();
drb.addColumn(columnState);
}
}
}
Alguma luz?