今天有网友在QQ群中提到,K 3 的 BOM的单级展开、多级展开、综合展开、单级反查、多级反查、成本BOM等几个 BOM 查询模块,它们左面板的树形窗口中,显示的物料都是“BOM编号+物料名称”,在BOM较多时,看起来不方便、查询起来也费劲,要求增加一显示项“物料代码”。
就产品来说,金蝶产品一直是这样设计的,也经历了这么多版本,显然,指望金蝶出补丁或在以后版本中改进,是没有多大希望的,毕竟,就对形菜单来说,不可能在菜单中显示过多的字段信息。
我们可以从BOM编号的编码规则方面入手。
在实施时,若企业的各产品(半成品)物料对应的产品 BOM 较少,一般情况下,我尽量建议客户考虑使用物料代码作为BOM编号。
但有几个细节性问题:
1、系统单据设置:采用系统的单据设置,K3支持“物料代码+流水号”的方式,但这个流水号是所有BOM的总流水,系统不支持单个物料BOM的流水,若用户要想实现“物料代码+单物料流水号”的方式,一种是要采取允许手工修改BOM编号的方式,但每次做BOM都得更改流水,另一种是借助触发器,可能会有一定性能影响。
2、借助修改单据模板的Action实现单据编号=物流代码:
因为BOM单还是工业老单,不像BOS单据可以直接通过BOS平台设置单据事件,工业老单的单据自定义平台,除了数量、金额计算公式之外,目前是没有办法维护Action,实现事件设置和修改的,且按金蝶的产品规划,相关的工业老单即将就要淘汰、转换成BOS单据,估计也就最近几版 K3 产品的事情了。现在产品功能重点的实现,都移到了BOS上去了。
有需求,事情还得做。
对于这个需求代们只能借助SQL在后台修改BOM单“BOM编号”的Action。
在 SQL Server 查询分析器中执行如下代码:
UPDATE ICTemplate SET FRelationID='FItemID',FAction='.,FNumber' WHERE FFieldName='FBOMNumber' AND FID='Z01'
其中:FBOMNumber 是BOM单“BOM编号”的模板字段名,
FID='Z01' 表示单据模板是“BOM”单,若组装BOM、客户化BOM也需要如此,请补充相应的条件。
再通过单据自定义,设置《BOM单》的“产品物料代码”在“BOM编号”之前,即更改其 TAB 顺序在“BOM编号”TAB之前。
在系统的单据自定义中, BOM 编号 项 改为 手工编号,且不要系统产生流水。
现在,在录入BOM时,输入产品物料代码,即刻产生与物料代码相同的BOM编号,若在保存时提示“同号BOM已存在”,说明有该产品物料有其他 BOM 存在,此时再以“-1”、“-2”方式被充流水。
这种方式可以实现在 BOM 查询时,左面板的树形窗口中,显示物料代码,或近似物料代码,相对于单纯的“BOM+流水号”方式,要直观些。
本文算是正式作答 Eric 网友了。