设置方法
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']"); //如果是变量sql // var sql = "select count(*) from categories" // 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); }