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

设置方法

1、创建电子表格。

2、在浏览器中,切换到“分析展现”页面,在左侧的资源树上找到对应电子表格,右键该节点 编辑宏 ,进入报表宏编辑界面。

3、在报表宏界面 新建服务端模块 。在弹出的“ 新建模块对话框中,选择需要的对象和事件,并参考本文最后的宏代码。

执行SQL语句的方法

在服务端宏代码中,通过调用服务端 DataSourceService 类中的 executeNoCacheable、executeUpdate 等方法,可以执行SQL语句,然后根据返回值获取相应的SQL结果集。示例代码如下。

function main(spreadsheetReport) {
    //执行查询
    var ret = spreadsheetReport.remoteInvoke("DataSourceService", "executeNoCacheable", "['DS.10mysql-test','select col1 from newtable']");
	//1、如果是变量sql
	// var sql = "select count(*) from categories"
	//2、如果是变量sql,单引号要\\转义
	// var sql = "select 1 from categories where CategoryName = \\'调味品\\'";
	//3、如果sq里面还有变量要嵌套,并且还有单引号
	//var des = '香甜可口的果酱、调料、酱汁和调味品';
	//var sql = "select 1 from categories where CategoryName = \\'调味品\\' and Description = \\'"+ des + "\\'";
    // var ret = spreadsheetReport.remoteInvoke("DataSourceService", "executeNoCacheable", "['DS.northwind_j','"+ sql +"']");
    // logger.info(ret);
    var rets = eval('(' + ret + ')');
    logger.info("查询数据行数=" + rets.result.data.length);
    for (var i = 0; i < rets.result.data.length; i++) {
        logger.info(rets.result.data[i][0].displayValue); //显示值
        logger.info(rets.result.data[i][0].type); //类型

    }
    //执行更新
    ret = spreadsheetReport.remoteInvoke("DataSourceService", "executeUpdate", "['DS.10mysql-test','update newtable set col1 = 1231 where col1=22']");
    //logger.info(ret);
    rets = eval('(' + ret + ')');
    logger.info("更新结果=" + rets.succeeded);
}
  • 无标签