Problema: JasperReports/Ireport + Struts2 + Hibernate

8 respostas
marcio.rga

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:
<package name="relatorio" extends="jasperreports-default, struts-default" namespace="/relatorio">
		<result-types>
			<result-type name="jasper" class="org.apache.struts2.views.jasperreports.JasperReportsResult" />
		</result-types>
		
		<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>

DataSource

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;
	}
	
}

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

8 Respostas

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…

marcio.rga

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…

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!

Herrera

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

marcio.rga

Olá Herrera!

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

Abraços!!!

Herrera

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

marcio.rga

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!

Herrera

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

guidobruzadin

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.

Criado 14 de janeiro de 2008
Ultima resposta 28 de ago. de 2008
Respostas 8
Participantes 4