• 数据源配置详解
    • 各类型数据源设置方法说明
      • 关系数据库(最常用)
        • 【特别说明】SQL 支持下面几种内容
    • 变量数据
    • 静态数据
    • 自定义 http(get) 接口
    • jsonp
    • http

    数据源配置详解

    窗口组件渲染依赖的数据一般需要设置数据源来获得。不同类型的组件,要求的数据格式有所不同。另一方面,开发者提供的数据来源方式也可能有所不同,但大部分情况应来自关系数据。设置窗口组件时,会在需要的时候调出数据源设置面板,对该组件要求的数据进行绑定设置。

    各类型数据源设置方法说明

    关系数据库(最常用)

    [参考]数据源配置详解  - 图1

    【特别说明】SQL 支持下面几种内容
    1. SELECT F1, F2, ...
    2. FROM report_$CURR_YEAR$ -- <-- $变量$ 做标识符(表名字,段名)
    3. WHERE id = @12-USER_ID@ -- <-- @变量@
    4. AND url = @12-IMAGE@.url -- <-- @变量@ 表达式(JSON结构)
    5. AND field = #@2-RESULT@.data.split(',')
    6. .map(function(s) { return s.replace(/\s/g, ''); }).join(':')# -- <-- #JavaScript 表达式#

    SQL 返回的 JSON 格式统一为:

    1. {
    2. rows:[{...}, {...}, ...], // 数据行集合,是一个对象数组。
    3. paged: false, // 是否分页了。
    4. page: 1, // 当前页号(组件发起分页请求,才有此字段)
    5. rowNum: 15, // 每页数量(组件发起分页请求,才有此字段)
    6. records: 12352 // 总记录数(组件发起分页请求,才有此字段)
    7. }

    变量数据

    [参考]数据源配置详解  - 图2

    静态数据

    [参考]数据源配置详解  - 图3

    自定义 http(get) 接口

    [参考]数据源配置详解  - 图4

    如何开发自定义接口请参考文档 《自定义后台接口》。任何类型的组件发起自定义接口请求时,都会携带标准查询参数 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] 过滤器,例:
    1. {
    2. "groupOp": "OR", // 条件运算: OR | AND
    3. "groups": [ // 条件组,相当于 SQL 条件加括号,可以递归地定义下去。
    4. {
    5. "groupOp": "OR",
    6. "rules": [
    7. {
    8. "field": "birth_place",
    9. "op": "eq",
    10. "data": "浙江"
    11. }
    12. ],
    13. "groups": []
    14. }
    15. ],
    16. "rules": [ // 条件数组,每个元素是一个单独的条件
    17. {
    18. "field": "id", // 字段
    19. "op": "eq", // 操作,取值含义对照:
    20. // eq 等于, ne 不等于, lt 小于, le 小于等于, gt 大于, ge 大于等于, bw 以开头, bn 不以开头,
    21. // ew 以结尾, en 不以结尾, cn 包含, nc 不包含, nu 为空, nn 不为空, in 在集合中, nn 不在集合中
    22. "data": 1 //数据
    23. },
    24. {
    25. "field": "id",
    26. "op": "eq",
    27. "data": 2
    28. }
    29. ]
    30. }

    【在自定义接口中获取标准查询参数示例】:

    1. module.exports = function(req, res) {
    2. // criteria 是一个JSON 字符串,需要转换成 JSON 结构
    3. var criteria = JSON.parse(req.query.criteria);
    4. // 获取参数
    5. var params = criteria.params || {};
    6. var name = params['11-NAME'];
    7. // 获取请求过滤条件
    8. var filters = criteria.filters || {};
    9. var rule = (filters.rules || [])[0] || {};
    10. var data = rule.data;
    11. ...
    12. res.send(...);
    13. }

    jsonp

    [参考]数据源配置详解  - 图5

    http

    [参考]数据源配置详解  - 图6