zoukankan      html  css  js  c++  java
  • 【项目实施随笔】生产BOM

    这些天一直忙于基础BOM和生产BOM的创建和维护以及生产BOM维护流程的制定。
    生产BOM是至关重要的一个文档,一方面销售对某些生产的零部件有特别的要求,在正式开工之前他们需要看生产BOM,另一方面生产BOM也要用于指导采购去采购,当然生产BOM更是指导生产领料的唯一依据。
    鉴于生产BOM的重要性,把AX的生产BOM改造成适合自己需求的东西就很正常了。
    1.修改 估计 逻辑
    AX生产订单的估计主要是根据基础BOM得到生产产成品需要的数量。
    a.对于行类型是物料的,根据基础BOM算出数量。
    b.对于行类型是生产的,根据基础BOM算出数量,并生成子生产订单.
    c.对于行类型是虚拟的,根据该虚拟物料的BOM组成展开.
    d.对于行类型是供应商的,生成采购订单。
    对于这四种类型的生产BOM行,其他的没有问题,主要是在直接生成采购订单和生产订单上的考虑,由于这个项目的基础BOM和生产BOM会有比较大的差异,在生成相应的采购订单和生产订单前用户需要做一些修改,当然AX现在的逻辑是在生成后,如果修改了生产BOM,可以再运行一次估计,这样它会自动更新与之关联的采购订单和生产订单。但是我更倾向于把生产BOM修改完成,所有相关人员都取得一致意见后再生成采购订单和生产订单,如果开始就生成了相应的采购订单,这样反反复复,各个相关部门都不知道什么时候是最终版本了。
    这个修改也比较容易,找到类ProdUpdCostEstimation的costEstimateItems方法,注释掉

    if (prodBOM.InventRefTransId)
                    
    this.updateSub(_prodTable,prodBOM);
                
    else
                    
    this.createSub(_prodTable,prodBOM,inventTable);

    这段代码。
    当然在生产参数里加个开关是更AX的一种做法,让用户去选择是否自动生成。
    然后把updateSub方法和createSub这两个方法拎出来单独做个类,在窗体上加个按钮,让用户在生产BOM确认为最终版本后,点击生成相应的采购订单和生产订单。
    2.生产BOM的状态和版本控制
    既然生产BOM需要各个部门协调修改,这样就应该增加一个状态来表示生产BOM是否修改完毕,修改完毕后各个部门才能根据这个最终版本的生产BOM执行各自的动作。各个部门可能生产BOM都有自己的要求,如果同时修改难免产生版本混乱的问题,还好我现在做的这个项目只有两个人会参与到生产BOM的修改,我要求以生产经理为主,在他修改完成后交由采购部门查看,如果有问题,他们两个在一起讨论修改。至于更复杂的情况,就应该有一个专门负责生产BOM维护的人,汇总各个部门的意见进行统一维护了。
    3.产品信息的传递
    由于产品是按单生产的,所以很多物料都是定制采购的,只用物料编码和名称以及文字描述,很难描述清楚,所以有一些图纸信息需要给供应商才能把问题说清楚。既然我们设计的是以生产BOM为中心,那么这些图纸信息显然要附加到生产BOM上,但最终还是要打印出来给供应商看,为了便于查看,需要把附加到生产BOM的图纸传递到采购订单上然后打印,要把附加到生产BOM上的文件传递到采购订单行,非常简单,只需要一行代码就可以了。

    //Copy Docus
    Docu::copy(_prodBOM,purchLine);

    至于打印图纸给供应商,也比较简单,做一张报表,添加一个BitMap类型的字段,在打印采购订单的时候,顺便把这张报表打印出来就可以了。打印采购订单的代码在类PurchFormLetter_PurchOrder的printJournal方法,我们可以增加一个方法在打印采购订单后增加图纸报表的打印:

    Code

    printItemImage()的代码如下:

    Code

    至于报表的代码最主要的是一个fetch和display方法:
    fetch方法,读取图纸记录:

    Code

    display方法读取图纸信息,打印:

    Code

    差不多就这些了,只是一个开发过程的记录,没什么技术含量,供讨论。

  • 相关阅读:
    Merge Intervals
    Merge k Sorted Lists
    Sqrt(x)
    First Missing Positive
    Construct Binary Tree from Inorder and Postorder Traversal
    Construct Binary Tree from Preorder and Inorder Traversal
    Distinct Subsequences
    Reverse Nodes in k-Group
    Jump Game II
    Jump Game
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/1522024.html
Copyright © 2011-2022 走看看