# Criando relatórios

Os relatórios oferecem uma forma estruturada de analisar dados do IoT Query por meio de três visualizações coordenadas a partir de uma única consulta SQL: uma tabela de dados paginada, um gráfico e um mapa interativo. Use relatórios quando precisar de uma saída fixa e exportável em vez de uma tela livre de painel.

Relatórios SQL personalizados se adaptam instantaneamente a qualquer questão de negócios ajustando consultas e parâmetros:

* **Automação** economiza tempo ao reutilizar consultas e integrar-se com ferramentas de BI para atualizações rápidas.
* **Análise profunda** é possível combinando, agregando e segmentando dados de múltiplas fontes.
* **Precisão e relevância** são garantidas ao trabalhar diretamente com informações brutas e atualizadas do banco de dados.
* **Visualizações interativas** permitem que os usuários explorem os dados dinamicamente ajustando eixos, filtros e métricas.

Assista a este vídeo para se familiarizar com a criação de relatórios na interface do aplicativo Dashboard Studio:

{% embed url="<https://youtu.be/o2j96_0gp-w?si=yBE9SrsET6gZa-EN>" %}
Criando relatórios no Dashboard Studio passo a passo
{% endembed %}

## Relatórios vs. dashboards

Tanto relatórios quanto dashboards executam consultas SQL contra seu banco de dados IoT Query e exibem resultados como visualizações. A diferença chave está em como as consultas e a saída são estruturadas:

|               | Relatórios                                          | Dashboards                                      |
| ------------- | --------------------------------------------------- | ----------------------------------------------- |
| Consultas SQL | Uma consulta alimenta todas as visualizações        | Cada bloco possui sua própria consulta          |
| Layout        | Fixo: tabela de dados, gráfico, mapa de localização | Canvas arrastar-e-soltar                        |
| Exportar      | HTML, Excel, PDF                                    | Apenas esquema JSON                             |
| Caso de uso   | Análise exportável de um único conjunto de dados    | Monitoramento operacional com múltiplos painéis |

Use relatórios quando um único conjunto de dados precisar ser explorado como tabela, visualizado como gráfico e mapeado simultaneamente, ou quando a saída precisar ser exportada e compartilhada fora do Dashboard Studio. Use dashboards quando precisar de múltiplas visualizações independentes em um único canvas, por exemplo: combinar um bloco com resumo de viagem, um gráfico de consumo de combustível e uma tabela de visitas a zonas em uma única visualização.

Para detalhes sobre como criar dashboards, veja [Criando dashboards](https://www.navixy.com/docs/analytics/pt-br/dashboard-studio/criando-dashboards).

## Como criar um relatório

{% stepper %}
{% step %}

### Passo 1: Abra o editor de relatórios

Na barra lateral esquerda, clique em **Ferramentas**, em seguida selecione **Novo relatório**.

O Dashboard Studio solicitará que escolha uma seção na sua estrutura de menu compartilhada. Selecione uma seção existente ou escolha Root para colocar o relatório no nível superior.
{% endstep %}

{% step %}

### Passo 2: Insira informações básicas

O editor abre com dois campos na parte superior:

* **Título** (obrigatório): o nome exibido no menu e nos cabeçalhos de exportação.
* **Descrição** (opcional): contexto adicional visível no editor.
  {% endstep %}

{% step %}

### Passo 3: Escreva a consulta SQL

1. Clique na guia **SQL Query** e insira uma instrução SELECT contra suas tabelas do IoT Query. A consulta define todos os três componentes (tabela, gráfico e mapa), portanto inclua todas as colunas que pretende usar em todas as visualizações, por exemplo:

{% code title="Exemplo básico de consulta para relatório" expandable="true" %}

```sql
SELECT
    t.device_id,
    o.object_label,
    -- Convert scaled integer coordinates to decimal degrees
    t.latitude::float / 10000000 AS latitude,
    t.longitude::float / 10000000 AS longitude,
    -- Convert scaled integer speed to km/h
    t.speed::float / 100 AS speed,
    t.device_time
FROM raw_telematics_data.tracking_data_core t
JOIN raw_business_data.objects o ON t.device_id = o.device_id
LIMIT 1000
```

{% endcode %}

{% hint style="info" icon="lightbulb-exclamation" %}

### Algumas dicas para construir consultas:

* Adicione uma cláusula LIMIT ao configurar o relatório. Ela reduz o tempo de execução da consulta e acelera a visualização dos componentes. Remova ou aumente o limite antes de salvar se precisar do conjunto completo de dados disponível para download.
* Após escrever a consulta, você pode clicar em **Detect Columns** para verificar quais colunas são realmente retornadas por esta consulta. Isso ajuda a configurar os seletores de coluna na guia **Components** A etapa é opcional. Você pode configurar os componentes manualmente, mas executá-la primeiro simplifica a seleção de eixos e campos.
* Qualquer consulta SQL usada em um painel de dashboard é um ponto de partida válido para um relatório. Copie a consulta de um painel e ajuste-a para atender ao objetivo do relatório. Por exemplo, adicionando colunas necessárias para o mapa de localização, ou removendo agregações que não se aplicam a uma visualização em tabela.
* O Livro de Receitas do IoT Query contém exemplos de consultas gerais e específicos por indústria prontos para usar como base para relatórios. Veja [SQL Recipe Book](https://app.gitbook.com/s/oFNFEIINiGFbhi3Px3dE/example-queries) para a lista completa.
  {% endhint %}
  {% endstep %}

{% step %}

### Passo 4: Configure os componentes

Clique na guia **Components** guia. Três componentes estão disponíveis: **Tabela**, **Gráfico**, e **Mapa**Cada um possui um interruptor para incluí-lo ou excluí-lo do relatório. Você pode remover qualquer componente que não precisar.

{% tabs %}
{% tab title="Tabela de dados" %}
A tabela de dados exibe os resultados da consulta em linhas paginadas.

* **Tamanho da página**: define quantas linhas aparecem por página na visão interativa. Isso não afeta a exportação, que sempre contém o conjunto completo de resultados.
* **Mostrar linha de totais**: adiciona uma linha de resumo na parte inferior da tabela quando ativada.
  {% endtab %}

{% tab title="Gráfico" %}
Dois tipos de gráfico estão disponíveis:

* **Série temporal (linha)**: adequado para dados plotados ao longo do tempo.
* **Gráfico de barras**: adequado para comparações categóricas (também chamado de gráfico de colunas).

Configure os eixos:

* **Coluna do eixo X**: tipicamente uma coluna de tempo, como `device_time`.
* **Colunas do eixo Y**: uma ou mais colunas numéricas, como speed ou `fuel_level`.
* **Agrupar por**: opcionalmente divida séries por uma coluna categórica, como `object_label`, para exibir uma linha ou grupo de barras separado por dispositivo.
  {% endtab %}

{% tab title="Mapa de localização" %}
O mapa de localização plota pontos de dados usando coordenadas GPS.&#x20;

O Dashboard Studio pode detectar automaticamente as colunas de latitude e longitude a partir do resultado da sua consulta. Quando o **Auto-detect GPS columns** interruptor está ativado, as colunas necessárias para definir a localização (normalmente `latitude` e `longitude`) são selecionadas automaticamente se sua consulta as retornar.

Você também pode desativar a opção **Auto-detect** e selecionar as colunas necessárias manualmente.
{% endtab %}
{% endtabs %}
{% endstep %}

{% step %}

### Passo 5: Salve o relatório

Clique em Salvar. O relatório aparecerá na seção do menu que você selecionou no passo 1 e será acessível a todos os usuários que tenham acesso a essa seção.
{% endstep %}
{% endstepper %}

## Visualizando um relatório

Após criar um relatório, ele é aberto imediatamente. Você verá todos os componentes configurados renderizados com dados ao vivo do seu banco de dados IoT Query. O cabeçalho do relatório exibe o carimbo de data/hora da última atualização, contagem total de linhas e tempo de execução da consulta.&#x20;

A página do relatório também expõe a consulta SQL diretamente, para que você possa atualizá-la sempre que necessário.

1. Expanda a seção **SQL Query** para visualizar ou editar a instrução inline.&#x20;
2. Aplique as alterações:
   1. Clique em **Salvar** para armazenar as alterações sem executar. Você precisará clicar em **Atualizar** para reexecutar a consulta e atualizar todas as visualizações com os dados atuais.
   2. **Salvar e Executar** para aplicar a consulta atualizada imediatamente.

### Tabela de dados

A seção **Data Table** mostra os resultados da consulta com o cabeçalho da seção exibindo a contagem total de linhas retornadas pela consulta. A visualização interativa exibe apenas um número limitado de linhas; o rodapé confirma o número exato. Use o menu **Download** para exportar o conjunto completo de resultados como Excel (.xlsx) ou CSV (.csv) independentemente de quantas linhas a visualização interativa exiba.

Se precisar de locais em vez de coordenadas brutas, marque a caixa **Geocode to address** no canto superior direito do **Data Table** cabeçalho. Quando ativada, ela resolve colunas de coordenadas em endereços de rua legíveis.

{% hint style="warning" %}
A resolução de endereços impõe uma carga significativa ao servidor. Use esta opção apenas com conjuntos de dados agregados ou filtrados. Para dados telemáticos brutos com dezenas de milhares de linhas, mantenha as coordenadas em formato numérico.
{% endhint %}

### Gráfico

A seção Gráfico é renderizada abaixo da tabela de dados. Ela herda as configurações aplicadas no editor de relatórios, mas você também pode ajustar a configuração dos eixos diretamente na visualização:

* **Eixo X**: selecione a coluna a ser plotada no eixo horizontal.
* **Eixo Y**: selecione a coluna a ser plotada no eixo vertical.
* **Agrupar por**: opcionalmente divida séries por uma coluna categórica, como `object_label`, para exibir uma linha ou grupo de barras separado por dispositivo.

O gráfico exibe um título gerado automaticamente descrevendo a seleção atual de eixo e agrupamento, por exemplo: `speed over device_time (grouped by object_label)`. Quando você modifica as configurações dos eixos sem salvar, um indicador de **Alterações não salvas** aparece ao lado do botão **Salvar configurações do gráfico** Clique nele para manter as alterações de configuração no relatório.

### Mapa de localização

A seção **Mapa de localização** a seção exibe cada linha da consulta como um ponto em suas coordenadas GPS. O cabeçalho da seção mostra o número de pontos plotados. As colunas de GPS são definidas no momento da criação do relatório (automaticamente ou manualmente); não é possível editá-las posteriormente. Se a consulta não retornar colunas de coordenadas reconhecidas, a seção exibirá "No GPS coordinates detected in query results."

Para dados telemáticos com carimbo de data/hora, os pontos plotados representam o caminho completo de um objeto durante o período consultado.

{% hint style="info" %}
O mapa é interativo: use zoom e panorâmica para inspecionar pontos individuais. Clique em **Mostrar tudo** para dar zoom out e ajustar todos os pontos plotados dentro da área visível do mapa.
{% endhint %}

## Exportando um relatório

O Dashboard Studio fornece dois níveis de exportação.

### Exportação da tabela de dados

Use o menu **Download** dentro da seção **Data Table** para exportar apenas os dados da tabela. A exportação sempre contém o conjunto completo de resultados retornado pela consulta, independentemente do limite de exibição na visualização interativa.

### Exportação completa do relatório

Use os botões no cabeçalho do relatório para exportar todos os componentes juntos.

| Botão                 | Saída                                                                   |
| --------------------- | ----------------------------------------------------------------------- |
| Excel → Excel (.xlsx) | Planilha com a tabela de dados completa                                 |
| Excel → CSV (.csv)    | Arquivo de valores separados por vírgula com a tabela de dados completa |
| HTML                  | Arquivo interativo com a tabela de dados, gráfico e mapa de localização |
| PDF                   | Documento estático com a tabela de dados, gráfico e mapa de localização |

{% hint style="info" %}
O arquivo HTML exportado preserva a interatividade: o gráfico suporta dicas de ferramentas ao pairar e o mapa de localização suporta zoom e panorâmica.
{% endhint %}

## Editando e excluindo um relatório

Para editar um relatório salvo, não é mais necessário um diálogo de editor separado. Abra o relatório a partir do menu e modifique a consulta SQL ou as configurações de componente diretamente nele. A única exceção são as colunas de localização; elas são definidas uma vez na criação do relatório.

Para excluir um relatório, clique em **Ferramentas** na barra lateral esquerda, em seguida selecione **Editar menu**. Localize o relatório na árvore do menu e clique no menu de três pontos ao lado do nome dele, depois confirme a exclusão.
