Recentemente, um dev perguntou se dava pra usar Faceted Search com Interactive Grid (IG) no APEX.
Por padrão, o APEX só suporta Faceted Search em Cards e Classic Reports, mas com um pequeno ajuste dá pra expandir esse comportamento.
Abaixo mostro o passo a passo prático usando a Sample App – Cards como base. 👇
🧱 1. Preparando o ambiente
Instale a aplicação de exemplo Sample Cards.
Ela já traz uma página com Faceted Search e uma região de Cards.
Depois, duplique a região de Cards e altere o tipo para Interactive Grid, dentro de um Tab Container — assim dá pra ver as duas regiões filtrando os mesmos dados.
⚙️ 2. Ligando o Faceted Search ao IG
Os facets (como Department, Manager, Job etc.) não são page items comuns, mas ainda armazenam valores de sessão.
Isso significa que você pode referenciá-los diretamente na query do IG, usando seus nomes (P12_DEPTNO, P12_JOB, etc.).
Crie uma Dynamic Action no evento Change do facet (ex: P12_DEPTNO):
- Event: Change
-
Item(s):
P12_DEPTNO - True Action: Refresh
-
Affecting Region:
Search Results (IG)
💡 3. Ajustando a query do IG
Mesmo sem aparecer na lista de itens, basta adicionar o nome manualmente em Page Items to Submit.
Depois, use apex_string.split com o separador : na cláusula WHERE:
sql
where (
:p12_deptno is null
or to_char(m.deptno) member of apex_string.split(:p12_deptno, ':')
)
🔎 4. Adicionando o campo de busca (P12_SEARCH)
Além dos filtros, o campo de busca do Faceted Search (P12_SEARCH) também pode ser usado para refinar os resultados do Interactive Grid.
A ideia é simples: o valor digitado nesse campo será aplicado como filtro LIKE em várias colunas do IG — por exemplo: ENAME, JOB, MGR, DEPTNO, MIMETYPE e FILENAME.
Basta incluir a condição abaixo na cláusula WHERE da sua query:
sql
and (
:p12_search is null
or upper(m.ename) like '%' || upper(:p12_search) || '%'
or upper(m.job) like '%' || upper(:p12_search) || '%'
or upper(to_char(m.deptno)) like '%' || upper(:p12_search) || '%'
or upper(m.mimetype) like '%' || upper(:p12_search) || '%'
or upper(m.filename) like '%' || upper(:p12_search) || '%'
)









Top comments (0)