Archive for agosto de 2008
Usando relatórios jasper com PHP
Posted by Paulo Canedo in Java on 27 de agosto de 2008
Introdução
A criação de relatórios é uma tarefa muito comum na área de desenvolvimento de sistemas, produzir modelos de relatórios sempre foi uma tarefa muito árdua até o surgimento da biblioteca jasperreports e sua ferramenta de design, o iReport. Através destas ferramentas é possível criar modelos de relatórios de uma forma muito simples e prática.
O funcionamento básico trata-se da criação de um arquivo com extensão jrxml (Jasper Report XML), o qual pode ser facilmente desenhado através da ferramenta gráfica iReport, com o modelo de relatório em mãos, o arquivo jrxml, a biblioteca do jasperreport compila o arquivo para um formato com extensão jasper, este arquivo é o “byte-code” do modelo de relatório a ser interpretado pelo jasperreport. Em seguida a mesma biblioteca irá gerar o arquivo de relatório no formato desejado.
O jasperreport é capaz de gerar relatórios em vários formatos, como por exemplo: xml, odt, pdf, rtf, entre outros. Para cada um desses formatos o jasperreport vai precisar de uma biblioteca capaz de gerar conteúdo no específico formato (sendo que alguns formatos não é necessário nenhuma extensão extra). Por exemplo, para gerar arquivos pdf o jasperreport necessita da biblioteca itext.
São necessárias algumas bibliotecas para qualquer geração de relatório com o jasperreport, além das bibliotecas específicas para cada formato, são elas:
- apache-commons-logging
- apache-commons-beanutils
- apache-commons-collections
- apache-commons-digest
Se o modelo de relatório que está implementando fizer uma consulta ao banco de dados, a biblioteca de conexão a este banco também deve ser incluída.
Configurando o ambiente do servidor
As instruções a seguir consideram que o ambiente já tenha o apache, php e o jdk instalados na máquina, foram testados utilizando o apache2, php5 e o sun-java6. A configuração do servidor em ambientes linux pode ser feita de três maneiras diferentes dependendo da distribuição utilizada.
- Distribuições que utilizam pacotes rpm podem ser configuradas automaticamente através do php-java-bridge-x.y.z-1-i386.rpm
- Distribuições que utilizam pacotes deb podem ser configuradas automaticamente através do php-java-bridge_x.y.z-1_i386.deb
- Outras distribuições podem ser instaladas a partir do arquivo código-fonte php-java-bridge_x.y.z.tar.gz, basta executar os comandos a seguir:
tar -zxvf php-java-bridge_*.tar.gz
cd php-java-bridge*
phpize && ./configure && make && sh install.sh
Disponíveis em: http://sourceforge.net/project/showfile … _id=117793
Execute um página no browser que tenha o <? phpinfo(); ?> e verifique se o módulo Java foi carregado corretamente.
Localize o arquivo de configuração do php (você pode, opcionalmente, criar um extra, nas instalações automáticas dos pacotes deb ou rpm isso é realizado automaticamente e é gerado um arquivo chamado java.ini, o endereço dele pode ser visto executando a página do phpinfo), neste arquivo configure os seguintes itens:
extension = java.so
java.java_home = /usr/lib/jvm/java-6-sun (diretório raiz do JDK)
java.java = /usr/lib/jvm/java-6-sun/jre/bin/java (arquivo binário java)
Pronto, o servidor apache agora é capaz de interpretar códigos java, nosso próximo passso é disponibilizar as bibliotecas necessárias para o jasperreports trabalhar. Para isso vamos copiar os jars necessários para a pasta $JAVA_INSTALL/jre/lib/ext/ neste exemplo copiei os seguintes arquivos:
commons-beanutils-1.8.0-BETA.jar - essencial para o jasper
commons-collections-3.2.1.jar - essencial para o jasper
commons-digester-1.8.jar - essencial para o jasper
commons-logging-1.1.1.jar - essencial para o jasper
iText-2.0.8.jar - biblioteca para gerar pdf
jasperreports-2.0.5.jar - essencial para o jasper
postgresql-8.3-603.jdbc3.jar - relatórios que conectam ao postgres
Para que o apache reconheça estas bibliotecas é necessário que reinice o servidor apache.
OBS.: Na instalação realizada na distruibuição linux Slackware, a compilação do código fonte do php-java-bridge, não gerou alguns jars necessários para o funcionamento do módulo Java para php, para solucionar este problema eu retirei estes jars contidos do pacote debian e inseri manualmente no diretório de módulos do php-java-bridge
Links
http://www.rjohnson.id.au/wordpress/200 … s-and-php/
http://php-java-bridge.sourceforge.net/
http://commons.apache.org/
http://www.lowagie.com/iText/
http://commons.apache.org/downloads/index.html
http://php-java-bridge.sourceforge.net/ … lation.php
http://www.hlegius.pro.br/integracao-ph … m-dificil/
Piada pra relaxar
Posted by Paulo Canedo in Sem categoria on 18 de agosto de 2008
Estava eu navegando no site do charges.com.br como de costume, quando vi uma piada no mínimo inusitada para nós da área de TI, segue a piada abaixo. Clique em “link relacionado” para ver o link original.
Profissão mais antiga
Um juiz, um médico, um arquiteto e um analista de sistemas estavam contando vantagem sobre as respectivas profissões.
o juiz disse:
- Antes de expulsar Adão e Eva do paraíso, Deus os julgou.
Foi o primeiro julgamento da historia e, portanto, minha profissão é a mais antiga de todas.
O analista de sistemas tentou contra argumentar, mas ante que pudesse falar, o médico disse:
- Sim, mas antes disso, lembre-se de que Eva foi Criada de uma costela de Adão.
Foi a primeira cirurgia da história e, portanto, minha profissão é a mais antiga de todas.
O analista de sistemas já ia entrar na briga, mas o arquiteto foi mais rápido:
- Ambos têm razão, mas antes da cirurgia e do julgamento, Deus criou o Universo.
Foi o primeiro projeto de arquitetura da história e, portanto, minha profissão é a mais antiga de todas.
Antes disso só existia o caos.
E o analista de sistemas:
- Arrá! E quem foi que criou o caos?!
Comentários