Passar array dentro de list para o IReport!

Galera,
boa tarde.
Pessoal, preciso de mais uma ajuda aqui numa coisa.
É simples, mas não achei a solução aqui no fórum e nem na net que seja como meu problema.
É o seguinte, tenho uma list que contém informações de saídas do patrimônio do estoque,
Meu Bean:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Model;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Andre
 */
public class RelSaidas {
    
    private String nomeSolicitante, dataRetirada;
    private String[] itens,setor,quantidade;


    public String getDataRetirada() {
        return dataRetirada;
    }

    public void setDataRetirada(String dataRetirada) {
        this.dataRetirada = dataRetirada;
    }

    public String[] getItens() {
        return itens;
    }

    public void setItens(String[] itens) {
        this.itens = itens;
    }

    public String[] getQuantidade() {
        return quantidade;
    }

    public void setQuantidade(String[] quantidade) {
        this.quantidade = quantidade;
    }

    public String[] getSetor() {
        return setor;
    }

    public void setSetor(String[] setor) {
        this.setor = setor;
    }

   

  

    public String getNomeSolicitante() {
        return nomeSolicitante;
    }

    public void setNomeSolicitante(String nomeSolicitante) {
        this.nomeSolicitante = nomeSolicitante;
    }

    
   
   
    
}

Como puderam ver, tenho 3 arrays de string normais, que estão funcionando perfeitamente.
Só que na hora que eu vou criar meu relatório no ireport, ele cria mas não exibe o conteúdo dos meus arrays, as outras informações ele imprime legal mas o conteúdo do array ele escreve algo como se fosse a identificação do array tipo [Ljava.langString;@91602].
No ireport tenho 3 fields criados F{itens}, F{quantidade}, F{setor}, tudo compila legal…
Só que na hora de exibir ele exibe o conteúdo dos arrays daquela forma.
Estou chamando o relatório assim:

[code] public void geraTermo(List things){
try{

        JasperReport pathjrxml = JasperCompileManager.compileReport("../Church/src/reports/rel_saida_patrimonios.jrxml");
        JasperPrint printReport = JasperFillManager.fillReport(pathjrxml, null, new JRBeanCollectionDataSource(things));
        JasperExportManager.exportReportToPdfFile(printReport, "rel_saida_patrimonios.pdf");
        //JasperViewer.viewReport("report1.pdf",false);
        JOptionPane.showMessageDialog(null,"Relatório gerado com sucesso!");
        }
        catch(Exception e){
            JOptionPane.showMessageDialog(null, "Erro ao gerar o relatório:"+e);
        }
   }[/code]

Me ajuuuudem pessoal…
Obrigado a todos!!

Galera, to fuçando na net o tempo tdo e não consigo um excemplo de como fazer isso!
Se algum dos amigos conseguir, por favor me ajudem!
Abraços

Olá,

Acho que você teria que criar subrelatórios para cada array. Cada subrelatório receberia como parâmetro uma lista de Strings.

[ ]'s

Olá amigo!
Estou tentando fazer via subrelatório como vc me falou, mas agora estou otendo o erro : Erro retreiving value from bean: itens
Eu tenho a variável itens que está devidamente declarada no meu bean…
Só que ele tá dizendo que não acha o valor dela… Mas estou passando por parâmetro da seguinte maneira:

JasperReport pathJrxmlItens = JasperCompileManager.compileReport("../Church/src/reports/rel_saida_patrimonios_itens.jrxml"); JasperPrint printReportItens = JasperFillManager.fillReport(pathJrxmlItens, null, new JRBeanArrayDataSource(itens));

Esse itens é um array com os itens retirados.
Me ajuuuuda.
Obrigado pela força.

Todo o meu método para a chamada do relatório está assim:

[code] public void geraTermo(List things){
try{

           /**Enchendo o subrelatório com os itens.
             */
             JasperReport pathJrxmlItens = JasperCompileManager.compileReport("../Church/src/reports/rel_saida_patrimonios_itens.jrxml");
            JasperPrint printReportItens = JasperFillManager.fillReport(pathJrxmlItens, null, new JRBeanArrayDataSource(itens));
            
            JasperReport pathjrxml = JasperCompileManager.compileReport("../Church/src/reports/rel_saida_patrimonios.jrxml");
            JasperPrint printReport = JasperFillManager.fillReport(pathjrxml, null, new JRBeanCollectionDataSource(things));
            JasperExportManager.exportReportToPdfFile(printReport, "rel_saida_patrimonios.pdf");
            //JasperViewer.viewReport("report1.pdf",false);
            JOptionPane.showMessageDialog(null,"Relatório gerado com sucesso!");
        }
        catch(Exception e){
            JOptionPane.showMessageDialog(null, "Erro ao gerar o relatório:"+e);
        }
   }[/code]

Olá,

No seu caso você não chamaria o subrelatorio dessa forma.

Você deve fazer uma chamada ao relatório principal, esse relatório principal deve fazer a chamada ao subrelatório enviando o array para o popular.

[ ]'s

Olá amigo…
como eu faria isso cara, pode me dá um exemplo com código!
Obrigado!!

Olá,

A chamada ao relatório principal poderia ser do jeito que você já usa:

JasperReport pathjrxml = JasperCompileManager.compileReport("../Church/src/reports/rel_saida_patrimonios.jrxml");  
JasperPrint printReport = JasperFillManager.fillReport(pathjrxml, null, new JRBeanCollectionDataSource(things)); 

No iReport, com seu relatório principal aberto, utilize o componente Subreport, siga o utilitário respondendo da seguinte maneira:

1- Create a New Subreport
2- Selecione o layout de sua preferência
3- Selecione ‘Empty Datasource’
4- Nada a fazer, clique em Next
5- Nada a fazer também, clique em Next
6- Defina o nome e forma como utilizará o diretório conforme você preferir
7- Marque ‘Use a JRDatasource expression’, clique no botão para abrir o editor de expressões, selecione Fields, então devem aparecer os campos do seu objeto, escolha o que array
8- Clique em finalizar e modele o subrelatório mo preferir

São esses os passos, tente ai e poste os resultados.

Se você já tem o subrelatório pronto, pode fazer escolher a opção apropriada na primeira pergunta, o essencial é definir o connection type e então a data source expression.

[ ]'s