随笔分类 - ERP 设计与实施
主要致力于中小企业离散制造业的ERP系统的实施、优化与二次开发。有着丰富的ERP开发和实施经验,主营产品Enterprise Solution包含进销存,工程,生产,财务模块,可有效地帮助企业进行营运策划、减低成本、如期付运和提高产品质量。
摘要:Smoke Test(冒烟测试),也称Regression Test(回归测试),是对软件的安装和基本功能的测试。一般地我们使用脚本来实现Smoke Test的自动化,可借用虚拟机的snapshot机制来保证干净的环境来进行Smoke Test,然后将测试好的程序集成到Continous build
阅读全文
摘要:管理软件中的常见代码设计模式,来自于业务上的需要,有不恰当的地方欢迎批评指正。 1 RE-TRY 重试模式 场景:在连接数据库服务器时,如果SQL Server数据库没有启动或正在启动,我们需要有一个连接重试的策略。发送邮件通知时,我们也需要在发送失败后,多次的尝试发送以保证邮件能到达目的用户。 代码参考:int maxRetry = 30; int retryInterval = 10000;...
阅读全文
摘要:为保证ERP系统的信息流准确快速的传递,需要给系统设计一个消息盒子机制。当系统中发生业务操作后,需要提醒下一个环节的操作人员,以保证ERP信息流快速准确传递。比如生产任务单(工作单,加工单,制单)过帐完成后,需要通知仓库准备材料供车间领料生产。消息盒子的界面大致如下所示: 消息盒子包含业务通知(Messages)和工作流审批(Workflow)。业务通知比如采购人员下达采购订单PO后,需要...
阅读全文
摘要:当ERP的财务模块与生产,供应链模块集成时,这些模块过帐时会产生会计凭证。如果能在产生会计凭证前可预览一下凭证,那对用户而言是一个很友好的设计。如下图所示,贷项通知单过帐前,可通过预览凭证,知晓即将产生的会计凭证。 点击预览凭证按钮,可看到即将产生的会计凭证: 为达到此目的,分享一下对系统的修改。 首先是业务单据重写按钮事件, protected override void O...
阅读全文
摘要:以微软的WF为基础,为达到ERP中的批核与通知目的,参考现有系统中的技术,在此分享其中的技巧。 先来看最终的结果,也就是下图中的工作流宿主。 在上面的工作流定义中,除工作流宿主(rehost)技术外,还需要解决规则表达式的解析难题。 .NET WF提供的规则编辑器是基于代码的,但对于一个无代码的开发环境,需要找到一种表达式的设计,解析规范。 比如,在运行时,我们需要根据当前的运行参数解析出以上...
阅读全文
摘要:在物料清单功能中,常常需要借助于外部形象的解释来更深刻的了解物料清单。比如我们在介绍物料清单时,会用下面的图表来辅助说明: 这样一来就很容易理解。而这样的图片又和ERP中物料清单本身关联不多,于是这些形象的解释性功能被放进附件中。 在新发布的ERP系统中,有以下附件管理功能改善 1 增加DWG格式的附件浏览功能。可在线查看Auto CAD 格式的附件。 在一些行业,物料清单的来...
阅读全文
摘要:在不联网的情况下,一台物理电脑安装数据库服务,VMware创建多个虚拟机,虚拟机中多个客户端并发连接到物理主机。可共用同一个物理主机的数据库,也可以测试多用户并发等问题。 1 安装微软虚拟网卡。在控制面板中打开设备管理器,选择网络适配器,点菜单栏的操作菜单项,选择添加过时硬件菜单。在英文环境下的菜单项是Action-> Add legacy hardware。 从类别中选择网络适配器,再选择...
阅读全文
摘要:查找 Lookup 窗体是一个容器,也可以把TextBox,Button也看成是一个容器,可以往容器里面添加按钮。 参考下面的实现代码,给TextBox增加查找按钮。 var btn = new Button(); btn.Size = new Size(25, txtOutputPath.ClientSize.Height + 2); btn.Location = new Point(t...
阅读全文
摘要:数据库版本控制 1) 开发版本控制。控制多人同时修改数据库产生的冲突,使用SQL Source Control 工具做版本管理。 SQL Server Management Studio支持VSS和TFS等作为数据库脚本的版本控制工具。 关于SQL Source Control,参考以下地址 htt
阅读全文
摘要:C/S架构的应用程序需要支持自动更新功能,当新版本程序发布后,正在运行的客户端能检测到新版本的程序,通知用户是否下载更新。工作以来参与过几个自动更新模块的设计与维护,撰文总结自动更新模块设计与实现。 自动更新组件主要内容 1 版本比较。旧版本如何检测到新版本,版本信息是程序集自描述的,还是用单独的文
阅读全文
摘要:权限模块是ERP系统的核心模块之一,完善的权限控制机制给系统增色不少。总结我接触过的权限模块,以享读者。 1 权限的简明定义 ERP权限管理用一句简单的话来说就是:谁 能否 做 那些 事。 文句 含义 说明 谁 部门+岗位职责 也可以不与部门岗位绑定,省略角色定义。 能否 能(True) 否(Fal
阅读全文
摘要:单据编码是ERP系统中必备的功能,用于生成各种单据的流水号,常常借助于日期时间等字符来生成一个唯一的单据号码。从软件的角度来说,就是为生成数据表的主键值(参考编号),从用户的角度来说,就是给业务单据制定编码规范。之后做到见名知意,比如销售订单号是SO201508190001,采购订单号码是PO201
阅读全文
摘要:ERP系统的单据具备标准的功能,这里的单据可翻译为Bill,Document,Entry,具备相似的工具条操作界面。通过设计可复用的基类,子类只需要继承基类窗体即可完成单据功能的程序设计。先看标准的销售合同单据界面: 本篇通过销售合同单据功能,依次讲解编程要点,供参考。 1 新增 Insert 窗体
阅读全文
摘要:Windows 10正式版发布以后,新操作系统带来了许多的变化。现在新购买的电脑安装的系统应该是Windows 10。与当初用户不习惯Windows 7,购买新电脑后第一个想做的事情就是重装成XP,估计现在的Windows 10新用户也有这种冲动(安装Windows 7)。界面方面的变化需要一些时间
阅读全文
摘要:异常处理模块是大型系统必备的一个组件,精心设计的异常处理模块可提高系统的健壮性。下面从我理解的角度,谈谈异常处理的方方面面。我的设计仅仅限定于Windows Forms,供参考。 1 定义异常类型 .NET 框架定义很多异常类型,ERP系统中根据实际的需要,我们再增加一些自定义的异常类型。 数据库访
阅读全文
摘要:根据近几年的制造业软件开发经验,以我开发人员的理解角度,简要说明功能(Feature)是如何设计与实现的,供参考。 因架构的不同,技术实现上会有所差异,我的经验仅限定于Windows Form程序。 总体功能 1 系统支持多用户。 创建一个单实例(Singleton)的会话管理器SessionMan
阅读全文
摘要:实现多国语言有许多种实现方案,无外乎是一种字符串替换技术,将界面控件的文本标签替换成相应语言的文字。.NET Windows Forms实现多国语言的方法有以下几种: 1 .NET的方案,使用资源文件 分别做三个语言的资源文件,比如String.resx,String.zh-cn.resx,Stri
阅读全文
摘要:1 定义模块和功能 执行系统功能(SAUTSF),在系统主文件(System Master File SAMF)模块中增加功能SAMFEM,Employee Master。 给有权限的用户组分配功能SAMFEM的权限,包含新增,删除,修改,打印,过帐权限,这是功能权限。 如果需要增加字段权限,比如可
阅读全文
摘要:数据审计,英语表达是Audit,是追踪数据变化的过程,记录数据变化前后的值,供参考分析。通过设置,ERP可以追踪一个表的所有字段的变化,也可以只记录指定的字段的值变化。欧美企业每年都有独立的审计部门,从总经理到下层部门员工,逐个审查过去发生的经济业务的帐面数据与实际是否一致。ERP中的审计功能,通常
阅读全文
摘要:成熟的ERP系统的界面应该都是从模板中拷贝出来的,各类功能的界面有规律可遵循。软件界面设计模式化或是艺术性的创作,我认可前者,模式化的界面客户容易举一反三,降低学习门槛。除了一些小部分的功能界面设计特殊一些,ERP绝大部分的功能的界面都相似。以我接触和设计的ERP系统,总结常见的界面设计模式,供读者
阅读全文