Pular para o conteúdo

8 slicers, datas relativas, sincronização

Aula 7 de 127 minOperarAtualizada em 2026-10-04

Vídeo em produção

A gravação desta aula está no lote de produção. O objetivo, o exercício e a documentação já valem. Duração-alvo: 7 min.

Objetivo: Configurar período relativo e escopo

Selo de estado: Preview (teto atual do produto) · Curso ACD-330 — Dashboards: visuais, filtros, interações e design · Aula 7 de 12 · Atualizado em 2026-10-04.

Objetivo#

Ao final desta aula você vai configurar período relativo e escopo.

Vídeo#

Identificador: acd-330-07-slicers-datas-relativas · Duração-alvo: 7 min · Tela: /dashboards.

Roteiro (capítulos):

  1. 0:00–1:15 — os 8 tipos de slicer (/dashboards/[id]) — select, daterange, buttons, range, hier, number, field, measure.
  2. 1:15–2:30 — escopo: dashboard, página ou visual (/dashboards/[id]) — onde cada slicer alcança.
  3. 2:30–4:00 — datas relativas (/dashboards/[id]) — presets e a sintaxe -Nd/-Nw/-Nm/-Ny.
  4. 4:00–5:15 — sincronização entre páginas (/dashboards/[id]) — um controle só, válido no painel inteiro.
  5. 5:15–6:30 — link filtrado por URL (/dashboards/[id]) — o que viaja no ?f= e o que não viaja.
  6. 6:30–7:00 — por que filtro nunca vira SQL — custo zero e zero superfície de injeção.

Conteúdo#

Todo filtro é client-side — e isso muda a decisão de design

Antes de escolher o tipo de slicer, vale entender a regra que está por trás de todos eles: nenhum filtro/slicer vira SQL. O recorte acontece sobre o snapshot já carregado no navegador. Isso tem três consequências práticas: custo zero por interação (filtrar não gera nova consulta faturável), nenhuma superfície de injeção via slicer, e o limite do filtro passa a ser o que já está no snapshot — se um valor não foi materializado, nenhum slicer o traz de volta.

Como aparece no produto

O editor tem 8 tipos de slicer: select (lista/combo), daterange (intervalo de datas), buttons (botões de opção única), range (faixa numérica com arraste), hier (hierarquia encadeada, ex.: Região → UF → Cidade), number ("e se" — simula um número), field (troca o campo/dimensão usado por um visual) e measure (troca a métrica). Os seis primeiros recortam dados; os dois últimos (field/measure) são parâmetros — mudam o que o visual mostra, não que linhas aparecem.

Cada slicer tem um escopo: o painel inteiro, só a página atual, ou só um ou mais visuais específicos (destino). Um slicer de categoria no escopo do dashboard recorta tudo; o mesmo slicer restrito a um visual só vale ali — e o editor avisa quando o escopo escolhido "não alcança nada" (por exemplo, um visual que não usa a coluna filtrada). Todo slicer com muitas opções (20+) ganha busca embutida, com multi-seleção (OR/AND) e os botões "selecionar tudo"/"limpar".

Datas relativas resolvem a dor mais comum de painel executivo: "últimos 30 dias" que ninguém precisa reconfigurar todo santo dia. Os presets vão de hoje/7d/30d/mês/ano até a sintaxe genérica -Nd/-Nw/-Nm/-Ny (estilo Power BI) — a janela é calculada no fuso do painel (America/Sao_Paulo por padrão), então "hoje" significa o dia local do leitor, não UTC.

Sincronização entre páginas (syncPages) resolve a segunda dor: configurar o mesmo filtro em 5 páginas separadas. Um slicer marcado como sincronizado vale no painel inteiro, mesmo aparecendo fisicamente numa página só — mude-o na página "Resumo" e ele também recorta a página "Detalhe".

Por fim, a seleção pode viajar pela URL (?f=, codificada em base64url) para compartilhar um link já filtrado com um colega — junto dela viajam os parâmetros field/measure/number. É útil, mas incompleto: faixa (range) e hierarquia (hier) não sobrevivem só pela URL (dependem de um bookmark salvo), e não há autosave por usuário — por isso esse recurso específico (persistência por URL) é Preview, mesmo com os slicers e datas relativas sendo GA-candidato.

Exemplo na Aurora Varejo

No painel "Comercial — Aurora", adicione um daterange com preset "últimos 30 dias" no escopo do dashboard — ele recorta KPIs, mapa e linha de uma vez. Adicione um select de filiais.regiao e um select de produtos.marca, ambos também no escopo do dashboard. Marque o daterange como sincronizado entre páginas: configure-o na página "Resumo" e confirme que ele também vale na página "Detalhe". Filtre por "Bebidas", copie a URL do painel e abra em outra aba — a categoria deve vir recortada.

Erros comuns de design

  • Escopo errado por visual. Restringir um slicer a um visual que nem usa a coluna filtrada gera o aviso "não alcança nada" — confirme o escopo antes de publicar.
  • Confiar que a URL guarda tudo. Faixa e hierarquia não sobrevivem só pela URL — se o link precisa restaurar esses tipos, use um bookmark (aula 8), não o ?f=.
  • Datas relativas sem checar o fuso. "Hoje" no fuso errado desalinha o painel por um dia inteiro perto da virada — confirme o fuso configurado do painel.
  • Sincronizar demais. Nem todo slicer deveria valer no painel inteiro; um filtro só da página "Detalhe" não precisa (e não deveria) recortar o "Resumo".
  • Slicer de parâmetro (field/measure) sem rótulo claro. Como eles trocam o que o visual mostra (não o que é filtrado), um rótulo ambíguo confunde o leitor sobre o que está mudando.

Estado atual (Preview)

Slicers, escopos, datas relativas e sincronização entre páginas são GA-candidato — cobertos por suíte determinística (presetRange, os 8 tipos de DASH_FILTER_TYPES, applyCrossFilter). O codec versionado do estado de filtros na URL (C03.2, usado por ?f=) também é GA-candidato na lógica de codificação/decodificação — mas a persistência completa por URL é Preview, porque faixa/hierarquia dependem de bookmark e não há autosave por usuário. Filtro pessoal por usuário (slicer que lembra a preferência de cada pessoa) é Roadmap — hoje, o que existe por usuário é RLS, não um slicer pessoal.

Nota

"Client-side sobre o snapshot" é a frase-chave desta aula: filtrar nunca dispara uma nova consulta cobrável no BigQuery — o custo já foi pago no refresh que gerou o snapshot.

NecessidadeTipo de slicer
Recortar por categoriaselect
Recortar por intervalo de datas fixodaterange
Período que anda sozinho ("últimos 30 dias")daterange com preset relativo
Escolher uma opção só, visível como botõesbuttons
Recortar por faixa numéricarange
Descer Região → UF → Cidadehier
Simular um número ("e se o preço fosse X")number
Trocar a dimensão/medida do visualfield / measure

Faça você mesmo#

No workspace de treino Aurora Varejo (abra /dashboards no console):

  1. No painel "Comercial — Aurora", adicione um daterange com preset "últimos 30 dias", escopo dashboard.
  2. Adicione um select de filiais.regiao e um select de produtos.marca, escopo dashboard.
  3. Marque o daterange como sincronizado entre páginas ("Resumo" e "Detalhe").
  4. Confirme, na página "Detalhe", que o mesmo daterange já aparece aplicado.
  5. Filtre por uma região e uma marca; confirme que todos os visuais do dashboard recortam.
  6. Copie a URL do painel filtrado, abra em outra aba e confirme que a seleção volta.
  7. Adicione um slicer hier de Região → UF → Cidade (se houver hierarquia no modelo) e desça um nível.

Você terminou quando: o daterange sincronizado recorta as duas páginas, e a URL copiada restaura categoria e região numa aba nova.

Checagem rápida#

Três perguntas no final da aula, corrigidas no servidor. A aula só conta como concluída depois da checagem.

Documentação relacionada#

Capacidades ensinadas#

C03.2 — o selo exibido na aula é sempre o estado mais conservador entre as capacidades citadas; nada aqui é "GA".

Carregando seu progresso…