quarta-feira, 31 de março de 2010

[java-br] JPA - Dúvida sobre mapeamento de um relacionamento composto

· 0 comentários

 

Salve povo!!!

Pessoal,

no banco de dados:
[code]
G_PERFIL
ID_PERFIL (PK)
DESCRICAO
SITUACAO
DATA_CRIACAO
ID_USUARIO (FK)

G_PERFIL_ACAO
ID_PERFIL (PK)
ID_ACAO (PK)
CODIGO
DESCRICAO

G_ACAO
ID_ACAO (PK)
DESCRICAO
COD_ACAO
[/code]

A tabela G_PERFIL_ACAO é de muitos pra muitos entre G_PERFIL e G_ACAO

No java tenho as seguintes classes para representar este caso:

Classe: Perfil
[code]
@Entity
@Table(name = "g_perfil")
public class Perfil implements Serializable {

private static final long serialVersionUID = 1L;
@SequenceGenerator(sequenceName = "perfil_seq", name = "perfil_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "perfil_seq")
@Id
@Basic(optional = false)
@Column(name = "id_perfil", nullable = false)
private Integer id;
@Column(name = "descricao", length = 20)
private String descricao;
@Column(name = "situacao")
private Integer situacao;
@Column(name = "data_criacao")
@Temporal(TemporalType.TIMESTAMP)
private Date dataCriacao;
@JoinColumn(name = "id_usuario", referencedColumnName = "id_usuario")
@ManyToOne(fetch = FetchType.EAGER)
private Usuario usuario;

@JoinColumn(name = "id_perfil", referencedColumnName = "id_perfil")
@ManyToOne(fetch = FetchType.LAZY)
private PerfilAcao perfilAcao;
//omiti getters e setters ...
}
[/code]
Classe: PerfilAcao
[code]
@Entity
@Table(name = "g_perfil_acao")
public class PerfilAcao implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
protected PerfilAcaoPK perfilAcaoPK;
@Column(name = "descricao_modulo", length = 20)
private String descricaoModulo;
@Column(name = "cod_modulo")
private Integer codModulo;
@JoinColumn(name = "id_acao", referencedColumnName = "id_acao", nullable = false, insertable = false, updatable = false)
@ManyToOne(optional = false, fetch = FetchType.EAGER)
private Acao acao;
@JoinColumn(name = "id_perfil", referencedColumnName = "id_perfil", nullable = false, insertable = false, updatable = false)
@ManyToOne(optional = false, fetch = FetchType.EAGER)
private Perfil perfil;

//omiti getters e setters ...
}
[/code]
Classe: PerfilAcaoPK
[code]
@Embeddable
public class PerfilAcaoPK implements Serializable {
@Basic(optional = false)
@Column(name = "id_perfil", nullable = false)
private int idPerfil;
@Basic(optional = false)
@Column(name = "id_acao", nullable = false)
private int idAcao;
//omiti getters e setters ...
}
[/code]
Classe: Acao
[code]
@Entity
@Table(name = "g_acao")
public class Acao implements Serializable {
private static final long serialVersionUID = 1L;
@SequenceGenerator(sequenceName="acao_seq", name = "acao_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "acao_seq")
@Id
@Basic(optional = false)
@Column(name = "id_acao", nullable = false)
private Integer id;
@Column(name = "descricao", length = 20)
private String descricao;
@Column(name = "cod_acao", nullable = false)
private Integer codigo;
//omiti getters e setters ...
}
[/code]
A exceção que dispara é a seguinte:
[code]
Root cause:

Exception [EclipseLink-7220] (Eclipse Persistence Services - 2.0.0.v20091127-r5931): org.eclipse.persistence.exceptions.ValidationException
Exception Description: The @JoinColumns on the annotated element [field perfilAcao] from the entity class [class modelo.Perfil] is incomplete. When the source entity class uses a composite primary key, a @JoinColumn must be specified for each join column using the @JoinColumns. Both the name and the referencedColumnName elements must be specified in each such @JoinColumn.
at org.eclipse.persistence.exceptions.ValidationException.incompleteJoinColumnsSpecified(ValidationException.java:1808)
at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.MappingAccessor.getJoinColumnsAndValidate(MappingAccessor.java:499)
at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.MappingAccessor.getJoinColumns(MappingAccessor.java:456)
at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.ObjectAccessor.processOneToOneForeignKeyRelationship(ObjectAccessor.java:543)
at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.ObjectAccessor.processOwningMappingKeys(ObjectAccessor.java:603)
at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.ManyToOneAccessor.process(ManyToOneAccessor.java:98)
at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.RelationshipAccessor.processRelationship(RelationshipAccessor.java:546)
at org.eclipse.persistence.internal.jpa.metadata.MetadataProject.processRelationshipAccessors(MetadataProject.java:1085)
at org.eclipse.persistence.internal.jpa.metadata.MetadataProject.processStage3(MetadataProject.java:1364)
at org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.processORMMetadata(MetadataProcessor.java:462)
at org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processORMetadata(PersistenceUnitProcessor.java:390)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:940)
at org.eclipse.persistence.internal.jpa.deployment.JPAInitializer.callPredeploy(JPAInitializer.java:88)
at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:124)
at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:65)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:78)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
[/code]

O que será que estou fazendo de errado? o mapeamento de um relacionamento composto funciona desta maneira, ou estou surtando? :D

Postei está pergunta no forúm guj, mas como ninguém respondeu postei aqui ;-)
http://www.guj.com.br/posts/list/202628.java

Obrigado

Ricardo Spinoza

[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
Homens em busca de um grande amor. E se esta pessoa for você?

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

Quer comprar ou vender imóveis? Acesse Y!Imóveis e feche seu negócio!
.

__,_._,___

[java-br] Selecionar automaticamente o radio - ADF

· 0 comentários

 

Estou com um problema que está dificil de resolver.

  Estou desenvolvendo uma tela em adf onde existe uma combo em primeiro lugar para escolher um contrato de uma empesa. Em seguinda após escolher o contrato desejado eu monto uma tabela  ( <af:table>  código abaixo) com as variedades dos produtos que o contrato possui.

Até aí td bem. O que não estou conseguindo, é fazer com que o primeiro RADIO da tabela venha selecionado.

Se vc puderem me ajudar ficarei muito agradecido, obrigado.

Retirar a seleção consigo facilmente com este código:
    public void retirarSelecaoTabel aResumoEntrega( ) {
        CoreTable tabela = (CoreTable)utilBean .SearchById( null, "idProgramacao" );
        if (tabela != null) {
          RowKeySet row = tabela.getSelection State();
            if (row != null) {
                row.clear();
            }
        }    
    }

Parte do código que monta a tabela com os radios:
<!-- Inicio Tabela Resumo de Entrega -->
       
        <af:panelGroup partialTriggers="idListaContratoSafraPropriedade">
          
          <h:panelGrid columns="1" width="760px" border="0" cellpadding="0" cellspacing="0">
          <af:panelBox  background="light"
                         inlineStyle="margin:0.0px; padding:0px;"
                         icon="imagens/resumoEntrega1.gif"
                         text="Resumo de Entrega" width="760px">
            <af:table emptyText="#{msgs.ConteudoTabela}"
                      value="#{sfco0060.programacaoList}"
                      var="currProgramacao" id="idProgramacao" rows="15" width='100%'
                      banding="row" selectionListener="#{sfco0060.selecionarResumoEntregaListener}">
              <f:facet name="selection" >
                <af:tableSelectOne autoSubmit="true" id="idRadio">
                </af:tableSelectOne>
              </f:facet>
              <af:column formatType="icon" sortable="true" headerText="#{msgs.Variedade}"
                         width="20%" inlineStyle="background-color:red;">
                <af:outputLabel value="#{currProgramacao.variedade}" shortDesc="#{currProgramacao.itemNum}"  inlineStyle="font-size:12px;"           rendered="#{sfco0060.variedadeSelecionada.itemNum ne currProgramacao.itemNum}"/>
              </af:column>
             
              <af:column formatType="icon" sortable="true" headerText="#{msgs.Cartoes}"
                         width="20%">
                <af:outputLabel value="#{currProgramacao.qtCartoes}" inlineStyle="font-size:12px;"           rendered="#{sfco0060.variedadeSelecionada.itemNum ne currProgramacao.itemNum}"/>
              </af:column>
                            
            </af:table>
            </af:panelBox>
            </h:panelGrid>
            </af:panelGroup>
            <!-- Fim Tabela Resumo de Entrega -->

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

__._,_.___
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
JAN, FEV e MARÇO são os melhores meses para conseguir um novo EMPREGO

Veja os imóveis mais vendidos em São Paulo no Yahoo! Imóveis

Solteiras! Mulheres carentes que buscam um companheiro.
.

__,_._,___

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

· 0 comentários

 



sem anexo
manda no meu particular
marcoscorso@terra.com.br

ai, alguem manja de fazer um mid em asp ?????
tipo no cep 80040100 preciso por o ponto e o traco 80.040-100

----- Original Message -----
From: Jayro Rodrigues
To: java-br@yahoogrupos.com.br
Sent: Wednesday, March 31, 2010 9:59 AM
Subject: 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]

----------------------------------------------------------
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]

__._,_.___
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
Quer comprar ou vender imóveis? Acesse Y!Imóveis e feche seu negócio!

Yahoo Encontros Entre e conheça nossas histórias de sucesso.

ESTÁGIO Remunerado Clique AQUI! São mais de 10.000 vagas.
.

__,_._,___

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

· 0 comentários

 

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!
.

__,_._,___

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