Jasper Ireports

1 resposta
O
Bom dia a todos. Estou utilizando o ireports para gerar relatorio, porem qdo ele abre o jasperView o documento esta vazio, mas o arquivo pdf é criado e preenchido com valores vindo do banco de dados, outro problema que estou encontrando é que o jasperView demora muito tempo para abrir, coisa de minutos, portanto como faço para fazer com que o jasperView apresente o documento desejado e como resolvo este problema da demora para abrir. Ai esta meu codigo:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.view.JasperViewer;

public class TesteJasper {
	/* Real za con tornan i exão com o banco de dados, re do o objeto Connection */
	private static Connection getConnection( ) throws
	ClassNotFoundException, SQLException
	{
		String driver = "org.gjt.mm.mysql.Driver";
		String url = "jdbc:mysql://localhost/tabelasistema2";
		String user = "root";
		String password = "201273";
		Class.forName(driver);
		Connection con = DriverManager.getConnection( url, user, password );
		return con;
	}
	/* Gera Relatorio e visualiza-o */
	public void geraRelatorio( ) throws JRException, Exception
	{
		Connection con = getConnection( );
		Statement stm = con.createStatement( );
		String nome;
		nome="fabio";
		String query = "select * from funcionario_tem_empresa";
		
		ResultSet rs = stm.executeQuery( query );
		JasperReport jr = JasperCompileManager.compileReport("c:/Arquivos de programas/JasperSoft/iReport-1.2.7/PrimeiroRelatorio.jrxml"); 
		/* implementação da interface JRDataSource para DataSource ResultSet */
		JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
		/* HashMap de parametros utilizados no relatório. Sempre instanciados */
		Map parameters = new HashMap();
//		parameters.put("COLUNA", valor);
		/* Preenche o relatório com os dados. Gera o arquivo BibliotecaPessoal.jrprint */
		JasperFillManager.fillReportToFile( "c:/Arquivos de programas/JasperSoft/iReport-1.2.7/PrimeiroRelatorio.jasper", parameters, jrRS );
		/* Exporta para o formato PDF */
		JasperExportManager.exportReportToPdfFile( "c:/Arquivos de programas/JasperSoft/iReport-1.2.7/PrimeiroRelatorio.jrprint" );
		/* Preenche o relatorio e o salva diretamente em arquivo PDF. Sem a necessidade do .jrprint */
//		JasperRunManager.runReportToPdfFile("BibliotecaPessoal.jasper", parameters, jrRS);
		JasperPrint jprint = JasperManager.fillReport(jr, parameters, jrRS);
		/* Visualiza o relatório em formato PDF */
		JasperViewer.viewReport( jprint, false );
	/*	 
		 
		JasperViewer.viewReport(jprint, false); 

	 * 
	* 	jr = JasperCompileManager.compileReport("c:/projetos/com/provenda/relas/teste.jrxml");
 	    jprint = JasperManager.fillReport(jr, parameters, jrRS);
 	    JasperViewer.viewReport(jprint, false);
	*/
		
		
		
	}
	public static void main(String[] args) throws JRException, Exception
	{
		new TesteJasper().geraRelatorio();
	}
}
[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - Cassolato[/color][/size] :joia:

1 Resposta

O

Bom, qto ao problema de estar exibindo um documento vazio, é porque eu não estava passando o caminho exato do arquivo pdf gerado ao jasperView. Entao eu mudei a linha:

JasperViewer.viewReport( jprint, false );

para:

JasperViewer.viewReport(c:/Arquivos de programas/JasperSoft/iReport-1.2.7/PrimeiroRelatorio.jrprint, false );

mas o problema da demora continua.

Criado 13 de novembro de 2006
Ultima resposta 13 de nov. de 2006
Respostas 1
Participantes 1