JasperReport + TableModel

2 respostas
A

Esse codigo abaixo foi feito no JFreeReport. Ele cria um objeto JFreeReport (report), seta esse objeto com o modelo de uma determinada JTable e depois mostra em uma PreviewDialog. Gostaria de fazer isso no JasperReport, mas estou meio perdido. Alguem teria algum exemplo que possa ajudar ou mesmo uma dica ??

valeu !!

protected void iniciarImpressao()
    {
        final JFreeReport report = createReportDefinition();
        report.setData(jTable1.getModel());
        try
        {
          final PreviewDialog preview = new PreviewDialog(report);
          preview.pack();
          preview.setVisible(true);
        }
        catch (ReportProcessingException e)
        {
          Log.error("Failed to generate report ", e);
        }

    }

    private JFreeReport createReportDefinition()
    {

      final JFreeReport report = new JFreeReport();
      report.setName(this.getTitle());
      ObjectItemLista item;
      int pos = 0;
      TableColumn column = null;

      for (int i = 0; i <jTable1.getColumnCount(); i++)
      {
         column = jTable1.getColumnModel().getColumn(i);
         TextFieldElementFactory factory = new TextFieldElementFactory();
         factory.setName("T"+i);
         factory.setAbsolutePosition(new Point2D.Float(pos, 0));
         factory.setMinimumSize(new
FloatDimension(column.getPreferredWidth(), 20));
         factory.setColor(Color.black);
         factory.setHorizontalAlignment(ElementAlignment.LEFT);
         factory.setVerticalAlignment(ElementAlignment.MIDDLE);
         factory.setNullString("-");
         factory.setFieldname((String)column.getIdentifier());
         report.getItemBand().addElement(factory.createElement());
         pos = pos +
tbResultPesquisa.getColumnModel().getColumn(i).getPreferredWidth();
      }

      return report;

    }

2 Respostas

brlima

Vc pode criar um DataSource para usar no relatorio. Vai em pesquisar e procura por JRDataSource. Vai aparecer uns topicos show e vc vai enteder melhor como usa-lo… :wink:

A

Valeu cara, criar o DataSource ta dando blz !! Agora o seguinte, nesse metodo :

JasperPrint print = JasperFillManager.fillReport("classic.jasper",null, connection);

Eu to querendo substituir esse “classic.jasper” ,que vem da compilacao do xml, por qq outra coisa que nao venha de um xml , tem como ??? Ou seja, to querendo definir o meu Designer atraves de outra maneira que nao seja o xml !!

valeu !!

Criado 9 de agosto de 2004
Ultima resposta 10 de ago. de 2004
Respostas 2
Participantes 2