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

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

Subject: [javasf] Re: Criando relatórios parametrizados no Seam
From: Rodrigo
Date: Sun, 25 Apr 2010 13:40:01 -0700 PDT
Uma pergunta...

Vc entendeu essa desvantagem que o meu xará colocou com relação à
abordagem dele?

Débitos Técnicos:
- Chumbamento em new DocumentData("Report #" + reportId

Att,



On 25 abr, 17:35, Rodrigo <eu.t...@xxxxxxxxx> wrote:
> 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/ReplacingServletsWithSeamResou...
> 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 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@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

<Prev in Thread] Current Thread [Next in Thread>