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

(本文档仅供参考)

场景说明:

   通过JavaScript查询获取RESTful数据。

场景说明:


RESTful查询
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: false, //参数是否允许是空
            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/todos/' + val.value)
    var conn = url.openConnection();
    var json;
    try {
        json = StringUtil.readFromStream(conn.getInputStream(), "UTF-8");
    } finally {
        conn.disconnect();
    }
    json = eval('(' + json + ')');
    var result = []
    for (var i = 0; i < returnDesc.length; i++) {
        result.push({
            value: json[returnDesc[i].id],
            displayValue: json[returnDesc[i].id]
        })
    }
    return [result]
}

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

/**
    关闭查询对象
*/
function close() {
}

  • 无标签