Carregar Sub-relatorio no master via aplicação

1 resposta
lucas.caran

Bom galera to aqui mais uma vez…

dessa vez preciso de algo que parece ser simples…

o que preciso é somente exibir um sub-relatorio com ireport via Java…

no Ireport meu sub aparece perfeitamente no master…

mas qndo uso tento utilizá-lo no código Java, não consigo fazer o Sub ser carregado no Master…

Espero q alguma alma caridosa ajude-me,

Pois ja naveguei no GUJ pelo menos umas 60 paginas atras desta resposta, mas não obtive sucesso…

segue trecho do código abaixo…

public void relatorio() throws JRException{
 
        String caminho = "/relatorioIndividual.jasper";

        String cod = (String) getCelCodigo();
        System.out.println(cod);

        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("codigo",cod);

                    subRelatorio("relatorio com sub", parametros, caminho);
    }




        public banco subRelatorio(String titulo, Map<String, Object> parametros,String caminho) throws JRException {

      try
      {

        JasperPrint print = JasperFillManager.fillReport(caminho, parametros, conecta.getConnectionUser() );
       
        JRViewer viewer = new JRViewer( print );

        JFrame frameRelatorio = new JFrame( titulo );

        frameRelatorio.add( viewer, BorderLayout.CENTER );

        frameRelatorio.setSize( 500, 500 );

        frameRelatorio.setExtendedState( JFrame.MAXIMIZED_BOTH );

        frameRelatorio.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );

        frameRelatorio.setVisible( true );

        return banco;

       } catch (Exception erro){
                 JOptionPane.showMessageDialog(null,"Erro: "+erro);
                 return null;
       }
 }

o relatório master é carregado, mas a parte onde deveria esta o sub não aparece…

No ireport tanto o Sub quanto o Master tem o mesmo parametro “codigo”…

e no ireport qndo aperto prewiew no master, ele automaticamente carrega o sub ja com as informações …

se alguem puder me ajudar com alguma dica agradeço e muiiiitoooo

HA QUASE Q ME ESQUEÇO… MINHA APLICAÇÃO É DESKTOP…

1 Resposta

javer

Você precisa ver como você definiu o parâmetro SUB_REPORT no relatório principal, lá no iReport você pode definir isso.

Depois no código java você tem que passar o seu sub-relatório como um parâmetro para o principal, eu uso geralmente InputStream para passar, pois os meus estão dentro de do JAR da aplicação.

Eu passo assim:
Map<String, Object> parametro = new HashMap<String, Object>();

    InputStream urlSubReportFaturas = Report.class.getResourceAsStream("reports/FATURA_COBRANCA.jasper");
    parametro.put("SUB_REPORT", urlSubReportFaturas);

Criado 20 de fevereiro de 2011
Ultima resposta 21 de fev. de 2011
Respostas 1
Participantes 2