JasperReport, iReport e Hibernate

11 respostas
smorigo

Boa tarde pessoal tudo bem?
Desenvolvi minha aplicação utilizando MyFaces + Hibernate, estou iniciando o desenvolvimento dos relátorios e escolhi o JasperReport pois parece ser o mais popular no mundo Java e junto com ele o iReport…

  1. Devo utilizar HQL para gerar meus relátorios?

  2. Quando crio minha conexão do tipo Hibernate existe aquele botao TEST quando ele vai testar meu mapeamento ele reclama de que não encontra classe que não encontra um monte de coisa e esse mapemaneto tá funcionando perfeitamente na aplicação.

Qual o melhor caminho ? :frowning:

11 Respostas

C

Cara to com o mesmo problema, se vc souber a solução poste aqui

boa sorte

W

Ola pessoal eu tambem estava com problemas de comunicacao do iReport com meu banco de dados atraves do hibernate.

Consegui resolver da seguinte forma:

  • primeiro: especifiquei o local onde se localiza o arquivo hibernate.cfg.xml na lista de classpath do iReport
  • segundo: fiz uma copia dos arquivos que seguem no diretorio raiz do iReport (Ex.: D:\iReport-1.3.1).
    hibernate-configuration-3.0.dtd
    hibernate-mapping-3.0.dtd

Espero que estas informacoes lhes sejam uteis

Abraco

C

Oi pessoal do Guj, estou com problemas para utilizar i iReport com o Hibernate.

ja adicionei o hibernate.cfg.xml para o classpath do iReport, e ele achou.

não compreendi o segundo passo:

- segundo: fiz uma copia dos arquivos que seguem no diretorio raiz do iReport (Ex.: D:\iReport-1.3.1).
hibernate-configuration-3.0.dtd
hibernate-mapping-3.0.dtd

onde eu encontro estes arquivos e onde eu copio eles.

fora isso a mensagem de erro que eu recebo ao clicar no teste é:

[color=red]problem parsing configuration/hibernate.cfg.xml[/color]

alguem sabe o que pode ser???

Minha aplicação esta funcionando perfeitamente mas agora que eu estou desenvolvendo os relatórios ocorreu este problema com a conexão do iReport.

obrigado pessoal.

farzac

Pessoal, venho tendo problemas na conexao do IREPORT com banco mysql, nao estou utilizando Hibernat.
Sempre é exibido o seguinte erro:

SQL Problems
Communication link failure: Bad Handshake
jdbc:mysql://localhost:3306/erp

Mesmo eu ser iniciante, acredito que o erro é por causa do dirver, mas como na comunicacao do netbeans e banco funciona com esse driver.

Espero que possa me ajudar…

V

Boa tarde

Galera o seguinte

Resolvi o problema de coneçao e falta de classe colocando as libs do meu projeto para dentro do diretorio de libs do ireport.

Se alguem tiver algum exemplo usando hql retornando objetos agradeço.

Sds

V

Boa noite a todos

Estou utilizando java + hibernate + postgresSQL pra fazer um sistema mas estou com problema em criar relatórios com o iReports, eu adicionei as devidas bibliotecas e diretorios no classpath do iReports, criei uma conexão, ele encontra o arquivo hibernate.cfg.xml, eu clico em “Testar” e fica tudo beleza. O problema está quando eu vou criar um relatório, informo o hql corretamente mas quando vou prosseguir o iReport dá um erro “Problema genérico: Cannot open connection Cheque o seu nome usuário e senha. Tenha certeza que o SGBD está rodando”. Erro mto estranho, a minha aplicação java funciona certinho.

Se alguém puder me ajudar eu agradeço.

V

Achei a solução!!
não adianta colocar o driver jdbc no classpath do iReport, o driver jdbc DEVE ser colocado no diretório lib do iReport pra que ele funcione com o hibernate

V

Mais um probleminha básico que eu não consegui resolver. Eu criei o layout do relatório no iReport usando um conexão do hibernate, dei um preview e o relatório funcionou tudo certo, compilei e criei o arquivo .jasper, agora não consigo usar o relatório na minha aplicação java, eu utilizo o netbeans, e o arquivo jasper está dentro de um pacote chamado “relatorio” no meu projeto do netbeans. O problema é que o arquivo estoque.jasper não é encontrado.

List list = session.createQuery("from Estoque").list(); JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list); try { JasperFillManager.fillReportToFile( "estoque.jasper", null, ds ); } catch (JRException ex) { ex.printStackTrace(); } try { JasperExportManager.exportReportToPdfFile( "estoque.jrprint" ); } catch (JRException ex) { ex.printStackTrace(); } try { JasperViewer.viewReport( "estoque.pdf", false ); } catch (JRException ex) { ex.printStackTrace(); }

V

Cara dá uma olhada neste topico.

http://www.guj.com.br/posts/list/72299.java

Se nao ajudar coloca neste topico

L

cara quer uma dica para teu codigo funcionar eh em vez de criar uma rkivo fixo,
manda ele compilar no proprio codigo


JasperDesign design = JasperManager.loadXmlDesign(c:/Relatorio_teste.jrxml);

JasperReport jr = JasperManager.compileReport(design);

JasperPrint impressao = JasperManager.fillReport(jr, null, query.get);
Kleber-rr

EAe pessoal, blz??

Sei que o post é antigão, mas to numa briga feia de faca de mesa ... hhehee

o meu problema é que meu método não funciona. Todos os outros métodos do bean funcionam, menos essa carniça... hehehe
public class OrgaoGestorHandler {

	private String saida;
	private List<OrgaoGestor> listOg;

//...
	// MÉTODOS PARA IMPRIMIR RELATÓRIO
	private String getDiretorioReal(String diretorio) {
		HttpSession session = (HttpSession) FacesContext.getCurrentInstance()
				.getExternalContext().getSession(false);
		System.out.println("getDireitorioReal");
		return session.getServletContext().getRealPath(diretorio);
	}

	private String getContextPath() {
		HttpSession session = (HttpSession) FacesContext.getCurrentInstance()
				.getExternalContext().getSession(false);
		System.out.println("getContextPath");
		return session.getServletContext().getContextPath();
	}

	private void preenchePdf(JasperPrint print) throws JRException {
		// Pego o caminho completo do PDF desde a raiz
		saida = getDiretorioReal("/pdf/relatorio.pdf");
		// Exporto para PDF
		JasperExportManager.exportReportToPdfFile(print, saida);
		/*
		 * Jogo na vari�vel sa�da o nome da aplica��o mais o caminho para o PDF.
		 * Essa vari�vel ser� utilizada pela view
		 */
		saida = getContextPath() + "/pdf/relatorio.pdf";
	}

	public String imprimirRelatorio() { //ESSA É A CARNIÇA...
		System.out.println("metodo de impressao");
		saida = null;
		String jasper = getDiretorioReal("jasper/orgaogestor.jasper");
		JRDataSource jrds = new JRBeanCollectionDataSource(listOg);
		// Connection conexao = null;
		try {
			// Mando o jasper gerar o relat�rio
			JasperPrint print = JasperFillManager
					.fillReport(jasper, null, jrds);
			// Gero o PDF
			preenchePdf(print);
			System.out.println("pdf gerado");

		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("erro: " + e);
	
		}
	
		return "exibeRelatorio";

	}
no meu jsp, está assim:
<rich:dataTable value="#{orgaogestorHandler.orgaosGestoresByNome}" var="f" rendered="#{not empty orgaogestorHandler.orgaosGestoresByNome}" rows="5" id="orgaosGestoresByNome">
		<h:column>
			<f:facet name="header">
				<h:outputText value="Código"/>
			</f:facet>
				<h:outputText value="#{f.cod_orgaogestor}"/>
		</h:column>
		<h:column>
			<f:facet name="header">
				<h:outputText value="Nome"/>
			</f:facet>
				<h:outputText value="#{f.nome}"/>		
		</h:column>

		<h:column>
			<f:facet name="header">
				<h:outputText value="Relatório"/>
			</f:facet>
			<center>
			<h:commandButton value="PDF" target="_blank" action="#{orgaogestorHandler.imprimirRelatorio}"/>//NÃO FUNCIONA NEM COM REZA BRABA....
								
		</center>
		</h:column>

Eae pessoal, alguem pode me ajudar???

Valeu.

Criado 27 de março de 2006
Ultima resposta 28 de jun. de 2010
Respostas 11
Participantes 9