• ERP/MIS系统中集成命令行式的功能调用


    做ERP/MIS的程序,界面常常是做成WinForms和ASP.NET,界面繁杂,内容多。

    我常常认为,MIS类型的程序,界面是最复杂的,不可理解的,如下图所示,物料主档的界面

    image

    这是我见过的,相当复杂的一个界面,你需要学习大量的知识,才能灵活的操作这个功能。

    比如,Userd as Product,成品,Userd as Material 物料,这2个同时打勾选中,就是半成品,如果这2个都不选,在MRP运算或是下采购单时,则要去看Item Type物料类型(标准库存,套装).

    因为参数很多,所以做成UI形式的界面,对于开发人员来说,工作量是最少的。

    如果参数不多,或是参数很少的这类型应用,是否可以做成命令行式的调用,以简化ERP的用户操作。

    举例说明,下采购单,从供应商FLEX那里购买100个Item为FLEX90183的标准件,因为是常规客户(不需要询价),可以直接下单,确定收货日期,这个采购指令可构造如下的命行来完成
    PUPOOE  ‘FLEX’, FLEX90183’,'100’,'2011/8/23’, 'US$’
    分析指令,PUPOOE是采购单的功能编码,给它传入几个参数,比如供应商FLEX,物料是FLEX90183’,数量是100,收货日期为2011/8/23,交易的货币是US$

    将这个命令输入到ERP系统的命令控制台中,系统于是下采购单,生成采购指令。这个过程不需要的UI界面来操作。

    这是一种简化的情况,没有考虑到新客户,因为新客户要确定采购价格才能下单购买。

    再举例ERP系统中,不需要操作界面,就可以完成的一些功能
    Item Cost Rollup  成本上卷,用于更新物料清单的成本
    MRP Computation  物料需求计算
    Period-End Process  期末处理,过帐传票,月结,更新记帐期间
    Data Initialization/Archiving 数据初始化/存档
    Reconciliation(Account,Customer,Item,Vendor) 数据重核算(帐户,客户,物料,供应商)
    对于Purchasing/Sales/Production中的每个功能,他们的取消(cancel)功能,都可以做成命令行调用
    比如,取消JE000076的工作单(PRPMJC),命令是PRPMJC ‘JE000076’,
    取消PO000237的采购单(PUPOOC),命令是PUPOOC ‘PO000237’
    由此可见,复于UI表现的MIS/ERP系统,也有大量的地方,可以用命令行来完成的工作。

    命令行处理的好处

    我能找到的很好的理由,就是命令行式的操作,可以批处理。把各个命令,存入一个预处理文件中,可以在晚上或是系统不忙时,批次处理。比如MRP运算通常都会选在凌晨时计算。等我们早上到公司,结果已经计算好了,报表也通过自动生成模块,发送到我们的邮件中。另外,节省UI资源,节省内存,这是肯定的,因为不需要GDI+来绘制大量的界面元素。


    如何实现需要的命令行处理程序

    功能上的需求

    1   命令解析功能,可以解析常见的功能,以及它的命令行调用,比如

    命令是PUPOOC ‘PO000237’ ,要能识别功能编码是PUPOOC (Order Cancellation),传入的参数是采购单编号

    对于不传入任何参数的PUPOOC 命令,则启动这个功能,等待用户的下一步操作。

    2   可以支持外壳命令的调用,常见的CD/MD/CLS命令要能支持。

    3   效果上,同CMD窗口的样式,给人的感觉就是来执行命令的

    4   支持/help /?这种命令帮助,这样可以减少很多查找手册的时间,让软件使用更加方便


    实现效果
    image

    如图,当前正要执行的命令是PUPOOC ‘PO000237’ ,翻译成文字就是取消PO000237的采购单,它的上面有几行内容,是执行了DIR命令的效果。
    这个控件来源于CodeProject上的一篇为ShellControl的文章,请到CodeProject上下载控件源代码,然后添加自己的命令处理解析器。

    把这些命令保存成一个文本文件,传入到这个功能中,可以实现批处理的功能,比如有如下的一批命令
    PRPMJC ‘JE000076’
    PRPMJC ‘JE000079’
    PUPOOC ‘PO000237’
    PUPOOC ‘PO000239’

    ……

    再来看,PUPOOC ‘PO000239’ 命令的解析。这里,需要写一个定制的命令解析工具,把参数按照约定的顺序,传入到功能中去。还需要有一个定时调度程序,在指定的时间,调用功能,执行外壳命令。
    这两者的配合,才会给ERP/MIS系统带来威力巨大的改善。

    总结一下,需要做的几个主要组件
    1 外壳控件 ShellControl
    2 命令解析程序,分两种类型,ERP/MIS的命令,OS的外壳命令
    3 调度程序 ,加载批处理命令,在指定时间执行外壳命令

  • 相关阅读:
    使用SetTimer函数为Delphi的Win控件设置时钟
    关于QT版本的安装配置的一些困惑
    Linux设备驱动开发详解-Note(11)--- Linux 文件系统与设备文件系统(3)
    邪恶的C++
    TControl的主要功能研究(属性,函数,事件)
    Delphi研究,对全局变量函数与OOP编程关系的一点体会 good
    QT 相关资源(书籍、论坛、博客等。。。)整理
    VC UI界面库大集合
    .net程序员求职简历
    C++著名程序库的比较
  • 原文地址:https://www.cnblogs.com/JamesLi2015/p/2133268.html
Copyright © 2020-2023  润新知