Olá pessoal,
Preciso de uma luz divina, alguém se habilita !?
É o seguinte:
Estou tentando criar a todo cuto um relatorio que será “agrupado” dinamicamente, pelo menos é o q estou tentando.
Sou novato no assunto principalmente em java, mas estamos na luta.
Bom estou trabalhando da seguinte forma, tenho meu abc.jsp, AbcControllerServlet, AbcBns, AbcDto, AbcDao. Cada um com suas implementacoes.
No meu AbcDao (que trabalha com o BD) tenho as seguinte linhas de código:
for (int i=0; i<orcamentoDto.ordenacao.size(); i++){
rsl = Integer.parseInt((String)orcamentoDto.ordenacao.get(i));
if (i<=orcamentoDto.ordenacao.size()-2){
strAcao = "'Ação: ' ||";
strFonte = "'Fonte: ' ||";
strItem = "'Item: ' ||";
}else{
strAcao = "";
strFonte = "";
strItem = "";
}
switch (rsl){
case 1:
sqlGrupos = sqlGrupos.append("cdacaoorcamentaria as cd_campo"+i+", "+strAcao+" dsacaoorcamentaria as ds_campo"+i+", ");
break;
case 2:
sqlGrupos = sqlGrupos.append("cdfonterecurso as cd_campo"+i+", "+strFonte+" dsfonterecurso as ds_campo"+i+", ");
break;
case 3:
sqlGrupos = sqlGrupos.append("nritemorcamentario as cd_campo"+i+", "+strItem+" dsitemorcamentario as ds_campo"+i+", ");
break;
}
}
é através desses 3 campos q consiste meu agrupamento no meu relatório.
Acredito eu que eu deixando eles, como campoX… independente de quem entrar irei agrupa-lo conforme o template que criei no ireport. Me corrijam se estiver errado.
Enfim, outra coisa estranha é que no meu abcControllerServlet onde tenho o meu método para gerar o PDf ocorrendo o seguinte erro:
Error loading object from file : D:\Aplicacao\build\web\Relatorios\relOrcamento.jasper
Minha pergunta é:
- Qdo eu jogo esse caminho no executar do Windows Explorer ele acha o arquivo sem problemas… entao o problema nao está em encontra-lo e sim ao tentar carregar certo ??
O código do meu método para criar o relatório segue abaixo:
public void gerarRelatorio(HttpServletRequest request, HttpServletResponse response) throws Exception {
RelSigenBns sigenBns = this.criaBusiness();
RelOrcamentoFiscalDto sigenDto = this.criaDto();
ResultSet rs = null;
try{
String reportFile = this.getServletContext().getRealPath("/Relatorios/relOrcamento.jasper");
sigenDto = montaDadosReduzido(request);
rs = sigenBns.relOrcamentoFiscal(sigenDto);
JRResultSetDataSource jrRs = new JRResultSetDataSource(rs);
Map parameters = new HashMap();
// o erro está ocorrendo nesta linha abaixo
JasperFillManager.fillReportToFile(reportFile, parameters, jrRs);
JasperExportManager.exportReportToPdfFile(this.getServletContext().getRealPath("/Relatorios/relOrcamento.jrprint"));
JasperViewer.viewReport(this.getServletContext().getRealPath("/Relatorios/relOrcamento.pdf"), false);
}catch (Exception e ){
request.setAttribute("mensagemErro", e.getMessage());
}
//Aqui eu pedi para dar a saída do erro
//request.getRequestDispatcher("../relXxx/relOrcamentoFiscal.jsp").forward(request, response);
}
- Outra pergunta, o problema pode estar ocorrendo ao tentar carregar o Resultset no relOrcamento.jasper ???
se alguém puder dar essa força eu agradeço.
Abraço,
Marcelo Mello