form.handlesubselectdata
功能说明
描述
通过句柄的方式,查询指定子表单存放在数据库中的数据。(支持图片/附件/手写签名的文件操作)
支持部分mysql函数 ,请查看文档【支持的SQL函数】
函数原型
form.handlesubselectdata(hd,formAlias,subAlias,wheres=None,subwheres=None)参数
| 名称 | 类型 | 描述 | 
|---|---|---|
| hd | 整型 | 通过 form.open() 得到的句柄 | 
| formAlias | 字符型 | 表单别名,可以在表单设计界面中的”表单属性”中获取(支持跨应用取数据,格式为:"appid@表别名") | 
| subAlias | 字符型 | 子表单别名 | 
| wheres | 数组:字典型 | 查询条件,条件为数组格式,默认为空 | 
| subwheres | 数组:字典型 | 子表单查询条件,条件为数组格式,默认为空 | 
- wheres 数据格式:{ "AND":[ { "name":"单行文本", "exp":"like", "val":"111" }, { "name":"单行文本", "exp":"between", "val":[ "111", "222" ] } ], "ORDER":[ { "mode":"desc", "name":"单行文本" }, { "mode":"asc", "name":"多行文本" } ], "GROUP":[ "单行文本" ], "LIMIT":[ 0, 20 ] }
| 名称 | 描述 | 
|---|---|
| AND | 指定where元素的连接方式(OR的格式和AND相同) | 
| ORDER | 指定结果集的排序方式 | 
| GROUP | 指定结果集的过滤字段 | 
| LIMIT | 指定结果集的过滤行数 | 
| name | 字段别名 | 
| val | 字段对应的值,可以为单个或多个值 | 
| exp | 连接字段 name 和 val 的表达式 | 
| mode | 指定排序规则,"asc" 表示顺序排列,"desc" 表示倒序排列 | 
返回值
| 类型 | 描述 | 
|---|---|
| 数组:列表型 | 获取成功返回子表单数据,获取失败返回空数组 | 
- 数据格式:[ { "单行文本":"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" } ], "zid":"2", "id":"5e5057a78d478a699e99a7d8" }, { "单行文本":"abc2", "多行文本":"def2", "图片":[], "附件":[], "zid":"1", "id":"58d0e3930170170b8953877e" } ]
| 名称 | 描述 | 
|---|---|
| id | 子表单外层对应的单条数据id | 
| zid | 子表单内的行id(只在当时有效,建议获取后马上使用,表单编辑数据会改变zid的值) | 
| size | 文件大小,单位:字节 | 
| name | 文件名称 | 
| mime | 文件类型 | 
| uploader | 上传人id(手写签名里为空) | 
| uploadTime | 上传时间 | 
| bucket | 文件服务器的空间名称 | 
| qnKey | 文件在服务器空间上的标识符 | 
备注
可能出现的错误信息,执行 getlasterror 函数获取具体详细信息:
- 错误编码=getlasterror()
- 错误信息=getlasterror(1)
| 错误编码 | 错误信息 | 
|---|---|
| 1407 | api执行频率超出限制 | 
| 1400 | 参数类型不正确 | 
| 1409 | 表单数据库的操作句柄不存在 | 
| 1300 | 参数不是数组类型 | 
| 1305 | 参数不是关联数组 | 
| 1313 | 参数非法 | 
| 1506 | 连接数据库失败 | 
| 1502 | 取表单字段失败 | 
| 1594 | 不允许操作回收站的表单 | 
| 1560 | 表单中没有可操作的数据,请检查参数是否正确 | 
| 1302 | 赋值失败 | 
| 1513 | 条件字段不为关联数组 | 
| 1508 | 非法字段别名 | 
| 1504 | 不存在的字段 | 
| 1582 | 非法的表达式 | 
| 1505 | 不支持的函数 | 
| 1587 | 查询超出范围 | 
| 1504 | 不存在的字段 | 
其他:
- 所有表单查询api的结果集行数最多返回500条数据。
- 所有表单api调用频率限制为1000次/分钟。
示例
def test():
    # 查询子表单的所有数据
    fd=form.open()
    ret=form.handlesubselectdata(hd,"测试表单","子表单")
    print(ret)
    # 查询子表单的部分数据
    wheres={"AND":[{"name":"单行文本","exp":"=","val":"文本内容1"}]}
    subwheres={"AND":[{"name":"子表单_单行文本","exp":"=","val":"文本内容2"}]}
    ret=form.handlesubselectdata(hd,"测试表单","子表单",wheres,subwheres)
    form.close(hd)
    print(ret)演示示例
- 暂无
安装包下载
- 暂无
相关视频
- 暂无
