宜点云宜点课堂
  • 首页
  • 帮助文档
  • 后端python
  • 开放平台
  • 私有云
  • 场景案例
  • 更新日志
返回控制台
返回控制台
  • 首页
  • Python教程
  • Python的改进
    • 应用后端对Python的改进部分
  • Python原生API
    • Python原生禁用API列表
    • Python原生内置API列表
  • Python功能列表
    • 全局(通用)
      • rnd
      • sleep
      • exit
      • synccorpmembers
      • getcorptype
      • gettickcount
      • getnstime
      • getrandomstr
      • getlasterror
      • geterror
    • io-日志(通用)
      • print
      • logclear
      • logclearall
      • logenable
      • logread
    • app-云应用(通用)
      • app.getappsymbol
      • app.getcurrentinfo
      • app.getapplist
    • form-表单(表单)
      • 表单错误信息
      • 表单字段类型
      • 查询条件和排序规则
      • 表单数据组合规则
      • 支持的SQL函数、关键字
      • 跨应用取数据说明
      • 表单系统字段说明
      • 表单操作
        • form.getallforminfo
        • form.getforminfo
        • form.getexternalforminfo
        • form.getallctrlinfo
        • form.getfileurl
        • form.transfileurl
      • 数据操作
        • form.select
        • form.aggregateselect
        • form.getdatabyid
        • form.insert
        • form.inserts
        • form.update
        • form.updates
        • form.delete
        • form.count
        • form.has
        • form.subinsert
        • form.subinserts
        • form.subupdate
        • form.subupdates
        • form.subdelete
      • 句柄操作
        • form.open
        • form.close
        • form.begin
        • form.commit
        • form.rollback
        • form.handleselect
        • form.handleinsert
        • form.handleinserts
        • form.handleupdate
        • form.handleupdates
        • form.handledelete
        • form.handlecount
        • form.handlehas
        • form.handlesubinsert
        • form.handlesubinserts
        • form.handlesubupdate
        • form.handlesubupdates
        • form.handlesubdelete
      • 通讯录
        • 用户ID说明
        • form.getcreatoruserid
        • form.getuserinfo
        • form.getdeptinfo
        • form.getparentdeptinfo
        • form.getdeptusers
        • form.getdeptlist
        • form.getdeptall
        • form.getroleusers
        • form.getoutsidergroupall
        • form.getoutsidergroupinfo
        • form.getoutsiderusers
        • form.moveusertodept
        • form.moveusertorole
        • form.moveoutsiderusers
      • 表单属性
        • form.getctrlattr
        • form.changectrlselect
        • form.getpublicinfo
        • form.getreportpublicinfo
      • 流程
        • form.getworkflowid
        • form.getworkflowdata
        • form.getworkflowlog
        • form.workflowstart
        • form.workflowstop
        • form.workflowcurrentinfo
      • 通知
        • app.geturl
        • form.getdataurl
        • form.sendmsg
      • 格式化
        • formataddress
        • formatlocation
      • 旧版数据操作
        • form.selectdata
        • form.selectdatas
        • form.insertdata
        • form.insertdatas
        • form.updatedata
        • form.updatedatas
        • form.deletedata
        • form.datacount
        • form.datahas
        • form.aggregateselectdata
        • form.subselectdata
        • form.subselectfield
        • form.subinsertdata
        • form.subinsertdatas
        • form.subupdatedata
        • form.subupdatedatas
        • form.subdeletedata
        • form.subdatacount
        • form.subdatahas
      • 旧版句柄操作
        • form.handleselectdata
        • form.handleselectdatas
        • form.handleinsertdata
        • form.handleinsertdatas
        • form.handleupdatedata
        • form.handleupdatedatas
        • form.handledeletedata
        • form.handledatacount
        • form.handledatahas
        • form.handlesubselectdata
        • form.handlesubselectfield
        • form.handlesubinsertdata
        • form.handlesubinsertdatas
        • form.handlesubupdatedata
        • form.handlesubupdatedatas
        • form.handlesubdeletedata
        • form.handlesubdatacount
        • form.handlesubdatahas
    • dataview-数据视图(数据分析)
      • 数据操作
        • dataview.select
        • dataview.count
        • dataview.has
      • 旧版数据操作
        • dataview.selectdata
        • dataview.selectdatas
        • dataview.datacount
        • dataview.datahas
    • os-日期时间(常用函数)
      • getmonthdays
      • getyeardays
      • timenow
      • timeadd
      • timediff
      • time2timestamp
      • timestamp2time
      • os.year
      • os.month
      • os.day
      • os.hour
      • os.minute
      • os.second
      • os.week
    • type-类型(常用函数)
      • tobool
      • toint
      • todouble
      • tostring
      • tonumber
      • isint
      • isdouble
      • isstring
      • isdict
      • islist
      • istuple
      • isjson
      • isdatetime
      • type
      • byte2string
      • float2hex
      • ip2integer
      • ip2integer
      • json.loads
      • json.dumps
    • string-字符串(常用函数)
      • string.lower
      • string.upper
      • string.title
      • string.cat
      • string.cut
      • string.equal
      • string.nequal
      • string.cmp
      • string.ncmp
      • string.left
      • string.right
      • string.len
      • string.find
      • string.rfind
      • string.findchar
      • string.rfindchar
      • string.reverse
      • string.sub
      • string.split
      • string.splitlines
      • string.getat
      • string.getchineseletter
      • string.format
      • string.appendchar
      • string.repeatself
      • string.shuffle
      • string.capitalize
      • string.center
      • string.count
      • string.encode
      • string.decode
      • string.startswith
      • string.endswith
      • string.expandtabs
      • string.index
      • string.rindex
      • string.join
      • string.ljust
      • string.rjust
      • string.strip
      • string.lstrip
      • string.rstrip
      • string.partition
      • string.rpartition
      • string.replace
      • string.swapcase
      • string.zfill
      • string.isalnum
      • string.isalpha
      • string.isdecimal
      • string.isnumeric
      • string.isdigit
      • string.islower
      • string.isupper
      • string.isspace
      • string.istitle
      • string.translation
      • str.maketrans
      • max
      • min
    • math-数学(常用函数)
      • math.sqrt
      • math.abs
      • math.sin
      • math.cos
      • math.tan
      • math.asin
      • math.acos
      • math.atan
      • math.atan2
      • math.sinh
      • math.asinh
      • math.cosh
      • math.acosh
      • math.tanh
      • math.atanh
      • math.pow
      • math.ln
      • math.ln1p
      • math.log
      • math.lg
      • math.exp
      • math.expm1
      • math.ceil
      • math.floor
      • math.radians
      • math.degrees
      • math.fmod
      • math.intdiv
      • math.hypot
      • math.pi
      • math.round
      • math.baseconvert
      • math.bin2dec
      • math.dec2bin
      • math.dec2hex
      • math.dec2oct
      • math.hex2dec
      • math.oct2dec
    • list-列表数组(常用函数)
      • list.max
      • list.min
      • list.move
      • list.append
      • list.extend
      • list.pop
      • list.removeforvalue
      • list.insert
      • list.sum
      • list.product
      • list.filterforvalue
      • list.sort
      • list.unique
      • list.index
      • list.count
      • list.reverse
    • tuple-元组数组(常用函数)
      • tuple.max
      • tuple.min
      • tuple.move
      • tuple.append
      • tuple.extend
      • tuple.remove
      • tuple.removeforvalue
      • tuple.insert
      • tuple.sum
      • tuple.product
      • tuple.filterforvalue
      • tuple.sort
      • tuple.unique
      • tuple.index
      • tuple.count
      • tuple.reverse
    • dict-字典数组(常用函数)
      • dict.clear
      • dict.max
      • dict.min
      • dict.push
      • dict.cat
      • dict.copy
      • dict.fromkeys
      • dict.get
      • dict.items
      • dict.keys
      • dict.values
      • dict.move
      • dict.remove
      • dict.removeforvalue
      • dict.pop
      • dict.popitem
      • dict.setdefault
      • dict.update
      • dict.sum
      • dict.product
      • dict.filterforkey
      • dict.filterforvalue
      • dict.sort
      • dict.unique
    • set-集合数组(常用函数)
      • set.add
      • set.update
      • set.clear
      • set.copy
      • set.isdisjoint
      • set.issubset
      • set.issuperset
      • set.discard
      • set.remove
      • set.pop
      • set.difference
      • set.difference_update
      • set.intersection
      • set.intersection_update
      • set.union
      • set.symmetric_difference
      • set.symmetric_difference_update
    • regular-正则(函数)
      • re.compile
      • re.match
      • re.match
      • re.search
      • re.finditer
      • re.split
      • re.matchemail
      • re.matchphone
      • re.matchtelephone
      • re.matchurl
      • re.matchip
      • re.matchidcard
      • re.matchqq
      • re.matchzipcode
      • re.matchnumber
      • re.matchchinese
      • re.matchtext
      • re.submatchtext
      • re.replace
      • re.subreplace
    • hash-哈希(函数)
      • md5
      • sha1
      • sha1hmac
      • sha1hmac_binary_base64
      • sha224
      • sha256
      • sha384
      • sha512
      • ripemd160
    • crypt-加密(函数)
      • base64encode
      • base64decode
      • urlencode
      • urldecode
      • gmssl
    • numpy-数值计算(函数)
      • Numpy介绍
    • curl(网络通讯)
      • curl.init
      • curl.setopt
      • curl.exec
      • curl.close
      • curl.getinfo
      • curl.escape
      • curl.unescape
      • curl.iconv
    • requests(网络通讯)
      • requests.request
      • requests.get
      • requests.post
      • requests.options
      • requests.head
      • requests.put
      • requests.patch
      • requests.delete
    • httpex(网络通讯)
      • httpex.get
      • httpex.request
      • httpex.getfileurlbase64
      • httpex.getcookies
      • httpex.updatecookies
    • websocket(网络通讯)
      • websocket.request
      • websocket.open
      • websocket.send
      • websocket.close
    • mysql(数据库)
      • mysql.open
      • mysql.close
      • mysql.exec
      • mysql.query
      • mysql.begin
      • mysql.commit
      • mysql.rollback
      • mysql.getlasteffectrecords
      • mysqlexec
      • mysqlquerybylist
      • mysqlquerybyjson
    • sqlserver(数据库)
      • sqlserver.open
      • sqlserver.close
      • sqlserver.exec
      • sqlserver.query
      • sqlserver.begin
      • sqlserver.commit
      • sqlserver.rollback
      • sqlserver.getlasteffectrecords
      • sqlserverexec
      • sqlserverquerybylist
      • sqlserverquerybyjson
    • redis(数据库)
      • redis.open
      • redis.close
      • redis.exec
      • redis.query
      • redis.set
      • redis.get
  • Python后端事件
    • _forminitial(表单初始化事件)
    • _formeditinitial(表单编辑初始化事件)
    • _flownodeinitial(流程节点初始化事件)
    • _formevent(控件触发事件)
    • _formsubmit(表单提交事件)
    • _formupdate(表单编辑事件)
    • _formdelete(表单数据删除事件)
    • _formflow(表单流程事件)
    • _datahelper(数据助手事件)
  • Python功能插件
    • 功能插件设计
    • 插件控件
      • 基础控件
      • 表单来源
        • 表单来源Config参数说明
        • 表单来源设计面板说明
      • 子表单
        • 子表单Config参数说明
        • 子表单设计面板说明
      • 字段
        • 字段Config参数说明
        • 字段设计面板说明
      • 关联字段
        • 关联字段Config参数说明
        • 关联字段面板说明
      • 过滤条件
        • 过滤条件Config参数说明
        • 过滤条件面板说明
        • 过滤条件操作符说明
    • 插件事件
      • _forminitiallib(表单初始化事件)
      • _formeditinitiallib(表单编辑初始化事件)
      • _flownodeinitiallib(流程节点初始化事件)
      • _formeventlib(表单控件触发事件)
      • _formsubmitlib(表单数据提交事件)
      • _formupdatelib(表单数据编辑事件)
      • _formdeletelib(表单数据删除事件)
      • _formflowlib(流程节点事件)
      • _formconfiglib(插件配置事件)
      • _formtasklib(计划任务事件)
      • _reporttablemenulib(报表数据表菜单按钮事件)
      • _datahelperlib(数据助手事件)
  • API限制说明
  • Lua后端停止服务通知

form.select

  • form.select
    • 功能说明
      • 描述
      • 函数原型
      • 参数
      • 返回值
        • 子表单字段和外层字段同时查询时的结果集:
      • 备注
    • 示例
      • 演示示例
      • 安装包下载
    • 相关视频

功能说明

描述

查询指定表单存放在数据库中的数据。(支持图片/附件/手写签名的文件操作)

支持部分mysql函数,请查看文档【支持的SQL函数】

函数原型

form.select(formAlias,fields,wheres="",type=0)

参数

名称 类型 描述
formAlias 字符型 表单别名,可以在表单设计界面中的”表单属性”中获取(支持跨应用取数据,格式为:"appid@表别名")
fields 数组:列表型 查询字段,为表单的字段的别名,可以在表单设计的字段属性中获取,支持表单字段和子表单字段同时查询(子表单字段只能属于同一个子表单),["*"]表示查询所有字段。具体参考示例
wheres 字符型 查询条件,默认为空字符串
type 整数型 默认为0
0:以列名的方式返回查询结果的全部数据
1:以索引的方式返回查询结果的全部数据
2:以列名的方式返回查询到的第一条记录
3:以索引的方式返回查询到的第一条记录
4:以集合的方式返回查询结果的全部数据(集合特性默认去重)
  • wheres 数据格式:
  • WHERE ($单行文本 like "%111%") AND ($多行文本 between "111" AND "222") GROUP BY $单行文本,$多行文本 ORDER BY $单行文本 DESC,$多行文本 ASC LIMIT 0,20
  • 条件存在 or 语句时需要将查询条件括起来,因为外层存在系统查询条件and,or条件和其混用会导致结果不准确,order/group/limit等语句不需要,如下所示:
    wheres = "($单行文本 = '11' or $单行文本 = '22') order by $单行文本 asc"

返回值

类型 描述
数组:列表型、字典型、集合型 根据参数中的type类型返回不同的格式的数组
参数 类型 描述
0 列表型 以列名的方式返回查询结果的全部数据
1 列表型 以索引的方式返回查询结果的全部数据
2 字典型 以列名的方式返回查询到的第一条记录
3 列表型 以索引的方式返回查询到的第一条记录
4 集合型 以集合的方式返回查询结果的全部数据(集合特性默认去重)
  • 数据格式:
    [
      {
          "deleteTime":"",
          "createTime":"2019-01-05 15:05:07",
          "updateTime":"2019-01-11 11:00:38",
          "单行文本":"abc",
          "多行文本":"def",
          "图片":[
              {
                  "size":"85559",
                  "uploadTime":"2019-03-26T17:48:28Z",
                  "_id":"58f57658a48dae2e5f68952e",
                  "name":"1.jpg",
                  "mime":"image/jpeg",
                  "uploader":"547a48c50eccde5ac8c0883b",
                  "bucket":"pub-file",
                  "qnKey":"Fko6hnrcvUS7n4b6QKszWRDKMsVC"
              }
          ],
          "附件":[
              {
                  "size":"79273",
                  "uploadTime":"2019-03-26T17:59:15Z",
                  "_id":"53b506717f9b4cd9d5e89e85",
                  "name":"1.txt",
                  "mime":"text/plain",
                  "uploader":"547a48c50eccde5ac8c0883b",
                  "bucket":"pub-file",
                  "qnKey":"FpTHlLKcZrGQuRFedYoSwnKWs6V4"
              }
          ],
          "手写签名":[
              {
                  "_id":"5adf0f8e7f96c03842ae3f72",
                  "bucket":"pub-file",
                  "uploader":"",
                  "uploadTime":"2019-05-20T17:25:43Z",
                  "size":"98328",
                  "qnKey":"FhdH1pyNASeDYC3JwiJQB77vmJr2",
                  "name":"bbysignature_1558512038935.png",
                  "mime":"image/png"
              }
          ],
          "creator":{
              "nickname":"bobo",
              "id":"547a48c50eccde5ac8c0883b"
          },
          "deleter":"",
          "id":"5e5057a78d478a699e99a7d8"
      },
      {
          "deleteTime":"",
          "createTime":"2019-01-11 11:00:49",
          "updateTime":"2019-01-11 11:00:49",
          "单行文本":"abc2",
          "多行文本":"def2",
          "图片":[],
          "附件":[],
          "creator":{
              "nickname":"bobo",
              "id":"547a48c50eccde5ac8c0883b"
          },
          "deleter":"",
          "id":"58d0e3930170170b8953877e"
      }
    ]
名称 描述
id 数据id,在不同的范围内代表不同含义(例如在 creator 中表示数据创建者的userid)
creator 数据的创建者
createTime 数据的创建时间
deleter 数据的删除者
deleteTime 数据的删除时间
nickname 数据的创建者对应的昵称
size 文件大小,单位:字节
name 文件名称
mime 文件类型
uploader 上传人id(手写签名里为空)
uploadTime 上传时间
bucket 文件服务器的空间名称
qnKey 文件在服务器空间上的标识符

子表单字段和外层字段同时查询时的结果集:

  • 注意当子表单数据条数 > 外层数据条数时将自动填充数据补齐空白部分,如下图所示:

原始数据为:

单行文本 单行文本_子表单
11 33
44

查询结果为:

单行文本 单行文本_子表单
11 33
11 44

备注

可能出现的错误信息,执行 getlasterror 函数获取具体详细信息:

  • 错误编码=getlasterror()
  • 错误信息=getlasterror(1)
错误编码 错误信息
1407 api执行频率超出限制
1400 参数类型不正确
1300 参数不是数组类型
1305 参数不是关联数组
1313 参数非法
1506 连接数据库失败
1502 取表单字段失败
1594 不允许操作回收站的表单
1560 表单中没有可操作的数据,请检查参数是否正确
1302 赋值失败
1508 非法字段别名
1504 不存在的字段
1582 非法的表达式
1505 不支持的函数
1587 查询超出范围
1504 不存在的字段

支持的sql函数(只支持大写) COUNT、MAX、MIN、AVG、SUM、NOW
支持的sql比较关键字(只支持大写) AND、OR、ORDER、GROUP(group by)、LIMIT

其他:

  • 所有表单查询api的结果集行数最多返回500条数据。
  • 所有表单api调用频率限制为1000次/分钟。

示例

def test():
    # name(字段别名), val(字段对应的值), exp(条件表达式) 为条件专有名称
    # 普通字段查询
    # 查询全部数据使用 ["*"]
    fields=["$单行文本"] 
    res=form.select("测试表单",fields)

    # 普通字段和子表单字段同时查询
    where="$单行文本='11' and $单行文本_子表单='22'"
    res=form.select("测试表单",["$单行文本","$单行文本_子表单"],where)
    print(res)

    #查询子表单里全部字段
    where="$单行文本_子表单='22'"
    res=form.select("测试表单",["$子表单"],where)
    print(res)

    #查询子表单里指定的字段
    where="$单行文本_子表单='22'"
    res=form.select("测试表单",["$单行文本_子表单"],where)
    print(res)

    # select `单行文本` from `测试表单` LIMIT 0,500
    fields=["$单行文本"]
    where="limit 0,500"
    res=form.select("测试表单",fields,where)
    print(res)

    # select MAX(`单行文本`) from `测试表单`
    # 开头表示sql函数, 支持的函数名称详情见备注
    fields=["#MAX($单行文本)"]
    res=form.select("测试表单",fields)
    print(res)

    # select `单行文本` from `测试表单` where 单行文本 IN (1,2,3) AND 单行文本1 NOT IN  (4,5,6) ORDER BY 单行文本 DESC
    fields=["$单行文本"]
    where="$单行文本 IN (1,2,3) AND $单行文本1 NOT IN  (4,5,6) ORDER BY $单行文本 DESC"
    res=form.select("测试表单",fields,where)
    print(res)

    # 非复合字段查空值(单行文本,多行文本,数字,日期时间,单选按钮组,下拉框,流水号,成员单选,部门单选)
    fields=["$单行文本"]
    where="($单行文本 is null or $单行文本='')"
    res=form.select("测试表单",fields,where)
    print(res)

    # 复合字段查空值(复选框组,下拉复选框,图片,附件,手写签名,成员多选,部门多选)
    fields=["$复选框组"]
    where="($复选框组 is null or $复选框组='[]')"
    res=form.select("测试表单",fields,where)
    print(res)

    # 地址字段查空值(地址,定位)
    fields=["$地址"]
    where="($地址 is null or $地址='{}')"
    res=form.select("测试表单",fields,where)
    print(res)

    # 日期查询(由于日期在数据库底层为时间戳格式(毫秒), 所以这里要进行转换,系统字段提交时间、更新时间除外)
    fields=["$日期时间"]
    where="$日期时间 BETWEEN #unix_timestamp('2020-09-29 00:00:00')*1000 and #unix_timestamp('2020-09-29 23:59:59')*1000"
    res=form.select("测试表单",fields,where)
    print(res)

演示示例

  • 暂无

安装包下载

  • 暂无

相关视频

  • 暂无
最新修改于:2022-07-06