简易搭帮助文档
  • 首页
  • 帮助文档
  • 后端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.subupdatedatas

  • form.subupdatedatas
  • 功能说明
    • 描述
    • 函数原型
    • 参数
    • 返回值
    • 备注
  • 字段的数值更新支持动态表达式
  • 示例
    • 演示示例
    • 安装包下载
  • 相关视频

功能说明

描述

批量更新子表单中的指定数据。(支持图片/附件/手写签名的文件操作)

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

函数原型

  1. form.subupdatedatas(formAlias,subAlias,datas,bFail=True)复制

参数

名称 类型 描述
formAlias 字符型 表单的别名,可以在表单设计界面中的”表单属性”中获取(支持跨应用操作数据,格式为:"appid@表别名")
subAlias 字符型 子表单的字段别名,可以在表单设计界面的属性中获取
datas 数组:列表型 需要更新/修改的多行数据(最多500条数据,注意这里指的是更新条件,不是对数据库的影响结果)
bFail 逻辑型 遇到错误是否中断执行,默认为True表示中断执行且回滚事务,False表示继续往下执行

返回值

类型 描述
整型 更新成功返回更新的数据行数,更新失败返回-1(任意一条数据失败时根据bFail决定是否回滚事务,bFail=False时继续执行后面的操作,但是记录错误信息)
条件不匹配导致更新无效时返回0

备注

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

  • 错误编码=getlasterror()
  • 错误信息=getlasterror(1)
错误编码 错误信息
1407 api执行频率超出限制
1400 参数类型不正确
1594 不允许操作回收站的表单
1300 参数不是数组类型
1305 参数不是关联数组
1559 请参考文档重新编辑查询条件
1560 表单中没有可操作的数据,请检查参数是否正确
1506 连接数据库失败
1502 取表单字段失败
1594 不允许操作回收站的表单
1513 条件字段不为关联数组
1514 系统字段,不能进行操作
1508 非法字段别名
1504 不存在的字段
1582 非法的表达式
1505 不支持的函数
1533 数据库执行失败
1539 非法的属性值
1586 文件不存在
datas 更新数据
wheres 表单查询条件
subwheres 子表单查询条件

字段的数值更新支持动态表达式

表达式类型 支持的运算符号 算式 示例
单值表达式 ! !数字1 {"left"={"type":"field","val":"数字1"},"exp":"!"}
四则运算表达式 +-*/% 数字1+数字2 {"left":{"type":"field","val":"数字1"},"right":{"type":"field","val":"数字2"},"exp":"+"}
数字1+数字2-3 {"left":{"type":"field","val":"数字1"},"right":{"left":{"type":"field","val":"数字2"},"right":3,"exp":"*"},"exp":"+"}
名称 描述
left 左运算元素(例如:a+b 中的a)
right 右运算元素(例如:a+b 中的b,单值运算时只有left有效)
type 字段类型,field表示为字段,表示为常量时可省略
val 运算元素对应的值,根据type决定其类型
exp 运算符号

其他:

  • 所有表单api调用频率限制为1000次/分钟。

示例

  1. def test():
  2. datas={}
  3. datas["子表单_单行文本"]="1111"
  4. wheres={"AND":[{"name":"单行文本","val":"11","exp":"="}]}
  5. wheres2={"AND":[{"name":"单行文本2","val":"11","exp":"="}]}
  6. subwheres={"AND":[{"name":"子表单_单行文本","val":"22","exp":"="}]}
  7. subwheres2={"AND":[{"name":"子表单_单行文本2","val":"22","exp":"="}]}
  8. alls=[{"datas":datas,"wheres":wheres1,"subwheres":subwheres1},{"datas":datas,"wheres":wheres2,"subwheres":subwheres2}] # 组合成多行数据
  9. ret=form.subupdatedatas("测试表单","子表单",alls )
  10. print(getlasterror(1))
  11. print(ret)
  12. # 字段的动态表达式示例,例如:对库存字段自增+1
  13. datas={}
  14. arr={"left":{"type":"field","val":"子表单_库存"},"right":1,"exp":"+"}
  15. datas["子表单_库存"]=arr
  16. wheres1={"AND":[{"name":"商品1","val":"手机","exp":"="}]}
  17. wheres2={"AND":[{"name":"商品2","val":"电脑","exp":"="}]}
  18. alls=[{"datas":datas,"wheres":wheres1,"subwheres":None},{"datas":datas,"wheres":wheres2,"subwheres":None}] # 组合成多行数据
  19. ret=form.subupdatedatas("测试表单","子表单",alls )
  20. print(ret)
  21. # 图片/附件/手写签名的文件操作(需要先在前端手动插入1张图片)
  22. # 图片为数组格式,可以有多个,例如: [{"_id":"5adf0f8e7f96c03842ae3f72","bucket":"form-file","uploader":"5b68110f7cf2885b5e19e66a","uploadTime":"2019-05-20T17:25:43Z","size":"98328","qnKey":"FhdH1pyNASeDYC3JwiJQB77vmJr2","name":"6.jpg","mime":"image/jpeg"}]
  23. arr=form.selectdata("测试表单",["图片"])
  24. datas={}
  25. datas["子表单_图片"]=arr[0]["图片"]
  26. alls=[{"datas":datas,"wheres":wheres1,"subwheres":None},{"datas":datas,"wheres":wheres2,"subwheres":None}]
  27. ret=form.subupdatedatas("测试表单","子表单",alls)
  28. print(ret)复制

演示示例

  • 暂无

安装包下载

  • 暂无

相关视频

  • 暂无
    目录
  • form.subupdatedatas
  • 功能说明
  • 描述
  • 函数原型
  • 参数
  • 返回值
  • 备注
  • 字段的数值更新支持动态表达式
  • 示例
  • 演示示例
  • 安装包下载
  • 相关视频
最新修改于:2021-10-13