我使用的是 Oracle Application Express 4.2,我有一个 LOV(值列表),其中包含选择列表中的航类号列表。这是一个动态的值列表。我想在选择列表的顶部添加一个静态值,上面写着“即将到来”。我还想在显示“过去的航类”的选择列表中的特定航类之前添加一个静态值。这样我就可以在选择列表中区分哪些航类即将到来,哪些是过去的航类。我的动态 LOV 当前称为 P_100_FLIGHT_LOV2。
我在下面有一些 JavaScript 代码在页面加载时执行,它正在将“即将到来”静态值添加到我的选择列表中,但它添加为最后一个选项。在特定航类之前,我想要这个在顶部,一个在中间。如何使用 JavaScript 实现此目的?
下面是我的 JavaScript 代码:
var x = document.getElementById("P100_FLIGHT_LOV2");
var option = document.createElement("option");
option.text = "Upcoming";
x.add(option);
这是当前这段 JS 代码的结果:
SPX-14
67P
OA-9
55S
DRAGONX
34R
UPCOMING ----------CURRENTLY AT BOTTOM OF SELECT LIST
我想要达到的期望结果集:
UPCOMING -----------STATIC VALUE
SPX-14
67P
OA-9
PAST FLIGHTS ---------STATIC VALUE
55S
DRAGONX
34R
最佳答案
我不知道如何使用 JavaScript,但我知道如何使用 Oracle。所以,给你。
SQL> with flight_schedule (flight, sched) as
2 (select 'SPX-14' , to_date('12.01.2018 22:00', 'dd.mm.yyyy hh24:mi') from dual union
3 select '67P' , to_date('12.01.2018 22:15', 'dd.mm.yyyy hh24:mi') from dual union
4 select 'OA-9' , to_date('12.01.2018 22:40', 'dd.mm.yyyy hh24:mi') from dual union
5 select '555' , to_date('12.01.2018 18:30', 'dd.mm.yyyy hh24:mi') from dual union
6 select 'DRAGONX', to_date('12.01.2018 19:00', 'dd.mm.yyyy hh24:mi') from dual union
7 select '34R' , to_date('12.01.2018 19:28', 'dd.mm.yyyy hh24:mi') from dual),
8 static_values as
9 (select 1 what, 'UPCOMING' statval from dual union
10 select 3 , 'PAST FLIGHTS' from dual
11 ),
12 --
13 prep as
14 (-- Static values
15 select what, statval flight, null sched
16 from static_values x
17 union
18 -- Upcoming flights
19 select 2 what, flight, sched
20 from flight_schedule
21 where sched > sysdate
22 union
23 -- Past flights
24 select 4 what, flight, sched
25 from flight_schedule
26 where sched <= sysdate
27 )
28 select flight, sched scheduled_time
29 from prep
30 order by what, sched;
FLIGHT SCHEDULED_TIME
------------ ----------------
UPCOMING
SPX-14 12.01.2018 22:00
67P 12.01.2018 22:15
OA-9 12.01.2018 22:40
PAST FLIGHTS
555 12.01.2018 18:30
DRAGONX 12.01.2018 19:00
34R 12.01.2018 19:28
8 rows selected.
SQL>
一些注意事项:
- 当前的“sysdate”(关于这个例子)是 12.01.2018 21:00
- flight_schedule 是实际的“航类时刻表”,包含航类和 安排时间
- 它们与静态值“联合”。 WHAT 列显示去哪里 放置这些值(即指向它们的排序位置)
- PREP 表准备这些值;静态的是微不足道的,而 即将到来和过去的航类取决于“系统日期”
哦,是的——还有一件事:因为这是一个 Apex LoV,你必须准确地选择两个值:一个显示和一个返回值;这些是什么,您会更清楚(可能是 FLIGHT 及其 ID,或类似的东西)。
关于javascript - 如何使用 JavaScript 将静态值作为列表中的第一个值? ORACLE APEX - LOV 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48233239/