前言: 1、简道云子表单自动连续编号的问题曾经困扰很多人,三年前我利用类比盲人排队的例子解决了这个问题,由此子表单数据整体像个黑盒无法精准识别的问题得以解决,也拓展了很多人对简道云用法的想象。 2、本篇博客原本发布在简道云老社区,阅读量超3000,留言100余条,其中留言中的很多内容是对用户疑惑的进一步解答,也有对这个解决方法的变形拓展用法,现老社区与帆软社区融合,留言内容无法同步移植,就待这里的用户看到后在留言区交流补充吧。 3、接下来会陆续把原来社区的几十篇博客搬运过来,新写的还没来得及发布的几十篇也会继续修改完善,合适的时候发布出来,还请大家批评指正,期待与大家的交流碰撞! 4、学习、使用简道云,我们是认真的,我们是把它当成一门学问在研究。研究的路上遍布疑惑、未知,愿一路有你同行,披荆斩棘,共同收货成功和喜悦!
盲人妻子的困惑——子表单自动连续编号的问题
一、类比盲人排队
新建一个空白表单,添加子表控件,手动多添加几行子表单,并在子表单里依次手写添加序号1、2、3、4、5、6、7、8、9......,如下图所示:
仔细观察上图,有没有感觉像是我们生活中常见的一种情景——排队?是的,可以把子表序号的问题转换成排队的问题,通过对排队这种我们平常比较熟悉的场景做分析,把子表排序中可能遇到的问题转换到排队中遇到的问题,或许对我们理解子表排序的问题有所帮助。
- 举一个具体排队的例子:男人在排队买票,队伍很长,此时男人的妻子打电话来说要来找他,男人告诉妻子他在这里排队买票,你过来吧。妻子到了之后电话里说队伍太长了,如果一个一个去找就太慢了,能告诉她位置吗,男人看了看队伍,大概数了一下,发现自己离卖票窗口大概还有100人,妻子根据这个位置很快就找到了男人。
在这个例子中,男人和妻子都有自己数“从窗口到男人之间人数”的能力,仔细想象一下,这个能力就相当于我们直接根据子表单里行数的先后顺序,依次手动输入序号的能力。很显然,这不是我们需要的,现在我们需要的是子表自动添加序号的能力,其实这也就相当于要求在没有直接数人数的能力下,同时又要求找出男子所处的人数(即位置)。
如果没有直接数人数的能力,那在这个例子中,就相当于让男人和妻子都变成盲人,他们没法通过直接查看排队的队伍这种数人数的方式来确定位置,他们就只能通过别的方法来解决。
那接下来子表单序号的问题就转换成了一个盲人妻子如何在排队的队伍中查找自己丈夫所处位置的的问题。她不能借助他人,只能依靠自己。
想象一下,如果此时你是这位盲人妻子,面对这种困惑,你会通过什么方式来查找正在排队的丈夫?
二、类比分析计算
很显然,解决这一问题,没法再通过常规方法查找。但没有要求不能用其他方法,那就回到查找位置最本源最直接的方法——拿尺子量。首先她可以去队伍中一个一个去触摸(盲人一般通过触摸来感知这个世界),当她摸到丈夫后,再用尺子(现实中肯定有或者可以做出盲人会用的通过触感感知距离的尺子)丈量丈夫离窗口的距离,比如用S代表,此时就知道丈夫的位置了。如果再想知道丈夫离窗口具体的人数,那他还需要依次丈量丈夫前面每一位排队人排队时所占的宽度,比如依次用S1、S2、S3、S4、S5、S6......SN代表,这里N代表丈夫所在的人数。那么会出现:
S=S1+S2+S3+S4+S5+S6+......+SN
显然这样的计算是看不出什么规律的,而此时如果发现有条件使得S1=S2=S3=S4=S5=S6=.....=SN,那丈夫所处行数N就等于N=S/S1。
分析上面的这个独特场景,可以发现,妻子可以找到丈夫所处位置,其实需要满足几个暗含的条件: 1、妻子记得丈夫的模样,即能从众多排队的人中识别出丈夫。 2、队伍中没有其他人和丈夫长的一样。 3、丈夫和队伍中其他人所占的宽度都一样。
如果翻译成函数语言,可能包含有以下几条:
- CONCATENATE()——队伍集合排队
- SEARCH()——记得、识别、丈量
- UUID()——随机码,每个人都长的不一样,每个人所占的宽度都一样、
通过上面的分析可以发现,实现子表排序功能可能需要的控件以及控件可能处于的位置也就比较好找了。在表单中实现的方法如下图:
表单添控件如上图,属性都是单行文本控件,其中控件写函数分别是:
- 随机码:UUID()
- 随机码集合:CONCATENATE(随机码)
- 序号:(SEARCH(子表单.随机码,随机码集合)-1)/36+1
子表自动编号测试表单外链:https://tex1054z67.jiandaoyun.com/f/5f6d4e6ccaeccf0006fc553c
由此可见,子表单序号的问题,即是在由自己组成的队伍中查找自己的位置的问题。解决方法就一目了然了。
简道云官方帮助文档关于“子表单自动编号”函数专题的引用链接:https://hc.jiandaoyun.com/blog/10792
三、用法用途
此功能以及变形,可以解决的问题罗列如下: 1、子表排序问题 2、子表重复值问题 3、进存销中上次采购价问题 4、相邻数据子表单连续编号衔接问题 5、ERP中常用的多级BOM的问题 ................
四、关于子表单博客的发布公告
在整理原有老社区里我的的四十多篇博客时,发现其中有17篇都是关于子表单的,而子表单又是简道云开发实施中较难处理的,有了这17篇博客,子表单的难处理的问题就都迎刃而解了,这里我把它们分别归类为以下四种: 一、子表单编号--------(6篇) 二、子表单重复值------(4篇) 三、子表数字汇总------(3篇) 四、子表单其他相关----(4篇) 如下图:
接下来先依次更新以上这些博客,欢迎大家社区订阅我的博客,留言区多交流。
为了大家方便找到我的所有关于子表单的博客,【请点击此处的博客链接集合】
作者简介:【点击查看作者社区主页】
- 牛中伟
- 简道云官方连续6年指定定制服务商
- 利用简道云帮客户实施项目近300个
- 在原简道云老社区更新发布博客44篇
- 新老社区博客总阅读量超50万,留言1000余条
- 其中关于子表单的一篇博客收到用户打赏金额累计超7000元
- 关注帆软社区我的这个账号,有新博客更新,第一时间收到提醒
- 感谢大家一路以来的认可和支持,我会再接再厉,分享更多有价值的内容
- 如有任何简道云方面的问题,欢迎留言区留言或单独私信给我,期待与你的交流
不自谦能力概述:
- 精通子表单各类复杂用法
- 谙熟函数特性、及各种函数组合用法
- 独创利用简道云处理多级BOM的方法
- 深刻理解进销存系统及进销存思维模型
- 有一定的文本书写能力,总结复盘能力
- 较强的抽象思维能力、逻辑思维能力、统筹能力
- 对陌生行业陌生业务有快速的信息搜集整合和学习消化能力
- 拥有一整套成熟有效的整理系统需求文档的思想、方法和工具
- 很多用户感觉一直解决不了的问题在我们这里可能早已不是问题
- 了解如何制定完善的报表分析计划,并借此洞察项目业务背景和业务痛点。
- 理解系统与企业管理的关系,对如何在企业顺利推进管理系统落地有丰富经验和独到见解。
- 有一整套经上百大小项目锤炼过的适合简道云这类低代码工具帮助客户实施项目的流程和方法,确保系统更好实施,更快部署,更高完整度交付,确保系统更符合客户预期,甚至超预期,给客户真正带来价值!
懂简道云的冬泳高手,关注我的帆软社区账号,交个朋友!
编辑于 2020-11-25 14:39
|