【问题标题】:Read-only condition not working只读条件不起作用
【发布时间】:2017-04-04 12:23:55
【问题描述】:

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

其中一个页面控件(文本框,title)具有“PL/SQL 表达式”只读条件:
:APP_PROJECT_READ_ONLY = 'YES'

: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 将始终是只读的,而且它的源代码控制不起作用,它留空(在以前的情况下它工作正常)。

我该如何解决?

【问题讨论】:

    标签: oracle-apex


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-09-19
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-06
      相关资源
      最近更新 更多