Problema: JasperReports/Ireport + Struts2 + Hibernate

Olá colegas,

Estou com um problema na geração de relatório jasper pelo struts 2.
O relatório vem com valores null nos campos do relatório.
O arquivo .jasper está recebendo meu dataSource, prova disso é a quantidade de registros iterados no relatório.
Meu dataSource retorna um arrayList de Cliente.
No meu relatório, criei um campo (cliente) do tipo Cliente

ficou algo assim:

Nome do cliente:
null
null
null

Segue o package do struts.xml:

[code]


	<action name="relatorioClientes" class="br.com.sgvdba.datasources.RelatorioClientes">
		<result name="success" type="jasper">
			<param name="location">/reports/listagem_clientes.jasper</param>
			<param name="dataSource">clientList</param>
			<param name="format">PDF</param>
		</result>
	</action>
</package>[/code]

DataSource

[code]public class RelatorioClientes extends ActionSupport{

private static final long serialVersionUID = -3965815003310367254L;
public List<Client> clientList = new ArrayList<Client>();

public String execute(){
	ClientDAO clientDAO = new ClientDAO();
	this.clientList = clientDAO.findAll();
	if (this.clientList.size() > 0){
		return Action.SUCCESS;
	}
	return Action.ERROR;
}

public final List<Client> getClientList() {
	return clientList;
}

public final void setClientList(List<Client> clientList) {
	this.clientList = clientList;
}

}[/code]

Agradeço a atenção!
Abraços!

Olá marcio
De uma olhada nesse artigo aki
ele explica como utilizar DataSource, List, e tudo mais…
possui o código fonte se vc quiser ver funcionando…

Link: http://blog.apollo-ti.com/?p=8

qq coisa estou a disposição, aki e lah no Blog tb… :smiley:

FlwS…

[quote=feltraco]Olá marcio
De uma olhada nesse artigo aki
ele explica como utilizar DataSource, List, e tudo mais…
possui o código fonte se vc quiser ver funcionando…

Link: http://blog.apollo-ti.com/?p=8

qq coisa estou a disposição, aki e lah no Blog tb… :smiley:

FlwS…
[/quote]

Olá Feltraco!

Consegui resolver meu problema, até então só tinha trabalhado com jasper na framework do meu trabalho (baseada no struts 1). Passava uma collection e dela ia pegando os objetos com os métodos de acesso.
O struts 2 ficou tão simplicado, que só foi necessário criar no IReport campos String com o mesmo nome dos atributos do objeto. E aí deu tudo certinho.

Dei uma olhada no blog que você indicou, vai ser útil quando eu começar a trabalhar com sub-relatórios! Já salvei nos favoritos.
Agradeço muito a atenção, um abração!
Sucesso!

ola,

eu estou usando Struts 2 e nao estou sabendo criar o tipo de datasource. No IReport, qual o tipo de datasource que vc criou ?

Herrera

Olá Herrera!

Tenho que sair agora para ir ao trabalho, assim que voltar posto uma solução.

Abraços!!!

marcio,

o exemplo que vc forneceu tá beleza. mas como eu faço para levar o datasource do banco utilizado para o jasper em tempo de execucao ?

Herrera

Olá Herrera!

Não sei se entendi sua pergunta, se eu tiver falando abobrinhas me avisa.

lá no xml da action tem o parâmetro:

<param name="dataSource">produtoList</param>

Onde:
produtoList é uma collection com métodos de acesso na classe de action.
sempre que a action é invocada, populo essa action e não é necessário esquentar stream de bytes etc…

Grande abraço!

ola,
essa parte tá bem tranquila para mim. Eu gostaria de saber é qdo eu utilizo o iReport eu tenho acesso direto ao banco, fazendo select, subselect, etc, ou seja, pelo iReport tem varias opcoes de acesso atraves do banco. A minha duvida é como fazer para configurar isso atraves do struts 2, se é por jndi ou connection, etc

Herrera

Cara, sou novo no fórum, já leio há algum tempo.

Este tópico me interessou de forma a me cadastrar. Hehehe…

Seguinte, o dataSource serve para o Fields do jrxml, correto?
O que posso utilizar para os Parameters?

Valeu.