Ir para o conteúdo principal

A viabilidade do desenvolvimento do módulo de relatórios do e-Estado.

Data de elaboração 17/05/2023
Responsável pelo estudo
  1. Anderson Soares Cardoso (Assessor)
Equipe do estudo Esquadrão Suicida
Alvo e-Estado/Módulo de Patrimônio
Origem O estudo teve objetivo verificar a viabilidade da implementação dos Relatórios.
Objetivo Analisar a complexidade da aplicação a ser criada e testar ferramentas para a geração de documentos.
Documentação correlata (opcional)

Não possui.

Observações Não possui.

1. Introdução

Este estudo tem como objetivo analisar a viabilidade do desenvolvimento de uma aplicação mantida pelo time Esquadrão para a geração de relatórios referentes ao sistema E-Estado.

2. Desenvolvimento

2.1 - Tecnologias:

Como proposta de tecnologias a serem adotadas para a resolução do problema temos:

  • Node - Runtime javascript;
  • JSReport - Renderizador de documentos;
  • Handlebars - Template engine para construção de layouts de documentos;
  • ReactJS - Biblioteca para desenvolvimento de interfaces;

2.2 - Comunicação entre aplicação e serviços:

image.png

  1. O usuário filtra os dados da forma desejada ou acessa um relatório pré-definido no sistema.
  2. O serviço devolve os dados para o usuário.
  3. O usuário pode então solicitar a geração de um documento enviando os filtros definidos por ele ou os pré-definidos no sistema para visualização ou downlod.
  4.  O serviço (servidores) executa uma query no banco baseada nos filtros recebidos da aplicação e faz uma chamada HTTP para o serviço de renderização de documentos (JSReport).
  5. O serviço de renderização de documentos gera o documento e devolve um buffer do mesmo.
  6. O serviço (servidores) repassa o buffer para a aplicação que por sua vez possibilita tanto a pré-visualização quanto o download do documento.

2.3 - ReactJS

O ReactJS é uma biblioteca JavaScript de código aberto que é amplamente usada para criar interfaces de usuário (UI) interativas e reativas em aplicações web. Desenvolvido pelo Facebook, o ReactJS permite que os desenvolvedores construam componentes reutilizáveis que gerenciam seu próprio estado e são atualizados de forma eficiente quando ocorrem mudanças nos dados.

2.4 - JSReport:

O jsreport é uma ferramenta de geração de relatórios altamente personalizável e flexível. Com sua ampla gama de recursos, ele permite que os usuários criem relatórios complexos com facilidade. Além disso, a plataforma oferece integração perfeita com outras ferramentas populares, tornando-a uma escolha popular para muitas empresas.

Com o jsreport, os usuários têm acesso a uma variedade de modelos pré-construídos, bem como a capacidade de criar seus próprios modelos personalizados. Além disso, a plataforma oferece suporte para vários formatos de saída, incluindo PDF, Excel e HTML, tornando-a uma solução versátil para muitas necessidades de relatórios.

2.5 - Por que utilizar o JSReport ?

  1. Flexibilidade: O jsreport oferece uma abordagem flexível para a criação de relatórios, permitindo que você defina templates personalizados usando HTML, CSS e JavaScript. Isso dá a você controle total sobre o design e o conteúdo dos relatórios.

  2. Diversos formatos de saída: Com o jsreport, você pode gerar relatórios em vários formatos, como PDF, Excel, Word, HTML e muitos outros. Isso é útil quando você precisa fornecer aos usuários diferentes opções de formato para visualização ou download.

  3. Suporte a dados dinâmicos: O jsreport permite a integração com fontes de dados externas, como bancos de dados, APIs da web ou serviços da nuvem. Isso significa que você pode gerar relatórios com base em dados em tempo real e personalizá-los de acordo com as necessidades específicas.

  4. Extensibilidade: O jsreport é altamente extensível e permite que você crie suas próprias extensões personalizadas para atender às suas necessidades específicas. Além disso, existem várias extensões prontas para uso disponíveis na comunidade jsreport, que podem adicionar recursos adicionais aos seus relatórios.

  5. Integração com várias plataformas: O jsreport pode ser integrado a várias plataformas e tecnologias, como Node.js, .NET, Java e muitas outras. Isso permite que você incorpore a geração de relatórios em seus aplicativos existentes sem problemas.

  6. Suporte à renderização do lado do servidor: O jsreport é projetado para ser executado no servidor, o que significa que a geração de relatórios não é limitada pelo poder de processamento do cliente. Isso permite que você gere relatórios complexos e com grande volume de dados sem afetar o desempenho dos dispositivos do usuário final.

  7. Comunidade ativa: O jsreport possui uma comunidade ativa de desenvolvedores e usuários que contribuem com extensões, exemplos e suporte. Isso garante que você tenha recursos e assistência disponíveis sempre que enfrentar desafios na criação de relatórios.

4. POC - Prova de conceito:

Usar o JSREPORT é fácil e simples. Primeiro, você precisa instalar a plataforma em seu computador ou servidor (utilizando Docker). Em seguida, você pode criar um modelo de relatório usando HTML, CSS e JavaScript. O modelo deve conter as informações que você deseja incluir no relatório, como tabelas, gráficos e imagens.

Após a etapa inicial de configuração e criação de template basta enviarmos para ele os dados e o template necessário para a geração do documento.

Exemplo de chamada para o serviço do jsreport utilizando Javascript:

image.png

Enviamos os dados e o id do template em um objeto de configuração através de uma chamada HTTP:POST para o serviço do JSReport e ele nos devolvera um buffer do documento gerado.

Aplicação criada com ReactJS para realização de testes:

- PDF

Gravando 2023-05-16 120919.gif

- XSL (Excel)

xls.gif

4. Conclusão

Construir a interface utilizando ReactJS será extremamente vantajoso pois o desenvolvimento acaba sendo mais ágil e manutenível.

O JSREPORT é uma plataforma poderosa e versátil de geração de relatórios que oferece recursos avançados e flexibilidade incomparáveis.