在之前的零代码引路人第四期直播( https://edu.fanruan.com/video/207 )中提到过:想要更灵活的使用云函数,子表单是关键,子表单承接着大部分的信息解构与重构。
子表单的一大特性是可以伪造成一个200次及以内的循环语句,除此之外,在纯粹的简道云环境中暂无其它实现循环语句的方式,当然如果非要抬杠,理论上是可以写上一个超长的公式来实现类似功能。
下面通过一个案例来看一下:
案例:文本+数字的拆分
链接:https://bbs.fanruan.com/thread-136322-1-1.html
问题描述:在进销存等场景内,用户会在单行文本扫码录入产品信息,扫码结果是文本+数字,文本是产品的名称,数字是产品的型号,需要扫码录入后,自动把文本+数字拆分成2个字段,分别记录文本数字。
已知条件:单行文本的内容为文本+数字,文本长度不固定,数字长度不固定。比如单行文本内容为“平车001”或者“工铲2146”。
需要实现:把文本+数字拆分到2个文本字段内,分别显示文本和数字。比如分别拆分成:字段1内容为”平车“,字段2内容为“001”。
在这个案例中作者通过一个较长的IF()语句对问题给予了解决,那么有没有其它的解决思路呢?
思路一:通过子表单
假设产品信息的总长度不超过200,那么可以通子表单的方式予以解决。
1、获取“产品信息”长度
2、建立相同应行数的子表单
3、将“产品信息”的字符依次放入子表单每行的“信息”字段
4、判断“信息”的类别,比如字母、数字、符号,打上标识或提取
5、按需重组子表单的信息即可。
实现效果:
https://tnvew1vqtq.jiandaoyun.com/f/610d7542e791b2000850f1e7
思路二:由重构到解构
通过在原信息的头部或尾部,加入固定性内容实现信息重构,进而辅助信息的解构。
1、在尾部加入“0123456789”,实现信息重构
2、通过SPLIT()、UNION()等函数,获取第一个数字的位置
3、根据数字的位置,分别获取文本与数字内容
实现效果:
https://tnvew1vqtq.jiandaoyun.com/f/6106b64a66afb500079a08ab
信息解构与重构的本质是在信息中去寻找规律或创造规律,让原本看似无规律的信息变得有规律可循,常见的方式有符号与位数。比如,子表单自动按行编号(https://hc.jiandaoyun.com/blog/10792),用到的就是位数;比如,单表单中多个子表单数据互通,大量需要用到的就是符号。
编码在云函数中的应用
在试卷随机选项(https://bbs.fanruan.com/thread-135586-1-1.html)这个场景中,需要将原选项与答案进行重构及打包,然后以参数的形式传递至云函数处理。
通过上图可以发现这里用到了两组符号“^^^”与“###”,其中,“^^^”的作用是为了区隔开各子项,“###”的作用是为了区隔开各试题,最后分别打包到一个文本字段里做为云函数的参数。
也需有人好奇为什么要用三个连续的、相同的字符进行区隔,用一个不就行了吗?其实,行,也不行,这样做的目的是为了防范,在实际应用中选项本身也包含这个的字符,而三个连续,除了特殊情况外,遇到的概率就会极低。
本篇内容,大体就是如此了,相要灵活使用云函数,之所以说子表单是关键,是因为掌握了子表单,才能更好的完成信息的解构与重构。
更多内容
更多沟通交流可添加微信(zmlnow)
添加时请备注:简道云
都看到这里了
如果您觉得有用
赞一个呗
赏一个呗
偶会更有动力哈
编辑于 2021-8-8 16:06 |