Exemplos de filtro interativo personalizado
Como administrador, você pode criar widgets de filtro interativos personalizados para fornecer opções de filtragem avançadas nos painéis.
Caso de uso
Este exemplo detalha como criar um filtro personalizado para filtrar relatórios na tabela Tarefa ou em suas tabelas secundárias. O filtro mostra somente registros em que o usuário atual é o chamador. O filtro expõe dois botões ao usuário, um botão para adicionar o filtro e outro para remover o filtro.
Crie um widget de filtro interativo personalizado
Crie widgets de filtro interativos personalizados para fornecer opções de filtragem avançadas em painéis.
Antes de Iniciar
Função necessária: administrador
Procedimento
O que Fazer Depois
Defina a lógica de filtragem.
Definir lógica de filtragem - exemplo
Depois de criar o filtro interativo, adicione a lógica de filtragem.
Antes de Iniciar
Função necessária: administrador
Procedimento
Resultado
O filtro interativo personalizado aparece no painel ao qual você adicionou o bloco de conteúdo dinâmico. Também está na lista de blocos de conteúdo no Adicione widgets painel.
Crie uma opção de filtro de data/hora personalizada
Quando a seleção padrão de opções de filtro de data/hora não atender às suas necessidades, você poderá criar uma opção personalizada.
Antes de Iniciar
Siga estas etapas para criar uma opção de filtro de data/hora personalizada que pode ser incluída em qualquer filtro interativo baseado em data/hora para uso em um painel. Neste exemplo, você cria uma opção de filtro para o período de duas semanas, uma quinzena.
Função necessária: administrador
Procedimento
Exemplo de filtro interativo personalizado - vários relatórios
Você pode usar um filtro interativo personalizado para filtrar vários relatórios usando tabelas diferentes. Há duas APIs diferentes para publicar um filtro interativo para uma única tabela ou várias tabelas. Este exemplo filtra um relatório nas tabelas de incidente e problema por grupo de atribuição usando um filtro interativo personalizado.
Sobre filtros interativos personalizados em várias tabelas
- Os filtros interativos personalizados que se aplicam a apenas uma tabela usam a função DashboardMessageHandler.publichFilter() .
- Os filtros interativos personalizados que se aplicam a várias tabelas usam a função DashboardMessageHandler.publichMessage() .
- Antes de publicar, uma chamada de filtro interativo para SNC.canvas.interactiveFilters.setDefaultValue() a função é obrigatória.
- Uma chamada para SNC.canvas.interactiveFilters.removeDefaultValue() ou o. DashboardMessageHandler.removeFilter() a função é necessária antes de redefinir o filtro.
Um filtro interativo personalizado que chama o. Filtro() o método atualiza o relatório associado várias vezes o mesmo número de vezes. As chamadas repetidas a este método podem causar problemas de desempenho.
Como aplicar Filtro interativo personalizado a várias tabelas
O exemplo a seguir filtra o relatório por grupo de atribuição nas tabelas Incidente [incidente] e Problema [problema].
DashboardMessageHandler.publichMessage() aceita vários filtros como matriz. Crie a matriz de filtro e crie uma única instância de DashboardMessageHandler quais chamadas DashboardMessageHandler.publichMessage([filtros]) . Este método atualiza o widget apenas uma vez.
<?xml version="1.0" encoding="UTF-8"?>
<j:jelly xmlns:j="jelly:core" xmlns:g="glide" xmlns:g2="null" xmlns:j2="null" trim="false">
<script>
var my_dashboardMessageHandler = new DashboardMessageHandler("my_unique_id");
function publishMultipleFilter() {
<!-- Mutliple filters can be passed as an array -->
var finalFilter = [{"table":"incident","filter":"assignment_group=6fcd3b573b331300ad3cc9bb34efc447"}, {"table":"problem","filter":"assignment_group=6fcd3b573b331300ad3cc9bb34efc447"}];
<!-- call setDefaultValue first -->
SNC.canvas.interactiveFilters.setDefaultValue({
id: my_dashboardMessageHandler._unique_id,
filters: finalFilter,
}, false);
<!-- then call Publishmessage to publish filters-->
my_dashboardMessageHandler.publishMessage(finalFilter);
}
function clearFilter() {
SNC.canvas.interactiveFilters.removeDefaultValue(my_dashboardMessageHandler._unique_id, false);
my_dashboardMessageHandler.removeFilter();
}
</script>
Example of a filter that filters incident and problem table where the assignment group is Problem solving
<input id="allTasks" type="button" value="All" onclick="clearFilter();" />
<input id="onlyMine" type="button" value="Assignment group is [Problem solving]" onclick="publishMultipleFilter();" />
</j:jelly>