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: :smiley:](https://www.guj.com.br/images/emoji/twitter/smiley.png?v=6)
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: :smiley:](https://www.guj.com.br/images/emoji/twitter/smiley.png?v=6)
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.