package_reports 0.0.3 copy "package_reports: ^0.0.3" to clipboard
package_reports: ^0.0.3 copied to clipboard

Package de criação de relatórios, gráficos e exportação para excel, tudo automaticamente a partir de uma entrada de JSON.

Package Reports #

Package de criação de relatórios automaticamente a partir de uma entrada de JSON

  • Principais funções:
    • Relatório com totalizadores e ordenação
    • Gráficos (Barras, pizza, ...)
    • Exportação para excel

Getting Started #

  • Entre no arquivo pubspec.yaml
  • Adicione isto ao arquivo pubspec.yaml do seu pacote:
dependencies:
     package_reports: ^0.0.3
  • Get dependencies
flutter pub get

package_reports struct #

lib-|
    |-- package_reports.dart 
    |       - Contém todos os exports permitidos para uso nos projetos que irão consumir o package
    |
    |-- report_module
    |   |
    |   |-- charts
    |   |   |-- chart_data.dart
    |   |   |       - ChartData (class de dados padrão que todos os graficos vão consumir)
    |   |   |       - ColorData (class com todas as cores para consumo randômico nos gráficos)
    |   |   '-- charts.dart
    |   |           - Widget de gráficos
    |   |
    |   |-- controller
    |   |   |-- layout_controller.dart
    |   |   |       - Controlador de largura, altura e tipo de tela (mobile, desktop)
    |   |   |-- report_chart_controller.dart
    |   |   |       - Controlador para construção de gráficos do relatório, keys com valores do tipo String será identificado com métricas e tipo int, double, será definido como valores dos gráficos
    |   |   |-- report_from_json_controller.dart
    |   |   |       - CONTROLADOR PRINCIPAL que irá receber o JSON de entrada para construção do relatório, todas as keys do JSON será interpretado como nome de coluna e todos os values das respectivas keys como rows de dados 
    |   |   '-- report_to_xlsx_controller.dart
    |   |   |       - Controlador para exportar dados para Excel
    |   |   '-- filtros_controller.dart
    |   |           - Controlador de filtros
    |   |
    |   |-- core
    |   |   |-- api_consumer.dart
    |   |   |       - Arquivo responsável pelo consumo de API que irá fornecer os dados em formato JSON para construção do relatório
    |   |   |-- features.dart
    |   |   |       - rercusos de uso privado no package (funções de formatação, etc)
    |   |   '-- settings.dart
    |   |           - variveis static global como link de api, etc
    |   |
    |   |-- model
    |   |   '-- my_icon_data.dart (442 KB)
    |   |
    |   |-- page
    |   |   |-- filtros_report_page.dart
    |   |   |       - Tela de filtros
    |   |   |-- report_chart_page.dart
    |   |   |       - Tela de gráficos
    |   |   |-- report_page.dart
    |   |   |       - Página de relatórios 
    |   |   '-- filtros_page.dart
    |   |           - class de conversão do filtro antigo do sistema analytics para atual
    |   |
    |   '-- widget
    |       |-- texto.dart
    |       |-- widgets.dart
    |       '-- xlsx_widget.dart
    |
    '-- version.dart
           - Versão do package

Exemplo de formatação das colunas através da key do JSON de entrada #

  • Exemplo que como escrever uma query na API no back-end:
    select 
          pcpedc.codsupervisor as cod__INT__NO_METRICS
        , pcsuperv.nome
        , count(*) qtde_pedidos__INT
        , sum(pcpedc.vlatend) as total
    from pcpedc, pcsuperv
    where pcpedc.codsupervisor = pcsuperv.codsupervisor
    and data between to_date('01/10/2023', 'DD/MM/YYYY') and to_date('02/10/2023', 'DD/MM/YYYY')
    group by pcpedc.codsupervisor, pcsuperv.nome;
  • Saída JSON da query:
    [
      {"COD__INT__NO_METRICS":"4321","NOME":"ADIL MENESES DOS SANTOS","QTDE_PEDIDOS__INT":"1","TOTAL":"487.37"},
      {"COD__INT__NO_METRICS":"2940","NOME":"ADMILTON MOREIRA SOUZA","QTDE_PEDIDOS__INT":"3","TOTAL":"1486.18"},
      {"COD__INT__NO_METRICS":"4318","NOME":"LUIZ FERRAZ DOS SANTOS","QTDE_PEDIDOS__INT":"1","TOTAL":"940.4"},
      {"COD__INT__NO_METRICS":"4307","NOME":"AGATINE OFLIA DE OLIVEIRA","QTDE_PEDIDOS__INT":"1","TOTAL":"1826.08"},
      {"COD__INT__NO_METRICS":"2","NOME":"FERREIRA DE OLIVEIRA","QTDE_PEDIDOS__INT":"3","TOTAL":"2802.86"}
    ]
  • Tags permitidas para adição no alises da query
    /*
      Forma de realizar formatação de dados e alinhamento em tela.
      Deve-se enviar a seguinte informação no final de cada nome de coluna na query, sendo maíusculo ou minúsculo:

      __int_string    => para forçar numero ser tratado e alinhado como string
      __string        => forçar o uso de String
      __double        => forçar uso de double
      __int           => forçar uso de int
      __no_metrics    => excluir da exibição de metricas dos graficos
      __nochartarea   => excluir do grafico de area e line
      __invisible     => não exibir campo no relatório
      __dontsum       => não somar na barra de totalizador
      __perc          => colocar % (percentagem) junto ao texto da coluna
      __freeze        => congelar coluna ao deslizar barra de scroll horizontal
      __sizew         => passar largura fixa de coluna. Exemplo: __sizew30

      IMPORTANTE:
      - Caso o tipo de dado não seja informado através de uma tag especificada acima,
        o tipo de formatação será determinado a partir dos dados recebidos.
    */

Relatório de saída: #

Relatório de exemplo

Relatório de saída - Gráficos: #

Relatório de exemplo

Relatório de saída - Exporte para Excel: #

Relatório de exemplo

3
likes
90
pub points
0%
popularity

Publisher

unverified uploader

Package de criação de relatórios, gráficos e exportação para excel, tudo automaticamente a partir de uma entrada de JSON.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

adaptive_scrollbar, crypto, fl_chart, fluent_ui, flutter, flutter_mobx, get_it, http, intl, loading_animation_widget, mobx, open_filex, path_provider, syncfusion_flutter_charts, syncfusion_flutter_core, syncfusion_flutter_xlsio, universal_html

More

Packages that depend on package_reports