jasperReport - Documento sem páginas

Olá pessoal…

Depois de muita pesquisa aqui no fórum eu consegui criar um relatório e compilar a minha app.

Criei um relatório no iReport e joguei no caminho da minha aplicação.

Porém, quando eu mando apresentar o relatório, ele não está apresentando, embora o JasperViewer abra.

Daí é enviado uma mensagem que o documento não possui páginas.

Porque dá esse erro se eu especifiquei o local e passei os parâmetros?

Ele não deveria apresentar pelo menos a página sem informação?

No aguardo de um help.

Obrigada,

Patrícia.

ah! Segue meu trecho de código:

  try
    {
            JasperReport relatorio = (JasperReport) JRLoader.loadObject("C:/aplicativo_java/Relatorios/IndicadoresNaoCarregados.jasper");

            // HashMap de parametros utilizados no relatório. Sempre instanciados 
            Map parameters = new HashMap();

            parameters.put("ListaIndicadores","Pathy");

            JasperPrint impressao = new JasperPrint();
            impressao = JasperFillManager.fillReport(relatorio, parameters);

            JasperViewer.viewReport(impressao, false);
            //JasperExportManager.exportReportToPdfFile(impressao,"C:/aplicativo_java/Relatorios/IndicadoresNaoCarregados.pdf");
    }
    
    catch(JRException e)
    {
            System.out.println("ERRO: " +e.getMessage());
            e.printStackTrace();
    }

Olá patricia, eu tb tive esse problema, passando só os parametros e tentando imprimi-los ñ dava certo, era como se ñ tivesse gerando nenhuma página, eu fiz o seguinte passei como parâmetros um JRResultSetDataSource, pegandos os dados que eu precisava através de uma consulta na base de dados e passando os valores atraves do JRResultSetDataSource

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;

import javax.swing.JOptionPane;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;

public class Impressao {

	private String 		dir = "c:\\caminho\\;
	private String	 	relatorio,setTitle;
	private Statement	st;  
	private ResultSet	rs;
	private String 	labelTransacao = "teste";

	public Impressao(){
		setTitle		= "RECIBO";
		relatorio		= "impressaoRecibo.jasper";
		Map parameters 	= new HashMap();
		
		parameters.put("labelTransacao",	labelTransacao);
				
		try {
			st 				= 	conexao.createStatement();
			String query 	=	"select * from tabela";
			rs 				=	st.executeQuery(query);
			JRResultSetDataSource jrRS1 = new JRResultSetDataSource(rs);
			JasperPrint print;
			print = JasperFillManager.fillReport(dir+relatorio,parameters,jrRS1);
			JasperViewer jrviewer = new JasperViewer(print,false);
			jrviewer.setTitle(setTitle);
			jrviewer.setVisible(true);
			rs.close();
			st.close();
		} catch (JRException e) {
			JOptionPane.showMessageDialog( null, "ERRO NA GERAÇÃO DO RECIBO\n"+e.getMessage(), "Aviso",
	        JOptionPane.PLAIN_MESSAGE );
		} catch (SQLException e) {
			JOptionPane.showMessageDialog( null, "ERRO NA GERAÇÃO DO RECIBO\n"+e.getMessage(), "Aviso",
			JOptionPane.PLAIN_MESSAGE );
		}
	}
}

Caso sua lista esteja vazia, pode estar ocorrendo é que vc esqueceu de configurar uma opção do relatorio.

Vá em EDITAR, clique em PROPRIEDADES DO RELATORIO, selecione a aba MORE, no campo “Quando sem informações” selecione a opção “AllSectionsNoDetail”.

Pronto! vc terá uma página mesmo que o relatório esteja vazio.

Eu também perdi muitas horas com isso aí.

Boa Sorte!

Obrigada gente.

Valeu mesmo!

Patricia.