public List<DistribuicaoAlimentador> getPontoInstalacao(String codInstalacao) {
ArrayList resultado = new ArrayList();
try {
Connection con = HibernateUtil.getConnection();
String sqlQuery
= "SELECT "
+ "l.cod_alimentador, "
+ "pn.nome_parceiro_negocio, "
+ "pn.desc_endereco, "
+ "pn.num_inscricao_estadual, "
+ "i.cod_instalacao, "
+ "i.cod_empresa, "
+ "m.desc_municipio, "
+ "b.desc_bairro, "
+ "r.desc_rua, "
+ "r.cod_cep, "
+ "l.desc_morada as numero_casa, "
+ "l.num_coordenada_x, "
+ "l.num_coordenada_y, "
+ "i.cod_grupo_tensao, "
+ "i.cod_subgrupo_tensao, "
+ "CAST(i.consumo_medio AS CHAR) AS consumo_medio, "
+ "0 as qtd_prob_rede, "
+ "0 as qtd_ressarcimento, "
+ "i.cod_contrato, "
+ "dt_inicio_contrato, "
+ "dt_final_contrato, "
+ "fc.descricao, "
+ "CAST (i.ativa AS INT) AS ativa, "
+ "l.cod_subestacao, "
+ "un.desc_unidade_negocio, "
+ "(SELECT "
+ "COUNT(DISTINCT ins.cod_instalacao) "
+ "FROM "
+ "atc_instalacao ins "
+ "INNER JOIN dwd_local_consumo lc ON lc.cod_local_consumo = ins.cod_local_consumo "
+ "WHERE lc.cod_alimentador = l.cod_alimentador) "
+ "AS qtd_instalacoes, "
+ "CAST (i.baixa_renda AS INT) AS baixa_renda "
+ ""
+ "FROM "
+ "atc_instalacao i "
+ "INNER JOIN dwd_instalacao ins ON ins.cod_instalacao = i.cod_instalacao "
+ "INNER JOIN dwd_unidade_negocio un ON un.cod_unidade_negocio = i.cod_unidade_negocio "
+ "INNER JOIN dwd_parceiro_negocio pn ON pn.cod_parceiro_negocio = i.cod_parceiro_negocio "
+ "INNER JOIN atc_faixa_consumo fc ON fc.id = i.id_faixa_consumo "
+ "INNER JOIN dwd_local_consumo l ON l.cod_local_consumo = i.cod_local_consumo "
+ "INNER JOIN dwd_municipio m ON m.cod_municipio = i.cod_municipio "
+ "INNER JOIN dwd_bairro b ON b.cod_bairro = i.cod_bairro AND b.cod_municipio = m.cod_municipio "
+ "INNER JOIN dwd_rua r ON r.cod_rua = ins.cod_rua AND r.cod_bairro = b.cod_bairro AND r.cod_municipio = m.cod_municipio "
+ "WHERE i.cod_instalacao = '"+codInstalacao +"'"
+" SELECT "
+"hc.dt_referencia "
+"FROM "
+"atc_instalacao ins "
+"INNER JOIN dwf_historico_consumo hc ON hc.cod_instalacao = ins.cod_instalacao "
+"WHERE hc.cod_instalacao = '"+codInstalacao + "'";
PreparedStatement sql = con.prepareStatement(sqlQuery);
sql.clearParameters();
ResultSet rs = sql.executeQuery();
while (rs.next()) {
ali.setCodAlimentador(rs.getString("cod_alimentador"));
ali.setCodInstalacao(rs.getString("cod_instalacao"));
ali.setCodEmpresa(rs.getString("cod_empresa"));
ali.setDescMunicipio(rs.getString("desc_municipio"));
ali.setDescBairro(rs.getString("desc_bairro"));
ali.setDescRua(rs.getString("desc_rua"));
ali.setCep(rs.getString("cod_cep"));
ali.setNumeroCasa(rs.getString("numero_casa"));
ali.setLat(rs.getString("num_coordenada_x"));
ali.setLon(rs.getString("num_coordenada_y"));
ali.setGrupoTensao(rs.getString("cod_grupo_tensao"));
ali.setSubGrupoTensao(rs.getString("cod_subgrupo_tensao"));
ali.setConsumoMedio(rs.getString("consumo_medio"));
ali.setQtdProbRede(rs.getInt("qtd_prob_rede"));
ali.setQtdRessarcimento(rs.getInt("qtd_ressarcimento"));
ali.setCodContrato(rs.getString("cod_contrato"));
ali.setInicioContrato(rs.getString("dt_inicio_contrato"));
ali.setFinalContrato(rs.getString("dt_final_contrato"));
ali.setNomePN(rs.getString("nome_parceiro_negocio"));
ali.setDescEnderecoPN(rs.getString("desc_endereco"));
ali.setNumInscricaoEstadual(rs.getString("num_inscricao_estadual"));
ali.setFaixaConsumo(rs.getString("descricao"));
ali.setAtiva(rs.getInt("ativa"));
ali.setBaixaRenda(rs.getInt("baixa_renda"));
ali.setSubestacao(rs.getString("cod_subestacao"));
ali.setCodEmpresa(rs.getString("cod_empresa"));
ali.setUnidadeNegocio(rs.getString("desc_unidade_negocio"));
ali.setQtdInstalacoes(rs.getInt("qtd_instalacoes"));
ali.setDataReferencia(rs.getString("dt_referencia"));
resultado.add(ali);
}
sql.close();
con.close();
System.gc();
return resultado;
} catch (SQLException ex) {
Logger.getLogger(AtendimentoSumarizadoDAO.class.getName()).log(Level.SEVERE, null, ex);
return resultado;
}
}
Bom dia!
Confesso que fiquei abismado com esse codigo todo, meu amigo eu
te recomendo usar um framework como Hibernate para gerenciar essa
parte. Mas voltando ao seu problema ja tentou exibir essa String
no console pouco antes de passar para o relatorio? quando ela ja
estaria efetivamente pronta a sua query ai voce mesmo podera
verificar se o argumento esta sendo enviado ou não
--
Você recebeu essa mensagem porque está inscrito no grupo "JasperReports / iReport Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jasperreports-irepor...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jasperreports-ireport-brasil+unsub...@googlegroups.com.
Então algo no seu SQL esta errado faz uma verificada minuciosa , nao é problema algum com o jasperreports
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jasperreports-irepor...@googlegroups.com.
+ "WHERE i.cod_instalacao = '"+codInstalacao +"'";
PreparedStatement sql = con.prepareStatement(sqlQuery); sql.clearParameters(); ResultSet rs = sql.executeQuery();
String sqlQuery2 = "SELECT " +"hc.dt_referencia " +"FROM " +"dwf_historico_consumo hc "
+"WHERE hc.cod_instalacao = '"+codInstalacao +"'";
PreparedStatement sql2 = con.prepareStatement(sqlQuery2); sql2.clearParameters(); ResultSet rs2 = sql2.executeQuery();
DistribuicaoAlimentador ali = new DistribuicaoAlimentador();
resultado.add(ali);
} sql.close(); con.close(); System.gc(); while (rs2.next()) { ali.setDataReferencia(rs2.getString("dt_referencia")); resultado.add(ali); System.out.println(resultado); } sql2.close();
con.close(); System.gc(); return resultado;
} catch (SQLException ex) { Logger.getLogger(AtendimentoSumarizadoDAO.class.getName()).log(Level.SEVERE, null, ex); return resultado; } }
public void gerarSolicitacaoPIDPDF() throws Throwable { DistribuicaoAlimentador pontoAlimentador = new DistribuicaoAlimentador(); AtendimentoSumarizadoDAO dao = new AtendimentoSumarizadoDAO(); try { pontoAlimentador = dao.getPontoInstalacao("00000001").get(0); arquivoRelatorio = ""; if (mesSelecionado != null) {
arquivoRelatorio = "relatorioSolicitacaoPID.jasper";
Map parametros = new HashMap(); parametros.put("COD_INSTALACAO", pontoAlimentador.getCodInstalacao()); parametros.put("DISTANCIA_PONTOS", distance); parametros.put("LAT_INSTALACAO", pontoAlimentador.getLat()); parametros.put("LON_INSTALACAO", pontoAlimentador.getLon()); parametros.put("LAT_GOOGLE", "-22.4564"); parametros.put("LON_GOOGLE", "44.5689"); parametros.put("END_GOOGLE", endereco); parametros.put("COD_ALIMENTADOR", pontoAlimentador.getCodAlimentador()); //dados da seção localização da instalação parametros.put("LOGRADOURO_INSTALACAO", pontoAlimentador.getDescRua()); parametros.put("NUMERO_INSTALACAO", pontoAlimentador.getNumeroCasa()); parametros.put("BAIRRO_INSTALACAO", pontoAlimentador.getDescBairro()); parametros.put("MUNICIPIO_INSTALACAO", pontoAlimentador.getDescMunicipio()); parametros.put("CEP_INSTALACAO", pontoAlimentador.getCep()); parametros.put("END_INSTALACAO", pontoAlimentador.getDescMunicipio() + " - " + pontoAlimentador.getCep()); //dados da seção unidade consumidora parametros.put("ATIVA", pontoAlimentador.getAtiva()); parametros.put("COD_CONTRATO", pontoAlimentador.getCodContrato()); parametros.put("INICIO_CONTRATO", pontoAlimentador.getInicioContrato()); parametros.put("FINAL_CONTRATO", pontoAlimentador.getFinalContrato()); parametros.put("NOME_PN", pontoAlimentador.getNomePN()); parametros.put("NUM_INSCRICAO_ESTADUAL", pontoAlimentador.getNumInscricaoEstadual()); parametros.put("ENDERECO_PN", pontoAlimentador.getDescEnderecoPN()); parametros.put("FAIXA_CONSUMO", pontoAlimentador.getFaixaConsumo()); parametros.put("GRUPO_TENSAO", pontoAlimentador.getGrupoTensao()); parametros.put("SUBGRUPO_TENSAO", pontoAlimentador.getSubGrupoTensao()); parametros.put("BAIXA_RENDA", pontoAlimentador.getBaixaRenda()); parametros.put("CONSUMO_MEDIO", pontoAlimentador.getConsumoMedio()); //dados do gráfico da seção unidade consumidora parametros.put("DATA_REFERENCIA", pontoAlimentador2.getDataReferencia()); //dados da seção alimentador parametros.put("SUBESTACAO", pontoAlimentador.getSubestacao()); parametros.put("COD_EMPRESA", pontoAlimentador.getCodEmpresa()); parametros.put("UNIDADE_NEGOCIO", pontoAlimentador.getUnidadeNegocio()); parametros.put("QTD_INSTALACOES", pontoAlimentador.getQtdInstalacoes()); parametros.put("COD_GRUPO_TENSAO", grupoTensao); gerar(parametros, "PDF", arquivoRelatorio); gravaLog(tipoLog, "Relatório de Resultado PDF extraído com sucesso"); } else { UtilJSF.adicionaMensagemFacesContext("ControllerAtendimento", "O mês de referência é obrigatório na geração para PDF", "O mês de referência é obrigatório na geração para PDF", UtilJSF.info); } } catch (Throwable ex) { UtilJSF.adicionaMensagemFacesContext("ControllerAtendimento", "Não foi possível realizar a operação solicitada!", "Não foi possível realizar a operação solicitada!", UtilJSF.info); gravaLog(tipoLog, ex.getMessage());
} }
Boa Tarde
Meu amigo, vejo que esta passando por muitos problemas de estrutura é novo em programação ? rs. Testou essa sua query no banco sem passar no codigo java ? . E o mais importante sim!
Existe uma forma de passar uma query dinamica para seu
jasperreports sim! Mas pelo codigo nesse metodo voce esta passando
um List mas essa Query é o seu problema vc precisa otimzar ela
teste direto no banco antes de tentar passar para o codigo java.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jasperreports-irepor...@googlegroups.com.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jasperreports-ireport-brasil+unsubs...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.
--
Você recebeu essa mensagem porque está inscrito no grupo "JasperReports / iReport Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jasperreports-ireport-brasil+unsubs...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.
--
Você recebeu essa mensagem porque está inscrito no grupo "JasperReports / iReport Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jasperreports-ireport-brasil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.
--
Você recebeu essa mensagem porque está inscrito em um tópico no grupo "JasperReports / iReport Brasil" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/jasperreports-ireport-brasil/1CTL9ya_zAY/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para jasperreports-ireport-brasil+unsub...@googlegroups.com.
Vou add duas imagens de exemplos que tenho com parametro dinamico e parametros simples.
--