Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Introdução ao Pivot Table

O Pivot Table é uma ferramenta que permite disponibilizar Massa de Dados para Análise. É usado um componente PivotTable.js, responsável pela abstração de toda a composição de gráficos e tabelas usadas, ficando essa ferramenta responsável por:

  1. Extrair a Massa de Dados;
  2. Salvar/Excluir Configurações do componente Pivot Table;
  3. Exportar Tabelas em formato MS Excel para análise externa pelo Cliente.

Pré-requesitos

São pré-requisitos para esse módulo:

  1. Módulo "Rotas Personalizada" habilitado e rota personalizada para "/custom/pivotTable" criada (veja como);
  2. Tabelas "nfs_pivot_view" e "nfs_pivot_save" criadas na seguinte estrutura:
CREATE TABLE `nfs_pivot_view` (
  `SEQ_DB` bigint(20) NOT NULL AUTO_INCREMENT,
  `EMPRESA` int(11) NOT NULL,
  `FILIAL` int(11) NOT NULL,
  `LOCAL` int(11) NOT NULL,
  `TITLE` varchar(100) DEFAULT NULL,
  `QUERY` text,
  `FILTERS` varchar(1000) DEFAULT NULL,
  `INS_DH` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `ENABLED` int(11) DEFAULT '1',
  `DELETED` int(11) DEFAULT '0',
  UNIQUE KEY `SEQ_DB_UNIQUE` (`SEQ_DB`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

CREATE TABLE `nfs_pivot_save` (
  `SEQ_DB` bigint(20) NOT NULL AUTO_INCREMENT,
  `EMPRESA` int(11) NOT NULL,
  `FILIAL` int(11) NOT NULL,
  `LOCAL` int(11) NOT NULL,
  `INS_DH` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `INS_USUARIO_SEQ_DB` bigint(20) unsigned NOT NULL,
  `NOME` varchar(100) DEFAULT NULL,
  `CONFIG` varchar(5000) DEFAULT NULL,
  `PIVOT_QUERY_SEQ_DB` bigint(20) unsigned DEFAULT NULL,
  `ENABLED` int(11) DEFAULT '1',
  `DELETED` int(11) DEFAULT '0',
  `UPD_USUARIO_SEQ_DB` bigint(20) unsigned DEFAULT NULL,
  UNIQUE KEY `SEQ_DB_UNIQUE` (`SEQ_DB`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

Configurações Iniciais

Tabela nfs_pivot_view

Possui as definições principais do ambiente, sendo:

  1. TITLE: Título do Mapa exibido no topo do módulo;
TITLE='Apontamentos Máquina'
  1. QUERY: QueryBuilder para obter a Massa de Dados;
{
  "select": [
    "apo.INI_DH as 'Data Inicial'",
    "apo.FIM_DH as 'Data Final'",
    "(coalesce(apo.INI_FIM_DIFF_SEC, 0) / 3600) as 'Tempo Apontado (h)'",
    "concat(eq.CODIGO, ' ', eq.DESCRICAO) as 'Equipamento'",
    "coalesce(cla.DESCRICAO, 'não definida') as 'Classe Operacional'",
    "ope.NOME as 'Operador'",
    "case atv.FLAG_PRODUTIVA when 1 then 'Produtiva' else 'Improdutiva' end as 'Tipo Atividade'",
    "concat(atv.CODIGO, ' - ',  atv.DESCRICAO) as 'Atividade'"
  ],
  "from": "boletim_maquina bm",
  "inner_join": [
    ["bm", "equipamento", "eq", "eq.SEQ_DB = bm.EQUIPAMENTO_SEQ_DB"],
    ["bm", "operador", "ope", "ope.SEQ_DB = bm.OPERADOR_SEQ_DB"],
    [
      "bm",
      "apontamento_maquina",
      "apo",
      "apo.SEQ_DB_DEVICE_MASTER_SEQ_DB = bm.SEQ_DB"
    ]
  ],
  "left_join": [
    ["apo", "atividade", "atv", "atv.SEQ_DB = apo.ATIVIDADE_SEQ_DB"],
    [
      "eq",
      "classe_operacional",
      "cla",
      "cla.SEQ_DB = eq.CLASSE_OPERACIONAL_SEQ_DB"
    ]
  ],
  "where": [
    "(date(apo.INI_DH) between :ini and :fim) or (date(apo.FIM_DH) between :ini and :fim)"
  ]
}
  1. FILTERS: coluna criada para futura implementação de filtros para as queries.

Tabela nfs_pivot_save

Tabela usada para salvar as configurações de determinadas visões dos usuários.