我有一个交互式报告和一个与之关联的表格。使用表单创建新条目后,我的最终用户希望将焦点放在交互式报告中的特定新条目上(条目很多,今天他们需要向下滚动很多才能看到新条目)。
在更新报告的一行时,他们也需要相同的功能。
我怎样才能在APEX 5.1中以正确的方式做到这一点?
我有一个交互式报告和一个与之关联的表格。使用表单创建新条目后,我的最终用户希望将焦点放在交互式报告中的特定新条目上(条目很多,今天他们需要向下滚动很多才能看到新条目)。
在更新报告的一行时,他们也需要相同的功能。
我怎样才能在APEX 5.1中以正确的方式做到这一点?
简单的解决方案:对您的报告进行降序排序,以便最后创建的 ID 将成为 IR 中的第一个
简单的。
您甚至不必创建任何额外的页面项目。更改您的表单 DML,使其返回到主键页面项目持有者。然后在您的 DML 进程之后但在重置缓存进程之前创建一个进程。使用 APEX_IR API 重置您的 IR 页面上的分页,然后根据您返回新 PK 的主键页面项设置交互式报告过滤器。检查文档以了解确切用法。
Apex_IR.reset_report 重置报告分页并删除任何过滤器。
Apex_ir.add_filter 将过滤器 = 添加到新的主键
这是一种基于apex.oracle.com
中的 EMP 表的方法,使用编辑表单创建交互式报告。就我而言,这是报告的第 6 页和编辑的第 7 页。在第六页 (P6_EMPNO) 创建一个隐藏项目。将大小写添加到您的查询中,因此在我的示例中,它看起来像:
select "ROWID",
"EMPNO",
"ENAME",
"JOB",
"MGR",
"HIREDATE",
"SAL",
"COMM",
"DEPTNO"
from "#OWNER#"."EMP"
ORDER BY CASE WHEN EMPNO = :P6_EMPNO THEN 1 ELSE 2 END, EMPNO
我正在按 EMPNO 对结果进行排序。
在要提交的页面项目
部分中选择P6_EMPNO。转到第 7 页,选择分支(转到第 6 页)并单击目标在设置项目部分中,选择P6_EMPNO和目标&P7_EMPNO。现在每次转到第 7 页时,隐藏项的值将是第 7 页中的 EMPNO,它会出现在该区域的顶部。您可以使用 jQuery 突出显示该行并仅在某些数据更改时才进行一些验证以更新 P6_EMPNO。
我希望这可以帮助你。
有趣的问题,另一种解决方案:
代码:
var container = $('body'),
scrollTo = $('[data-anchor="'+$v('P3_ANCHOR')+'"]');
container.animate({
scrollTop: scrollTo.offset().top - $(document).scrollTop()
}, 2000);