在 BIRT 报告中使用 header 在客户端对数据进行排序(使用 JavaScript)

Use header in BIRT report to sort data at the client side (with JavaScript)

我想添加到 BIRT table 和交叉表控制以下功能:当我单击特定列的 header 时,数据会根据该列升序排序或降序。

我发现 this trick 使用参数在服务器端对数据进行排序,但我不想在服务器端进行排序。但是,我想在客户端最好使用 JavaScript.

拜托,有什么提示吗?

通常我为此嵌入Datatables。它简单、强大并且有很好的文档。

您可以访问 BIRT table with Datatable here 的现场演示。如您所见,所有钻取超链接操作和样式都保持不变。

基本上我们需要在报表末尾添加一个HTML文本,将类型设置为"HTML"并在脚本中加载jquery和数据table使用 "head.js" 标记。例如:

<script>

head.load("//cdn.datatables.net/1.10.9/css/jquery.dataTables.min.css","//cdn.datatables.net/1.10.9/js/jquery.dataTables.min.js",function(){
    console.log("DataTables framework loaded...");
    $("#myTableID").DataTable();  //"myTableID" should be the bookmark of the table
    console.log("Interactive table is ready!"); 
});

</script>

使用 BIRT 书签 属性 为 table 设置一个 ID。请注意,如果您的 BIRT 发射器未在 HTML table 内生成 "thead" 标记(只需检查 html 输出以查看是否生成了 thead 标记),您需要通过脚本修复它:在调用 "DataTable()" 函数之前,使用 jquery 将 "tbody" 下的第一行移动到 "thead" 标记中。的确,它需要一点 javascript 知识,但如您所见,这将是非常值得的!