本章节主要讲述如何将乐创者智能报表(lczReport)以组件方式整合到第三方业务系统中去。

注意:组件方式渲染报表暂不支持参数区域。

1 集成说明

第一步,把 lczServer 目录下的 “lczReport” 目录复制到 业务系统目录下
第二步,在需要整合报表的二次开发页面中加载必要的依赖文件:

<script type="text/javascript" src="存放路径/jquery.min.js"></script>
<script type="text/javascript" data-main="lczReport/main_zh_CN" src="lczReport/lib/require/require.min_2.3.6.js"></script>

第三步,在待显示报表的区域定义div标签。
报表高度固定:

<div id="根节点的唯一标识" style="width:100%;height:600px;" ></div>

高度按内容自适应:

<div id="根节点的唯一标识" style="width:100%;height:100%;min-height:100px" ></div>

注意:”min-height”代表报表区域的最小高度,可按照实际需要设置即可。

第四步,生成报表实例对象

function renderReport() {
    var element = document.getElementById("根节点的唯一标识");
    var settings = {
        "isServer" : false,    // 是否是服务器内整合
        "language" : "zh_CN",    //语言:zh_CN中文,en:英文 
        "serverInfo" : {
            "ip" : "服务器地址",
            "port" : 80,    //服务器端口
            "scheme" : "http",    //支持http或https
            "contextPath" : "/lczServer",
            "pagePath" : ""    //所属页面相对于根路径的位置,根目录为空即可,如果在第一层,配置:../,如果在第二层配置:../../
        },
        "authId" : "",    //非免登模式访问报表:登录服务器后的authId,匿名访问使用anonymous_admin;免登模式访问报表:此参数无需配置
        "targetVolume" : "智能报表所属应用内部名称",
        "fileName" : "智能报表内部名称",
        "fileTitle" : "",    //【可选】报表标题
        "variants" : "",    //【可选】报表查询参数,格式: 参数名=参数值;@参数名=参数显示值;参数名=参数值...
        "showLoading" : true,    //【可选】是否显示loading,默认:true
        "hideToolbar" : false,    //【可选】是否隐藏工具栏,默认:false
        "pageToolbar" : {    //【可选】底部翻页工具栏
            "show" : true    //是否显示,默认显示
        },
        "style" : {    //【可选】报表缺省样式
            "bg" : {    //背景
                "color" : "rgba(255,255,255,0)"    //缺省的背景颜色
            }
        },
        "privilege" : {    //【可选】认证相关
            "type" : "认证类型",    //认证类型
            "validateVariants" : ""    //认证相关的校验参数
        },
        "baiduAK" : "",    //【可选】百度地图AK
        "templateCustomized" : ""    //【可选】报表/单元格表单模板的局部个性化配置,通过该参数动态改变执行模板相关对象的属性设置。参数值为json结构,详见:templateCustomized的结构说明;
    };
    //创建智能报表实例对象
    require(["LczReport"], function(LczReport){
        var report = new LczReport(element, settings);
        //报表执行前事件
        report.on("beforeLoadData", function() {

        });
        //报表渲染前事件
        report.on("beforeRender",function(){

        });
        //报表渲染完成事件
        report.on("afterRender",function(){

        });
        //报表执行出错事件
        report.on("error",function(){

        });
        //响应大小变化
        window.addEventListener("resize",function(){
            $(element).width(新的宽度).height(新的高度);
            report.resize();
        });
        //报表销毁前事件
        report.on("unload",function(url){
            report.destroy();
        });
    });
}

templateCustomized的josn结构说明:

{
    "sheets": [
        {
            "name": "sheet1", //所属工作表名称
            "hide": false //【可选】工作表隐藏属性:true/false,
            "writeable": false, //【可选】工作表只读属性:true/false
            "columns": [//待个性化的列
                {
                    "index": 1 //列号,从1开始,
                    "hide": true //【可选】列隐藏属性:true/false 
                }
            ],
            "rows": [//待个性化的行
                {
                    "index": 2, //行号,从1开始
                    "hide": true //【可选】行隐藏属性:true/false 
                }
            ]
        }
    ]
}

2 请求参数

常用参数

参数名
类型
默认值
说明
authId string 公开方式访问报表:此参数不设置, 也可以使用公开身份的authId值(authId=anonymous_admin)。
非公开方式访问报表:可使用登录乐创者服务成功后返回的authId值(authId=xxxxxxxxxxxx)

如果系统配置中开启了‘允许公开访问’,则可通过公开方式直接查看报表。
variants string 数据过滤相关的报表参数信息。
拼接格式:参数1=参数值1;@参数1=参数显示值1;参数2={year()};…参数n=参数值n
注意:
参数值使用”{“、”}”括起来的代表支持脚本解析,如:年份={year()}。

“公开访问”在历史版本中也称之为”匿名访问”。

认证参数(privilege)

参数名
类型
默认值
说明
type string 传入第三方认证的认证类型。
validateVariants string 【可选】传入第三方认证相关参数。
可传递多个参数,值格式:认证参数1=参数值;认证参数2=参数值;…认证参数n=参数值

3 前端事件

报表控件在渲染、操作过程中触发的各类事件,便于二次开发比较方便的进行一些个性化的业务处理。

事件名
说明
beforeLoadData 报表执行前事件。
beforeRender 报表渲染前事件。
afterRender 报表渲染完成后事件。
error 报表执行出错事件。
beforeunload 报表销毁前事件。请在此事件中调用LczReport对象的destroy()方法请求销毁报表对象。

4 工具栏

当工具栏不显示时,二次开发程序也可以调用相应的方法触发工具栏上的功能。

功能
说明
刷新 ER.remake()
打印 ER.print()
导出Excel ER.exportMSExcel()
导出Word ER.exportMSWord()
导出PDF ER.exportPDF()
导出Txt ER.exportTxt()

5 常见问题

暂无

作者:柳杨  创建时间:2023-06-07 12:08
最后编辑:柳杨  更新时间:2025-04-22 15:31