Ireport - como eu crio um relatório sem usar conexão jdbc

1 resposta
renato.dosantos

O que eu quero é passar os parâmetros e imprimir o relatório utilizando o .jasper criado pelo ireport. Todos os lugares monstram o cara fazendo uma conexão, eu não quero isso pq uso hibernate.

FacesContext context = FacesContext.getCurrentInstance();
	    	HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
	  
	    	//InputStream reportStream = context.getExternalContext().getResourceAsStream("/reports/relatorioCarro.jasper");
	    	InputStream reportStream = context.getExternalContext().getResourceAsStream("/reports/carros.jasper");
	    	
	    	if (reportStream != null) {
	    	
	    		ServletOutputStream servletOutputStream = response.getOutputStream();
		    	Map<Object, Object> parameters = new HashMap<Object, Object>();
		   
		    	DAOFactory factory = BaseDAOFactory.getFactory();
				CarroDAO carroDAO = factory.getCarroDAO();
				
				List<Carro> resultado = (List<Carro>) carroDAO.listaCarros(getControlSecurityBean().getProdutorId());
		        for (Carro carroCorrente : resultado) {
		         	
		        	parameters.put("descricao", carroCorrente.getDescricao());
		        	parameters.put("codigo", carroCorrente.getCodigoCarro());
		        	JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parameters);
		            response.setContentType(ConstantesBeans.REPORT_CONTENT_TYPE);		    	
			    	response.setHeader(ConstantesBeans.REPORT_HEADER_VALUE, ConstantesBeans.REPORT_HEADER_VALUE_ATTACHMENT_PDF);
			    	
			    	servletOutputStream.flush();
			    	servletOutputStream.close();
			    	context.responseComplete();
			    	
		        }

esse código só imprime em branco.

1 Resposta

Gerva

voce está mandando os parametros no lugar da conexão
tente o seguinte

e não esqueça de marcar a opção de mostrar o relatório mesmo não tendo query

Criado 4 de novembro de 2010
Ultima resposta 4 de nov. de 2010
Respostas 1
Participantes 2