数据源配置详解

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

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

关系数据库(最常用)

【特别说明】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 // 总记录数(组件发起分页请求,才有此字段)
}

变量数据

静态数据

自定义 http(get) 接口

如何开发自定义接口请参考文档 《自定义后台接口》。任何类型的组件发起自定义接口请求时,都会携带标准查询参数 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

http

results matching ""

    No results matching ""