C#毕业设计——基于C#+asp.net+SQL server的物料管理系统(ERP)设计与实现(毕业论文+程序源码)——物料管理系统(ERP)

基于C#+asp.net+SQL server的物料管理系统(ERP)设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍 基于C#+asp.net+SQL server的物料管理系统(ERP)设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

1、项目简介

  1. ERP(Enterprise Resources Planning,企业资源计划),是指建立在信息技术应用基础上,结合系统化的管理思想,为企业决策层及员工提供决策手段的管理平台。

  2. 车间管理子系统要求根据物料需求计划,能力需求计划以及生产工艺流程制定车间作业计划,车间管理人员按车间作业计划进行调度,下达车间生产作业订单,根据产品物料清单(BOM)填写领料单安排领料,制程中不断产生生产进度报告,监控生产活动的整个过程。

  3. 本次设计采用Microsoft Visual Studio.Net 和Sql Server 作为开发工具,在客户端通过Windows 应用程序的形式来访问数据库,并对数据库进行操作。


2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:16121个字40页
包含内容:整套源码+完整毕业论文


3、关键词:

ERP 车间管理 生产任务管理 物料管理 .NET平台 SQL数据库

4、毕设简介

提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

选题背景
1.1 ERP概述
1.1.1 ERP的产生以及发展
ERP(Enterprise Resources Planning,企业资源计划),是指建立在信息技术应用基础上,结合系统化的管理思想,为企业决策层及员工提供决策手段的管理平台。

ERP系统集中信息技术与先进的管理思想於一身,成为现代企业的运行模式,反映时代对企业合理调配资源,最大化地创造社会财富的要求,成为企业在信息时代生存、发展的基石,ERP是整合了企业管理理念、业务流程、基础数据、人力物力、计算机硬件和软件于一体的企业资源管理系统。

ERP是一个庞大的管理信息系统,要讲清楚ERP原理,我们首先要沿着ERP发展的四个主要的阶段,从最为基本的六十年代时段式MRP原理讲起。

我们都知道,按需求的来源不同,企业内部的物料可分为独立需求和相关需求两种类型。独立需求是指需求量和需求时间由企业外部的需求来决定,例如,客户订购的产品、科研试制需要的样品、售后维修需要的备品备件等;相关需求是指根据物料之间的结构组成关系由独立需求的物料所产生的需求,例如,半成品、零部件、原材料等的需求。

MRP的基本任务是:⑴从最终产品的生产计划(独立需求)导出相关物料(原材料、零部件等)的需求量和需求时间(相关需求);⑵根据物料的需求时间和生产(订货)周期来确定其开始生产(订货)的时间。

MRP的基本内容是编制零件的生产计划和采购计划。然而,要正确编制零件计划,首先必须落实产品的出产进度计划,用MRPⅡ的术语就是主生产计划(Master Production Schedule,MPS),这是MRP展开的依据。MRP还需要知道产品的零件结构,即物料清单(Bill Of Material,BOM),才能把主生产计划展开成零件计划;同时,必须知道库存数量才能准确计算出零件的采购数量。因此,基本MRP的依据是:⑴主生产计划(MPS);⑵物料清单(BOM);⑶库存信息。

60年代时段式MRP能根据有关数据计算出相关物料需求的准确时间与数量,但它还不够完善,其主要缺陷是没有考虑到生产企业现有的生产能力和采购的有关条件的约束。因此,计算出来的物料需求的日期有可能因设备和工时的不足而没有能力生产,或者因原料的不足而无法生产。同时,它也缺乏根据计划实施情况的反馈信息对计划进行调整的功能。

正是为了解决以上问题,MRP系统在七十年代发展为闭环MRP系统。闭环MRP系统除了物料需求计划外,还将生产能力需求计划、车间作业计划和采购作业计划也全部纳入MRP,形成一个封闭的系统 1.闭环MRP的原理与结构 现MRP系统的正常运行,需要有一个现实可行的主生产计划。它除了要反映市场需求和合同订单以外,还必须满足企业的生产能力约束条件。因此,除了要编制资源需求计划外,我们还要制定能力需求计划(CRP),同各个工作中心的能力进行平衡。只有在采取了措施做到能力与资源均满足负荷需求时,才能开始执行计划。

而要保证实现计划就要控制计划,执行MRP时要用派工单来控制加工的优先级,用采购单来控制采购的优先级。这样,基本MRP系统进一步发展,把能力需求计划和执行及控制计划的功能也包括进来,形成一个环形回路,称为闭环MRP。

闭环MRP系统的出现,使生产活动方面的各种子系统得到了统一。但这还不够,因为在企业的管理中,生产管理只是一个方面,它所涉及的仅仅是物流,而与物流密切相关的还有资金流。这在许多企业中是由财会人员另行管理的,这就造成了数据的重复录入与存贮,甚至造成数据的不一致性。于是,在八十年代,人们把生产、财务、销售、工程技术、采购等各个子系统集成为一个一体化的系统,并称为制造资源计划(Manufacturing Resource Planning)系统,英文缩写还是MRP,为了区别物流需求计划(亦缩写为MRP)而记为MRP II。MRPⅡ的基本思想就是把企业作为一个有机整体,从整体最优的角度出发,通过运用科学方法对企业各种制造资源和产、供、销、财各个环节进行有效地计划、组织和控制,使他们得以协调发展,并充分地发挥作用。MPR II包含了计划的一贯性与可行性、管理的系统性、数据共享性、动态应变性、模拟预见性与物流、资金流的统一等特点。

进入90年代,随着市场竞争的进一步加剧,企业竞争空间与范围的进一步扩大,80年代MRPⅡ主要面向企业内部资源全面计划管理的思想逐步发展为90年代怎样有效利用和管理整体资源的管理思想,ERP(Enterprise Resource Planning)——企业资源计划也就随之产生。ERP是在MRP II的基础上扩展了管理范围,给出了新的结构。

ERP与MPR II在许多方面都有差别:在资源管理范围方面,MRP II主要侧重对企业内部人、财、物等资源的管理,ERP系统在MRP II的基础上扩展了管理范围,它把客户需求和企业内部的制造活动、以及供应商的制造资源整合在一起,形成企业一个完整的供应链并对供应链上所有环节如订单、采购、库存、计划、生产制造、质量控制、运输、分销、服务与维护、财务管理、人事管理、实验室管理、项目管理、配方管理等进行有效管理;在生产方式管理方面,MRP II系统把企业归类为几种典型的生产方式进行管理,如重复制造、批量生产、按订单生产、按订单装配、按库存生产等,对每一种类型都有一套管理标准。而在80年代末、90年代初期,为了紧跟市场的变化,多品种、小批量生产以及看板式生产等则是企业主要采用的生产方式,由单一的生产方式向混合型生产发展,ERP则能很好地支持和管理混合型制造环境,满足了企业的这种多角化经营需求;在管理功能方面,ERP除了MRP II系统的制造、分销、财务管理功能外,还增加了支持整个供应链上物料流通体系中供、产、需各个环节之间的运输管理和仓库管理;支持生产保障体系的质量管理、实验室管理、设备维修和备品备件管理;支持对工作流(业务处理流程)的管理;在事务处理控制方面的,MRP II是通过计划的及时滚动来控制整个生产过程,它的实时性较差,一般只能实现事中控制。而ERP系统支持在线分析处理OLAP(Online Analytical Processing)、售后服务即质量反馈,强调企业的事前控制能力,它可以将设计、制造、销售、运输等通过集成来并行地进行各种相关的作业,为企业提供了对质量、适应变化、客户满意、绩效等关键问题的实时分析能力;此外,在MRP II中,财务系统只是一个信息的归结者,它的功能是将供、产、销中的数量信息转变为价值信息,是物流的价值反映。而ERP系统则将财务计划和价值控制功能集成到了整个供应链上;在跨国(或地区)经营事务处理方面,现在企业的发展,使得企业内部各个组织单元之间、企业与外部的业务单元之间的协调变得越来越多和越来越重要,ERP系统应用完整的组织架构,从而可以支持跨国经营的多国家地区、多工厂、多语种、多币制应用需求;在计算机信息处理技术方面,随着IT技术的飞速发展,网络通信技术的应用,使得ERP系统得以实现对整个供应链信息进行集成管理。ERP系统采用客户/服务器(C/S)体系结构和分布式数据处理技术,支持Internet/Intranet/Extranet、电子商务(E-business、E-commerce)、电子数据交换(EDI)。此外,还能实现在不同平台上的互操作。

1.1.2 ERP的实施过程
在引入ERP系统的过程中,实施是一个极其关键也是最容易被忽视的环节。因为,实施的成败最终决定着ERP效益的充分发挥。例如,据不完全统计,我国目前已有近千家企业购买了MRP-II/ERP软件。而在所有的ERP系统应用中,存在三种情况:按期按预算成功实施实现系统集成的只占10%- 20%;没有实现系统集成或实现部分集成的只有30%-40%;而失败的却占50%。并且在实施成功的10%-20%中大多为外资企业。如此令人沮丧的事实无疑向我们表明: ERP实施情况已经成为制约ERP效益发挥的一大瓶颈因素。由此,我们得出:企业的ERP项目只有在一定科学方法的指导下,才能够成功实现企业的应用目标。一个典型的ERP实施进程主要包括以下阶段:

1.项目的前期工作(软件安装之前的阶段)
这个阶段非常重要,关系到项目的成败,但往往为实际操作所忽视。这个阶段的工作主要包括:
领导层培训及ERP原理的培训。主要的培训对象是企业高层领导及今后ERP项目组人员,使他们掌握ERP的基本原理和管理思想。这是ERP系统应用成功的思想基础。因为只有企业的各级管理者及员工才是真正的使用者,真正了解企业的需求,只有他们理解了ERP,才能判断企业需要什么样的ERP软件,才能更有效率的运用ERP。

2.企业诊断。由企业的高层领导和今后各项目组人员用ERP的思想对企业现行管理的业务流程和存在的问题进行评议和诊断,找出问题,寻求解决方案,用书面形式明确预期目标,并规定评价实现目标的标准。这里会用到我们在下一个部分里将要介绍的业务流程重组方法。

3.需求分析,确定目标。企业在准备应用ERP系统之前,还需要理智地进行立项分析。

4.实施准备阶段(包括数据和各种参数的准备和设置)
这一阶段要建立的项目组织和所需的一些静态数据可以在选定软件之前就着手准备和设置,图中用向左延伸到前期工作阶段来表示。在这个准备阶段中,要作这样几项工作:
项目组织。ERP的实施是一个大型的系统工程,需要组织上的保证,如果项目的组成人选不当、协调配合不好,将会直接影响项目的实施周期和成败。项目组织应该由三层组成,而每一层的组长都是上层的成员。

(1)领导小组,由企业的一把手牵头,并与系统相关的副总一起组成领导小组。这里要注意的是人力资源的合理调配,像项目经理的任命、优秀人员的发现和启用等。
(2)项目实施小组,主要的大量的ERP项目实施工作是由他们来完成的,一般是由项目经理来领导组织工作,其他的成员应当由企业主要业务部门的领导或业务骨干组成。
(3)业务组,这部分工作的好坏是ERP实施能不能贯彻到基层的关键所在。每个业务组必须有固定的人员,带着业务处理中的问题,通过对ERP系统的掌握,寻求一种新的解决方案和运作方法,并用新的业务流程来验证,最后协同实施小组一起制定新的工作规程和准则。还包括基层单位的培训工作。

数据准备。在运行ERP系统之前,要准备和录入一系列基础数据,这些数据是在运用系统之前没有或未明确规定的,故需要做大量分析研究的工作。包括一些产品、工艺、库存等信息,还包括了一些参数的设置,如系统安装调试所需信息、财务信息,需求信息等等。
系统安装调试。在人员、基础数据已经准备好的基础上,就可以将系统安装到企业中来了,并进行一系列的调试活动。

软件原型测试。这是对软件功能的原型测试(prototyping),也称计算机模拟(computer pilot)。由于ERP系统是信息集成系统,所以在测试时,应当是全系统的测试,各个部门的人员都应该同时参与,这样才能理解各个数据、功能和流程之间相互的集成关系。找出不足的方面,提出解决企业管理问题的方案,以便接下来进行用户化或二次开发。

5.模拟运行及用户化
这一阶段的目标和相关的任务是:
模拟运行及用户化。在基本掌握软件功能的基础上,选择代表产品,将各种必要的数据录入系统,带着企业日常工作中经常遇到的问题,组织项目小组进行实战性模拟,提出解决方案。模拟可集中在机房进行,也称之为会议室模拟(conference room pilot)。

制定工作准则与工作规程。进行了一段时间的测试和模拟运行之后,针对实施中出现的问题,项目小组会提出一些相应的解决方案,在这个阶段就要将与之对应的工作准则与工作规程初步制定出来,并在以后的实践中不断完善。

验收。在完成必要的用户化的工作、进入现场运行之前还要经过企业最高领导的审批和验收通过,以确保ERP的实施质量。

6.切换运行
这要根据企业的条件来决定应采取的步骤,可以各模块平行一次性实施,也可以先实施一两个模块。在这个阶段,所有最终用户必须在自己的工作岗位上使用终端或客户机操作,处于真正应用状态,而不是集中于机房。如果手工管理与系统还有短时并行,可作为一种应用模拟看待(live pilot),但时间不宜过长。

7.新系统运行
一个新系统被应用到企业后,实施的工作其实并没有完全结束,而是将转入到业绩评价和下一步的后期支持阶段。这是因为我们有必要对系统实施的结果作一个小结和自我评价,以判断是否达到了最初的目标,从而在此基础上制定下一步的工作方向。还有就是由于市场竞争形势的发展,将会不断有新的需求提出,再加之系统的更新换代,主机技术的进步都会对原有系统构成新的挑战,所以,无论如何,都必须在巩固的基础上,通过自我业绩评价,制定下一目标,再进行改进,不断地巩固和提高。

ERP的实施过程中这些阶段是密切相关的,一个阶段没有做好,决不可操之过急进入下一个阶段,否则,只能是事倍功半。值得注意的是,在整个实施进程中,培训工作是贯彻始终的。我们只是对第一个阶段的领导层培训和MRP II原理培训作了详细的介绍。而那些贯穿于实施准备、模拟运行及用户化、切换运行、新系统运行过程中的有关培训,如软件产品培训、硬件及系统员培训、程序员培训和持续扩大培训也都是至关重要的。这个道理,应该说是显而易见的。因为只有员工才是系统的真正使用者,只有他们对相关的ERP软件产品及所要求的硬件环境有了一定的了解,才能够保证系统最终的顺利实施和应用。

1.1.3 ERP在中国的应用现状
我国特大型、大型工业骨干企业有5000多家,年营业收入5000万元人民币以上的企业有30多万个,目前已经实施或准备实施ERP的特大型、大型骨干企业约1000家,中小型企业约3000家。尽管在机械、冶金、制药、制衣、电子、石油、化工、烟草、出版、商贸等行业都有少量企业应用了ERP,但成行业的大面积推广应用还很少,在银行、证券、能源、交通等重要行业的ERP应用也才刚刚开始,从总体上来说我国ERP应用还处在起步阶段。

应该说我国的ERP市场潜力巨大,但令人忧虑的是,我国目前的ERP软件市场比较混乱,主要表现在产品价格和项目管理上。个别软件厂商利用用户不清楚1元人民币与100万元人民币的ERP软件之间有什么区别,不清楚除了软件安装、实施外,还必须有什么相关服务,在报价中存在恶性竞争,有意压低价格、把水搅浑。在软件实施的过程中,有的软件厂商为了强占市场,过于迁就企业提出的不合理要求,在程序设计过程中固化了企业原有的落后流程。国外ERP软件则存在本地化程度不够的问题,其软件不完全符合中国的制度和文化,费用昂贵,一般企业难以承受,而且有些售后服务不够及时。从社会环境来看,我国政府和有关部门对企业管理落后的严惩性认识不足,社会中介机构不健全,企业管理及住处化咨询机构太少,不能对企业信息化建设进行正确的引导。

因此,将企业诊断、需求调研和分析、应用总体方案设计和招标、ERP实施顾问和监理、应用人员培训等服务从ERP软件的价格中分离出来,势在必行。根据用户的基础和自有的技术力量,选择不同等级、不同方式的专业服务,并另行付费,不仅可以提高软件价格的透明度,而且可以保证ERP软件实施的成功率,使用户、软件开发商和中介服务机构三方都受益。

对于准备信息化的企业来说,应该要做到以下几点:首先狠抓企业基础管理,企业信息化,特别是ERP项目的成功实施,首先就要强调企业的基础管理。因为ERP项目的实施,就是利用技术手段将先进的企业管理思想融入企业经营管理中,而在这个过程中要实现财务、物流、流程控制、成本核算、客户关系、供应链衔接等环节的科学管理,以及实现各种量化指标,就必须夯实企业的基础管理。只有这样才能利用ERP系统,最大限度地调配企业内外资源,真正实现管理创新;其次信息化必须要结合国情,我国大而全、小面全的企业很多,ERP软件必须既要适应流程制造,又要适应离散制造,不能一个企业上两套软件。国内一些大型企业集团,形式上统一,但下属企业的财务、资金、采购和制度管理各不相同,要实现统一又无法一步到位。国情化的ERP软件必须可以一次全面实施,也可分步实施;再次要注重行业的差异,不同行业的ERP软件所需要的功能和重点不完全一样,在我国同一行业不同所有制、不同地区、甚至不同的企业领导对ERP软件的要求也可能不一样。尽管ERP软件可以在用户现场进行二次开发和界面个性化定制,但如果应用目标、数据结构都要改动,会比较困难,那样不仅增加了实施的难度和成本,还会造成实施拖延甚至失败;最后还要注意进行成功率和效益评价,判断ERP成功与否要实行绩效评价。比如企业的经济效益和竞争力是否提高了?管理模式、组织结构和业务流程是否有所创新?资源利用、信息惧和客户关系是否有所改善?这些综合指标还要细化为可考核的具体指标,例如利润率、成本费用利润率、流动资金周转率、存货周转率、全员劳动生产率、计划招待准确率、交货准时率、市场优质率等直接经济指标。如果是企业集团还要看总体上的间接经济效益。例如集团利润率、总资产周转率、总资产报酬率,以及资金、设备、人员、技术、采购、供应集中管理的效益情况。

对于我国的ERP应用而言,现在还存在着很多的误区,例如:有人认为ERP软件要有固定的核心功能,企业类型的多样和面临困难的差异性,决定了ERP软件针对不同用户的不同时期应该突出不同的功能,而没有一个固定的核心功能;也有人认为B/S(浏览器/服务器)方式将取代C/S(客户机/服务器)方式,从ERP软件开发实践看,要求100%的B/S方式将造成响应速度慢、服务器系统开销大、通信带宽要求高、安全性差、总投资增加等问题,而且复杂的应用B/S方式目前无法解决,还要去开发或利用别的中间件。从实际需求和我国的通信现状看,还是B/S和C/S结合使用比较合理;另外ERP与电子商务的关系也是一个容易存在误区的地方,电子商务是一种先进的商务模式和计算机应用环境,任何企业个体只能随着环境的发展开展电子商务应用,不可能超前或独立发展。因此,与ERP应用结合是最好的方式;ERP与CRM、SCM的关系也存在着争论,客户关系是企业的外部资源,实现与新老客户双向交互式的信息共享是客户关系管理(CRM)的基础,因此,CRM是ER功能范围的外延。供应链管理(SCM)是企业集团、企业聪明、行业内或跨行业范畴的信息共熟,必须遵守若干共同的标准和规范,所以不是单个企业所能发展的。ERP软件的发展应该具备支持SCM的功能,SCM则应该考虑与不同厂商ERP软件的连接。因此,CRM、SCM是企业信息管理应用的新发展,并不存在CRM、SCM比ERP更先进、谁了供销谁的问题,更应该赶时髦、炒概念。不过,目前许多ERP软件已经包含了CRM、SCM的功能。

1.1.4 ERP的发展趋势
省略

1.2 ASP.NET概述
ASP的全称是Active Server Pages,即活动服务器页面,以前的互联网全部是由静态的HTML页面组成,这样更新网站内容时需要制作大量的HTML页面,增大了工作量。但是有了ASP以后,我们就能够根据不同的用户,在不同的时间向用户显示不同的内容,使网站的更新变的简单。

省略

1.3 ADO.NET概述
ADO.NET是对Microsoft ActiveX Data Objects (ADO)一个跨时代的改进,它提供了平台互用性和可伸缩的数据访问。由于传送的数据都是XML格式的,因此任何能够读取XML格式的应用程序都可以进行数据处理。事实上,接受数据的组件不一定要是ADO .NET组件,它可以是基于一个Microsoft Visual Studio的解决方案,也可以是任何运行在其它平台上的任何应用程序。

省略

1.4 C#.NET概述
Visual C# .NET 是一套综合工具集,用于为 Microsoft Windows和 Web 创建 XML Web 服务和基于 Microsoft .NET 的应用程序。它使用了面向组件的 C# 开发语言,为具备 C++ 或 Java 经验的初级和中级开发人员创建下一代软件提供了现代化的语言和环境。Visual C# .NET 是基于 C++ 传统语言而创建。 C# 是一种面向对象的编程语言,它不仅可以让 C++ 和 Java 开发人员马上熟悉,而且提供了重要的改进,包括统一的类型系统、最大化开发人员控制的“不安全”代码以及大多数开发人员容易理解的强大的新语言构造。

C#语言具有对属性、索引器、委托、版本控制和自定义属性的内在支持,使用 XML 注释,C# 开发人员可以生成有用的源代码文档。高级继承模型使开发人员能够重用来自任何支持 .NET 的语言的代码,这对开发人员来说是很方便的。

二、方案论证
2.1 ERP系统概要设计
在这里插入图片描述

图2.1 ERP系统概要设计

本ERP系统计划包括:销售管理,库存管理,采购管理,制造标准管理,计划管理,车间管理(生产管理),人力资源管理,财务管理共8个子系统,各子系统的数据流关系如图2.1所示。其中总帐管理,应收管理,应付管理,成本管理,工资管理五个模块均属于财务管理子系统。

2.2 车间管理子系统设计
本人主要负责车间管理子系统的设计,车间管理子系统要求根据物料需求计划,能力需求计划以及生产工艺流程制定车间作业计划,车间管理人员按车间作业计划进行调度,下达车间生产作业订单,根据产品物料清单(BOM)填写领料单安排领料,制程中不断产生生产进度报告,监控生产活动的整个过程。其工作流程图如图2.2所示。

2.2.1 车间管理子系统数据流图
如下图2.2所示,车间管理的主要流程:根据订单建立车间的生产任务文件以及车间的物料文件。

在这里插入图片描述

         图2.2  车间管理子系统数据流图

首先,根据车间的具体情况来建立车间参数设置文件以及任务优先级别设置文件,其中车间参数设置文件用来设置每个车间生产的货物种类及生产能力(数量),而任务优先级设置文件则用来设置每个任务的优先生产的级别。

然后根据计划部门的生产订单的订单编号来确定生产任务,并且结合生产标准来为每个生产任务建立一个生产任务文件,将订单的任务下发到每个车间,而且为每个任务建立一个时间系统来随时显示生产进度。同时还要建立一个任务例外信息文件,用来记录因特殊情况而不能按时完成或者不能完成的任务以及额外任务的信息。

建立了生产任务文件之后,根据标准制定部门所制定的生产工艺以及标准来生成车间物料文件。在本系统中生产工艺以及标准从生产订单中一并获得。

2.2.2 功能模块图
在这里插入图片描述

图2.3 车间管理子系统功能模块图

车间系统维护
如上图2.3所示,主要包含了3个部分:
 车间系统参数:本系统的内部数据,无输入源以及输出去向,系统功能包括设置该已编号车间生产的货物种类以及生产能力,包含了车间编号、货物编号以及日产量三个主要字段。
 任务优先级设置:本系统的内部数据,无输入源以及输出去向,系统功能包括设置生产任务的优先级别,包含了车间任务文件编号以及优先级两个主要字段。
 工序优先级设置:本系统的内部数据,无输入源以及输出去向,系统功能包括设置工序的优先级别。
车间任务管理

如上图2.3所示,主要包含了8个部分:
 车间任务建立:源数据由生产计划部门的生产计划文件(根据生产文件的编号来识别)提供,系统功能包括建立任务,设置任务编号,包含了生产编号、货物编号、货物名称、货物需求数量。
 任务模拟下达
 车间任务确认:系统功能为将任务(订单)分配到每个车间,包含了车间编号以及货物编号、货物名称、货物需求数量四个字段。
 委外任务下达:系统功能为下达计划外的任务,包含了任务编号以及例外信息字段,将任务编号返回车间任务文件建立一个车间任务。
 车间任务下达:系统功能为将建立好的车间任务文件下达到每个车间,包含了任务编号以及车间编号两个字段。
 工序作业计划
 车间任务执行:系统功能为显示当前的生产任务进度,包含了车间编号、货物编号、货物名称、货物需求数量以及已完成数量。
 生产任务结清:系统功能为结清当前生产任务,删除任务以及货物入库,包含了货物编号、货物名称、货物需求数量、任务建立日期、任务完成日期、当前日期、生产编号、任务编号。

车间物料管理
如上图2.3所示,主要包含了3个部分:
 任务用料分配:系统功能为分配每个任务文件的用料,包含了任务编号、物料编号、物料名称、物料数量。
 任务用料领料
 车间物料盘点:系统功能为盘点已经使用的物料,包含了任务编号,物料编号、物料名称、物料数量。

生产完工管理
如上图2.3所示,主要包含了5个部分:
 完工工序送检:系统功能为将完工的工序送检。
 工序完工维护
 生产工序完工:系统功能为判断生产工序是否完工。
 生产任务完工:系统功能为判断当前任务是否完工,包含了任务编号、货物需求数量以及已完成数量。
 工序计件单价:系统功能为记录工序中的计件单价。

2.2.3 数据辞典
车间参数设置文件
SETUP
来源:自建
表2.1 车间参数设置表
在这里插入图片描述

任务例外信息文件
EXCEPTIONS
来源:自建

表2.2 任务例外信息表
在这里插入图片描述

任务优先级设置文件
PRIORITY
来源:自建
表2.3 任务优先级设置表
在这里插入图片描述

车间任务文件
MISSION
来源:自建
去向:库存管理系统
表2.4 车间任务表
在这里插入图片描述

车间物料文件
MATERIEL
来源:自建
去向:库存管理系统

表2.5 车间物料表
在这里插入图片描述

2.2.4 与其他子系统的关系
与其它子系统的关系基于数据库文件的共享,即通过数据库中资料的修改实现数据的传递,如下图2.4所示

在这里插入图片描述

图2.4 车间系统与其他系统的关系

来自计划管理的订单是制定车间任务文件的标准。
来自计划管理的物料计划是制定物料文件的标准。
送交库存管理的入库单是其制定入库货物的标准。
送交库存管理的物料单是其制定出库物料的标准。

三、过程论述
本系统是在SQL SEVER 数据库和Microsoft Visual Studio.NET 平台上实现,利用了ASP.NET,ADO.NET,C#.NET等技术,具体实现过程如下:
本系统共计6个aspx页面,分别是首页workshop.aspx,参数设置页面parameter.aspx,优先级设置页面priority.aspx,任务管理页面mission.aspx,物料管理页面materiel.aspx,任务例外信息管理页面except.aspx。

3.1首页workshop.aspx的制作
本页为车间管理系统的首页,提供到各个页面的链接,如下图3.1所示,
其中:
【车间参数设置】指向parameter.aspx
【物料管理】指向materiel.aspx
【生产任务管理】指向mission.aspx
【生产优先级设置】指向priority.aspx
【任务例外信息】指向except.aspx

在这里插入图片描述

图3.1 车间管理首页

3.2 车间参数设置页面parameter.aspx的制作
3.2.1 浏览功能
提供客户对参数的浏览功能是必要的,建立一个sqlDataAdapter,对参数设置文件parameter的所有记录进行查询,sql语句为 “SELECT workshopid, cargoid, outperday, setupid FROM parameter”.然后建立DataSet,将查找出的数据存入其中的DataTable中,并建立名为Client_data的会话(Session)来缓存数据,并用于各DataSet之间的数据交换中介.其关键源代码如下:

private void LoadData()
		{
			DataSet ds=new DataSet();
			DataTable dt=new DataTable("parameter");
			ds.Tables.Add(dt);			
			
			this.sqlDataAdapter1.Fill(ds);
			Session["parameter"] = ds;
		}	

然后建立Web窗体DataGrid,用于在页面中显示查找出来的数据,如下图3.2所示.此DataGrid的数据源应绑定到DataSet上,关键代码如下:

private void UpdateView()
		{
			DataSet ds=(DataSet)Session["parameter"];//从Session中读出数据
			DataGrid1.DataSource = ds.Tables["parameter"];
			this.DataGrid1.DataBind();
		}

在这里插入图片描述

图3.2 车间参数设置页面

3.2.2 编辑功能
为此DataGrid增加编辑、删除功能列,并将删除列转换为模板列,在页脚中添加“新建”链接按钮,指向本页面,用于实现新建客户资料记录功能。
为DataGrid配置grid_DeleteCommand, grid_UpdateCommand, DataGrid1_EditCommand, grid_CancelCommand,分别实现删除记录,更新记录,转到编辑模式,取消更新等功能。本系统中的编辑功能采用即地编辑模式。新建界面如下图3.3所示:
在这里插入图片描述

图3.3 车间参数设置的编辑页面

删除操作的处理过程,只要点击【删除】按钮,就将调用grid_DeleteCommnad,删除所选择的行,更新数据库并刷新页面。

编辑操作的处理过程如下:点击【编辑】按钮,调用DataGrid1_EditCommand将选中行转换到编辑模式如图3.3,在编辑框中输入数据后点击【更新】,将调用grid_UpdateCommand,将输入数据更新到数据库,并刷新页面显示。若点击【取消】按钮,将调用grid_CancelCommand取消更新,回到原页面。

下面详细介绍grid_DeleteCommnad和grid_UpdateCommand,其原理都是使用SqlCommand对数据库进行操作。而SqlCommand的参数由DataGrid传递。源代码如下(注意DataGrid的DataKeyField应设置为CLIENT表的主键CLIENTID,以用于增删改查):

private void grid_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
			String strCmd = "DELETE FROM parameter WHERE setupid=@ID";
			SqlCommand cmd = new SqlCommand(strCmd, this.sqlConnection1);


			SqlParameter p1 = new SqlParameter("@ID", SqlDbType.Int);
			p1.Direction = ParameterDirection.Input;
			p1.Value = DataGrid1.DataKeys[e.Item.ItemIndex];
			cmd.Parameters.Add(p1);					
				
			
			this.sqlConnection1.Open();
			cmd.ExecuteNonQuery();	
			this.sqlConnection1.Close();
			
			LoadData();
			UpdateView();
		}

grid_UpdateCommand的源代码如下:
 private void grid_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
						
			TextBox txtworkshopid = (TextBox) e.Item.Cells[1].Controls[0];
			TextBox txtcargoid = (TextBox) e.Item.Cells[2].Controls[0];
			TextBox txtoutperday = (TextBox) e.Item.Cells[3].Controls[0];
						

			// MUST decide whether to UPDATE or to INSERT. The decision is made based on
			// the fact that the DataSet has added rows

			DataSet ds = (DataSet) Session["parameter"];
			DataTable dt = ds.Tables["parameter"];
			DataRow drLast = dt.Rows[dt.Rows.Count-1];

			if (drLast.RowState == DataRowState.Added) 
			{
				// Drop the newly added row from memory
				//drLast.RejectChanges();

	String strCmd = "INSERT parameter ( workshopid,cargoid,outperday )	 VALUES( @workshopid,@cargoid,@outperday )";
				SqlCommand cmd = new SqlCommand(strCmd, this.sqlConnection1);

				//ID is an identity column

				SqlParameter p1 = new SqlParameter("@workshopid", SqlDbType.Int, 4);
				p1.Direction = ParameterDirection.Input;
				p1.Value = Convert.ToInt32(txtworkshopid.Text);
				cmd.Parameters.Add(p1);

				SqlParameter p2 = new SqlParameter("@cargoid", SqlDbType.Int, 4);
				p2.Direction = ParameterDirection.Input;
				p2.Value = Convert.ToInt32(txtcargoid.Text);
				cmd.Parameters.Add(p2);

				SqlParameter p3 = new SqlParameter("@outperday", SqlDbType.Int,4);
				p3.Direction = ParameterDirection.Input;
				p3.Value=Convert.ToInt32(txtoutperday.Text);				
				cmd.Parameters.Add(p3);

				
 			this.sqlConnection1.Open();
				cmd.ExecuteNonQuery();	
				this.sqlConnection1.Close();

			}
			else
			{				
				// Prepare the command text
	String strCmd = "UPDATE parameter SET workshopid=@workshopid,cargoid=@cargoid, outperday=@outperday WHERE  setupid=@ID";
				SqlCommand cmd = new SqlCommand(strCmd, this.sqlConnection1);

				SqlParameter p1 = new SqlParameter("@ID", SqlDbType.Int);
				p1.Direction = ParameterDirection.Input;
				p1.Value = DataGrid1.DataKeys[e.Item.ItemIndex];
				cmd.Parameters.Add(p1);	

		
				SqlParameter p2 = new SqlParameter("@workshopid", SqlDbType.Int, 4);
				p2.Direction = ParameterDirection.Input;
				p2.Value = Convert.ToInt32(txtworkshopid.Text);
				cmd.Parameters.Add(p2);

				SqlParameter p3 = new SqlParameter("@cargoid", SqlDbType.Int, 4);
				p3.Direction = ParameterDirection.Input;
				p3.Value = Convert.ToInt32(txtcargoid.Text);
				cmd.Parameters.Add(p3);

				SqlParameter p4 = new SqlParameter("@outperday", SqlDbType.Int,4);
				p4.Direction = ParameterDirection.Input;				
				p4.Value= Convert.ToInt32(txtoutperday.Text);
				cmd.Parameters.Add(p4);
				
				
				this.sqlConnection1.Open();
				cmd.ExecuteNonQuery();	
				this.sqlConnection1.Close();

			}

			// Reset the edit mode for the current item
			DataGrid1.EditItemIndex = -1;

			// Refresh the grid
			LoadData();
			UpdateView();
		}
	}

3.3 物料管理页面materiel.aspx的制作
3.3.1 浏览功能
浏览功能的建立类似于参数设置页面,其SQL语句为“SELECT materielid, materielna, materielnu, missionid, fileid, productid FROM materiel”,页面效果如下图3.4:

在这里插入图片描述

图3.4 物料管理页面

3.3.2 编辑功能
本页面同样提供了删除,编辑,新建三个页面编辑功能,同样利用grid_DeleteCommand,grid_UpdateCommand,DataGrid1_EditCommand,grid_CancelCommand来实现,而且设置与车间参数设置页面基本相同。如下图3.5所示。

在这里插入图片描述

图3.5 物料管理编辑页面

3.4 生产任务设置页面mission.aspx的制作
3.4.1 浏览功能
浏览功能与上述页面的设置类似,其SQL 语句为“SELECT workshopid, cargoid, cargoname, cargonumber, creatdate, donedate, curdate, missionid, productid, finishnum FROM mission”,页面效果如下图3.6所示。

在这里插入图片描述

图3.6 生产任务设置页面

3.4.2 编辑功能
这里介绍一下

DataGrid1_EditCommand,grid_CancelCommand,其原理都是使用SqlCommand对数据库进行操作。而SqlCommand的参数由DataGrid传递。源代码如下:
private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
			// Set the current item to edit mode
			DataGrid1.EditItemIndex = e.Item.ItemIndex;

			// Refresh the grid
			UpdateView();
		}

grid_CancelCommand源代码如下:
private void grid_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
			DataGrid1.EditItemIndex = -1;

			// Reject changes on the last row
			DataSet ds = (DataSet) Session["materiel"];
			DataTable dt = ds.Tables["materiel"];
			DataRow drLast = dt.Rows[dt.Rows.Count-1];
			if (drLast.RowState == DataRowState.Added)
			{
				drLast.RejectChanges();				
			}

			// Refresh the grid
			UpdateView();
		}

本页面同样提供了删除、新建、编辑三个页面编辑功能,利用grid_DeleteCommand,grid_UpdateCommand,DataGrid1_EditCommand,grid_CancelCommand来实现,而且设置与车间参数设置页面基本相同。如下图3.7所示。
在这里插入图片描述

图3.7 生产任务设置页面编辑功能
3.5生产优先级设置priority.aspx的制作
3.5.1 浏览功能
浏览功能与上述页面的设置类似,其SQL语句为“SELECT missionid, priid FROM priority”,其页面如下图3.8所示。

在这里插入图片描述

图3.8 优先级设置页面

3.5.2 编辑功能
本页面提供了删除、新建、编辑三个页面编辑功能,利用grid_DeleteCommand,grid_UpdateCommand,DataGrid1_EditCommand,grid_CancelCommand来实现,而且设置与车间参数设置页面基本相同。如下图3.9所示。

在这里插入图片描述

图3.9优先级设置编辑页面

3.6 任务例外信息except.aspx页面的制作
3.6.1 浏览功能
浏览功能与上述页面的设置类似,其SQL语句为 “SELECT missionid, reason FROM exceptions”,其页面如下图3.10所示。

在这里插入图片描述

图3.10 任务例外信息页面

3.6.2 编辑功能
本页面提供了删除、新建、编辑三个页面编辑功能,利用grid_DeleteCommand,grid_UpdateCommand,DataGrid1_EditCommand,grid_CancelCommand来实现,而且设置与上述页面基本相同。如下图3.11所示。

在这里插入图片描述

图3.11 任务例外信息编辑页面

四.总结
本系统是基于.NET平台及SQL Server数据库,适用于中小型制造类企业的ERP系统的车间管理模块, 提供了对车间参数、车间任务、物料进行管理维护的多种功能。本系统采用ASP.NET,ADO.NET,C#等技术实现.本文详细说明了系统的设计及实现过程。

本系统主要实现了客户随时查看车间各种数据以及对数据进行修改的功能,而在很多数据设计方面还有待改进,才能更贴近真实的ERP系统。

真实的ERP系统与企业自身的组织结构与特点密切相关,而本系统是以一个假想的小型企业为原型设计,因此在许多方面过于简单.比如车间管理模块,在面向市场的企业中还应该具有生产工序以及生产人员方面的详细信息,而本系统在这些方面进行了简化。

通过这次毕设,对.NET平台上的Web应用程序的开发有了比较系统的认识,熟练掌握了ASP.NET,C#,ADO.NET等开发工具,并体会到了面向对象编程的思想.此外,对ERP的概念及原理有了清楚的概念,对ERP系统的实现也有了初步了解,为以后的工作做了一次很好的尝试。

五.致谢
省略

参考文献
[1]Kouresh Ardestani, Kevin Hoffman, Donald Xie
《高效掌握ADO.NET C#编程篇》 北京 : 清华大学出版社, 2003
[2] Paul Dickinson 《ADO.NET高级编程》 北京 : 中国电力出版社, 2003
[3] Scott Allen, Syed Fahad Gilani 《C#数据库入门经典》 北京 : 清华大学出版社, 2003
[4] 罗鸿, 王忠民 《ERP原理·设计·实施》 北京 : 电子工业出版社, 2003
[5] 王东迪 《ERP原理 应用与实践》 北京 : 人民邮电出版社, 2002
[6] Adrian Mello 《ERP基本原理》
[7] 任碧成,黄浩波 《ERP技术在中国的应用、存在问题及未来展望 》
[8] . net官方主页 http://www.microsoft.com/china/net/
[9] G. Andrew Duthie 《ASP.NET程序设计》 北京 : 清华大学出版社, 2002
[10] Douglas J. Reilly 《ASP.NET Web应用程序开发新思维》 北京 : 清华大学出版社, 2002
[11] Karli Watson, Marco Bellinaso 《 C#入门经典 》 北京 : 清华大学出版社, 2002
[12] (美) 斯科特·汉密尔顿 《 构建高效的ERP系统》 北京 : 机械工业出版社, 2004
[13] John Kauffman 《ASP.NET数据库入门经典――C#编程篇》 北京:清华大学出版社


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号毕业设计全套资源(点击下载)
本项目源码基于C#+asp.net+SQL server的物料管理系统设计与实现(源码+文档)_C#_asp.net_ERP系统.zip
  • 0
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业设计方案专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值