操作入口
点击“增强数据集”界面下方的TAB页签的“+”号,选择“脚本查询”;
界面介绍
“脚本查询”界面主要分为以下几区域:
- 功能按钮区:列出了可操作脚本查询的工具按钮;
- JavaScript脚本编辑区:编辑JavaScript代码;
- 参数设置/预览数据区:设置脚本的参数,查看输出的数据;
1、功能按钮区
功能按钮区按钮具体说明如下表:
按钮名称 | 图标 | 说明 |
---|---|---|
执行 | 执行JavaScript脚本 | |
保存 | 将当前脚本查询保存到增强数据集页面,如果是第一次创建,则会在表关系区创建对应的节点,节点名称默认为“脚本查询”。 | |
格式化脚本 | 对JavaScript脚本编辑区中的代码进行格式化 | |
校验 | 校验JavaScript脚本编辑区中的代码,如果有错则提示具体的错误,如果正确则提示校验成功。校验JavaScript脚本编辑区中的代码,如果有语法错误则提示具体的错误,如果正确则提示校验成功。 | |
示例 | 在JavaScript脚本编辑区生成内置的示例代码 | |
回到数据集 | 返回到增强数据集主页面 |
2、JavaScript脚本编辑区
用户可在此进行JavaScript代码的编写,并可以使用示例、格式化代码、语法校验、保存、执行等功能功能。点击执行按钮,执行JavaScript脚本并刷新数据。
3、参数设置/数据预览区
通过tab页的形式将参数设置区和预览数据区进行展示。
(1)参数设置区
- 点击“参数设置”按钮可切换至参数设置界面;
- JavaScript代码编辑完成后,鼠标点击编辑区域以外的区域,则自动识别结果集中的参数并在“参数设置”区域生成参数。参数的默认值一般为空,可参数默认值的输入框中设置参数的默认值;
(2)数据预览区
点击“数据预览”按钮可切换至查看输出数据界面;
注意 |
---|
数据预览前需在“参数设置”页面设置默认值后,点击功能按钮区中的“执行”按钮,数据预览页面才会输出相关数据。 |
(3)展开/收缩 参数设置和数据预览区
示例
1、获取资源节点ID
- 左侧 “系统导航栏”中的“数据连接” ,进入 “数据连接” > “northwind” > “产品表” ,右键打开扩展菜单点击“属性”。
- 记录下该资源的节点ID
2、新建“脚本查询”节点
- 点击“增强数据集”界面下方的TAB页签的“+”号,选择“脚本查询”;
3、编写脚本
- 复制代码到“JavaScript脚本编辑区”,并修改目标资源的节点id。
代码块 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
importPackage(Packages.smartbi.freequery.client.datasource);
var datasourceService = DataSourceService.getInstance();
var tableId = "TAB.northwind.null.products"; //目标资源的节点ID
var table = datasourceService.getTable(tableId);
var sql = "select";
var data;
function init() {
var fieldList = table.getFields();
var fields = [];
for (var i = 0; i < fieldList.size(); i++) {
var field = fieldList.get(i);
sql = sql + " " + field.getName();
fields[i] = {
id: field.getId(), //字段ID
name: field.getName(), //字段名称
alias: field.getAlias(), //字段别名
desc: field.getDesc(), //字段描述
valueType: parseValueType(field.getDataType().getSQLType()) //字段数据类型:INTEGER | DOUBLE | LONG | STRING | DATETIME
}
if (i < fieldList.size() - 1) {
sql = sql + ",";
}
}
sql = sql + " from " + table.getName();
return {
// //参数列表
// params: [{
// id: 'Param.northwind.null.products', //参数ID
// name: 'ParamName', //参数名称
// alias: 'ParamAlias', //参数别名
// desc: 'ParamDesc', //参数描述
// nullable: true, //参数是否允许是空
// valueType: 'STRING' //参数数据类型:INTEGER | DOUBLE | LONG | STRING | DATETIME
// }],
//输出字段
fields: fields
};
}
function getGridData(paramValues, from, count) {
data = datasourceService.executeNoCacheable(table.getDataSource().getId(), sql);
return data;
}
function getRowCount() {
return data.getRowsCount();
}
/**
关闭查询对象
*/
function close() {}
function parseValueType(type) {
switch ("" + type) {
case "LONG":
return "LONG";
case "BIGINT":
case "INTEGER":
return "INTEGER";
case "BIGDECIMAL":
case "DOUBLE":
return "DOUBLE";
case "TIME":
case "DATE":
case "DATETIME":
return "DATETIME";
default:
return "STRING";
}
} |
4、校验语法
- 点击功能按钮区内的“校验脚本”,校验脚本语法。
4、执行脚本
- 点击功能按钮区内的“执行”按钮,执行脚本。执行完毕后,数据预览区便会显示输出的数据。
5、保存节点到增强数据集页面
- 点击功能按钮区内的“保存”按钮。将当前脚本查询保存到增强数据集页面,并在表关系区创建“脚本查询”节点。