コード例 #1
0
  @SuppressWarnings({"rawtypes", "unchecked"})
  private static DynamicReport criaRelatorioDinamico(
      List<? extends Entidade> lista, String caminhoImagem) {
    DynamicReportBuilder relatorioBuilder = new DynamicReportBuilder();

    Class<Entidade> classeEntidadeRelatorio = (Class<Entidade>) lista.get(0).getClass();
    Relatorio relatorioAnnotation = classeEntidadeRelatorio.getAnnotation(Relatorio.class);

    if (relatorioAnnotation != null) {
      relatorioBuilder.setPageSizeAndOrientation(relatorioAnnotation.orientacao().getPage());
      relatorioBuilder.addFirstPageImageBanner(
          caminhoImagem, new Integer(197), new Integer(60), ImageBanner.ALIGN_LEFT);
      relatorioBuilder.setReportName(obtemNomeArquivo(relatorioAnnotation));
      relatorioBuilder.setTitle(obtemTitulo(relatorioAnnotation));
      relatorioBuilder.setOddRowBackgroundStyle(obtemEstiloLinhaPar());
      relatorioBuilder.setPrintBackgroundOnOddRows(true);
      relatorioBuilder.setUseFullPageWidth(true);
      relatorioBuilder.setDefaultStyles(
          getEstiloTitulo(), geraEstiloSubTitulo(), geraEstiloCabecalho(), geraEstiloDetalhe());
      relatorioBuilder.addStyle(adicionaEstiloSubTitulo());
      relatorioBuilder = geraColunasRelatorio(relatorioBuilder, classeEntidadeRelatorio);
    } else {
      relatorioBuilder = new ReflectiveReportBuilder(lista);
    }

    return relatorioBuilder.build();
  }