- 数据源配置详解
- 各类型数据源设置方法说明
- 关系数据库(最常用)
- 【特别说明】SQL 支持下面几种内容
- 关系数据库(最常用)
- 变量数据
- 静态数据
- 自定义 http(get) 接口
- jsonp
- http
- 各类型数据源设置方法说明
数据源配置详解
窗口组件渲染依赖的数据一般需要设置数据源来获得。不同类型的组件,要求的数据格式有所不同。另一方面,开发者提供的数据来源方式也可能有所不同,但大部分情况应来自关系数据。设置窗口组件时,会在需要的时候调出数据源设置面板,对该组件要求的数据进行绑定设置。
各类型数据源设置方法说明
关系数据库(最常用)
![[参考]数据源配置详解 - 图1](/uploads/projects/487/7561.png)
【特别说明】SQL 支持下面几种内容
SELECT F1, F2, ...FROM report_$CURR_YEAR$ -- <-- $变量$ 做标识符(表名字,段名)WHERE id = @12-USER_ID@ -- <-- @变量@AND url = @12-IMAGE@.url -- <-- @变量@ 表达式(JSON结构)AND field = #@2-RESULT@.data.split(',').map(function(s) { return s.replace(/\s/g, ''); }).join(':')# -- <-- #JavaScript 表达式#
SQL 返回的 JSON 格式统一为:
{ rows:[{...}, {...}, ...], // 数据行集合,是一个对象数组。 paged: false, // 是否分页了。 page: 1, // 当前页号(组件发起分页请求,才有此字段) rowNum: 15, // 每页数量(组件发起分页请求,才有此字段) records: 12352 // 总记录数(组件发起分页请求,才有此字段)}
变量数据
![[参考]数据源配置详解 - 图2](/uploads/projects/487/7562.png)
静态数据
![[参考]数据源配置详解 - 图3](/uploads/projects/487/7563.png)
自定义 http(get) 接口
![[参考]数据源配置详解 - 图4](/uploads/projects/487/7564.png)
如何开发自定义接口请参考文档 《自定义后台接口》。任何类型的组件发起自定义接口请求时,都会携带标准查询参数 criteria,帮助自定义接口开发者合理完成数据查询逻辑,不需要时可以忽略。criteria 的 JSON 结构如下:
- countRecords {boolean}
[optional] 是否要统计记录数,默认 false - paged {Boolean}
[optional] 是否分页,默认 false - page {Number}
[optional] 页号 - rowNum {Number}
[optional] 每页行数 - sortBy {String}
[optional] 排序字段 - format {String}
[optional] 数据返回格式: object | array 默认 object - params {Object}
[optional] 指定参数,覆盖由系统自动捕获的参数上下文。 - metaData {Boolean}
[optional] 是否要求结果集中包含描述数据特征的元数据,默认 false - filters {Object}`[optional] 过滤器,例:
{"groupOp": "OR", // 条件运算: OR | AND"groups": [ // 条件组,相当于 SQL 条件加括号,可以递归地定义下去。 { "groupOp": "OR", "rules": [ { "field": "birth_place", "op": "eq", "data": "浙江" } ], "groups": [] }],"rules": [ // 条件数组,每个元素是一个单独的条件 { "field": "id", // 字段 "op": "eq", // 操作,取值含义对照: // eq 等于, ne 不等于, lt 小于, le 小于等于, gt 大于, ge 大于等于, bw 以开头, bn 不以开头, // ew 以结尾, en 不以结尾, cn 包含, nc 不包含, nu 为空, nn 不为空, in 在集合中, nn 不在集合中 "data": 1 //数据 }, { "field": "id", "op": "eq", "data": 2 }]}
【在自定义接口中获取标准查询参数示例】:
module.exports = function(req, res) { // criteria 是一个JSON 字符串,需要转换成 JSON 结构 var criteria = JSON.parse(req.query.criteria); // 获取参数 var params = criteria.params || {}; var name = params['11-NAME']; // 获取请求过滤条件 var filters = criteria.filters || {}; var rule = (filters.rules || [])[0] || {}; var data = rule.data; ... res.send(...);}
jsonp
![[参考]数据源配置详解 - 图5](/uploads/projects/487/7565.png)
http
![[参考]数据源配置详解 - 图6](/uploads/projects/487/7566.png)
