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:
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:
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
- N = Nulo
- NN = Não Nulo
- C = 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!