页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 2 当前 »

importPackage(Packages.java.net)
importPackage(Packages.java.util)
importPackage(Packages.smartbi.util)


var returnDesc = [{
    id: 'userId', //字段ID
    name: 'userId', //字段名称
    alias: '用户编号', //字段别名
    desc: '用户编号', //字段描述
    valueType: 'INTEGER' //字段数据类型:INTEGER | DOUBLE | LONG | STRING | DATETIME
}, {
    id: 'id', //字段ID
    name: 'id', //字段名称
    alias: '编号', //字段别名
    desc: '编号', //字段描述
    valueType: 'INTEGER' //字段数据类型:INTEGER | DOUBLE | LONG | STRING | DATETIME
}, {
    id: 'title', //字段ID
    name: 'title', //字段名称
    alias: '标题', //字段别名
    desc: '标题', //字段描述
    valueType: 'STRING' //字段数据类型:INTEGER | DOUBLE | LONG | STRING | DATETIME
}]

/**
    服务器先调用init初始化,获取参数与输出字段
    返回参数与输出字段的声明对象
*/
function init() {
    return {
        //参数列表
        params: [{
            id: 'PostId', //参数ID
            name: 'PostId', //参数名称
            alias: '帖子编号', //参数别名
            desc: '帖子编号', //参数描述
            nullable: true, //参数是否允许是空
            valueType: 'STRING' //参数数据类型:INTEGER | DOUBLE | LONG | STRING | DATETIME
        }],
        //输出字段
        fields: returnDesc
    };
}

/**
    获取数据,以二维数组返回。每个元素包含value属性
    也可以返回smartbi.freequery.querydata.GridData对象
    @param paramValues 参数值
    @param from 开始行
    @param count 返回的行数
    @result 返回数据
*/
function getGridData(paramValues, from, count) {
    //通过 paramValues.get("参数ID") 获取参数值对象(包含value与displayValue属性)
    var val = paramValues.get("PostId");
    var url = new URL('https://jsonplaceholder.typicode.com/posts/' + val.value)
    var conn = url.openConnection();
    var json;
    try {
        json = StringUtil.readFromStream(conn.getInputStream(), "UTF-8");
    } finally {
        conn.disconnect();
    }
    json = eval('(' + json + ')');
    // 返回结果必须是一个二维数组
    var result = []
    if (Array.isArray(json)) {
        // 如果接口返回是一个数组,那直接赋值给data,如果不是,从json中获取对应数组,赋值给data,如var data = json['data'];
        var data = json;
        for (var k = 0; k < data.length; k++) {
            var row = [];
            for (var i = 0; i < returnDesc.length; i++) {
                row.push({
                    value: data[k][returnDesc[i].id],
                    displayValue: data[k][returnDesc[i].id]
                })
            }
            result.push(row);
        }
    } else {
        var row = [];
        for (var i = 0; i < returnDesc.length; i++) {
            row.push({
                value: json[returnDesc[i].id],
                displayValue: json[returnDesc[i].id]
            })
        }
        result.push(row);
    }
    return result;
}

/**
    获取总行数,只在usePaging=true时会被调用,若无法获取总行数则不要定义这个方法
*/
function getRowCount() {
    return 1;
}

/**
    关闭查询对象
*/
function close() {}
  • 无标签