最近我在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视图中获取信息更容易?
答案 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;功能。
如果不是:刷新。