[Ireport]Criar paramento SQL e pasar com JAVA![Resolvido!]

6 respostas
UMC
Olá pessoal ! tenho um relatório para web que gera em PDF que tem a seguinte consulta no banco:
SELECT DISTINCT 
   *
FROM
     "public"."pontos" pontos
WHERE
     pontos.cidade = 'FURTUNA'
ORDER BY
     pontos.chave_fk ASC
e a seguinte classe para geração do relatorio:
try{
        RelConexao rc =  new RelConexao();
		rc.conexaorel(); // Faz a conex�o

		
		String pathJasper = getServletContext().getRealPath("/relatorios") + "/";
		
		String path = getServletContext().getRealPath("/");
		Map parametros = new HashMap();
		

		parametros.put("", pathJasper + "Relatorio_Pontos.jasper");
		try {
			
			JasperPrint impressao = JasperFillManager.fillReport(
			 pathJasper + "Relatorio_Pontos.jasper",  parametros, rc.con);
			
			JasperManager.printReportToPdfFile(impressao, path + "Relatorio_Pontos.pdf");
			
			response.sendRedirect("Relatorio_Pontos.pdf");
		} catch (Exception e) {
			response.getWriter().println("Erro ao gerar o relatório :"+ e);
			System.out.println("Erro ao gerar o relat�rio: " +e);
		}
		}catch(Exception e){
			System.out.println("Erro: "+e);
		}
Bom acontece que eu estou setando a cidade q quero la no SQL
pontos.cidade = 'FURTUNA'
e gostaria de passar o nome da cidade como parâmetro na hora da construção?!! como faço isso? Obrigado pela atenção de todos!! vlw abs

6 Respostas

Mero_Aprendiz
UMC:
Olá pessoal ! tenho um relatório para web que gera em PDF que tem a seguinte consulta no banco:
SELECT DISTINCT 
   *
FROM
     "public"."pontos" pontos
WHERE
     pontos.cidade = 'FURTUNA'
ORDER BY
     pontos.chave_fk ASC
e a seguinte classe para geração do relatorio:
try{
        RelConexao rc =  new RelConexao();
		rc.conexaorel(); // Faz a conex�o

		
		String pathJasper = getServletContext().getRealPath("/relatorios") + "/";
		
		String path = getServletContext().getRealPath("/");
		Map parametros = new HashMap();
		

		parametros.put("", pathJasper + "Relatorio_Pontos.jasper");
		try {
			
			JasperPrint impressao = JasperFillManager.fillReport(
			 pathJasper + "Relatorio_Pontos.jasper",  parametros, rc.con);
			
			JasperManager.printReportToPdfFile(impressao, path + "Relatorio_Pontos.pdf");
			
			response.sendRedirect("Relatorio_Pontos.pdf");
		} catch (Exception e) {
			response.getWriter().println("Erro ao gerar o relatório :"+ e);
			System.out.println("Erro ao gerar o relat�rio: " +e);
		}
		}catch(Exception e){
			System.out.println("Erro: "+e);
		}
Bom acontece que eu estou setando a cidade q quero la no SQL
pontos.cidade = 'FURTUNA'
e gostaria de passar o nome da cidade como parâmetro na hora da construção?!! como faço isso? Obrigado pela atenção de todos!! vlw abs

Olá.
Fácil! =]

...
parametros.put("", pathJasper + "Relatorio_Pontos.jasper");
parametros.put("nomeDaCidade", 'FURTUNA');
...

, crie um parametro no iReport chamado 'nomeDaCidade' e

SELECT DISTINCT 
   *
FROM
     "public"."pontos" pontos
WHERE
     pontos.cidade = $P{nomeDaCidade}
ORDER BY
     pontos.chave_fk ASC

[]'
JL

UMC

Ok, vo fazer isso agora!!
Obrigado por responder!!
vlw

ManoJava

Bom dia

Primeiro crie sua query normalmente dentro do ireport, depois crie o parametro CIDADE, marque a propriedade “use as a prompt” e nessa linha faça assim: pontos.cidade = $P!{CIDADE}, desse modo vc poderá passar a cidade desejada quando rodar seu relatório.

Att.

UMC

ManoJava:
Bom dia

Primeiro crie sua query normalmente dentro do ireport, depois crie o parametro CIDADE, marque a propriedade “use as a prompt” e nessa linha faça assim: pontos.cidade = $P!{CIDADE}, desse modo vc poderá passar a cidade desejada quando rodar seu relatório.

Att.


??? nao entedir deireito!! “use as a prompt” ond faço isso??
vlw

ManoJava

Quando clicar sobre o parametro no lado esquerdo na janela Report Inspector, vai abrir as propriedades do parametro na janela Properties, dai tem uma opção " use as a prompt" vc marca a caixa de seleção e quando rodar o relatório ele irá solicitar a passagem do parametro através de uma caixa de diálogo.

Att

UMC

Obrigado Mero_Aprendiz e ManoJava !!
Usei como o Mero_Aprendiz falou e funcionou
o que ManoJava falou vou fazer posteriormente tbm.
vlw
abs

Criado 26 de janeiro de 2010
Ultima resposta 26 de jan. de 2010
Respostas 6
Participantes 3