Ireport subrelatorio

oi galera,

estou usando o ireport, fiz varios relatorios, ficaram otimos, o problema é que eu preciso criar um relatorio que junte alguns relatorios, como se fosse uma tabela que soma com outras e solta um resultado final.

Alguem pode me explicar como faz, ou me passar um tutorial pra fazer subrelatorios.

abraço

Nnguem?

que isso galera nao acredito que ninguem que use ireport ja precisou passar por isso.

vou mandar meu code de um relatorio criado, alguem me da uma ajuda pra criar um subrelatorio, ou transformar esse em um subrelatorio para um principal.

		private class ActionImprimirFaturamento implements ActionListener {
			@Override
			public void actionPerformed(ActionEvent arg0) {

				conexao(); 
			    	String arq = DataBaseOperations.arquivos()+"FormAdminFaturamento-Lista.jrxml";
			    	
			    	empresaParametro = pesquisarTextEmpresa.getText();
			    	dataComparadaDe = pesquisarTextDataDe.getText().toString();
			    	dataComparadaAte = pesquisarTextDataAte.getText().toString();

				String query = "SELECT empresaLaudo.id, empresaLaudo.dataLaudo, empresaLaudo.nome, empresaLaudo.empresa, tipo,total,la1,la2,la3,la4,la5,la6,la7, empresaFuncionarioLaudo.empresaTerc, empresaFuncionarioLaudo.nomeFuncionario FROM empresaLaudo, empresaFuncionarioLaudo where (empresaLaudo.nome = empresaFuncionarioLaudo.nomeFuncionario) AND (empresaLaudo.dataLaudo between $P{datade} AND $P{dataate}) AND empresaLaudo.empresa=$P{empresa} ORDER BY dataLaudo,nome";
			    	 //str_to_date(dataLaudo, '%d/%m/%Y') AS data
			    	Map<String, Object> parametros = new HashMap<String, Object>();   
					parametros.put("empresa", empresaParametro);  
					parametros.put("datade", dataComparadaDe);  
					parametros.put("dataate", dataComparadaAte);  
					parametros.put("query", query);
			
					InputStream input = null;
					try {
						input = new FileInputStream(new File(arq));
					} catch (FileNotFoundException e3) {
						// TODO Auto-generated catch block
						e3.printStackTrace();
					}   
			    	JasperDesign design = null;
					try {
						design = JRXmlLoader.load(input);
					} catch (JRException e2) {
						// TODO Auto-generated catch block
						e2.printStackTrace();
					}   
			    	JasperReport report = null;
					try {
						report = JasperCompileManager.compileReport(design);
					} catch (JRException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					} 
			    	JasperPrint impressao = null;
					try {
						impressao = JasperFillManager.fillReport(report, parametros, con);
					} catch (JRException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}   
			    	JasperViewer viewer = new JasperViewer(impressao,false);   
			    	viewer.setVisible(true);  

				
			}
		}

vlw