在Oracle Apex Interactive Report

时间:2016-07-31 08:43:20

标签: javascript oracle11g pagination oracle-apex

最近我在Oracle Apex 4.2.0003中遇到了问题,并在Interactive Report中保存了分页。我有一个页面,其中有两个报告:第一个是Classic,第二个是Interactive,因为它们正在作为" master-detail"。 此外,Interactive报告包含来自视图的数据和HTML元素(如图标)以及指向模式或弹出窗口的链接。页面中的所有内容都可以正常工作,除了一件事:刷新它会导致重置"细节"交互式报告尽管完全刷新或部分刷新(没有重置经典,"主要"一个)。

我试图用javascript解决问题:我已经编写了一些代码,这些代码从页面获取当前分页并在更新之前保存它,并且更新本身通过函数{{1 }}。我可以使用这种方式,但它没有考虑行数少于“交互式报告”面板中选择的行数(也有搜索栏等)的情况。
解决我的问题的另一种方法我现在正在考虑从视图gReport.navigate.paginate获取有关每页当前行数的信息,但我不知道如何从列{{1}获取信息但是来自名为APEX_APPLICATION_PAGE_IR_RPT的那个。

当然,我有通过会话ID和视图类型(可在Interactive Report面板中自定义)获取信息的方式,但我不能说我喜欢它。

所以我有以下问题:如何让交互式报告不重置我的情况下的分页?是否有可能比从APEX视图中获取信息更容易?

1 个答案:

答案 0 :(得分:2)

这是一个不时出现的问题,这仍然是apex 5中的一个问题,因为没有支持的方法来做到这一点,即使它只需要打开api,所以我们不会#39; t需要破解它 您可以肯定使用gReport.navigate.paginate,我建议您继续使用<td colspan="18" class="pagination" align="left"> <span class="fielddata"> 1 - 15 of 1878 <a href="javascript:gReport.navigate.paginate('pgR_min_row=16max_rows=15rows_fetched=15')"> <img src="/i/jtfunexe.gif" title="Next" alt="Next" align="absmiddle"> </a> </span> </td> 。但请注意:Oracle不支持它(如:未记录),并且它在顶点5中不起作用(用于IR的JS已经重做)。然而,即使在顶点5,方法仍然类似:只是&#34; hack&#34;它。

我不会查询视图。您仍然需要报告中的ID并与后端进行通信,并且您将创建比实际需要更多的问题。

当有分页时,只需在javascript中找出答案。

当行数超过每页允许行数时,IR中的HTML:

<td colspan="18" class="pagination" align="left"><span class="fielddata"> 1 - 1 of 1 </span></td>
当行数少于或等于允许的数量时,

HTML:

site.com/icon.png?q=123456

所以:你可以检查那里是否有锚栓。
如果是:执行您的分页&#39;功能。
如果不是:刷新。