在Oracle APEX中实现任何区域的分面搜索
Oracle APEX交互式网格分面搜索动态动作查询优化
原文地址: https://kuchatom.hashnode.dev/a-guide-to-implement-faceted-search-with-any-region-in-oracle-apex
# 在Oracle APEX中实现任何区域的分面搜索

## 秘密配对技术
分面搜索通常不与交互式网格或交互式报告配对使用,因为这会限制报告的功能。本文介绍了一种无需JavaScript或黑客技术的简单方法,只需在查询中使用页面项即可实现分面搜索与交互式网格的配合。
## 示例应用程序
### 经典报告与分面搜索
首先创建一个分面搜索区域和一个经典报告,基于示例表`EBA_GRAPHVIZ_AIRPORTS`。设置几个分面,如名称、城市、机场类型和时区,并链接到经典报告的对应列。

### 实现交互式网格
将经典报告替换为交互式网格,使用相同的查询。通过动态动作和WHERE条件将分面搜索与交互式网格关联。

动态动作在页面项更改时刷新交互式网格:

WHERE条件代码如下:
```sql
NAME in (select column_value from table (apex_string.split(NVL(:P1_NAME,NAME), ':')))
AND CITY in (select column_value from table (apex_string.split(NVL(:P1_CITY,CITY), ':')))
AND AIRPORT_TYPE in (select column_value from table (apex_string.split(NVL(:P1_AIRPORT_TYPE,AIRPORT_TYPE), ':')))
AND TIMEZONE in (select column_value from table (apex_string.split(NVL(:P1_TIMEZONE,TIMEZONE), ':')))
```
### 实现地图区域
在选项卡容器中添加地图区域,同样使用分面搜索的条件和刷新动作:

## 演示应用
演示应用可在[此处](https://oracleapex.com/ords/r/pretius/faceted-search-with-any-region/home)查看。