0库存不显示(简道云开发高阶技能)

楼主
简道云官方指定金牌服务商

前言:

  • 本篇编写时简道云还未推出智能助手功能,当时还不能借助智能助手数据回写功能实现0库存不显示。现在虽然已有了智能助手的方法,但致力于学习研究智能助手的朋友,依然需要仔细看下本篇的思路和方法,应该对更深入的了解简道云有帮助。另外,智能助手的数量总归是有限的,能不用智能助手就能实现0库存不显示,尽量不用,能省皆省。
  • 本篇功能的推出是简道云功能强大的又一例证,利用现有基础功能的组合来实现更多复杂功能是我们开发人员的一项重要能力。
  • 本篇是2018-09-20发布在原简道云老社区的第21篇,发布在帆软社区的第29篇文章,以后还有更多(技术类、管理类、理论类),为了不迷失不迷路,【请收藏这个链接集合】,以后所有博客都会汇集于此,敬请期待!

 





0库存不显示



先来看下什么是0库存不显示,“0库存不显示”,很显然,从字面意思可以理解,既当仓库里某商品的库存为0了,那该商品就不应该再在出库表的商品名称下拉框里显示。如下图所示:

 
 
熟悉用简道云做进销存软件的道友都知道,入库、出库表的子表单里的数字控件“库存”是根据“商品”字段联动的聚合表里的“库存”,既只有选择过了“商品”后,才能通过聚合表的“商品”联动出“库存”数量,这里用到的数据联动——“商品”作为联动条件被人为手动选择,“库存”作为联动结果被输出展示出来。


再分析我们的这个问题——“0库存不显示”,可以发现,简短的这句话里,其实暗含了一个前提条件一个判断结果前提条件是先确定库存是否为0,判断结果是该商品显示不显示的问题,那意思就是,库存是否为0作为了条件,商品名称作为了判断的结果(这个和我们平时通过商品名称联动出商品的库存不太一样)。由此,我们可以结合上一段中数据联动的联动条件和联动结果的特点,以及聚合表中表头字段和计算指标字段都可以既为联动条件又可是联动结果特点,就可以得出这样的结论:只要我们有方法使得,聚合表中,让库存不为0的商品的右边聚合计算的指标能对应上一个相同的值,然后再通过这个相同的值就可以联动出所有库存不为0的商品。

在找到这个相同的值前,我们先来试下另一种特殊情况的设置方式:出库时商品下拉框里只显示库存为0的商品,当然在实际使用中,这种设置没有意义,也不需要,这里我们测试这种设置,是为了看看是否能找到一个也能解决0库存不显示问题的普遍规律。

先来看下如下聚合表,如下图:

 
 
这个是一个普通的通过入库表和出库表多表关联设置好的库存聚合表,通过表中数据明显可以看出,商品1、商品4、商品5,这三个商品的库存已经为0了,在本博客讨论的主题中,这三个商品是不应该显示在出库表的商品下拉框里的,而此时我们测试的是出库表里只显示这个三个库存为0的商品。


所以,由上面的这个聚合表,我们很容易就可以找出,出库表商品下拉框里只显示库存为0的商品的设置方法,即在主表中添加一个数字控件,默认值为0,然后通过这个默认值为0的数字控件,联动上图中的聚合表,使得商品下拉框里只显示库存为0的商品,如下图所示:

 
 
设置好之后,测试结果如下图,很显然,出库表的商品下拉框里只显示了库存为0 的商品。

 



这里之所以能通过数据联动一次性设置成功,让出库表的商品下拉框里只显示库存为0的商品,那是因为,可以通过这个库存计算指标0作为联动条件,联动出了对应的库存为0的商品。说到这里就又到了上文大红字中说的那个关键处——有没有一个方法,使得,库存不为0的商品,也能同时只显示一个相同的数字,如果可以的话,就可以通过这个相同的数字联动出库存不为0的商品。

所以到此,0库存不显示的问题,就转变成了寻找这个聚会表中库存不为0商品对应的相同数值的问题。

商品入库时,如果该商品是第一次入库或者入库时该商品在库存里的数量已经为0了,那此时入库,我们给该商品赋予一个值(数值1);同理,在出库时,如果出完库,该商品的库存也为了0,那也给商品赋予一个相同的值(数值1),再让这两个值在聚合表里计算(数值1-数值1),那就可以得出,聚合表里商品对应的这个赋予值的计算结果只有两种可能,即库存为0时,赋予值计算指标计算结果为0;库存不为0时,计算结果为数值1,那由此就可以通过这个数值1来联动出所有库存不为0的商品。

如果我们设定这个赋予的值为1,就可以在人库表子表单的商品字段后添加数字控件,并对其写函数,使得当某商品入库时,原有库存如果为0(含第一次入库时,商品库存为空),此时该数字控件的值为1,否则为0,函数书写如下:

入库详情.赋予值数字1=
IF(入库详情.库存==0,1,IF(ISEMPTY(入库详情.库存)==1,1,0))


如下图所示:





同样,在出库表子表商品字段后也添加数字控件,并对其写函数如下:

出库详情.赋予值数字1=
IF(出库详情.库存-出库详情.出库数量==0,1,0)

 

 


 



然后再在库存聚合表中添加计算指标,如下:





聚合表整体预览如下:





最后在出库表中添加数字控件,默认值为1,通过这个数字控件联动到聚合表里的辅助数字控件计算指标,如下所示:








由此即可做到,出库时商品下拉框里只显示库存不为0的商品。

如下出入库表单外链展示所示:

外链测试
入库表外链:https://tex1054z67.jiandaoyun.com/f/5fb8afdce0e6e20007153119
出库表外链:https://tex1054z67.jiandaoyun.com/f/5fb8afdce0e6e2000715311c
由于聚合表不能像表单外链那样直接展示给前端,为了让大家及时的看到聚合表里的数据变化情况,这里做一个调用聚合表数据的数据表,下面这个是外链:https://jiandaoyun.com/r/5ba367770767526414472822

总结:

  • 此方法能解决0库存不显示问题的关键所在是对入库前和出完库这两个时间点上商品库存数量的判断,并给判断结果赋予了一个特定的值。即商品入库时如果库存为0则赋予值1,否则赋予值0,;出库完成时,如果商品库存为0,赋予值1,否则为0,再让这个赋予值在入库出库表多表关联的聚合表里做计算,通过这个计算的结果再来联动出库存不为0的商品。
  • 更简练的说,此方法的关键是对入库出库时商品库存是否为0的判断结果数值的计算,如果入库前商品库存不为0,出库后商品也不为0,那这种情况是不需要考虑的,需要考虑并要做判断的是入库前和出完库这两个特殊的时间点。
  • 分析到最后这个地方,可以看出,解决此问题的方法即隐藏在此问题里,0库存不显示——即如果0库存,则不显示。



下一篇博客分析,如果是多个仓库该如何实现0库存不显示,如何在本文方法的基础做变形处理。敬请关注。



点击查看作者更多博文:
1、盲人妻子的困惑——子表单自动连续编号的问题【发布时间: 2017-07-10】
2、让人又爱又恨的子表单【发布时间: 2020-10-08】
3、4种不同方法解决并发问题——函数触发机制分析【发布时间: 2017-12-05】
4、如何不借助聚合表调用子表单数据——解析一【发布时间: 2018-02-12】
5、如何确保子表添加字段值不出现重复【发布时间: 2018-03-11】
6、快速查看子表重复情况的方法一【发布时间: 2018-03-12】
7、致简道云的一封信!【发布时间: 2018-10-29】
8、快速查看子表重复情况的方法二【发布时间: 2018-03-13】
9、过滤敏感词或符号【发布时间: 2020-10-27】
10、快速准确调取上次采购价的方法【发布时间: 2018-03-18】
11、合并同类项【发布时间: 2018-03-19】
12、子表中合并同类项【发布时间: 2018-04-15】
13、如何让子表单信息分行显示在多行文本中?【发布时间: 2018-04-19】
14、如何做到快速添加子表字段值且永不会重复?【发布时间: 2018-06-23】
15、流程审批模型【发布时间: 2018-06-23】
16、流程审批节点状态数汇总模型【发布时间: 2018-10-02】
17、流程审批节点用时汇总模型【发布时间: 2018-10-03】
18、关于调库问题的分析【发布时间: 2018-09-28】
19、帮你打通子表单数字编号的任督二脉【发布时间: 2019-02-04】
20、子表单跨数据自动连续数字编号【发布时间: 2019-02-05】
21、子表单数字编号——分列连续数字编号【发布时间: 2019-02-06】
22、子表单数字编号——等差数列编号【发布时间: 2019-02-07】
23、子表单数字编号——“倒序”数字编号【发布时间: 2019-02-08】
24、头脑中的大象【发布时间: 2019-02-08】
25、如何提取成员多选字段的文本值?【发布时间: 2019-04-19】
26、不借助聚合表直接在当前子表单中实现数字汇总的一种方法【发布时间: 2019-04-19】
27、分数排名、上次采购价等问题都要用到的一个重要函数组合【发布时间: 2018-03-10】
28、解答有奖问答:子表单数字汇总的一种应用【发布时间: 2019-04-02】


作者简介:【点击查看作者社区主页】

  • 牛中伟
  • 简道云官方连续6年指定定制服务商
  • 利用简道云帮客户实施项目近300个
  • 在原简道云老社区更新发布博客44篇
  • 新老社区博客总阅读量超50万,留言1000余条
  • 其中关于子表单的一篇博客收到用户打赏金额累计超7000元
  • 关注帆软社区我的这个账号,有新博客更新,第一时间收到提醒
  • 感谢大家一路以来的认可和支持,我会再接再厉,分享更多有价值的内容
  • 如有任何简道云方面的问题,欢迎留言区留言或单独私信给我,期待与你的交流



不自谦能力概述:

 

  • 精通子表单各类复杂用法
  • 谙熟函数特性、及各种函数组合用法
  • 独创利用简道云处理多级BOM的方法
  • 深刻理解进销存系统及进销存思维模型
  • 有一定的文本书写能力,总结复盘能力
  • 较强的抽象思维能力、逻辑思维能力、统筹能力
  • 对陌生行业陌生业务有快速的信息搜集整合和学习消化能力
  • 拥有一整套成熟有效的整理系统需求文档的思想、方法和工具
  • 很多用户感觉一直解决不了的问题在我们这里可能早已不是问题
  • 了解如何制定完善的报表分析计划,并借此洞察项目业务背景和业务痛点。
  • 理解系统与企业管理的关系,对如何在企业顺利推进管理系统落地有丰富经验和独到见解。
  • 有一整套经上百大小项目锤炼过的适合简道云这类低代码工具帮助客户实施项目的流程和方法,确保系统更好实施,更快部署,更高完整度交付,确保系统更符合客户预期,甚至超预期,给客户真正带来价值!

 

 

懂简道云的冬泳高手,关注我的帆软社区账号,交个朋友!

 




编辑于 2020-11-21 11:44  

编辑于 2020-11-21 14:19  

分享扩散:

沙发
发表于 2020-11-21 22:38:26
假如入库时,库存为0,入库单加了1,这时之前的最后那个出库单删除或减少出库数了,就会造成那个数变成2,这种情况咋办?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表