操作入口
点击“增强数据集”界面下方的TAB页签的“+”号,选择“脚本查询”;
在“数据模型”定制界面单击创建私有查询按钮,选择 脚本查询(如下图所示),进入脚本查询的定制界面。
界面介绍
脚本查询定制界面如下图所示:
“脚本查询”界面主要分为以下几区域:“脚本查询”界面主要分为以下几个区域:
- 功能按钮区:列出了可操作脚本查询的工具按钮;
- JavaScript脚本编辑区:编辑JavaScript代码;脚本编辑区:编辑脚本代码;
- 参数设置/预览数据区:设置脚本的参数,查看输出的数据;
功能按钮区
功能按钮区功能按钮区的按钮具体说明如下表:
按钮 | 说明 |
---|---|
执行 |
执行脚本。若脚本的结果集中包含参数且未设置默认值,则会提示用户输入参数默认值。 |
保存 |
将当前脚本查询保存到“数据模型”定制界面的表关系区内,如果是第一次创建,则会在表关系区创建对应的节点,节点名称默认为“脚本查询”。 |
格式化脚本 |
对脚本编辑区内的代码进行格式化操作,使其符合代码规范 |
校验 |
| |
示例 |
2、JavaScript脚本编辑区
用户可在此进行JavaScript代码的编写,并可以使用示例、格式化代码、语法校验、保存、执行等功能功能。点击执行按钮,执行JavaScript脚本并刷新数据。
3、参数设置/数据预览区
通过tab页的形式将参数设置区和预览数据区进行展示。
(1)参数设置区
- 点击“参数设置”按钮可切换至参数设置界面;
- JavaScript代码编辑完成后,鼠标点击编辑区域以外的区域,则自动识别结果集中的参数并在“参数设置”区域生成参数。参数的默认值一般为空,可在“默认值”的输入框中设置该参数的默认值;
(2)数据预览区
点击“数据预览”按钮可切换至查看输出数据界面;在脚本编辑区生成内置的JavaScript示例代码 | |
回到数据集 | 返回到数据模型主页面 |
脚本编辑区
用户可在此区域进行脚本代码的编写。
- 在方法init()内可以自定义结果集,自定义私有参数和输出字段。私有参数,用于过滤数据。
- 代码编辑完成后,鼠标点击编辑区域以外的区域,则会校验脚本语法,并识别所编写脚本的结果集中的参数,在“参数设置”区域生成对应的参数。
参数设置/数据预览区
用于显示执行脚本查询后的数据结果,主要分为参数设置界面和数据预览区。
1)参数设置界面
若在脚本代码的结果集中定义了参数,点击按钮 参数设置切换至“参数设置”页面,“参数设置”页面会显示对应的参数,设置参数的默认值;
2)数据预览区
单击 数据预览 按钮可切换至数据预览区,查看输出数据;
注意 |
---|
数据预览前需在“参数设置”页面设置默认值后,点击功能按钮区中的“执行”按钮,数据预览页面才会输出相关数据。 |
(3)展开/收缩 参数设置和数据预览区
示例
note(3)展开或收缩 数据结果展示区
- 点击符号“∧”可将该区域展开,点击符号“∨”可将开区域收起。
示例演示
本示例以数据源“northwind”中的"
产品表”为目标资源产品表”为目标资源,展示了如何通过编写JavaScript脚本获取指定节点ID的数据源表数据,具体操作如下:
1、获取资源节点ID获取资源节点ID
左侧 “系统导航栏”中的“数据连接”
,进入,选择 “数据连接” > “northwind” > “产品表”
,右键打开扩展菜单点击“属性”。,右键打开扩展菜单,点击“属性”。
记录下该资源的节点ID
记录下该资源的节点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、执行脚本
执行脚本
点击功能按钮区内的“执行”按钮,执行脚本。执行完毕后,数据预览区便会显示输出的数据。单击 执行 按钮,执行脚本,执行完成后数据预览区便会显示输出的数据。
5、保存节点到增强数据集页面
- 点击功能按钮区内的“保存”按钮。将当前脚本查询保存到增强数据集页面,并在表关系区创建“脚本查询”节点。
保存节点到数据模型页面
单击 保存 按钮,系统提示保存成功后,当前脚本查询会以表的输出节点方式保存在数据模型的”表关系区“中。