2.5.1. 图表

通过脚本设置图表内容

位置 触发时机 可以获取的环境变量(参数) 返回值
报表->基本->内容->脚本->选择样例 报表打开时触发 WebUserCurrentDocument 类型:JSON对象含义:JSON表示的E-Char格式

示例代码:

/*查询数据库表,统计结果显示为饼图*/
(function () {
    //定义一个数组
    var nameList = [];
    var clazzList = [];
    var chineseList = [];
    var mathsList = [];
    try {
        var sql = "select * from tlk_班级人数登记表";//查询表单数据
        var service = Packages.cn.myapps.designtime.common.service.DesignTimeServiceFactory.resolve("cn.myapps.designtime.datasource.service.DataSourceDesignTimeService");
        //var datas = queryByDSName("obpm2_testcase",sql);
        var datas = service.queryDataSourceSQL("obpm2功能示                                例", sql, "HdPeBqYwJyFyjHkhZu3");
        if (datas != null) {
            for (var iterator = datas.iterator(); iterator.hasNext();) {
                var map1 = iterator.next();//取值
                var name = map1.get("item_姓名");
                var clazz = map1.get("item_班级");
                var chinese = map1.get("item_语文");
                var maths = map1.get("item_数学");
                //往数组里塞值
                nameList.push(new String(name));
                clazzList.push(new String(clazz));
                chineseList.push(new String(chinese));
                mathsList.push(new String(maths));
            }

        }
    } catch (e) { }
    println("nameList4:" + nameList);
    println("chineseList:" + chineseList);
    var option = {
        title: {
            text: "个人成绩对比图",
        },
        tooltip: {
            trigger: 'axis'
        },
        legend: {
            data: nameList
        },
        toolbox: {
            show: true,
            feature: {
                mark: { show: true },
                dataView: { show: true, readOnly: false },
                magicType: { show: true, type: ['line', 'bar'] },
                restore: { show: true },
                saveAsImage: { show: true }
            }
        },

        calculable: true,
        xAxis: [
            {
                type: 'category',
                boundaryGap: false,
                data: nameList
            }
        ],

        yAxis: [
            {
                type: 'value',
                axisLabel: {
                    formatter: '{value}'
                }
            }

        ],

        series: [

            {
                name: '语文成绩',
                type: 'line',
                data: chineseList,
                markPoint: {
                    data: [
                        { type: 'max', name: '最大值' },
                        { type: 'min', name: '最小值' }
                    ]
                },

                markLine: {
                    data: [
                        { type: 'average', name: '平均值' }
                    ]
                }

            },

            {
                name: '数学成绩',
                type: 'line',
                data: mathsList,
                markPoint: {
                    data: [
                        { type: 'max', name: '最大值' },
                        { type: 'min', name: '最小值' }
                    ]
                },

                markLine: {
                    data: [
                        { type: 'average', name: '平均值' }
                    ]
                }
            }
        ]
    };
    return option;
})()
文档更新时间: 2022-11-02 13:43   作者:admin