如何为 Oracle APEX Popup LOV 设置值
How to set value for the Oracle APEX Popup LOV
我正在寻找一种在 Popup Lov 项目中设置值的方法。我正在使用 Oracle Apex,我正在尝试通过动态操作设置 Popup LOV 的值。我想设置一年后从日期选择器中选择一个日期并在弹出的 LOV 项目中刷新年份。
在 Apex 上,我创建了一个名为 P2_YEAR 的弹出式 Lov 项目和一个名为 P2_DATE 的日期选择器。在 P2_date,我创建了一个具有两个真实条件的动态操作(客户端条件项不为空 - P2_YEAR)。
第一个条件:执行Pl\sql代码提取年份:
declare
year number;
tmp date;
begin
tmp:=:P2_DATE;
SELECT EXTRACT (YEAR FROM tmp) YEAR
into year
FROM DUAL;
:P2_EXTRACT_YEAR := YEAR;
return;
end;
:P2_EXTRACT_YEAR 是一个隐藏的项目。
和第二个条件:执行 Javascript 代码
$s('extractyear',$v('P2_EXTRACT_YEAR'));
在 P2_Year 我在高级 - CSS class 添加了 class 名称 extractyear。
我会得到的是在弹出项框中显示年份,如果我按箭头仅显示之前从日期中提取的年份。
此配置无效。
您的答案分为两部分:1) 生成 P2_YEAR 的值列表。 2) 设置 P2_YEAR
的值
1) 这可以在项目 P2_YEAR 上使用级联 LOV 来实现。使用来源
WITH YEARS (yr) AS
(
SELECT TO_CHAR(TO_DATE(:P2_DATE,'DD-MON-YYYY'),'YYYY') + LEVEL - 2 FROM DUAL
CONNECT BY LEVEL < 3
)
SELECT yr as r, yr as d FROM years
并设置父项目 P2_DATE。
我的项目 P2_DATE 具有格式掩码 DD-MON-YYYY
现在,如果 P2_DATE 发生变化,P2_YEAR 中的选项将相应地发生变化。
2) 使用对 P2_DATE
变化的动态操作来执行此操作
第一个操作:设置值,pl/sql 表达式,EXTRACT( YEAR FROM TO_DATE(:P2_DATE,'DD-MON-YYYY'))
项目 P2_EXTRACTYEAR
第二个动作:执行javascript代码,影响元素项P2_YEAR
apex.item("P2_DATE").setValue(apex.item( "P2_EXTRACTYEAR" ).getValue(),apex.item( "P2_EXTRACTYEAR" ).getValue());
右键单击 :P2_DATE 和 select 创建动态操作。设置以下属性:
Event: Change
Selection Type: Items(s)
Item: P2_DATE
客户端条件
Type: Item is not null
Item(s): P2_DATE
右键单击动态动作,然后 select 创建 TRUE 动作。设置以下属性:
Action: Set Value
Set Type: PL/SQL expression
PL/SQL expression : TO_CHAR(TO_DATE(:P2_DATE,'DD-MON-YYYY'),'YYYY')
Items to Submit: P2_DATE
Affected Elements > Selection Type: Item(s)
Affected Elements > Item(s): P2_YEAR
错误操作
Action : Set value
Set Type: PL/SQL expression
PL/SQL expression : :P2_YEAR = ''
Items to Submit: P2_YEAR
Affected Elements > Selection Type: Item(s)
Affected Elements > Item(s): P2_YEAR
我正在寻找一种在 Popup Lov 项目中设置值的方法。我正在使用 Oracle Apex,我正在尝试通过动态操作设置 Popup LOV 的值。我想设置一年后从日期选择器中选择一个日期并在弹出的 LOV 项目中刷新年份。
在 Apex 上,我创建了一个名为 P2_YEAR 的弹出式 Lov 项目和一个名为 P2_DATE 的日期选择器。在 P2_date,我创建了一个具有两个真实条件的动态操作(客户端条件项不为空 - P2_YEAR)。
第一个条件:执行Pl\sql代码提取年份:
declare
year number;
tmp date;
begin
tmp:=:P2_DATE;
SELECT EXTRACT (YEAR FROM tmp) YEAR
into year
FROM DUAL;
:P2_EXTRACT_YEAR := YEAR;
return;
end;
:P2_EXTRACT_YEAR 是一个隐藏的项目。
和第二个条件:执行 Javascript 代码
$s('extractyear',$v('P2_EXTRACT_YEAR'));
在 P2_Year 我在高级 - CSS class 添加了 class 名称 extractyear。
我会得到的是在弹出项框中显示年份,如果我按箭头仅显示之前从日期中提取的年份。
此配置无效。
您的答案分为两部分:1) 生成 P2_YEAR 的值列表。 2) 设置 P2_YEAR
的值1) 这可以在项目 P2_YEAR 上使用级联 LOV 来实现。使用来源
WITH YEARS (yr) AS
(
SELECT TO_CHAR(TO_DATE(:P2_DATE,'DD-MON-YYYY'),'YYYY') + LEVEL - 2 FROM DUAL
CONNECT BY LEVEL < 3
)
SELECT yr as r, yr as d FROM years
并设置父项目 P2_DATE。 我的项目 P2_DATE 具有格式掩码 DD-MON-YYYY
现在,如果 P2_DATE 发生变化,P2_YEAR 中的选项将相应地发生变化。
2) 使用对 P2_DATE
变化的动态操作来执行此操作第一个操作:设置值,pl/sql 表达式,EXTRACT( YEAR FROM TO_DATE(:P2_DATE,'DD-MON-YYYY'))
项目 P2_EXTRACTYEAR
第二个动作:执行javascript代码,影响元素项P2_YEAR
apex.item("P2_DATE").setValue(apex.item( "P2_EXTRACTYEAR" ).getValue(),apex.item( "P2_EXTRACTYEAR" ).getValue());
右键单击 :P2_DATE 和 select 创建动态操作。设置以下属性:
Event: Change
Selection Type: Items(s)
Item: P2_DATE
客户端条件
Type: Item is not null
Item(s): P2_DATE
右键单击动态动作,然后 select 创建 TRUE 动作。设置以下属性:
Action: Set Value
Set Type: PL/SQL expression
PL/SQL expression : TO_CHAR(TO_DATE(:P2_DATE,'DD-MON-YYYY'),'YYYY')
Items to Submit: P2_DATE
Affected Elements > Selection Type: Item(s)
Affected Elements > Item(s): P2_YEAR
错误操作
Action : Set value
Set Type: PL/SQL expression
PL/SQL expression : :P2_YEAR = ''
Items to Submit: P2_YEAR
Affected Elements > Selection Type: Item(s)
Affected Elements > Item(s): P2_YEAR