2016-07-31 114 views
1

最近,我遇到的问题的Oracle APEX 4.2.0003在交互式报表保存分页。我有一个页面,其中有两个报告:第一个是Classic,第二个是Interactive,因为他们是作为“主 - 细节”工作的。
此外,交互式报告还包含来自视图的数据和HTML元素,例如带有指向模式窗口或弹出窗口链接的图标。除了一件事情之外,页面中的所有内容都可以正常工作:刷新它会导致重置“详细信息”的分页交互式报表,尽管全部刷新或部分(不重置Classic,“主”一个)。保存分页中的Oracle APEX交互式报表

我试着用javascript解决问题:我写了一些代码,从页面获得当前分页并在更新之前保存它,并且更新本身通过函数gReport.navigate.paginate进行。我可以使用这种方式,但没有考虑到交互式报表面板中的行数比它们的数量少的情况(其中还有搜索栏等)。
解决我的问题,我在考虑,现在越来越大约从视图APEX_APPLICATION_PAGE_IR_RPT每页当前行计数信息的另一种方式,但我不知道如何从列interactive_report_id没有获得信息,而是从一个名叫report_id

当然,我有通过具有会话ID和样的看法(它可以在交互式报表面板定制)获取信息的领路人,但我不能说我喜欢它。

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

回答

2

这是从时间弹出来一个时间问题,这仍是先端5的一个问题,是有这样做没有支持的方法,即使所有它需要的是开放的API了一点,所以我们不需要破解它。
您肯定可以使用gReport.navigate.paginate,我建议采取这种做法。但请注意:它不受Oracle支持(如:未公开),并且它在apex 5中不起作用(JS的IR已重做)。然而,即使在顶点5方法仍然类似:只是“破解”它。

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

只是弄清楚在JavaScript时,有分页与否。

HTML的IR时,有超过每页允许的行更多的行:

<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> 

HTML当有小于或等于行比量允许的:

<td colspan="18" class="pagination" align="left"><span class="fielddata"> 1 - 1 of 1 </span></td> 

所以:你可以检查是否存在锚点。
如果是:执行您的'分页'功能。
如果不是:请刷新。

+0

非常感谢@Tom的回答,但不幸的是,这部分内容对我很有帮助。我已经改变了我的Javascript代码中的一些逻辑,但是当它需要重新设置分页或在中间或开始时有一部分查询时,它可以正常工作。要说到最后一部分查询的情况,我有以下问题。 (不好意思,但是网站告诉我我写的太多了,所以我不得不另外回答。) – PiggyInTheMirror

+0

让我们在IR中使用的视图中有8行,每页的行数等于5.我进入查询的“6 - 8”部分,当刷新的功能以保存模式执行时分页,我得到“1 - 3”!尽管有函数gReport.navigate.paginate _does_接收参数6,3和3(min_row,max_row,rows_fetched),但我仍然拥有这个功能。 所以问题是:我应该怎么做_correctrly_工作解决方法? – PiggyInTheMirror

+0

@PiggyInTheMirror你确实在调用'paginate'时遇到任何其他问题?我不知道你用什么代码来调用它,这可能是。执行本地刷新将按照设计重新设置为第一页,因此不能这样。 – Tom

相关问题