奇葩需求:客户要求某业务系统中生成的报表数据可以编辑。为响应客户的需求,本文基于Birt 4.6实现报表数据的可编辑(伪修改)。

BIRT 是以 Java 和 JavaEE 为基础为 Web 应用程序开发的基于 Eclipse 的开源报表系统,其本身并不支持报表数据的修改。因此想要实现报表数据的可编辑,需要修改生成报表的渲染页面。本文的方案是在报表生成页面引入Jquery实现报表表格数据的可编辑,这是一种简单的快速实现方式,具体实现方案如下:

1)找到Birt渲染页面

Birt的渲染页面路径../birt/webcontent/birt/pages/layout,不熟悉的朋友详见Github请添加链接描述

3) 2) 引入Jquery并避免冲突

<script type="text/javascript" src="<c:url value='/statics/js/jquery-3.2.1.min.js'/>"></script>

去掉Jquery中的$混淆符号
<script>
$.noConflict();
</script>

3)实现表格的可编辑

jQuery("table td").dblclick(function(el) {
    var editTxt = el.target.innerText;
    if(editTxt!=""){
        var editCell = jQuery(el.target);
        var input = jQuery("<input type='text' value='" + editTxt +   "'/>");
        editCell.html(input); 
        input.trigger("focus"); 

        //失去焦点时
        input.blur(function() { 
            var newTxt = jQuery(this).val();
            editCell.html(newTxt);
        });

    }
});

最后求大家点个关注再走