只读条件不起作用

时间:2017-04-03 15:38:33

标签: oracle-apex

我正在开发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}}将始终是只读的,并且它的源控件也不起作用,它留空(在之前的情况下它正常工作)。

我该如何解决?

1 个答案:

答案 0 :(得分:2)

你的问题是年表。 页面呈现,条件评估,然后您在浏览器的页面加载中计算您的应用程序项目。

将代码移动到计算中,可能在区域之前,因此作为页面渲染的一部分完成。

REQUEST值仅在页面处理中有效,因此,除非您明确设置,否则可能需要注意。

在可能的情况下,您还应考虑使用声明性操作。

www.grassroots-oracle.com/2013/05/performance-of-apex-conditions.html