Subrelatorio nao aparece

Pessoal, ja pesquisei aqui no forum e vi que muita gente passou por isso mas tentei as soluções dadas e também não dá certo.
Já tentei setar a opção “when no data” para “all sections…” também não adiantou.
O caminho relativo ta tudo certinho. Consegui fazer a passagem de parametro do relatorio master pro sub.
Quando eu mando visualizar no iReport aparece tudo certinho. Sò que quando chamo pelo eclipse só o subrelatorio nao aparece.
Vejam meu codigo:

[code] JasperReport relatorio = null;
JasperDesign desenho;
File rel = new File(“relatorios”);

				try {
					desenho = JRXmlLoader.load(rel.getPath() + "/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;"; //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("NumeroPedido", 1);
				parametros.put("SUBREPORT_DIR" , rel.getAbsolutePath() + "\\");
				
				JasperPrint impressao = null;
				
				try {
					impressao = JasperFillManager.fillReport(relatorio , parametros, jrRS);
				} catch (JRException e1) {
					e1.printStackTrace();
				}
		   
				JasperViewer viewer = new JasperViewer( impressao , true );
				viewer.show();[/code]

Lá no meu relatorio eu recebo esse NumeroPedido e passo ele pro subrelatorio. O subrelatorio pesquisa em outra tabela do banco, será que é isso?
Por favor quem souber solucionar ficarei mto agradecido!

Ate mais

mas quando voce vizualisa no IReport, o valor que voce passa como default é o mesmo que ele recebe quando é chamado pelo eclipse??

Sim, quando eu testo ele no iReport eu deixo marcado aquela opção para ele me perguntar qual valor. E quando testo ele na aplicação eu passo o valor assim:

ja aconteceu isso comigo umas 3 vezes

verifique o seguinte:
-Se com os valores que estão sendo recebidos o select do subrelatorio retorna realmente um valor
-Se o tamanho do subrelatorio não é maior do que o tamanho disponibilizado para ele no relatorio principal
-Se a banda que o subrelatorio se encontra realmente é chamada

(não tem problema nenhum o subrelatorio pesquisar em outra tabela)

O negócio ta tenso viu…

-Se com os valores que estão sendo recebidos o select do subrelatorio retorna realmente um valor
Eu testando somente o subrelatorio, pedindo pra digitar o parametro, retorna alguns valores.

-Se o tamanho do subrelatorio não é maior do que o tamanho disponibilizado para ele no relatorio principal
Sim, tem tamanho suficiente para todos os registros. Quando testo no iReport aparece tudo numa boa.

-Se a banda que o subrelatorio se encontra realmente é chamada
Pelo menos no iReport é. Mas quando chamo pelo programa, conforme o código que ta aí em cima,
não aparece nada! Mesmo q nao tivesse nenhum resultado era pra mostrar o cabeçalho certo?

Qual é a banda certa pra colocar os subreports? Eu tenho q colocar 2 aqui. To começando a pensar
que o problema está na aplicação, pq no iReport aparece tudo certinho…

Como faço pra ter certeza q a banda será exibida?

Olha, a propriedade Connection Type deve ta em Use datasource expression?? Acho q tem alguma coisa a ver com isso.
Pq eu li algumas coisas aqui e testei uma expressao a new net.sf.jasperreports.engine.JREmptyDataSource()
e o subrelatorio apareceu mas com todos valores null.
Deve ser pq no programa to passando um jrresultset e no ireport os subs nao tao lendo isso.

beeeeem provavel, para ter certeza que a banda foi exibida é só voce colocar um texto estatico nela e ver se ele é imprimido mas já que voce falou que ele estava recebendo null…

infelizmente sobre jrresultset eu n posso ajudar pq nunk gerei jaspers atraves deles :confused:

Como q vc gera os seus? Vc usa subreports com consulta a outras tabelas??
Vou procurar algo sobre isso aqui mas se tiver alguma dica eu aceito.

eu monto a query no proprio IReport, e sim no subrelatorio posso montar outra query
o único problema é que ele só execua select’s (e 1 por relatorio/subrelatorio)

qual a sua versão do IReport? (não sei nas antigas mas nas novas versões é bem simples trabalhar com isso)

não posso falar mal do modo como voce manda as informações pq nunca fiz assim, mas pela quantidade de reclamações que aparecem…

Qual conection type vc seleciona quando clica no objeto do subreport?
Minha versão é a 3.7.4, acho q é mais nova.
Eu sempre trabalhei com visual basic + crystal reports e fazia assim, passando uma string.
Qual seria o melhor jeito entao?

Gerva, consegui resolver aqui cara! Fiz o seguinte: Criei outro resultset para o subrelatorio. Passei ele pro JRResultSetDataSource:

Passei ele como parametro:

La nas propriedades do sub coloquei use a datasource expression e usei a expressao $P{SUBREPORT1_DS}

Tava quase desistindo e querendo tentar no crystal reports!
Agradeço a paciência aí e espero que meu erro possa evitar que outros também tenham dores de cabeça.

Valeu!

que bom que deu certo :slight_smile:
só pra consta no meu conection expression eu uso $P{REPORT_CONNECTION} (que é a conexão que mando para o relatorio principal)