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:
- Extrair a Massa de Dados;
- Salvar/Excluir Configurações do componente Pivot Table;
- Exportar Tabelas em formato MS Excel para análise externa pelo Cliente.
Pré-requesitos
São pré-requisitos para esse módulo:
- Módulo "Rotas Personalizada" habilitado e rota personalizada para "/custom/pivotTable" criada (veja como);
- 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:
- TITLE: Título do Mapa exibido no topo do módulo;
TITLE='Apontamentos Máquina'
- 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)"
]
}
- 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.