Opções para geração de relatórios

Seguindo um novo modelo de publicações, vou listar de forma rápida e objetiva algumas soluções open source que encontrei para substituir soluções comerciais responsáveis pela geração de relatórios.

Aplicações comerciais (Pagas)

  • Crystal Reports (Site): Comprada pela SAP;
  • Cognos ReportNet (Site): Comprada pela IBM.
  • Microsoft SQL Server Reporting Services (Site / pt_BR): Solução da Microsoft que vem junto com o Microsoft SQL Server. Disponibiliza os relatórios via Web (precisa do IIS instalado) de forma estática ou interativa. Ideal para quem programa em .NET usando SQL Server;

Aplicações Open Source

  • JasperReports (site): Biblioteca escrita em java e recomendada para quem vai programar nesta linguagem. Gera relatórios impressos ou documentos em formato HTML, PDF, MS Excel, OpenOffice, e MS Word). Também existe a versão servidor (JasperServer) que é interativa entregando uma plataforma de Business Intelligence (BI) além de relatórios sob demanda ou agendados. Licenciado sobre Aferro GPL;
  • OpenRPT (site): Tem uma ferramenta para construir os relatórios (designer) que roda em Linux, windows e MacOS. Conecta em bancos Postgres (ODBC genéricos) e com um pouco de esforço em Oragle, DB2, SQL Server e MySQL. Usei rapidamente e não achei muito fácil, além de não ter achado uma versão servidor. Licenciado pela GPL;
  • OpenReports (site): Solução de relatórios baseada em web. Pode usar engines como JasperReports, JFreeReports, JXLS. Não li muito sobre ele, mas como vi a disponibilidade, decidi compartilhar;
  • Got Reportviewer (site): É um controle que permite adicionar relatórios em aplicações desenvolvidas em .NET.
  • Fyireporting (site / dica para conexão Postgres): De todos, este foi o que testei mais profundamente. Feito em .NET, suporta a linguagem RDL (Report Definition Language) a mesma usada pelo Microsoft SQL Server Reporting Services. Gera relatórios em vários formatos (pdf, html, doc, xls, rtf, csv, entre outros) e também permite a entrega de consultas em forma de matrizes. Permite carregar dados a partir de servidores de BDs (MySQL, Postgres, SQL Server, etc) assim como de arquivos csv, xml ou mesmo web services. A licença empregada é a Apache License v2.
    Tem basicamente 4 aplicativos principais:

    • fyireporting Designer: Usado para montar o layout do relatório no estilo WYSIWYG;
    • fyireporting Desktop: Levanta uma versão “servidor” que atende na porta 8080 (via navegador), e entrega os relatórios  RDL (que na verdade é uma marcação XML) via navegador;
    • fyireporting Reader: Sua função é permitir gerar relatórios em qualquer formato a partir do arquivo RDL gerado previamente;
    • rdlcmd: Utilitário de linha de comando que permite informar o arquivos de entrada e path de saída e o formato que você quer o relatório.

Atualizações:

-(2010-09-03) Adicionado link para OpenReports;

Patch RoundCube 0.1 beta2

Fiz um patch para o Webmail RoundCube que faz com que ele pesquise tanto o e-mail quanto o nome do usuário de uma base de dados LDAP.

Para isso:

  1. Copie o patch para o diretório program/include localizado dentro do diretório raiz do roundcube;
  2. Execute o comando
    # patch < main.inc.patch
  3. edite o arquivo config/main.inc.php e adicione a entrada:
    $rcmail_config['virtuser_ldap'] = array('hosts' => 'your.ldap.server',
    'port' => 389,
    'base_dn' => 'ou=users,dc=domain,dc=com',
    'name_field' => 'cn',
    'mail_field' => 'mail',
    'scope' => 'sub');
  4. Nessa configuração, ajuste as configurações conforme a sua base LDAP;
  5. Efetue o login no roundcube para testar, mas lembre-se: o RoundCube irá consultar a base ldap e salvará as informações capturadas no MySQL, ou seja, se você já logou no webmail terá que limpar a tabela users e identities do banco de dados do RoundCube para que ele salve as novas informações.

?? só isso? sim, é só isso… fiz testes e está funcionando legal. Isso será base para a próxima versão do Webmail da Univali (ih, falei ! :D )


Technorati : , ,

Erro ao conectar no MySQL a partir do PHP

Instalei o PHP 4 com um MySQL 5 no windows para efetuar alguns testes. Ao criar um script simples para conectar no MySQL foi apresentada a seguinte mensagem:

Client does not support authentication protocol requested by server; consider upgrading MySQL client

Após algumas consultas descobri que é só re-definir a senha do usuário que está acessando o BD, uma vez que o cliente MySQL do PHP utilizado na versão 4 é um pouco antigo. Para isso é só executar o comando:

mysql> SET PASSWORD FOR 'usuario'@'servidor'= OLD_PASSWORD('novaSenha');

Referência: http://dev.mysql.com/doc/refman/5.0/en/old-client.html


Technorati : ,