当前位置:首页 » 新媒体运营 » 正文

mrp表格,实例分享:手把手教你做MRP运算报表

5715 人参与  2022年06月01日 10:55  分类 : 新媒体运营  评论

之前我有一篇关于计划需求怎么计算的文章讲到,需求公式就是:结存数量+预计入库量-预计出库量=可用数量,如果可用数量为正数,则需求计划数量等于,如果为负数,则为需求计划数量等于负可用数量的正数

根据这个逻辑,我们就云上报表就可以构建出这样的报表了,见下图中的计划数量列就是计算结果:

实例分享:手把手教你做MRP运算报表

(基于用友UV.产品示例演示)

其实真正一个复杂的MRP运算过程是很复杂的,但是它的基础结构就是这么简单,只是在运算的过程中要做各种计划因素考虑。为了让大家理解MRP,快速运用云上报表搭建一个完整的MRP运算报表,我们今天先从基础讲起,然后一步步引导大家往复杂里面去探讨。

首先,我们来看看上面的表结构,包含了哪几个信息?

>物料信息:物料编码、物料名称、规格型号

> 变化的数据:结存数量、预计入库量、预计出库量、可用数量、计划数量

上面的信息中,我们知道要从ERP库中获取物料档案表、现存量表、预计入库汇总表、预计出库汇总表,而可用数量与计划数量是通过公式来实现的。

、物料信息表

下面是UERP中的物料档案构成表,为了让零基础的看得懂,我直接把字段定义为中文了。当然你得学学简单的SQL语法,像下面" SELECT * FROM 表名 "就是一个简单SQL表查询的语法。


select cinvcode as 物料编码,
cinvname as 物料名称,
cinvstd as 规格型号 
from inventory

上面语句复制到下面的报表内容里面,点调试效果就是下表的样子。

实例分享:手把手教你做MRP运算报表


、现存量表

这个是U中的现存量表,里面只要一个物料编码段和结存数量就可以。

SELECT cInvCode AS 物料编码, 
CAST(iQuantity AS decimal(, )) AS 结存数量FROM CurrentStock

、预计入库量

预计入库量包含了很多种数据,我们只拿一个采购入库在途的做示例。下面是通过【采购订单数量-已到货数量-已入库数量】,然后进行汇总得出某个物料所有采购订单在途的总数。

SELECT cinvcode as 物料编码,sum(CAST(isnull(iQuantity,) - isnull(iReceivedQTY,) - 
isnull(iArrQTY,) AS decimal(, ))) AS 采购在途数量from po_podetails 
group by cInvCode

、预计出库量

预计出库量跟预计入库的概念一样,也只拿一个生产订单未领量做示例。下面是通过【生产订单应领数量-已领数量】,然后进行汇总得出某个物料所有生产订单未领用的总数。

SELECT InvCode as 物料编码,sum(CAST(isnull(Qty,) - isnull(IssQty,) AS decimal(, ))) AS 生产未领数量from v_mom_moallocate 
group by InvCode

有了上面这四个来源信息,我们接下来就是要怎么把四种信息集合到一个表里面,下面的语句就是通过表与表关联关系给串起来的。

select cinvcode as 物料编码,
cinvname as 物料名称,
cinvstd as 规格型号,isnull(现存量表.结存数量,) as 结存数量,isnull(采购在途表.采购在途数量,) as 预计入库量,isnull(生产预约表.生产未领数量,) as 预计出库量,isnull(现存量表.结存数量,)
+isnull(采购在途表.采购在途数量,)
-isnull(生产预约表.生产未领数量,) as 可用数量,
(case when isnull(现存量表.结存数量,)
+isnull(采购在途表.采购在途数量,)
-isnull(生产预约表.生产未领数量,)> then   else - (isnull(现存量表.结存数量,)
+isnull(采购在途表.采购在途数量,)
-isnull(生产预约表.生产未领数量,)) end) as 计划数量from inventory as 物料表left join (SELECT cinvcode as 物料编码,CAST(iQuantity AS  decimal(, )) AS 结存数量 
FROM  CurrentStock) As 现存量表 
on 物料表.cInvCode = 现存量表.物料编码left join (SELECT cinvcode as 物料编码,sum(CAST(isnull(iQuantity,) - isnull(iReceivedQTY,) 
- isnull(iArrQTY,) AS decimal(, ))) AS 采购在途数量from po_podetails group by cInvCode) as 采购在途表 
on 物料表.cInvCode = 采购在途表.物料编码left join (SELECT InvCode as 物料编码,sum(CAST(isnull(Qty,) 
- isnull(IssQty,) AS decimal(, ))) AS 生产未领数量from v_mom_moallocate group by InvCode) as 生产预约表 
on 物料表.cInvCode = 生产预约表.物料编码

把上面这段语句复制到云上报表内容中,就是我们要的结果了。

实例分享:手把手教你做MRP运算报表


这就是MRP运算报表的简单实现模式,这个表又可以用作查库存,还可随时掌握物料的动态信息,赶紧跟我行动起来,用云上报表帮助我们实现高效工作。云上报表完全免费,有兴趣学习和使用的关注我,私信留下邮件地址,就可以得到。

关于MRP的深度应用报表,后面还会继续分享,直到教大家做出一个自己用得舒服的管理工具。

特别提示】:上面用的是用友UV.的ERP做的示例,其他ERP产品只要有了数据字典,一样可以实现同样的效果。ERP原理数据都是一样的,只不过界面与操作不同而已。

本文链接:https://www.woshiqian.com/post/120788.html

百度分享获取地址:https://share.baidu.com/code
mrp表格  

我是钱微信/QQ:5087088

广告位、广告合作QQ:5087088

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

       

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。