Ajuda

Filtros dinâmicos em relatórios, na nova versão do sistema

Os filtros dinâmicos em relatórios personalizados permitem que o usuário defina os dados que deseja visualizar, diminuindo a necessidade de tabelas dinâmicas no Excel, ou de filtrar os dados após gerar o relatório. Assim, ao inserir os filtros ainda no modelo com tags, o sistema gerará o relatório somente com os dados desejados.

Esta página se refere à nova versão do ERP MAXIPROD. Para migrar as ordens de produção para a nova versão, entre em contato com o suporte. Veja as novidades da nova versão, clicando aqui.

Essa página mostra:

Como obter as tags?

Atualmente, o sistema permite a personalização de relatórios com tags. Elas são identificadores de campos, e retornam um ou mais registros do sistema. Por exemplo, a tag [[Item.Codigo]] retorna o código de um item cadastrado no sistema. Para saber mais sobre as tags e finalidades, clique aqui.

1) Para encontrar uma tag, acesse uma tela da nova versão do ERP MAXIPROD e vá ao menu “Imprimir > Dicionário de tags”.

2) O campo “Pesquisar” permite a busca das propriedades listadas.

3) Clique nas propriedades para navegar pelo dicionário e localizar a tag desejada.

4) Posicionando o cursor do mouse sobre a tag, aparece o ícone mostrado abaixo. Clique nele para copiar a tag.

5) Para verificar se é a propriedade correta, passe o mouse sobre o ícone “abre aspas” à direita da tag.

Filtrar e ordenar dados

Para construir os filtros nas tags, são necessários modificadores:

  • [[Tag]:Filtrar({Valor da função} ¬|)] : este modificador filtra os registros retornados pela tag, com base no valor da função.
  • [[Tag]:Ordenar({Valor da função} ¬|)] : este modificador ordena os registros retornados pela tag, com base no valor da função.

Detalhando:

    • [[Tag]]: tag utilizada no relatório, obtida através do passo citado aqui.
    • :Filtrar() e :Ordenar() : modificadores que funcionam conforme seus valores.
    • Limitadores |¬ ¬|: definem aquilo que deve ser considerado o valor da função.
    • {Valor da função} : deve ser um código GraphQL válido para aquela entidade, por exemplo, estoques.

Para saber mais sobre outros modificadores, clique aqui.

Dica: Para gerar o caractere “¬” pressione a tecla Alt Gr + 6 no teclado.
O valor da função não aceita colchetes “[]”. Para usar um colchete no código GraphQL, utilize “^- -^”.

Observações:

  • Não é permitido inserir a mesma tag com filtros diferentes.
    Por exemplo: [[Item.Codigo]:Filtrar(|¬ {Filtro 1} ¬|)] e [[Item.Codigo]:Filtrar(|¬ {Filtro 2} ¬|)] . Neste caso, deve-se colocar todos os filtros na mesma tag: [[Item.Codigo]:Filtrar(|¬ {Filtro 1} {Filtro 2} ¬|)].
  • O filtro não retorna um resultado visível, serve somente como uma tag auxiliar de uma tag principal.
    Por exemplo: a tag de filtro [[Item.Estoques]:Filtrar(|¬ {Filtro} ¬|)]  se aplica a uma tag-filha principal, como [[Item.Estoques.Quantidade]].

Como obter os campos para filtragem

Ao montar um filtro dinâmico em uma tag é necessário obter o campo desejado.

Seja a tag com filtro: [[Tag]:Filtrar(|¬{ quantidade: { gt: 10 }, tipo: { eq: NORMAL } }¬|)]

  • Quantidade e tipo são os campos/atributos no qual estamos baseando o filtro.

Para obter estes campos, é necessário trabalhar com a API GraphQL.  Para entender mais sobre a API, clique aqui.

Exemplos

Após entender todos os passos, vamos montar um filtro de exemplo:

[[OrdensDeProducao.InsumosDaOrdemDeProducao.Item.Estoques]:Filtrar( |¬ { quantidade: { gt: 10 }, tipo: { eq: NORMAL } }¬|):Ordenar(|¬^-{item: {codigo: DESC}}-^¬|)]

Organizando para uma melhor visualização:

[[OrdensDeProducao.InsumosDaOrdemDeProducao.Item.Estoques]:
            Filtrar(  |¬  { quantidade: { gt: 10 }, tipo: { eq: NORMAL } } ¬| ) :
            Ordenar(  |¬ ^- {item: {codigo: DESC}} -^ ¬|  )]

Detalhando:

    • [[OrdensDeProducao.InsumosDaOrdemDeProducao]: tag que retorna os estoques dos itens que são insumos de uma OP.
    • :Filtrar(  ): função para filtrar algo dentre estes estoques.
    • |¬ { quantidade: { gt: 10 }, tipo: { eq: NORMAL } }¬| : o filtro buscará somente estoques com quantidade maior que 10 e do tipo “normal”.
    • :Ordenar(  ): função que  ordena os registros filtrados.
    • |¬^-{item: {codigo: DESC}}-^¬|: ordena os registros pelo código do item, em ordem decrescente.

Por fim, essa consulta deve ser colocada no modelo de relatório e importada para o sistema, conforme mostrado aqui.

Em caso de dúvidas, entre em contato com o suporte.

Veja também: