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):
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.




26 Comentários
Mário a versão para download do fonte do flex report esta sem extenção. Obrigado.
Humm… aqui está a funcionar, extensão .rar, qual é o nome do arquivo/erro que dá ?
cumps.
Mário, tentei, zip, mxml, e detectei que era “.rar”. Valeu. hehehe
só com o nome: download-manager sem a extenção.
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.
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.
Mario, estou desenvolvendo no flex 2…
Esse flexReport funciona no flex 2???
Atenciosamente!
Sim Marcos Chi. O flex report está baseado em Action Script 3, logo funcionará bem no Flex 2
Abraço.
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!
Mas aparece exactamente esse url ?
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.
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…
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!
Eu amei a nova musica de vcs é linda….
Tb amo muito vc Victor Chaves..
Bjusssssssssssssssssss..
Lana
Mario teria como vc postar um tutorial de como fazer uma aplicação utilizar esta ferramenta de relatório ?
No aguardo!
Veja o site oficial e o exemplo que disponibilizei, têm o código fonte disponivel.
Cumps.
É 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.
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.
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
Eu não tenho o arquivo create.php
Alguem pode mandar?
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
Como muda a orientação do papel para Paisagem???
Cara estou com o mesmo problema do pessoal, como coloca em modo paisagem? Se alguém souber da solução poste ai! Abraço
A melhor opção para impressão no flex é o flex report?
vlw
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.
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?