Flex Report; Gerar relatórios para impressão.


Todos sabemos que o flex ainda mal consegue lidar com documentos PDF e também sabemos que a sua API de impressão ainda é difícil de compreender e muito mais de utilizar… pois bem, é aí que entra o flexReport, ainda pouco usado por muito pouca gente mas que sem duvida é das melhores alternativas à impressão do flex.

Este flex report funciona com “paginas” template que são criadas como componentes em MXML e que na altura de visualizar-mos o nosso documento para impressão são apresentadas no nosso ecrã com recurso a um screenshot de cada pagina, embora a sua utilização possa parecer um bocado complicada deixe-me dizer-vos que é a melhor alternativa que conheço a nível de previsualização para impressão. E com recurso ao AlivePDF consegue também criar  pdf’s com o nosso conteúdo das páginas, mas com uma senão, como o pdf não aceita a criação de um layout de uma datagrid, por exemplo, o que o Flex Report faz é a criação de uma imagem a partir de cada pagina e adiciona-las no pdf, ou seja, o nosso pdf será uma cópia das páginas do flex o que na altura de ver e imprimir o pdf a qualidade deixa muito a desejar… mas a boa notícia é que se imprimir-mos esse mesmo documento a partir do flex, sem gerar o pdf, a qualidade é muito boa, pelo qu se torna bem fiável para utilizar em aplicativos e deixar uma aspecto bem profissional como podem ver na imagem em baixo (de notar que fiz algumas alterações no layout):

image

Como o código fonte do flex report encontra-se apenas disponivel em repositorio SVN, tomei a liberdade de fazer uma versão para download que podem encontrar aqui.

O exemplo acima online pode ser visto aqui, notem que o botão para gerar pdf demora a processar o pdf, cerca de 1 minuto, isto porque envia um bitearray de dados de cada imgem…

O código fonte pode ser visto aqui

Site Oficial: http://www.kemelyon.com

Espero que seja util.

Cumprimentos.

Deixe um comentário ou um Trackback
   

26 Comentários

  1. July 11, 2008 às 2:22 pm | Permalink

    Mário a versão para download do fonte do flex report esta sem extenção. Obrigado.

  2. July 11, 2008 às 2:25 pm | Permalink

    Humm… aqui está a funcionar, extensão .rar, qual é o nome do arquivo/erro que dá ?

    cumps.

  3. July 11, 2008 às 2:25 pm | Permalink

    Mário, tentei, zip, mxml, e detectei que era “.rar”. Valeu. hehehe :)

  4. July 11, 2008 às 2:27 pm | Permalink

    só com o nome: download-manager sem a extenção.

  5. July 11, 2008 às 2:37 pm | Permalink

    Mário, desculpa minha ignorancia, mas quais pastas,arquivos eu teria que colocar no meu projeto para que eu consiga gerar o relatório.:(

    Não sai do lugar.

    Obrigado.

  6. July 11, 2008 às 2:41 pm | Permalink

    Deverá criar um novo projecto, e copiar as pastas org, lib e assets que estão na pasta flexreport para a pasta raiz do seu projecto flex, normalmente para a pasta src.

    depois basta seguir os mesmos passos que estão no meu exemplo em cima…

    A outra pasta que se encontra do .rar é um exemplo de origem do flex report.

    Cumps.

  7. Marcos Chi
    July 28, 2008 às 5:51 pm | Permalink

    Mario, estou desenvolvendo no flex 2…
    Esse flexReport funciona no flex 2???

    Atenciosamente!

  8. July 28, 2008 às 6:25 pm | Permalink

    Sim Marcos Chi. O flex report está baseado em Action Script 3, logo funcionará bem no Flex 2 :)

    Abraço.

  9. September 2, 2008 às 4:52 pm | Permalink

    Mário, bom dia. O meu relatório esta ok, mas quando clico para gerar PDF no servidor ele aparece assim http://www.dominio.com/os/create.php?name=ticket.pdf&method=attachment e nao gera o pdf, mas em localhost funciona ok. no firefox e no explorer. Obrigado!

  10. September 3, 2008 às 6:22 am | Permalink

    Mas aparece exactamente esse url ?

  11. September 3, 2008 às 5:50 pm | Permalink

    na verdade aparece está assim – http://www.colmeiavirtual.com/os/create.php?name=ticket.pdf&method=attachment , o arquivo create.php tem que estar em algum diretorio especifico ou junto com algum arquivo? Obrigado.

  12. September 3, 2008 às 9:53 pm | Permalink

    O ficheiro create.php têm que estar na pasta: “os”

    http://www.colmeiavirtual.com/os/

    se estiver, tudo deve correr bem :) se não correr, mostre o erro…

  13. September 8, 2008 às 3:02 pm | Permalink

    Mário, o arquivo create.php estava no servidor vazio. descobri sem querer. Agora funcionou legal! E função em php que te mandei consegui descobrir o erro “digitação”. Valeu!

  14. October 6, 2008 às 3:30 am | Permalink

    Eu amei a nova musica de vcs é linda….

    Tb amo muito vc Victor Chaves..
    Bjusssssssssssssssssss..

    Lana

  15. Tiaog
    March 12, 2009 às 4:18 pm | Permalink

    Mario teria como vc postar um tutorial de como fazer uma aplicação utilizar esta ferramenta de relatório ?

    No aguardo!

  16. March 17, 2009 às 9:05 am | Permalink

    Veja o site oficial e o exemplo que disponibilizei, têm o código fonte disponivel.

    Cumps.

  17. April 9, 2009 às 7:35 pm | Permalink

    É excelente este Flex Report, porém não consigo fazer com que o .htmlText de um RichTexteditor seja impresso corretamente. Só consigo imprimir um .htmlText se for com o básico de html como , mas não funciona se utilizar por exemplo um . Tem alguma solução para esse problema? Obrigado.

  18. Alessandro Moreira
    April 15, 2009 às 6:21 pm | Permalink

    Olá Mário Santos,

    Eu consigo, no lado servidor, exportar o relatorio em PDF para ByteArrayOutputStream, o qual passo para o flex como resultado do RemoteObject e queria apenas chamar a janela para salvar o PDF como faz o método FileReference.download(). Mas por regra não tenho o arquivo do PDF no servidor, apenas o OutputStream dele, portanto nao posso passar a URL do arquivo.
    Também já vi que na próxima versão do Flex, a 4.0.0 (gumbo) a Classe FileReference terá a opção de save(), mas não estou podendo esperar o lançamento.
    Então venho lhe pedir ajudar para uma alternativa para o problema.

    Obrigado.

  19. May 29, 2009 às 12:20 pm | Permalink

    Mario bom dia.. existe alguma forma de fazer impressão em forma paisagem?
    Estou com uma planilha de comparativos de dados aqui que com certeza ficará melhor apresentável no formato paisagem. Outro problema que enfrentei… quando mando visualizar a impressão ela sai com tiute..
    quando impresso fica perfeito mas a visualização fica com tiute..
    segue link de print da imagem http://200.252.63.6/print.jpg

    Abraçosss

  20. airon
    August 3, 2009 às 7:22 pm | Permalink

    Eu não tenho o arquivo create.php

    Alguem pode mandar?

  21. airon
    August 5, 2009 às 11:59 am | Permalink

    o arquivo que vem é bem diferente da estrutura que aparece na lista a esquerda, quando clicado para abrir o source…

    Tens como mandares, nem que seja por e-mail, um exemplo funcionando com os arquivos .php??

    Atenciosamente

    Airon
    aironart@bol.com.br

  22. andre
    August 6, 2009 às 11:14 am | Permalink

    Como muda a orientação do papel para Paisagem???

  23. Gilberto
    August 27, 2009 às 2:21 pm | Permalink

    Cara estou com o mesmo problema do pessoal, como coloca em modo paisagem? Se alguém souber da solução poste ai! Abraço

  24. Brayan
    October 19, 2009 às 4:58 pm | Permalink

    A melhor opção para impressão no flex é o flex report?
    vlw

  25. marcelo
    December 10, 2009 às 1:07 pm | Permalink

    Usei o FlexR$eport mas encontrei várias resalvas em um projeto que participo. A solução foi criar as minhas próprias classes para realizar a montagem de relatórios.

    Agora estou trabalhando em uma forma de não exibir a caixa de diálogo de impressão, já testei algumas coisas aqui e estou caminhando para consegui tal solução.

  26. Bruno Macedo
    January 12, 2010 às 7:36 pm | Permalink

    ola Mario,

    Eu estou tendo probleminhas quanto ao arquivo FlexReportDemo.mxml.

    Erro:
    1046: Type was not found or was not a compile-time constant: DemoReport
    1180: Call to a possibly undefined method DemoReport.

    1046: Type was not found or was not a compile-time constant: DemoReportDP
    1180: Call to a possibly undefined method DemoReportDP.

    Nessas duas linhas.
    var source:DemoReportDP = new DemoReportDP(text);
    var report:DemoReport = new DemoReport();

    Como eu faço para resolver esse problema?
    Alguem poderia me ajudar?

Deixe um comentário

O seu email nunca será publicado ou partilhado. Campos obrigatórios estão marcados com um *

*
*

Spam Protection by WP-SpamFree