Duvida com IReport [RESOLVIDO]

3 respostas
E

Vou explicar meu problema e tentar ser o mais claro possível. :!:

Após configurar um relatório no IReport e ter o arquivo.jasper pronto, pesquisei para saber como
abrir ele a partir de minha classe Java, o problema é que em todos os tutorias que encontrei eles
fazem a conexão e a consulta com o banco novamente na classe java…

:arrow: Gostaria saber se é possível dentro do próprio xml que é compilado para o .jasper eu colocar a conexão e a consulta,
para que na classe java eu possa apenas chamar o arquivo.jasper sem ter que passar valores para ele.

Desde de já agradeço.

3 Respostas

T

A consulta você pode fazer no relatório mesmo e passar apenas os parâmetros ao chamar o arquivo .jasper.
Sei que no IReport tem como você deixar a consulta lá e só passar os parâmetros.
No icone ao lado do preview no IReport você pode criar a consulta e a conexão.

E

thiagosf88

Como você disse "No ícone ao lado do preview no IReport você pode criar a consulta e a conexão. " :!:

Até ai tudo bem eu crio a conexão e a consulta no IReport e visualizo sem problemas, mais na classe Java
em todo tutorial que eu vi eles realizam a conexão novamente e a consulta como no exemplo abaixo. :?

public class IReportExemple {
	private static final String url = "jdbc:mysql://127.0.0.1/escola";
	private static final String driver = "com.mysql.jdbc.Driver";
	private static final String login = "teste";
	private static final String pwd = "123456";

	public IReportExemple() {
	}

	public void gerar( String jasperFile ) throws JRException , SQLException, ClassNotFoundException {

		Class.forName( driver );
		Connection con = DriverManager.getConnection( url , login , pwd );
		Statement stm = con.createStatement();
		String query = "select * from turma";
		ResultSet rs = stm.executeQuery( query );

		//implementação da interface JRDataSource para DataSource ResultSet
		JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );


		//executa o relatório
		Map parametros = new HashMap();
		parametros.put("nota", new Double(10));

		/* Preenche o relatório com os dados. Gera o arquivo BibliotecaPessoal.jrprint    */
        //jasperFile: é o arquivo.jasper
        //parametros: esses valores pelo que entendi realmente devem ser passados aqui pela classe java
        //jrRS: agora esse aqui que é o valor da consulta , pensava que o arquivo.jasper
        //ja tinha essas informações salvas nele, e ele que realizaria a consulta.
        JasperFillManager.fillReportToFile( jasperFile, parametros, jrRS );

       ...
T

Ewerson,

eu normalmente gero os relatórios com esse método:
JasperPrint print = JasperFillManager.fillReport(arquivoJasper, parametros);

            JRExporter exporter = null;


                exporter = new JRPdfExporter();



            exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, arquivoSaida);
            exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);

            exporter.exportReport();

esse método tem várias assinaturas inclusive algumas que não necessitam de passar a conexão.

Abraço

Criado 18 de junho de 2010
Ultima resposta 19 de jun. de 2010
Respostas 3
Participantes 2