Oracle apex 只读条件不工作

Oracle apex 只读条件不工作,oracle-apex,Oracle Apex,我正在开发一个Oracle Application express(APEX 4.2)应用程序 其中一个页面控件(文本框,标题)具有“PL/SQL表达式”只读条件: :应用程序项目\u只读='YES' :APP\u PROJECT\u READ\u ONLY是一个应用程序项,它是从加载时触发的动态动作设置的 DECLARE CURR_USER VARCHAR2(50); BEGIN IF :REQUEST = 'NEW' THEN :APP_PROJECT_ID := 0;

我正在开发一个Oracle Application express(APEX 4.2)应用程序

其中一个页面控件(文本框,
标题
)具有“PL/SQL表达式”只读条件:
:应用程序项目\u只读='YES'

:APP\u PROJECT\u READ\u ONLY
是一个应用程序项,它是从加载时触发的动态动作
设置的

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\u PROJECT\u READ\u
的值是正确的,但它似乎不会驱动
title
是否为只读:

  • 如果我将加载时的
    的“要返回的页面项目”留空,则
    标题总是可编辑的
    
  • 但是,如果我将其设置为
    title
    ,那么
    title
    将始终是只读的,而且它的源代码管理也不工作,它保留为空(在以前的情况下,它工作正常)

我该怎么解决呢?

你的问题是时间顺序。 页面呈现,评估条件,然后计算浏览器页面加载上的应用程序项

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

请求值仅在页面处理中可用,因此除非您明确设置,否则可能需要注意

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