我正在开发Oracle Application Express(APEX 4.2)应用程序。
其中一个页面控件(文本框:APP_PROJECT_READ_ONLY = 'YES'
)具有“PL / SQL表达式”只读条件:
:APP_PROJECT_READ_ONLY
on_load
是一个应用项目,它是根据页面加载时触发的动态操作DECLARE
CURR_USER VARCHAR2(50);
BEGIN
IF :REQUEST = 'NEW' THEN
:APP_PROJECT_ID := 0;
:APP_PROJECT_READ_ONLY := 'NO';
ELSE
:APP_PROJECT_ID := :P2_ID;
SELECT OWNER INTO CURR_USER
FROM PROJECTS
WHERE ID = :APP_PROJECT_ID;
IF CURR_USER = :APP_USER THEN
:APP_PROJECT_READ_ONLY := 'NO';
ELSE
:APP_PROJECT_READ_ONLY := 'YES';
END IF;
END IF;
EXCEPTION WHEN NO_DATA_FOUND THEN
NULL;
END;
设置的:
:APP_PROJECT_READ_ONLY
检查会话状态显示title
的值是正确的,但它似乎无法驱动on_load
是否只读:
title
的“要返回的页面项目”留空,则title
始终可以编辑。 title
,那么{{1}}将始终是只读的,并且它的源控件也不起作用,它留空(在之前的情况下它正常工作)。 我该如何解决?
答案 0 :(得分:2)
你的问题是年表。 页面呈现,条件评估,然后您在浏览器的页面加载中计算您的应用程序项目。
将代码移动到计算中,可能在区域之前,因此作为页面渲染的一部分完成。
REQUEST值仅在页面处理中有效,因此,除非您明确设置,否则可能需要注意。
在可能的情况下,您还应考虑使用声明性操作。
www.grassroots-oracle.com/2013/05/performance-of-apex-conditions.html