关于调库问题的分析(简道云开发必备高阶技能)

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

前言:

  • 本文是2018-09-28发布在原简道云老社区的第24篇文章,发布在帆软社区的第18篇文章,以后还有更多(技术类、管理类、理论类),为了不迷失不迷路,【请收藏这个链接集合】,以后所有博客都会汇集于此,敬请期待!
  • 写这篇文章的时候,简道云还没有智能助手功能,如何在没有智能助手的情况下方便快捷的实现调库功能是一个在面对进销存系统时必须要解决的问题,当时很多人的做法是分别填写两个表单,先填写某个仓库的产品出库表,再打开入库表填写另一个仓库的入库表,这样操作起来不但麻烦,而且很容易出错。本文提出的解决方法就很好的解决了这个问题,而且让我们更好的理解了子表单的功能。
  • 即使后来简道云更新了智能助手,很多用户依然使用文中的方法解决调库问题,是因为智能助手多宝贵,能不用它就解决的问题就尽量不用它。
  • 本文撰写时还没有更新子表单整体联动,所以也没法利用我更来那篇“子表行数随主表数字字段的变化而变化”的方法,让本文的方法做进一步优化。感兴趣的朋友,可以结合子表序号整体联动的方式,自己做下尝试,让本文的方法更加智能。

 




关于调库问题的分析



进销存系统中,当仓库较多,货物需要在仓库间来回调动时,就需要用到调库功能。有的道友在解决调库问题时没设计专门的调库表单,而是结合了原有的出库表和出库表来做,比如,如果需要从甲仓库往乙仓库调拨货物,就先打开出库表,先选择从甲仓库出库目标货物,然后再打开入库表,选择对等货物往乙仓库入库,这样看起来实现的逻辑没有问题,但实际使用中不方便操作,而且影响效率,比如甲仓库出库的货物品类、规格、颜色、数量,价格等,都必须与入库到乙仓库货物的物品品类、规格、颜色、数量、价格等都完全相等,否则就很容易出现误差,特别是当调库的货物种类数量比较多时,必须反复一一核验,比较麻烦。

由此可见,进销存中专门的调库功能是必不可少的,下面就介绍一种比较符合实际的使用习惯,而且操作简便的调库功能。

按我们正常的操作习惯,调库是不是应该如下图所示的控件来操作?









很显然,如上图,调库操作人员只需选择调出门店和调入门店,调库产品清单的子表单里再逐一添加需要调库的产品信息就可以了,只需这样简单的操作就能实现相应门店货物数量的对等变化,这样的调库操作应该是比较理想的。

接下来需要做的就是如何只通过上图中这样简便的操作就可以实现调库门店货物的准确变化。

熟悉用简道云做进销存的道友都知道,一般情况下,我们在聚合表里做入库表和出库表多表关联时,关联字段应该是:出库门店-入库门店子表单.出库产品-子表单.入库产品,然后再在聚合计算指标里设置库存运算,库存==子表单.入库数量-子表单.出库数量。

此时由于增加了调库表,那就应该在计算库存的聚合表里添加调库表,做入库表、出库表和调库表三表关联的聚合计算,而此时理想状态下的调库表的主表单中含有了两个关于门店的控件——出库门店和入库门店的控件,同一个表中两个性质相同的控件就没法再像入库表或出库表中的门店控件那样直接在聚合表表里做关联,所以此时必须要对调库表中的这两个出库入门门店做调整。而我们又知道,主表中的数据是可以通过函数设置填充到子表单的,,而且出库门店的值和入库门店的值可以通过函数设置,填充到子表的同一字段里(同一列里),出库门店和入库门店在子表的同一列了,那样的娿就可以像出库表入库表那样直接让做门店字段的多表关联了。同样的道理,调库产品信息也可以采取类似门店的方式自动填充到子表单里,而我们又知道,入库产品信息和出库产品信息应该是完全对等的,即出库什么产品,多少数量,那对等的,入库的就应该是完全一样的信息,如果在子表中同一类数字控件里显示出库数量和入库数量的话,那二者应该互为反数,即如果为正数,另一个必为负数。
由此,我们就可以改造调库表如下外链:

调库表外链:https://tex1054z67.jiandaoyun.com/f/5c39437b854ab54755037451

先打开外链,看下整体布局,以及子表中的聚合字段和操作字段,其中聚合字段的意思是可以和入库表和出库表中相应字段做关联计算库存的字段,操作字段的意思是做调库的人打开调库表,需要手动操作的字段,这里只有调库产品和调库数量这两个字段。其他所有字段都是辅助计算聚合字段的辅助控件,其中每个控件对应的函数书写都在控件的描述信息处,先对照每个控件及对应的函数仔细熟悉一遍。

表中的聚合字段——门店、产品、数量,三个字段的值,都是通过子表“序号”用SPLIT函数分割的主表中的相应的控件的值,这里通过“产品”这一个字段的例子来说明实现的方法。



1、调库人员手动操作“调库产品”字段,由于有一个出库产品,就应该有一个入库产品,所以需要对调库产品字段做REPT函数重复2次,而分割到子表单里,需要用到分割符,这里我们用的分割符是逗号“,”,所以又必须在子表中添加一个单行文本控件,对其写函数如下:

调库清单.产品加逗号=
IF(LEN(调库清单.调库产品)>0,CONCATENATE(调库清单.调库产品,","),"")

这里之所以又用IF函数做了判断,是因为必须确保,未做调库产品操作的控件里的值是空的,以免影响后面主表中字段的集合。



2、在主表中添加“产品加逗号rept”控件,如表中那样,并对其写函数如下:

产品加逗号rept=
REPT(CONCATENATE(调库清单.产品加逗号),2)

出库产品与入库产品对等,所以需要通过REPTA函数重复双倍的产品信息。



3、再通过子表中的序号提取通过SPLIT()函数分割的“产品加逗号rept”控件值而得的数组。函数如下:
调库清单.产品=
SPLIT(产品加逗号rept,",")[调库清单.序号-



另两个聚合字段——门店和数量,实现的方法和思路和产品字段类似,可以自己逐一尝试下。



点击查看作者更多博文:
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】




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

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



不自谦能力概述:

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




 

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

 



编辑于 2020-11-26 15:23  
编辑于 2020-11-26 15:24  

分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 3关注人数 10435浏览人数
最后回复于:2022-2-22 13:52

返回顶部 返回列表