目前我使用Oracle Apex的交互式报告
Column1 Column2
A1 1 2
A2 2 3
A3 3 4
A4 4 5
----------------------
10 14
显示数据后,我使用交互式报告的聚合函数SUM 进行一些计算,例如sum Column1,Column2
但结果显示为报告的最后一行,因此我必须滚动查看结果。
如何将结果显示为报告的第一行?
Column1 Column2
10 14
----------------------
A1 1 2
A2 2 3
A3 3 4
A4 4 5
答案 0 :(得分:1)
这可以使用JavaScript / jQuery来完成(当然,这只是可以做到的很多方法之一,但它有效)。
用于创建报告的SQL语句以及所有过滤器和搜索信息都存储在 WWV_FLOW_WORKSHEET表
创建一个数据库包以生成该SQL,并从中对所需的列求和并以XML格式返回。
从jQuery AJAX调用中调用该数据库包然后解析XML并使用jQuery在工作表表的顶部(如果你愿意的话)添加一行并将结果放在那里。
应该从相关工作表的后刷新动态操作中调用JavaScript / jQuery函数。
function htmldbIRTotals(worksheet,columnList) {
sessionId = $("#pInstance").val();
worksheetId = $(worksheet.triggeringElement).find(".a-IRR-table:last").attr("id");
baseReportId=parseInt("0"+$("#"+worksheetId+"_rpt_saved_reports").val());
u="'||pkg||'.getTotals?p_worksheet_id="+worksheetId+"&p_base_Report_Id="+baseReportId+"&p_session_id="+sessionId+"&p_columns="+columnList;
$.post(u,function(data) {
var xml = $.parseXML(data);
});
使用sessionId,worksheetId和baseReportId,您可以检索所需的所有信息
columnList是一个以冒号分隔的列总计
列你甚至可以获得更多的幻想,并添加不同的agregates(即AVG,MIN,MAX等)。
以下链接中的示例。
http://apps.htmldb.com/apps/f?p=htmldb:knowledgebase:::NO:RP:P5_ID:84315
答案 1 :(得分:0)
问题是总页数可能会也可能不会在页面上呈现,具体取决于页面大小和结果集中的记录数量 - 因此使用交互式报表,除非您强制它始终显示所有记录,页面可能甚至无法使用JS技巧将摘要行移动到顶部。
我在这种情况下的偏好是基于简单的SQL查询向页面添加单独的区域。它将显示在交互式报告上方。不幸的是,列不会被对齐。
答案 2 :(得分:0)
我找到了解决方案