[RESOLVIDO]IReport > Relatório apartir de JTable (Ajudem por favor)

Olá pessoal do GUJ,
preciso de uma ajuda com IREPORT. Uso ele com conexão com BD tranquilamente, mas agora minha aplicação exige a impressão de dados que ja foram trazidos do BD e estão em uma jTable swing. Sei que existe a classe JRTableModelDataSource e sei como enviar ao relatório meu model da jTable.
Porém ainda não sei como fazer lá dentro do designer do IReport quanto aos campos que irão receber os dados do model.

Por favor, se alguém puder me dar umas dicas ou indicar algum link eu agradeço muito.

Abraço!!!

cara,

pq vc nao faz o seguinte, vc provavelmente tem uma list que vc preenche o JTable, é so pegar esse list e mandar para o Ireport.

t+

Olá alissonvla,
tenho um list sim, mas como faço pro IReport entender o list? como relacionar no relatorio os campos com as posicoes do list?
Vc tem algum tuto ou link q posso usar?

Abraço!!

cara,

sua lista é de um objeto especifico, com isso no ireport vc vai criar variavel com o mesmo nome dos seus atributos na sua classe.
e no java para passar essa lista para o ireport basta criar um objeto da classe JRBeanCollectionDataSource.

t+

Olá alissonvla,
segui seu conselho e criei variaveis no relatorio e usei a JRBeanCollectionDataSource.
Mas no relatório os campos aparecem null, mas a quantidade de objetos do list esta correto(criei uma variavel para incrementar em cada registro).
Segue o código da chamada do relatório:

[code]
String arq = DIR_RELATORIOS + “\RelRanking.jasper”;
Map map = new HashMap();
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(lista);
JasperPrint impressao = null;
impressao = JasperFillManager.fillReport(arq, map, ds);
JasperViewer jasperViewer = new JasperViewer(impressao, false);

jasperViewer.setDefaultCloseOperation(JasperViewer.DISPOSE_ON_CLOSE);
jasperViewer.setTitle(“Ranking de Jogadores”);
jasperViewer.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource(JanPrincipal.ICONE_LOGO)));
jasperViewer.setZoomRatio((float) 1.25);
jasperViewer.setExtendedState(JasperViewer.MAXIMIZED_BOTH);
jasperViewer.setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE);
jasperViewer.requestFocus();
jasperViewer.setVisible(true);[/code]
Veja no anexo como os campos retornam nulos.

Se puder me dar uma luz eu agradeço.
Té+


cara,

vc tem certeza q o nome das variaveis no ireport tem o mesmo nome das variaveis do seu objeto que vc está passando na lista.

t+

Tenho sim alissonvla, inclusive fiz um ctrl+c/ctrl+v dos nomes. Nao tem mais alguma configuracao no relatorio que tenho que fazer?
O JRBeanCollectionDataSource aceita ArrayList ?
Outra coisa: minha conexao configurei como Custom JRDataSource. É assim mesmo?

té+

entao,

vc tem que passar algo assim, ArrayList().
e eu nao entendi, Outra coisa: minha conexao configurei como Custom JRDataSource. É assim mesmo?

T+

alissonvla, consegui!!!
Foi um mau entendido: anteriormente vc disse que eu deveria criar variaveis no relatorio com o mesmo nome dos atributos do objeto, entao criei variaveis e setei nos campos, mas na verdade eu tinha que criar fields com os nomes do objeto.
Fiz dessa forma e resolveu.
Demorou pra cair a ficha, rsrs.

Valeu alissonvla e pessoal do GUJ, muito obrigado!

Abraços

boaa… :lol:

marque o post como resolvido.

t+

ressuscitando o tópico kkkkkkk
então tentei fazer da maneira q vc colocaram anteriormente:

String arq = "C:/JFuncional Software/SI Agromix/Relatorios/RelatorioFluxoCaixa.jasper"; Map map = new HashMap(); JRBeanCollectionDataSource ds = null; ds = new JRBeanCollectionDataSource(lista); JasperPrint impressao = null; try { impressao = JasperFillManager.fillReport(arq, map, ds); } catch (JRException ex) { Logger.getLogger(FrmFuxoCaixa.class.getName()).log(Level.SEVERE, null, ex); } JasperViewer jasperViewer = new JasperViewer(impressao, false); jasperViewer.setDefaultCloseOperation(JasperViewer.DISPOSE_ON_CLOSE); jasperViewer.setTitle("Fluxo de Caixa"); jasperViewer.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("Icone.png"))); jasperViewer.setZoomRatio((float) 1.25); jasperViewer.setExtendedState(JasperViewer.MAXIMIZED_BOTH); jasperViewer.setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE); jasperViewer.requestFocus(); jasperViewer.setVisible(true);

ACONTECE O SEGUINTE ERRO…

[color=red]03/01/2013 16:39:53 Interfaces.FrmFuxoCaixa jButton2ActionPerformed
SEVERE: null
net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression :
Source text : $F{data}[/color]

O field data é o mesmo do objeto da lista, mas provavelmente vai dar problema em todos os campos (pq o data é o primeiro da sequencia).
Eu tenho que criar uma conexão especifica la no ireport pra fazer a geração pela tabela?
Alguma ideia do que pode estar acontecendo?

Desde já agradeço!