我需要有关在 Oracle APEX 21.2 IG 最后一行中创建自定义聚合的帮助

问题描述 投票:0回答:1

我有一个简单的sql,我试图通过获取两列的总和并将值相互除以添加自定义聚合。这是一个计划好的方程式

round((sum(col1)/sum(col2))*100,2) = new_col_footer

使用 union all 在查询中执行此操作很容易,但在这种情况下不起作用,因为如果最终用户开始过滤报表,则 union all 计算的行无法反映或正确或从视图中过滤掉。这是我正在尝试做的事情的屏幕截图。预先感谢您的任何指导。

What I am trying to show as ig is filtered

我尝试应用一些 agg 函数,但默认情况下,交互式网格似乎没有办法在默认情况下完成此操作。

javascript oracle-apex
1个回答
0
投票
  1. 为您的报告(report_id)和列(col_1、col_2 和 col_3) 首先。
  2. 然后使用
    Event > After Refresh
    为报告创建动态操作。
  3. 然后添加
    Execute JavaScript Code
    的True action和下面的代码

#如果您使用的是交互式报告;

    var col_1=0, col_2=0, col_3=0;
    $('#report_id .a-IRR-table tbody tr:last-child').each(function(){
        col_1 = $(this).find('td[headers="col_1"] .a-IRR-aggregate-value').text();
        col_1 = parseInt(col_1.replace(/,/g,''),10);
        
        col_2 = $(this).find('td[headers="col_2"] .a-IRR-aggregate-value').text();
        col_2 = parseInt(col_2.replace(/,/g,''),10);

        col_3 = (col_1/col_2)*100;
        $(this).find('td[headers="col_3"]').text(col_3);
    });

如果您使用的是经典报表,请相应地更新 CSS 类。

© www.soinside.com 2019 - 2024. All rights reserved.