javasf@googlegroups.com
[Top] [All Lists]

Re: [javasf] Re: Criando relatórios parametrizados no Seam

Subject: Re: [javasf] Re: Criando relatórios parametrizados no Seam
From: Assis Júnior
Date: Sun, 25 Apr 2010 19:02:52 -0300
Sim. O Seam ajudaria muito na criação desse Servlet ou Filter. Ainda não tive tempo de ver isso (e nem necessidade).

Em 25 de abril de 2010 17:35, Rodrigo <eu.tuma@xxxxxxxxx> escreveu:
Olá Assis!

Realmente... a desvantagem da abordagem é que o acoplamento fica alto
entre a implementação do relatório e os arquivos jasper... mas pelo
menos deixa tudo separado.... ainda assim vou analisar melhor se
realmente me atende... sua solução não está descartada.
Ainda não realizei as mudanças pois não vou implementar essa parte de
relatórios da minha aplicação por agora... apenas estou pesquisando e
me adiantando nos estudos para quando o momento chegar, eu já ter algo
esquematizado para colocar a mão na massa e realizar os testes...

Quanto sua idéia de 'linkar' o jasper diretamente na ui... acredito
que criando um servlet que processe os .jasper e os redirecione para o
método de gerar o relatório funcione, correto? Bem.. pelo menos essa
foi minha primeira idéia....

Acho que o caminho seria por aqui:
http://seamframework.org/Documentation/ReplacingServletsWithSeamResources
Assim teríamos acesso ao componente de geração de relatório.

Abraços.


On 25 abr, 07:05, Assis Júnior <assisp...@xxxxxxxxx> wrote:
> Já tinha visto esse código, é uma abordagem interessante, mas optei por não
> usar essa estratégia porque não queria herdar de uma classe abstrata para
> cada relatório que eu precisa-se. A Herança é uma dependência que deve ser
> bem pensada. No fim de todas minhas pesquisas optei pelo simples que
> funciona, ou seja, (no caso que te passei) tinha os métodos que ajudavam à
> imprimir e enviar os relatórios e criava minhas funcionalidades para a
> geração desses dados e repassava os resultados para esses métodos!
>
> Se eu tivesse mais tempo disponível ia tentar uma solução que seria fazer o
> seam 'ligar-se' diretamente ao jasper.
> Ex.:
> <h:commandLink id="imprimir" value="#{messages.Imprimir}" action=""> > "/relatorios/xyz/relPrincipal.jrxml" />
> ou
> <h:commandLink id="imprimir" value="#{messages.Imprimir}" action=""> > "/relatorios/xyz/relPrincipal.jasper"/>
>
> Fazendo assim o jasper 'ver' o contexto (componentes) do seam.
>
> Boa sorte. Precisando de ajuda posta ai!
>
> Em 24 de abril de 2010 21:01, Rodrigo <eu.t...@xxxxxxxxx> escreveu:
>
>
>
>
>
> > Obrigado pela resposta, Assis.
>
> > Estou adaptando a contribuição do colega Rodrigo Yoshima para ser
> > usado no Seam 2.2.0, além de algumas poucas mudanças.
> > Segue o código:http://www.guj.com.br/posts/list/76720.java
> > Falta o principal: testar... segue mais ou menos o modelo que vc
> > postou, mas cada relatório implementa uma classe
> > abstrata, fornecendo o caminho para os jaspers e parametrizando as
> > consultas.
>
> > Gostaria de ouvir opiniões dos colegas sobre o BIRT e OpenReports....
> > em conjunto com SEAM.
>
> > Abraços
>
> > On 24 abr, 20:00, Assis Júnior <assisp...@xxxxxxxxx> wrote:
> > > Sim foi similiar!
>
> > > Segue exemplo:
>
> > > Depois posta ai tua solução!
>
> > > @End
> > > public void imprimirRelatorio() throws JRException,
> > >     IOException {
> > > final Map<String, Object> params = new HashMap<String, Object>();
>
> > > params.put("dataInicio", getDataInicio());
> > > params.put("dataFim", getDataFim());
> > > params.put("lstAgrupamentoRelatorio", getLstRelatorio(agrupamento));
> > > params.put("agrupamento", agrupamento);
>
> > > final String path = ((HttpServletRequest) FacesContext
> > > .getCurrentInstance().getExternalContext().getRequest())
> > > .getRealPath("WEB-INF/classes/appweb/");
>
> > > final String realPath = path + "/relatorio/";
>
> > > params.put("path", realPath);
>
> > > printReport(realPath + "relatorio.jasper", params,
> > > (HttpServletResponse) FacesContext.getCurrentInstance()
> > > .getExternalContext().getResponse(), FacesContext
> > > .getCurrentInstance().getResponseStream());
>
> > > FacesContext.getCurrentInstance().responseComplete();
> > >     }
>
> > > public static void printReport(final String path,
> > >     final Map<String, Object> params,
> > >     final HttpServletResponse response, final OutputStream outputStream)
> > >     throws JRException, IOException {
>
> > > final JasperPrint print = JasperFillManager.fillReport(path, params,
> > > new JREmptyDataSource());
>
> > > final byte[] bytes = JasperExportManager.exportReportToPdf(print);
>
> > > sendReport(response, bytes, outputStream);
> > >     }
>
> > >     public static void sendReport(final HttpServletResponse response,
> > >     final byte[] bytes, final OutputStream outputStream)
> > >     throws IOException {
> > > response.setContentType("application/pdf");
> > > response.setContentLength(bytes.length);
>
> > > final OutputStream ouputStream = response.getOutputStream();
> > > ouputStream.write(bytes, 0, bytes.length);
>
> > > ouputStream.flush();
> > > ouputStream.close();
> > >     }
>
> > > Em 24 de abril de 2010 18:01, Rodrigo <eu.t...@xxxxxxxxx> escreveu:
>
> > > > Oi Assis,
>
> > > > Obrigado pela resposta.
>
> > > > No caso, vc usa o IReports para construir os relatórios e compilá-los
> > > > e o Jasper para executá-los, correto?
> > > > Por acaso a integração do .jasper com o Seam, vc fez como? Segue mais
> > > > ou menos a idéia dessa referência?http://www.bineshgummadi.com/node/29
>
> > > > Grato
>
> > > > On 24 abr, 17:57, Assis Júnior <assisp...@xxxxxxxxx> wrote:
> > > > > Sobre os relatórios: Já usei a integração do seam e o jasper reports.
> > > > Obtive
> > > > > melhores resultados usando o iReports do que a integração do seam.
> > Essa
> > > > > integração ainda não te dá os mesmos recursos que o iReports.
>
> > > > > Em 24 de abril de 2010 17:49, Rodrigo <eu.t...@xxxxxxxxx> escreveu:
>
> > > > > > Olá pessoal!
>
> > > > > > Bom, gostaria se alguém aqui indica um framework específico para
> > > > > > geração de relatórios parametrizados usando o framework Seam...
> > BIRT,
> > > > > > JasperReports, OpenReports... qual é o melhor e mais simples de
> > usar?
> > > > > > Quais referências se basear para aprendizado rápido e efetivo?
>
> > > > > > Outra coisa... algum de vcs já trabalharam com Business
> > Intelligence
> > > > > > integrada à uma aplicação SEAM?
> > > > > > Quais ferramentas utilizaram? Minha idéia é realizar consultas
> > > > > > multidimensionais e gerar pdfs com o resultado do casamento entre
> > os
> > > > > > dados.... Uma solução open source é o Pentaho BI... alguém já usou
> > e
> > > > > > integrou em sua aplicação?
>
> > > > > > Grato pelas respostas
>
> > > > > > --
> > > > > >http://groups.google.com/group/javasf
>
> > > > > > You received this message because you are subscribed to the Google
> > > > > > Groups "javasf: JavaServer Faces Group" group.
> > > > > > To post to this group, send email to javasf@xxxxxxxxxxxxxxxx
>
> > > > > --
> > > > > Atenciosamente,
> > > > > Assis júnior
> > > > > SCJP 5.0 Certified
>
> > > > > --http://groups.google.com/group/javasf
>
> > > > > You received this message because you are subscribed to the Google
> > > > > Groups "javasf: JavaServer Faces Group" group.
> > > > > To post to this group, send email to jav...@xxxxxxxxxxxxxxxxxxxxxxxx
> > > > texto das mensagens anteriores -
>
> > > > > - Mostrar texto das mensagens anteriores -
>
> > > > --
> > > >http://groups.google.com/group/javasf
>
> > > > You received this message because you are subscribed to the Google
> > > > Groups "javasf: JavaServer Faces Group" group.
> > > > To post to this group, send email to javasf@xxxxxxxxxxxxxxxx
>
> > > --
> > > Atenciosamente,
> > > Assis júnior
> > > SCJP 5.0 Certified
>
> > > --http://groups.google.com/group/javasf
>
> > > You received this message because you are subscribed to the Google
> > > Groups "javasf: JavaServer Faces Group" group.
> > > To post to this group, send email to jav...@xxxxxxxxxxxxxxxxx Ocultar
> > texto das mensagens anteriores -
>
> > > - Mostrar texto das mensagens anteriores -
>
> > --
> >http://groups.google.com/group/javasf
>
> > You received this message because you are subscribed to the Google
> > Groups "javasf: JavaServer Faces Group" group.
> > To post to this group, send email to javasf@xxxxxxxxxxxxxxxx
>
> --
> Atenciosamente,
> Assis júnior
> SCJP 5.0 Certified
>
> --http://groups.google.com/group/javasf
>
> You received this message because you are subscribed to the Google
> Groups "javasf: JavaServer Faces Group" group.
> To post to this group, send email to javasf@xxxxxxxxxxxxxxxxx Ocultar texto das mensagens anteriores -
>
> - Mostrar texto das mensagens anteriores -

--
http://groups.google.com/group/javasf

You received this message because you are subscribed to the Google
Groups "javasf: JavaServer Faces Group" group.
To post to this group, send email to javasf@xxxxxxxxxxxxxxxx



--
Atenciosamente,
Assis júnior
SCJP 5.0 Certified

--
http://groups.google.com/group/javasf
 
You received this message because you are subscribed to the Google
Groups "javasf: JavaServer Faces Group" group.
To post to this group, send email to javasf@xxxxxxxxxxxxxxxx
<Prev in Thread] Current Thread [Next in Thread>