宜点云宜点课堂
  • 首页
  • 帮助文档
  • 后端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.handleselectdata

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

功能说明

描述

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

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

函数原型

form.handleselectdata(hd,formAlias,fields,wheres=None,type=0)

参数

名称 类型 描述
hd 整型 通过 form.open() 得到的句柄
formAlias 字符型 表单别名,可以在表单设计界面中的”表单属性”中获取(支持跨应用取数据,格式为:"appid@表别名")
fields 数组:列表型 查询字段,为表单的字段的别名,可以在表单设计的字段属性中获取,支持表单字段和子表单字段同时查询(子表单字段只能属于同一个子表单),["*"]表示查询所有字段。具体参考示例
wheres 数组:字典型 查询条件,条件为数组格式,默认为空具体格式请点击 查询条件和排序规则
type 整数型 默认为0
0:以列名的方式返回查询结果的全部数据
1:以索引的方式返回查询结果的全部数据
2:以列名的方式返回查询到的第一条记录
3:以索引的方式返回查询到的第一条记录
4:以集合的方式返回查询结果的全部数据(集合特性默认去重)
  • wheres 数据格式:
    {
       "ORDER":[
            {
                 "name":"单行文本",
                 "mode":"desc"
            },
            {
                 "name":"多行文本",
                 "mode":"asc"
            }
       ],
       "AND":[
            {
                 "name":"单行文本",
                 "val":"111",
                 "exp":"like"
            },
            {
                 "name":"单行文本",
                 "val":[
                      "111",
                      "222"
                 ],
                 "exp":"between"
            }
       ],
       "GROUP":[
            "单行文本"
       ],
       "LIMIT":[
            0,
            20
       ]
    }
名称 描述
AND 指定where元素的连接方式(OR的格式和AND相同,具体格式请点击
ORDER 指定结果集的排序方式
GROUP 指定结果集的过滤字段
LIMIT 指定结果集的过滤行数
name 字段别名
val 字段对应的值,可以为单个或多个值
exp 连接字段 name 和 val 的表达式
mode 指定排序规则,"asc" 表示顺序排列,"desc" 表示倒序排列

返回值

类型 描述
数组:列表型、字典型、集合型 根据参数中的type类型返回不同的格式的数组
参数 类型 描述
0 列表型 以列名的方式返回查询结果的全部数据
1 列表型 以索引的方式返回查询结果的全部数据
2 字典型 以列名的方式返回查询到的第一条记录
3 列表型 以索引的方式返回查询到的第一条记录
4 集合型 以集合的方式返回查询结果的全部数据(集合特性默认去重)
  • 数据格式:
    [
      {
          "deleteTime":"",
          "createTime":"2019-01-05 15:05:07",
          "updateTime":"2019-01-11 11:00:38",
          "单行文本":"abc",
          "多行文本":"def",
          "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 数据的创建者
createTime 数据的创建时间
deleter 数据的删除者
deleteTime 数据的删除时间
nickname 数据的创建者对应的昵称
id 数据的创建者对应的userid

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

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

原始数据为: |单行文本|单行文本_子表单| |-|-| |11|33| | |44| 查询结果为: |单行文本|单行文本_子表单| |-|-| |11|33| |11|44|

备注

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

  • 错误编码=getlasterror()
  • 错误信息=getlasterror(1)
错误编码 错误信息
1407 api执行频率超出限制
1400 参数类型不正确
1409 表单数据库的操作句柄不存在
1300 参数不是数组类型
1305 参数不是关联数组
1313 参数非法
1506 连接数据库失败
1502 取表单字段失败
1594 不允许操作回收站的表单
1560 表单中没有可操作的数据,请检查参数是否正确
1302 赋值失败
1513 条件字段不为关联数组
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(条件表达式) 为条件专有名称
    # where组合表达式格式为: AND = [{"name" :"单行文本","val" :"单行文本1","exp" :"="},{"name" :"单行文本2","val" :"单行文本2","exp" :"="}]
    #当条件只有1个时写法为:AND=[{"name":"单行文本","val":"单行文本1","exp":"="}]

    # 普通字段查询
    # 查询全部数据使用 ["*"]
    hd=form.open()
    fields=["单行文本"] 
    res=form.handleselectdata(hd,"测试表单",fields)

    # 普通字段和子表单字段同时查询
    where={"AND":[{"name":"单行文本","val":["11"],"exp":"in"},{"name":"单行文本_子表单","val":["33","44"],"exp":"in"}]}
    res=form.handleselectdata(hd,"测试表单",["单行文本","单行文本_子表单"],where)
    print(res)

    # select `单行文本` from `测试表单` LIMIT 0,500
    fields=["单行文本"]
    _limit=[0,500]
    where={"LIMIT"=_limit}
    res=form.handleselectdata(hd,"测试表单",fields,where)
    print(res)

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

    # select `单行文本` from `测试表单` where 单行文本 IN (1,2,3) AND 单行文本1 NOT IN  (4,5,6)ONDER BY 单行文本 DESC
    fields=["单行文本"]
    _and=[{"name":"单行文本","val":[1,2,3],"exp":"="},{"name":"单行文本1","val":[4,5,6],"exp":"NOT IN"}]
    _order=[{"name":"单行文本","mode":"desc"}]
    where={"ORDER":_order,"AND":_and}
    res=form.handleselectdata(hd,"测试表单",fields,where)
    print(res)

    # select `单行文本` from `测试表单` where 单行文本1 IS NULL AND 单行文本2 IS NOT NULL
    fields=["单行文本"]
    _and=[{"name":"单行文本1","val":"None","exp":"="},{"name":"单行文本2","val":"None","exp":"NOT IN"}]
    where={"AND":_and}
    res=form.handleselectdata(hd,"测试表单",fields,where)
    print(res)

    # select `单行文本` from `测试表单` where 单行文本 > '单行文本1' AND 单行文本 < '单行文本2';
    fields=["单行文本"]
    _and=[{"name":"单行文本","val":"单行文本1","exp":">"},{"name":"单行文本","val":"单行文本2","exp":"<"}]
    where={"AND":_and}
    res=form.handleselectdata(hd,"测试表单",fields,where)
    print(res)

    # select `单行文本` from `测试表单` where 单行文本1 BETWEEN '单行文本2' and '单行文本3';
    fields=["单行文本"]
    _and=[{"name":"单行文本1","val":{"单行文本2","单行文本3"},"exp":"BETWEEN"}]
    where={"AND":_and}
    res=form.handleselectdata(hd,"测试表单",fields,where)
    print(res)

    # select `单行文本` from `测试表单` where (单行文本 LIKE '%文本1%') and (单行文本 LIKE '%文本2%')
    fields=["单行文本"]
    _and=[{"name":"单行文本","val":"%文本1%","exp":"LIKE"},{"name":"单行文本","val":"%文本2%","exp":"LIKE"}]
    where={"AND":_and}
    res=form.handleselectdata(hd,"测试表单",fields,where)
    print(res)
    #select `单行文本` from `测试表单` where (单行文本='单行文本1') or (单行文本='单行文本2')
    fields=["单行文本"]
    _or=[{"name":"单行文本","val":"单行文本1","exp":"="},{"name":"单行文本","val":"单行文本2","exp":"="}]
    where={"OR":_or}
    res=form.handleselectdata(hd,"测试表单",fields,where)
    print(res)
    #select `单行文本` from `测试` where ( 单行文本='单行文本1' AND ( 单行文本='单行文本1' OR 单行文本 !='单行文本2' ))
    fields=["单行文本"]
    _or=[{"name":"单行文本","val":"单行文本1","exp":"="},{"name":"单行文本","val":"单行文本2","exp":"!="}]
    _and=[{"name":"单行文本","val":"单行文本1","exp":"="},"OR":_or}
    where={"AND":_and}
    res=form.handleselectdata(hd,"测试表单",fields,where)
    print(res)
    #select `单行文本` from `测试表单`  where ( 单行文本='单行文本1' AND ( 单行文本='单行文本1' OR 单行文本 !='单行文本2' )) GROUP BY 单行文本,多行文本 ORDER BY 单行文本 desc,多行文本 DESC LIMIT 0,20
    fields=["单行文本","多行文本"]
    _or=[{"name":"单行文本","val":"单行文本1","exp":"="},{"name":"单行文本","val":"单行文本2","exp":"="}]
    _and=[{"name":"单行文本","val":"单行文本1","exp":"="},"OR":_or}
    _order=[{"name":"单行文本","mode":"desc"},{"name":"多行文本","mode":"asc"}]
    _group=["单行文本","多行文本"]
    _limit=[0,20]
    where={"AND":_and,"GROUP":_group,"ORDER":_order,"LIMIT":_limit}
    res=form.handleselectdata(hd,"测试表单",fields,where)
    form.close(hd)
    print(res)

演示示例

  • 暂无

安装包下载

  • 暂无

相关视频

  • 暂无
最新修改于:2021-10-13