Apex 分面搜索自动生成行号

Apex faceted search to automatically generate row nuber

我正在尝试在我的报告中添加一列 'Number',到目前为止我所能做的就是使用 row_number()

select row_number over (order by date_a) as N, id, date_a
from my_table
order by date_a

问题是当我开始使用分面搜索(这是必不可少的)时,数字当然不会再次生成,所以我得到这样的结果

n date_a
33 1/1/2020
150 3/2/2020
491 2/4/2020
647 8/6/2020

那么有没有一种方法可以在每个过滤器之后自动生成行号,或者有一个 java 脚本从客户端生成行号

您不能开箱即用。分面搜索功能发生在客户端,因此您必须使用 javascript 生成行号。此外,当用户执行任何导致分面搜索结果刷新的操作时,必须重新计算行号。

我完成了以下工作。对于我的示例,我使用示例 emp table,查询 SELECT * FROM emp 作为源。

  • “搜索结果”区域的静态 ID:fs-report
  • 向报表添加派生列以显示生成的行号。就我而言,这是第一列。
  • 在页面属性的“函数和全局变量声明”下,创建以下函数:
function resequenceEmpTab(){
    let table = document.getElementById('report_table_fs-report');
    console.log('x');
    for(var i = 1; i < table.rows.length; i++)
    {
        {
            //set the value of the first column to i
            table.rows[i].cells[0].innerHTML = i;
        }
    }         
}
  • 在页面属性的“页面加载时执行”下,添加以下代码:
resequenceEmpTab();
  • 创建动态操作,事件:“刷新后”,选择类型:“区域”,区域:“搜索”。将事件范围设置为“动态”。
  • 添加类型为“执行 Javascript 代码”和来源的真实操作
resequenceEmpTab();

在 apex 20.2 实例上验证了这一点。