form.handlesubupdatedata
功能说明
描述
通过句柄的方式,更新子表单中的已有数据。(支持图片/附件/手写签名的文件操作)
此种方式支持事务操作,支持部分mysql函数 ,请查看文档【支持的SQL函数】
函数原型
form.handlesubupdatedata(hd,formAlias,subAlias,datas,wheres=None,subwheres=None)
参数
名称 | 类型 | 描述 |
---|---|---|
hd | 整型 | 通过 form.open() 得到的句柄 |
formAlias | 字符型 | 表单别名,可以在表单设计界面中的”表单属性”中获取(支持跨应用操作数据,格式为:"appid@表别名") |
subAlias | 字符型 | 子表单别名,可以在表单设计界面的属性中获取 |
datas | 数组:字典型 | 需要更新/修改的数据,此参数必须为关联数组 |
wheres | 数组:字典型 | 查询条件,条件为数组格式,它内部包含了 WHERE\ORDER BY\GROUP BY\LIMIT,默认情况下,查询条件参数为空数组,在当前函数中 ORDER BY\GROUP BY\LIMIT的条件会自动忽略 |
subwheres | 数组:字典型 | 子表单查询条件,条件为数组格式,条件字段只能填写与[subformid]参数字段相关的字段id,否则函数会直接报错 |
返回值
类型 | 描述 |
---|---|
整型 | 执行成功返回更新的数据行数,更新出错返回-1 |
备注
可能出现的错误信息,执行 getlasterror 函数获取具体详细信息:
- 错误编码=getlasterror()
- 错误信息=getlasterror(1)
错误编码 | 错误信息 |
---|---|
1407 | api执行频率超出限制 |
1400 | 参数类型不正确 |
1409 | 表单数据库的操作句柄不存在 |
1594 | 不允许操作回收站的表单 |
1300 | 参数不是数组类型 |
1305 | 参数不是关联数组 |
1559 | 请参考文档重新编辑查询条件 |
1560 | 表单中没有可操作的数据,请检查参数是否正确 |
1506 | 连接数据库失败 |
1502 | 取表单字段失败 |
1594 | 不允许操作回收站的表单 |
1513 | 条件字段不为关联数组 |
1514 | 系统字段,不能进行操作 |
1508 | 非法字段别名 |
1504 | 不存在的字段 |
1582 | 非法的表达式 |
1505 | 不支持的函数 |
1560 | 表单中没有可操作的数据,请检查参数是否正确 |
1533 | 数据库执行失败 |
1539 | 非法的属性值 |
1586 | 文件不存在 |
字段的数值更新支持动态表达式
表达式类型 | 支持的运算符号 | 算式 | 示例 |
---|---|---|---|
单值表达式 | ! | !数字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次/分钟。
示例
def test():
# 普通数据更新
datas={}
datas["子表单_单行文本"]="子表单_单行文本1"
datas["子表单_数字"]="111"
datas["子表单_下拉框"]="子表单_下拉框1"
datas["子表单_下拉复选框"]=["选项1","选项2"]
datas["子表单_日期时间"]=timenow()
wheres={"AND":[{"name":"单行文本","exp":"=","val":"文本内容1"}]}
subwheres={"AND":[{"name":"子表单_单行文本","exp":"=","val":"子表单_文本内容1"}]}
hd=form.open()
ret=form.handlesubupdatedata(hd,"测试表单","子表单",datas,wheres,subwheres)
form.close(hd)
print(ret)
# 字段的动态表达式示例,例如:对库存字段自增+1
datas={}
arr={"right":1,"exp":"+","left":{"type":"field","val":"子表单_库存"}}
datas["子表单_库存"]=arr
hd=form.open()
ret=form.handlesubupdatedata(hd,"测试表单","子表单",datas)
form.close(hd)
演示示例
- 暂无
安装包下载
- 暂无
相关视频
- 暂无