quarta-feira, 31 de março de 2010

Res: [java-br] Relatórios com Ireport

·

 

Segue...

At.

Jayro Rodrigues
+ 55 85 8845 6331
JAVA | J2EE | JBOSS SEAM
ASP.NET | C#

________________________________
De: Marcos Fabrício Corso <marcoscorso@terra.com.br>
Para: java-br@yahoogrupos.com.br
Enviadas: Quarta-feira, 31 de Março de 2010 8:42:47
Assunto: Re: [java-br] Relatórios com Ireport

putz cara
sei la entao
manda teu fonte e o relatorio completo

----- Original Message -----
From: Jayro Rodrigues
To: java-br@yahoogrupos .com.br
Sent: Wednesday, March 31, 2010 8:11 AM
Subject: Res: [java-br] Relatórios com Ireport

Eu já verifiquei todos os $P{}, nomes e tipos. Segue abaixo o DataSource que eu estou gerando. O engraçado é que quando eu atribuo a lista de parametros, é exibido normalmente.

DATASOURCE:

List<HashMap< String, Object>> detalhesLancamentos = new ArrayList<HashMap< String, Object>>();
HashMap<String, Object> htItemDetalhe = null;

for (Lancamento obLancamento : lstLancamento) {

htItemDetalhe = new HashMap<String, Object>();

htItemDetalhe. put("referencia" , obLancamento. getReferencia( ));

// Contrução
if (obLancamento. getTipo() .getId() == 1) {

htItemDetalhe. put("saldoMesAnt Edif",
this.calculaSaldoMe sAnterior( obLancamento. getReferencia( ),
obLancamento. getTipo() .getId(),
(int)obLancamento. getId())) ;

htItemDetalhe. put("debito" , obLancamento. getDebito( ));
htItemDetalhe. put("credito" , obLancamento. getCredito( ));
htItemDetalhe. put("saldoConstr ucao", new Double("10.00" )); // SALDO ATUAL TESTE

}
}

PARAMETROS:

Map<String, Object> obMapa = new Hashtable<String, Object>();

obMapa.put(" denominacao" , this.getImovel( ).getDenominacao ());
obMapa.put(" QtdEdificacoes" , this.calculaQuantid adeEdificacoes( this.getImovel( ).getId() ));
obMapa.put(" valorCompra" , this.getImovel( ).getValorCompra Imovel()) ;
obMapa.put(" valorAtual" , this.calculaValorAt ualImovel( this.getImovel( ).getId() ));
obMapa.put(" logomarca" , this.getLogoSesc( ));

At.

Jayro Rodrigues
+ 55 85 8845 6331
JAVA | J2EE | JBOSS SEAM
ASP.NET | C#

____________ _________ _________ __
De: Marcos Fabrício Corso <marcoscorso@ terra.com. br>
Para: java-br@yahoogrupos .com.br
Enviadas: Terça-feira, 30 de Março de 2010 17:58:02
Assunto: Re: [java-br] Relatórios com Ireport

1) verifique no relatorio se os nomes sao os mesmos, uma virgula errada ja era
2) verifique o tipo de dados (int, string, date) do objetos q vc criou no relatorio se sao os mesmo do parametro, esse erro da na compilacao do relatorio
3) verifique o tamanho (altura e largura) e a fonte dos objetos no relatorio, as vezes nao aparece porque o objeto esta muito pequeno
4) o conteudo q vc esta mandando no parametro existe, se estiver mandando "" (branco) vai mostrar branco no relatorio, nao considerando erro
5) marque a opção no objecto para nao imprimir quando seu conteudo for null

que eu lembro de cabeça agora sao os principais erros que + acontecem, senao manda teu fonte ai .....

----- Original Message -----
From: Jayro Rodrigues
To: java-br@yahoogrupos .com.br
Sent: Tuesday, March 30, 2010 5:42 PM
Subject: Res: [java-br] Relatórios com Ireport

Marcos,

os parametros estão sendo exibidos corretamento, o problema tá acontecendo quando eu passo o DataSource (List<HashMap< String,Object> >). O conteúdo do data Source é que não está sendo exibido.

JasperReport jasperReport = getJasperReportFrom ResourceName( pathFile, nomeFile);

JRDataSource dataSource = new JRMapCollectionData Source(detalhes) ;

JasperFillManager. fillReport( jasperReport, params, dataSource);

No dataSource eu tenho uma List<HashMap< String,Object> >. Não exibe o conteúdo populado na lista.
No params eu tenho um Map<String,Object> . Sendo exibido normalmente.

Eu acho que deva dar mais uma idéia sobre o problema. Grato.

At.

Jayro Rodrigues
+ 55 85 8845 6331
JAVA | J2EE | JBOSS SEAM
ASP.NET | C#

____________ _________ _________ __
De: Marcos Fabrício Corso <marcoscorso@ terra.com. br>
Para: java-br@yahoogrupos .com.br
Enviadas: Terça-feira, 30 de Março de 2010 17:30:45
Assunto: Re: [java-br] Relatórios com Ireport

eu uso so hashmap e funciona 100%
exemplo
String usuario3 = "Marcos" ;
HashMap parametros3 = new HashMap();
parametros3. put("USUARIO" , usuario3 ) ;

na chamada do relatorio nao esqueca de colocar o parametro

JasperPrint jasperPrint3 = null ;
try {
jasperPrint3 = JasperFillManager. fillReport( is3, parametros3, jrRS6 );
} catch (JRException e11) { }

no relatorio vc cria o parametro "USUARIO" e printa ele no relatorio
funciona 100 %

----- Original Message -----
From: Jayro Rodrigues
To: Java Group
Sent: Tuesday, March 30, 2010 5:23 PM
Subject: [java-br] Relatórios com Ireport

Pessoal,

Alguém já teve uma experiência em desenvolvimento com Ireport utilizando o JRMapCollectionData Source ? Estou passando uma List<HashMap< String,Object> > para o DataSource e quando
tento recuperar no relatório vai como Null

Criei os parametros com o mesmo nome das chaves na List e ele não
está conseguindo resgatar os dados. Fico grato por qualquer sugestão.

At.

Jayro Rodrigues
+ 55 85 8845 6331
JAVA | J2EE | JBOSS SEAM
ASP.NET | C#

____________ _________ _________ _________ _________ _________ _
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbusca dos.yahoo. com

[As partes desta mensagem que não continham texto foram removidas]

------------ --------- --------- --------- --------- --------- -
E-mail verificado pelo Terra Anti-Spam.
Para classificar esta mensagem como spam ou não spam, clique aqui.
Verifique periodicamente a pasta Spam para garantir que apenas mensagens
indesejadas sejam classificadas como Spam.

------------ --------- --------- --------- --------- --------- -
Esta mensagem foi verificada pelo E-mail Protegido Terra.
Atualizado em 30/03/2010

[As partes desta mensagem que não continham texto foram removidas]

____________ _________ _________ _________ _________ _________ _
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbusca dos.yahoo. com

[As partes desta mensagem que não continham texto foram removidas]

------------ --------- --------- --------- --------- --------- -
E-mail verificado pelo Terra Anti-Spam.
Para classificar esta mensagem como spam ou não spam, clique aqui.
Verifique periodicamente a pasta Spam para garantir que apenas mensagens
indesejadas sejam classificadas como Spam.

------------ --------- --------- --------- --------- --------- -
Esta mensagem foi verificada pelo E-mail Protegido Terra.
Atualizado em 30/03/2010

[As partes desta mensagem que não continham texto foram removidas]

____________ _________ _________ _________ _________ _________ _
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbusca dos.yahoo. com

[As partes desta mensagem que não continham texto foram removidas]

------------ --------- --------- --------- --------- --------- -
E-mail verificado pelo Terra Anti-Spam.
Para classificar esta mensagem como spam ou não spam, clique aqui.
Verifique periodicamente a pasta Spam para garantir que apenas mensagens
indesejadas sejam classificadas como Spam.

------------ --------- --------- --------- --------- --------- -
Esta mensagem foi verificada pelo E-mail Protegido Terra.
Atualizado em 31/03/2010

[As partes desta mensagem que não continham texto foram removidas]

__________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com
----------

package br.com.sescce.SESCIMOVEIS.controller;

import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;

import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import javax.persistence.TemporalType;
import javax.swing.ImageIcon;

import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.data.JRMapArrayDataSource;
import net.sf.jasperreports.engine.data.JRMapCollectionDataSource;
import net.sf.jasperreports.engine.util.JRLoader;

import org.hibernate.JDBCException;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Transactional;

import br.com.sescce.SESCIMOVEIS.model.Imovel;
import br.com.sescce.SESCIMOVEIS.model.Lancamento;
import br.com.sescce.SESCIMOVEIS.util.DataUtil;
import br.com.sescce.administracaousuario.util.MessageUtil;
import br.com.sescce.util.ReportUtil;

/**
* Classe RelLancamentoImovel controller para chamada de m�todos a
* partir de uma view
* @author Jayro R. Silva
* @version 1.0
* @since release 1 da aplica��o
*/
@Name("relLancamentoImovel")
public class RelLancamentoImovel {

private Imovel imovel;

private Date dataInicio;

private Date dataFinal;

@In
private EntityManager entityManager;

/**
* Gera PDF de lan�amentos para um im�vel em um determinado per�odo.
*/
@Transactional
public void gerarRelatorioLancamentoImovel() {

try {

ReportUtil report = new ReportUtil();

Map<String, Object> parametros = this.getParametros();

String relatorio = "Rel_LancamentoImovel.jasper";

JasperPrint jp = obterJasperPrint(parametros, this.extraiDetalheRelatorio(),
"/relatorios/", relatorio);

report.exibirRelatorio(FacesContext.getCurrentInstance(), jp, ReportUtil.PDF_TYPE);

}

catch (NullPointerException e) {

e.printStackTrace();
MessageUtil.errorMessage("Ocorreu um erro de objeto nulo.");
}

catch (JRException e) {

e.printStackTrace();
MessageUtil.errorMessage("Ocorreu um erro ao gerar o relat�rio.");
}

catch (Exception e) {

e.printStackTrace();
MessageUtil.errorMessage("Ocorreu geral ao gerar o relat�rio.");
}

}

public net.sf.jasperreports.engine.JasperPrint obterJasperPrint(
final java.util.Map<String, Object> params,
final java.util.List<HashMap<String, Object>> detalhes,
final String pathFile,
final String nomeFile) throws Exception {

JasperReport jasperReport = getJasperReportFromResourceName(pathFile, nomeFile);

JRDataSource dataSource = new JRMapCollectionDataSource(detalhes);

return JasperFillManager.fillReport(jasperReport, params, dataSource);
}

public net.sf.jasperreports.engine.JasperReport getJasperReportFromResourceName(
final String path,
final String resource)
throws JRException {

InputStream in = getClass().getResourceAsStream(path+resource);

return (JasperReport) JRLoader.loadObject(in);
}

/*public net.sf.jasperreports.engine.JasperPrint obterJasperPrint(
final java.util.Map<String, Object> params,
final String pathFile,
final String nomeFile) throws Exception {

JasperReport jasperReport = getJasperReportFromResourceName(pathFile, nomeFile);

return JasperFillManager.fillReport(jasperReport, params);
}*/

/**
* Popula os valores para os parametros do relat�rio
*
* @return Map<String, Object> com os parametros est�ticos
* para o relat�rio.
*/
private Map<String, Object> getParametros() {

Map<String, Object> obMapa = new Hashtable<String, Object>();

obMapa.put("denominacao", this.getImovel().getDenominacao());
obMapa.put("QtdEdificacoes", this.calculaQuantidadeEdificacoes(this.getImovel().getId()));
obMapa.put("valorCompra", this.getImovel().getValorCompraImovel());
obMapa.put("valorAtual", this.calculaValorAtualImovel(this.getImovel().getId()));
obMapa.put("logomarca", this.getLogoSesc());

return obMapa;
}

/**
* Gera o Details do relat�rio.
* @return List<Hashtable<String, Object>> com informa��es
* que ser�o apresentadas no relat�rio.
*/
@SuppressWarnings("unchecked")
private List<HashMap<String, Object>> extraiDetalheRelatorio() {

try {

StringBuilder obQuery = new StringBuilder();

obQuery.append("SELECT lan FROM Lancamento lan ");
obQuery.append("JOIN lan.imovel imo ");
obQuery.append("WHERE (lan.imovel.id = imo.id ");
obQuery.append("AND imo.id = :idImovel) ");
obQuery.append("AND lan.referencia BETWEEN :dataInicio AND :dataFim ");

Query query = this.getEntityManager().createQuery(obQuery.toString());

query.setParameter("dataInicio", this.getDataInicio(), TemporalType.DATE);
query.setParameter("dataFim", this.getDataFinal(), TemporalType.DATE);
query.setParameter("idImovel", this.getImovel().getId());

List<Lancamento> lstLancamento = (List<Lancamento>) query.getResultList();

if (lstLancamento.size() > 0) {

List<HashMap<String, Object>> lstDetalhesLancamentos = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> htItemDetalhe = null;

for (Lancamento obLancamento : lstLancamento) {

htItemDetalhe = new HashMap<String, Object>();

htItemDetalhe.put("referencia", obLancamento.getReferencia());

// Contru��o
if (obLancamento.getTipo().getId() == 1) {

htItemDetalhe.put("saldoMesAntConstr",
this.calculaSaldoMesAnterior(obLancamento.getReferencia(),
obLancamento.getTipo().getId(),
(int)obLancamento.getId()));

htItemDetalhe.put("debitoMesConstr", obLancamento.getDebito());
htItemDetalhe.put("creditoMesConstr", obLancamento.getCredito());
htItemDetalhe.put("saldoMesAntConstr", new Double("10.00")); // SALDO ATUAL

}

// Edifica��o
/*if (obLancamento.getTipo().getId() == 2) {

htItemDetalhe.put("saldoMesAntEdif",
this.calculaSaldoMesAnterior(obLancamento.getReferencia(),
obLancamento.getTipo().getId(),
(int)obLancamento.getId()));

htItemDetalhe.put("debitoMesEdificacao", obLancamento.getDebito());
htItemDetalhe.put("creditoMesEdificacao", obLancamento.getCredito());
htItemDetalhe.put("saldoEdificacao", new Double("10.00")); // SALDO ATUAL
}

//Benfeitoria
if (obLancamento.getTipo().getId() == 3) {

htItemDetalhe.put("saldoMesAntConstr",
this.calculaSaldoMesAnterior(obLancamento.getReferencia(),
obLancamento.getTipo().getId(),
(int)obLancamento.getId()));

htItemDetalhe.put("debitoMesBenf", obLancamento.getDebito());
htItemDetalhe.put("creditoMesBenfeitoria", obLancamento.getCredito());
htItemDetalhe.put("saldoBenfeitoria", new Double("10.00")); // SALDO ATUAL

}*/

lstDetalhesLancamentos.add(htItemDetalhe);

}

if(lstDetalhesLancamentos.size() > 0)
return lstDetalhesLancamentos;
}

} catch (NoResultException e) {

e.printStackTrace();
return new ArrayList<HashMap<String,Object>>();

} catch (Exception e) {

e.printStackTrace();
return new ArrayList<HashMap<String,Object>>();
}

return new ArrayList<HashMap<String, Object>>();

}

/**
* @return java.awt.Image logosesc
*/
private java.awt.Image getLogoSesc() {

URL url = getClass().getResource("/relatorios/logoSescpng.png");
ImageIcon imageIcon = new ImageIcon(url);

return imageIcon.getImage();
}

/**
* Calcula o valor atual de um im�vel.
* @param idImovel
* @return Valor atual do im�vel com base nos lan�amentos.
*/
private double calculaValorAtualImovel(int idImovel) {

if (idImovel > 0) {

try {

StringBuilder obQuery = new StringBuilder();

obQuery.append("SELECT ((SUM(l.debito)) + im.valorCompraImovel) as valorAtual ");
obQuery.append("FROM Lancamento l ");
obQuery.append("JOIN l.imovel im ");
obQuery.append("WHERE l.imovel.id = :idImovel ");
obQuery.append("GROUP BY im.valorCompraImovel ");

Query query = this.getEntityManager()
.createQuery(obQuery.toString());

query.setParameter("idImovel", idImovel);

double valorAtual = (Double) query.getSingleResult();

return new Double(valorAtual);


} catch (JDBCException e) {

System.out.println(e.getMessage());

} catch (Exception e) {

System.out.println(e.getMessage());
}
}

return new Double(0.00);
}

/**
* Calcula o saldo de um im�vel
*
* @param data Ser� a data de deseja-se ter a anterior
* @param idTipo O tipo do lanca�amento
* @param idLancamento Lancamento que ser� diminu�do 1
*
* @return Valor no m�s.
*/
private Double calculaSaldoMesAnterior(Date data, int idTipo, int idLancamento) {

try {

DataUtil du = new DataUtil();
data = du.subtraiMes(data, 1);

if (data != null) {

StringBuilder obQuery = new StringBuilder();

obQuery.delete(0, obQuery.length());

obQuery.append("SELECT lan.debito ");
obQuery.append("FROM Lancamento lan ");
obQuery.append("JOIN lan.tipo t ");
obQuery.append("WHERE lan.tipo.id = :idTipoLancamento ");
obQuery.append("AND lan.referencia = :data ");

Query query = this.getEntityManager()
.createQuery(obQuery.toString());

query.setParameter("idTipoLancamento", idTipo);
query.setParameter("data", data);

double saldoMesAnteriorContrucao = (Double) query.getSingleResult();

return saldoMesAnteriorContrucao;

}


} catch (NoResultException e) {

System.out.println(e.getMessage());

return new Double(0.00);

} catch (JDBCException e) {

System.out.println(e.getMessage());

return new Double(0.00);

} catch (Exception e) {

System.out.println(e.getMessage());

return new Double(0.00);
}

return new Double(10);
}

/**
* Calcula quantos lancamento existem para o im�vel.
* @param idImovel
* @return Quantos lancamento existem para o im�vel
*/
private int calculaQuantidadeEdificacoes(int idImovel)
{
if (idImovel > 0) {

try {

StringBuilder obQuery = new StringBuilder();

obQuery.append("SELECT COUNT(*) ");
obQuery.append("FROM Edificacao e ");
obQuery.append("JOIN e.imovel im ");
obQuery.append("WHERE im.id = :idImovel ");
//obQuery.append("GROUP BY im.valorCompraImovel ");

//obQuery.append("SELECT COUNT(*) FROM IMO_LANCAMENTO");

Query query = this.getEntityManager()
.createQuery(obQuery.toString());

query.setParameter("idImovel", idImovel);

int qtdLancamento = Integer.parseInt(query.getSingleResult().toString());

return qtdLancamento;


} catch (JDBCException e) {

System.out.println(e.getMessage());

} catch (Exception e) {

System.out.println(e.getMessage());
}
}

return 0;
}

public Imovel getImovel() {
return imovel;
}

public void setImovel(Imovel imovel) {
this.imovel = imovel;
}

public EntityManager getEntityManager() {
return entityManager;
}

public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}

public Date getDataInicio() {
return dataInicio;
}

public void setDataInicio(Date dataInicio) {
this.dataInicio = dataInicio;
}

public Date getDataFinal() {
return dataFinal;
}

public void setDataFinal(Date dataFinal) {
this.dataFinal = dataFinal;
}

}

[As partes desta mensagem que não continham texto foram removidas]

__._,_.___
Atividade nos últimos dias:
Para sair da lista, envie email para: java-br-unsubscribe@yahoogroups.com
Para upload/download de arquivos: http://www.yahoogroups.com/files/java-br
Apartamentos de 2 dormitórios a partir de R$ 65 mil

Conheça os casais que se conheceram aqui. O próximo pode ser você.

180.000 Vagas de EMPREGO. Anuncie seu Currículo por 7 dia GRÁTIS!
.

__,_._,___

0 comentários:

Pague com LPs do Mister Colibri

Pague com LPs do Mister Colibri
Quer comprar celular,Tablet,pen drive, GPS e muito outros produtos e ainda podendo pagar tudo em LPs ?Pois saiba que isso é possível,basta você visitar o site downloadstotal.com e realizar a sua compra com toda tranquilidade e segurança!!!

Hora

Online

Arquivo do Blog