oracle - 选择更改交互式报表 oracle apex 时刷新表单

标签 oracle oracle-apex

我有一个包含两个区域的页面,一个交互式报告和一个表单。

我对报告有一个动态操作,当我单击一行时,它将项目的值设置为该行的 id。

如何刷新表单以获取与项目中的 (Id) 相关的值?

最佳答案

据我所知,表单区域不会刷新,无论如何都不会刷新到 APEX 19.2。您可能希望使用执行 PL/SQL 操作来获取表单项的值。这是一个完整的例子。

  • 创建一个新的空白页。我的页面是 26。您需要将以下内容更新为您拥有的页码。
  • 创建一个新区域。套装标题员工 , 类型 互动报告 , 表名 电磁脉冲 , 和 静态 ID emps-reg .
  • 选择 EMPNO 报表列和集静态 ID empno-col .
  • 创建另一个新区域。套装标题员工详情 , 类型 表格 , 和 表名 电磁脉冲 .
  • 选择 P26_EMPNO 项目(在最后一步后自动创建)。启用 主键 下设置 来源 .
  • 创建动态操作。套装姓名 单击员工行 , 事件 点击 , 选择类型 jQuery 选择器 , jQuery 选择器到 #emps-reg table:eq(1) tr:not(:eq(0)) , 和 事件范围 动态 .

    将事件范围设置为动态将使动态操作在报表刷新后继续工作。
  • 选择在上一步中默认创建的操作。套装行动设置值 , 类型 JavaScript 表达式 , 和 JavaScript 表达式 $(this.triggeringElement).find('td[headers="empno-col"]').text() .

    JavaScript 表达式将以 tr 开头单击并向下遍历到 td具有员工 empno 并返回该值的元素。
  • 右键单击 P26_EMPNO 表单区域中的项目并选择 创建动态操作 .这将创建一个具有正确配置的事件设置的动态操作。套装姓名 P26_EMPNO 已更改 .
  • 选择上一步默认创建的Action。套装行动执行 PL/SQL 代码 ,然后在PL/SQL代码中输入以下代码:
    select ename, job, mgr, hiredate, sal, comm, deptno
    into :P26_ENAME, :P26_JOB, :P26_MGR, :P26_HIREDATE, :P26_SAL, :P26_COMM, :P26_DEPTNO
    from emp
    where empno = :P26_EMPNO;
    
  • 在同一操作中,设置 页面提交项目 P26_EMPNO .这将在执行代码之前将主键项中的值传输到 session 状态。
  • 在同一操作中,设置 返回页面项目 P26_ENAME,P26_JOB,P26_MGR,P26_HIREDATE,P26_SAL,P26_COMM,P26_DEPTNO .这会将 session 状态中的当前值返回到页面中的项目。

  • 因为您通过 Ajax 填充项目,所以您可能需要为通常在表单项目中指定的内容添加额外的代码,例如日期或数字格式。

    关于oracle - 选择更改交互式报表 oracle apex 时刷新表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60195758/

    相关文章:

    graph - 如何调整 APEX 中图形/图表的范围?

    SSL 实现 oracle apex

    sql - Oracle 11g - 使用 RegEx 检查约束

    c# - Entity Framework 在查询中创建一个不存在的列

    oracle-apex - 分支不传递项目值

    javascript - 如何在动态操作中单击按钮时调用 Oracle APEX 中的 javascript 函数?

    oracle-apex - Oracle APEX 4.2主键?

    RODBC::sqlSave() 创建表,警告:列中被截断为 255 字节?

    SQL 与...更新

    sql - 加快 oracle sql 删除查询