iReport x Eclipse / Passar Parametro para Subrelatorio [RESOLVIDO]

Pessoal, comecei com iReports tem pouco tempo e estou com algumas dúvidas. Ví em uns tutoriais por ai que pra usar ele na aplicação tem que fazer uns imports mais ou menos parecido com este:

O iReport q to usando é o 3.7.4 (atualmente acho q é o mais novo). Acontece que na pasta dele não tem esses jars que citam por ai. Qual seriam os jar realmente necessários para utilizar os relatorios na minha aplicação.
Outra dúvida é a seguinte: Eu vi que para chamar o relatorio usamos parametros para selecionar os dados que queremos. No caso meu relatorio tem dois subrelatorios, eles também receberão esse parâmetro?

No meu projeto tenho esses jar’s:

  • com-jaspersoft-ireport.jar
  • jasperreports-2.0.2.jar
  • iReport.jar

procura ai… e vai postando…

Cara, resolvi importar tudo q tinha em C:\Program Files\Jaspersoft\iReport-3.7.4\ireport\modules\ext
Rsrs…vou tentar somente com esses que você falou.

Na dúvida importa tudo e eras isso!!

os imports estão todos na pasta jasperreports-3.7.3/build (note que é na pasta do jasperreports e nao do ireport)

e os parametros são passados para o relatorio principal e ele passa para os subrelatorios

os necessarios:

[code]import java.util.HashMap; //para passar os parametros

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;[/code]

Consegui fazer aqui usando esse código:

[code]
JasperReport relatorio = null;
JasperDesign desenho;

				try {
					desenho = JRXmlLoader.load("Relatorios/Pedido.jrxml");
					relatorio = JasperCompileManager.compileReport( desenho );
	
				} catch (JRException e2) {
					e2.printStackTrace();
				}
		   
				
				ResultSet rs = null;
				try {
						Connection con = Conexao.getConnection();
						Statement stm = con.createStatement();
						String query = "select * from pesquisa_pedido where NumPedido = 1"; //depois passo o numero certo
						rs = stm.executeQuery( query );
				} catch (SQLException e1) {
					e1.printStackTrace();
				}

				JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
		   
				Map parametros = new HashMap();
				//parametros.put("nota", new Double(10));
				JasperPrint impressao = null;
				
				try {
					impressao = JasperFillManager.fillReport(relatorio , parametros, jrRS);
				} catch (JRException e1) {
					e1.printStackTrace();
				}
		   
				JasperViewer viewer = new JasperViewer( impressao , true );
				viewer.show();[/code]

Ele mostrou o relatorio mas os subreports nao apareceram. Na verdade eles deveriam receber outra query, ou senão receber um parametro do relatorio master também serviria. Tem como passar esse parametro do master pro sub?

eu falei isso agora pouco :confused:

é assim que passa, lah no IReport voce configura os parametros que vão para os subrelatorios
ou seja:
“os parametros são passados para o relatorio principal e ele passa para os subrelatorios” [2]

Ok amigo, eu vi q vc falou isso mas ficou tao vago q não resolveu. Mas de qualquer forma agradeço sua atenção.
Vou continuar pesquisando aqui…

Pessoal, depois quebrar a cabeça aqui descobri como passar os parâmetros do master pro sub:

  1. No relatorio master, clique no objeto do subrelatorio e em Parameter defina o nome e a expressão do parâmetro. No caso a expressão geralmente é uma variável que existe no master.

  2. No subrelatorio, na parte “Report Inspector” a esqueda da tela, clique em Parameter com o botao direito a Adicionar.

  3. Nas propriedades do parametro coloque o mesmo nome que foi dado no relatorio master. Escolha o tipo compativel do parametro.
    Use as prompt ele perguntará o parametro se pedir pra visualizar. Default Value é o valor padrão.

  4. Monte a string sql de acordo com o parametro q será recebido: SELECT * FROM TABELA WHERE CAMPO = $P{NomeParametro};

O negocio é que não adianta só adicionar o parametro no objeto do subreport q ta no relatorio master. Tem que configurar no subrelatorio também.

Valeu!

[quote=marciosouzajunior]Pessoal, depois quebrar a cabeça aqui descobri como passar os parâmetros do master pro sub:

  1. No relatorio master, clique no objeto do subrelatorio e em Parameter defina o nome e a expressão do parâmetro. No caso a expressão geralmente é uma variável que existe no master.

  2. No subrelatorio, na parte “Report Inspector” a esqueda da tela, clique em Parameter com o botao direito a Adicionar.

  3. Nas propriedades do parametro coloque o mesmo nome que foi dado no relatorio master. Escolha o tipo compativel do parametro.
    Use as prompt ele perguntará o parametro se pedir pra visualizar. Default Value é o valor padrão.

  4. Monte a string sql de acordo com o parametro q será recebido: SELECT * FROM TABELA WHERE CAMPO = $P{NomeParametro};

O negocio é que não adianta só adicionar o parametro no objeto do subreport q ta no relatorio master. Tem que configurar no subrelatorio também.

Valeu![/quote]

Excelente Aqui funcionou certinho!!!

Valeuu

[quote=marciosouzajunior]Pessoal, depois quebrar a cabeça aqui descobri como passar os parâmetros do master pro sub:

  1. No relatorio master, clique no objeto do subrelatorio e em Parameter defina o nome e a expressão do parâmetro. No caso a expressão geralmente é uma variável que existe no master.

  2. No subrelatorio, na parte “Report Inspector” a esqueda da tela, clique em Parameter com o botao direito a Adicionar.

  3. Nas propriedades do parametro coloque o mesmo nome que foi dado no relatorio master. Escolha o tipo compativel do parametro.
    Use as prompt ele perguntará o parametro se pedir pra visualizar. Default Value é o valor padrão.

  4. Monte a string sql de acordo com o parametro q será recebido: SELECT * FROM TABELA WHERE CAMPO = $P{NomeParametro};

O negocio é que não adianta só adicionar o parametro no objeto do subreport q ta no relatorio master. Tem que configurar no subrelatorio também.

Valeu![/quote]

Obrigada pelo post!
Não sabia como passar parâmetros para o Sub-Relatório, funcionou redondo aqui!!!
o/

Excelente dica!!! Não tem erro. Apenas para ilustrar, a propriedade Parameters é a penúltima na aba de propriedades, não confundir com a opção Parameters Map Expression como eu fiz…

Melhor explicação impossível…perfeito…obrigado!!!

[quote=marciosouzajunior]Pessoal, depois quebrar a cabeça aqui descobri como passar os parâmetros do master pro sub:

  1. No relatorio master, clique no objeto do subrelatorio e em Parameter defina o nome e a expressão do parâmetro. No caso a expressão geralmente é uma variável que existe no master.

  2. No subrelatorio, na parte “Report Inspector” a esqueda da tela, clique em Parameter com o botao direito a Adicionar.

  3. Nas propriedades do parametro coloque o mesmo nome que foi dado no relatorio master. Escolha o tipo compativel do parametro.
    Use as prompt ele perguntará o parametro se pedir pra visualizar. Default Value é o valor padrão.

  4. Monte a string sql de acordo com o parametro q será recebido: SELECT * FROM TABELA WHERE CAMPO = $P{NomeParametro};

O negocio é que não adianta só adicionar o parametro no objeto do subreport q ta no relatorio master. Tem que configurar no subrelatorio também.

Valeu![/quote]

CARA EU TE AMO .
Desculpas Ressuscitar o Tópico Mas eu precisei agradeçer !