Data

29 fev, 2016

Passando um filtro como parâmetro em um relatório interativo no Oracle APEX

Publicidade

Fala, pessoal!

Hoje vou falar de um recurso muito interessante dos relatórios interativos do Oracle APEX: a possibilidade de passar o filtro através da URL.

Esse recurso permite “economizar” uma dezena de linhas de código e, obviamente, tempo de desenvolvimento. Além de simular uma configuração que o próprio usuário faria.

Vou exemplificar esse artigo de forma diferente: vamos utilizar uma aplicação da própria Oracle, em seu ambiente produtivo. A aplicação, obviamente criada em APEX, tem o propósito de listar todos os profissionais Oracle ACE do mundo. Veja o site: https://apex.oracle.com/pls/apex/f?p=19297

Na primeira página temos um mapa com a quantidade de ACEs por país:

ll05

Quando clicado em um dos países, o usuário é automaticamente direcionado para a página com o relatório interativo.

Perceba que foi criado automaticamente um filtro no relatório interativo para listar apenas os ACEs do Brasil:

ll06

Legal, né?! Mas como faço isso? É simples: o relatório interativo do Oracle APEX permite programaticamente determinar os filtros ao chamar a URL da página que contém esse relatório.

Basta passar como parâmetro o item do relatório interativo com a seguinte sintaxe:

IR + [OPERADOR] +_NOME_COLUNA

Onde:

  • IR = Identificador de relatório interativo
  • OPERADOR = Operador aritmético ou comparativo que será efetuado na coluna
  • NOME_COLUNA = Alias interno da coluna

Por exemplo, a coluna LOCATION (nome interno da coluna) representa o país; desejo filtrar apenas os ACEs do Brasil, então, devo passar o parâmetro IR_LOCATION e o valor Brazil:

https://apex.oracle.com/pls/apex/f?p=19297:3::::CIR,RIR:IR_LOCATION:Brazil

Existem outros operadores que podemos utilizar:

  • EQ = Igual (esse é o default quando não informado o operador)
  • NEQ = Diferente
  • LT = Menor que
  • LTE = Menor ou Igual que
  • GT = Maior que
  • GTE = Maior ou igual que
  • LIKE = Operador LIKE
  • = Nulo
  • NN = Não Nulo
  • = Contém
  •  NC = Não Contém

Por exemplo, quero filtrar todos os ACEs que não contenha nenhuma relação com banco de dados.

https://apex.oracle.com/pls/apex/f?p=19297:3::::CIR,RIR:IRNC_EXPERTISE:Database

Importante!

É muito importante utilizar as opções reset do relatório interativo, pois essas fazem “limpar” os filtros anteriormente criados antes de definir o que está sendo passado como parâmetro.

  • CIR =  Significa, Clear Interactive Report, ou seja, limpa todos os filtros do relatório interativo
  • RIR = Siginifica, Reset Interactive Report, ou seja, reinicia a paginação do relatório interativo

Para entender sobre o significado da URL do Oracle APEX, veja este artigo.

Conclusão

Mais uma incrível funcionalidade que pode ser facilmente implementado no Oracle APEX!

Aproveite e evolua a sua aplicação!