【计算机专业优秀论文】红林生产管理系统

上传人:1666****666 文档编号:38991817 上传时间:2021-11-09 格式:DOC 页数:34 大小:340.50KB
收藏 版权申诉 举报 下载
【计算机专业优秀论文】红林生产管理系统_第1页
第1页 / 共34页
【计算机专业优秀论文】红林生产管理系统_第2页
第2页 / 共34页
【计算机专业优秀论文】红林生产管理系统_第3页
第3页 / 共34页
资源描述:

《【计算机专业优秀论文】红林生产管理系统》由会员分享,可在线阅读,更多相关《【计算机专业优秀论文】红林生产管理系统(34页珍藏版)》请在装配图网上搜索。

1、贵州大学信计学院计算机科学系毕业论文课题名称:红林生产管理系统指导老师: 所属学院:信息与计算机科学学院所属专业:计算机科学与技术 红林生产管理系统 摘要: 生产管理技术是企业有序组织生产,合理利用资源,避免浪费,提高生产效率和产值的重要管理手段,现代计算技术和信息技术与生产管理技术的结合极大地降低了企业生产管理的成本,提高了生产管理的有效性和可靠性。回顾了自上世纪五十年代以来生产管理技术的发展,介绍了目前获得广泛应用的物料需求计划技术,设计并实现了一个简单实用的基与MRP的零组件生产计划软件,分析了存在的问题和可能的扩展。关键词 生产计划,生产作业计划,物料需求计划系统,BOM。 HONGL

2、IN PRODUCE MANAGEMENT SYSTEM DESIGN AND IMPLEMENTABSTRACT In this paper, we introduced the production management and its development since 1950s ,then we pay our attention to material request planning system , which has been used in many famous corporation today. A simple production planning softwar

3、e has been designed and implemented here, and we discussed how to extend this simple application to be a enterprise resource planning system.(ERP)KEYWORD production planning, material request planning system, BOM.目 录第一章 生产管理简介 1.1 生产管理概述. 1.2 物料需求系统第二章 计算机辅助生产管理信息系统. 21计算机辅助生产制造应提供的功能 22制造资源计划的功能模块和

4、BOM 23生产计划及生产作业计划 231生产计划 232生产作业计划 第三章 开发环境第四章 设计与实现. 41 需求 . 411 功能和性能要求 .412 数据模型 .42 系统实施 421 关系模型 . 422 各模块功能简介.第五章 用户环境简介. 51生产规划 52 零件增加/修改 53库存零件查询/输入.第六章 展望与前景.第八章 小结附录 部分源程序摘要第一章 生产管理系统简介1.1 生产管理系统概述 提高经济效益是企业经营管理的主要目标之一,生产管理在实现这个目标过程中起着关键的作用。在社会主义市场经济蓬勃发展,企业间竞争日趋激烈,生存与灭亡对每个企业都成为一个严峻问题的当今社

5、会,掌握先进的生产管理技术,实现企业经营管理科学化,有序化是使企业在激烈竞争中立于不败之地的先决条件。 装配制造型企业产品结构复杂,工艺流程多,生产周期长,各工序之间衔接配合紧密,上述特点使得这类企业的生产管理任务非常繁复,且管理成本高昂,需要大量人时,生产计划和作业计划不具有实时性,不能及时调整以适应环境的变化。 工业的发展促进了管理方法的革新,二十世纪五十年代至今各国管理学者及一些著名企业提出了各种先进的生产管理方法,其中的一些通过实践的考验被证明是有效的方法。它们中的大多数都具有离散化,程序化的特性。这些方法与先进的计算技术和信息管理手段紧密结合,极大地拓展了计算机应用的领域,推动企业的

6、经营管理向着降低成本,缩短时间,提高可靠性的方向迈进。 12 物料需求计划系统(MRP-System) 装配型企业生产管理主要采用物料需求计划系统,系统的发展经历了物料需求计划系统(MRP),闭环物料需求计划系统(Closed-Cycle MRP)和制造资源计划系统(MRP-II)三个阶段。系统的可靠性逐步提高,功能愈加丰富,实现更加复杂,对生产管理人员和信息系统设计人员的专业水平也有了更高的要求。这里只简单介绍物料需求计划系统MRP. 物料需求计划系统专为装配型产品设计,主要任务是对构成产品的各种物料的需求量和需求时间做出计划。物料是指构成产品的所有物品,包括部件,零件,外购件,标准件,以及

7、制造零件所用的毛坯和材料等。MRP系统从最终成品的需求量和需要期限出发,按照产品的结构展开,推算出所有零部件需要量。并按零部件的生产提前期推算出它们的出产时间和投产时间。MRP只是提出物料需求的任务,而没有考察生产能力的约束条件。其基本结构如图1。闭环物料需求系统(Closed-Cycle MRP)扩展了物料需求系统的功能,在MRPS的基础上增加了生产能力需求计划和车间作业计划两部分。实现了对生产能力和生产计划的统一管理。 定货工程生产数据管理1基本工程数据2数据维护作业分派主生产计划1编制维护主生产计划2模拟执行主生产计划采购与送货1供应厂资料维护2采购申请3送货管理4采购质量控制生产作业计

8、划1编制作业计划2考核生产能力成本计划与控制库存管理1计算材料需求量2剔除变质零件预测1产品预测2产量种类预测3销售额预测仓库管理1仓位管理2出入库管理3台帐管理设备维修发货用户定货管理1登陆2定货任务安排3查询4发货车间监控 图1 MRPSII系统结构 第二章 计算机辅助生产管理信息系统 21计算机辅助生产制造应提供的功能:1 计算机辅助编制生产作业计划:(1)计算机辅助编制新产品试制生产作业计划;(2)计算机辅助编制产品生产作业计划;(3)计算机辅助编制产品生产滚动计划。2 计算机辅助生产作业统计:主要生成报表(1)月计划统计表(2)月计划结算表(3)月批次完成情况表(4)旬报表等。3 计

9、算机辅助库存管理:(1)进行库房日常的收,存,发的动态管理;(2)对橡胶零件实行特殊管理(主要针对橡胶零件的报废时间问题);(3)综合信息查询。 22制造资源计划的功能模块和BOM1主生产计划(MPS)主生产计划是说明一个企业计划在各个时间周期内制造些什么,其数量及最终目标。也就是说计划生产什么,什么时候生产,生产多少。通过(1)从上次的MPS入手编制初步的主生产计划,(2)对能力和需求进行平衡制定粗估生产能力计划(3)调整预计的负荷量和调整能力评价初步的主生产计划三个基本步骤实现它的编制。2物料需求计划(MRP) 物料需求计划MRP是MRPII的核心。包括:(1)物料清单BOM(2)MRP的

10、数据来源。3 能力需求计划生产能力对完成各项生产指标尤为重要。不同的生产计 划有着相应的能力需求计划:(1) 资源需求计划(MRPII)资源需求计划主要考虑设备,厂房,人力,占地面积,资源和资金等。(2) 粗估能力需求计划:粗估能力计划仅对主生产计划所需的关键生产能力做一粗略的估算,给出一个能力需求的概貌。(3) 详细能力需求计划 详细能力需求计划主要针对物料需求计划所需的生产能力做一较精确的计算。以工作地为单位汇总某一时段的生产能力和生产负荷,给出能力和负荷的详细数据,二者比较后得出能力的使用情况。4 车间作业管理车间作业管理是短期计划管理的核心部分。包括:(1) 车间任务下达(2) 车间任

11、务监控(定单管理)(3) 生产数据收集第三章 开发环境本软件采用Visual Basic集成开发环境编码实现, Visual Basic 是 Microsoft 公司推出的一个集成开发环境,具有简单易学、功能强大、软件费用支出低、见效快等特点。Visual Basic 继承了 Basic 语言易学易用的特点,特别适合初学者学习Windows 系统编程。它具有:(1) 可视化的集成开发环境(2) 面向对象的程序设计思想(3) 交互式的开发环境(4) 高度的可扩充性等特点。用户不需编写大量代码去描述界面元素的外观和位置,只需把预先建立的对象添加到屏幕上即可。同时能即时捕获并突出显示大多数语法和拼写

12、错误。又支持第三方软件商为其开发的可视化控制对象,支持访问动态链接库(Dynamic Link Library,DLL),支持访问应用程序接口(API)。方便易用。第四章 设计与实现 41 需求 411 功能和性能要求 贵州红林机械有限公司原是军品制造企业,主要产品为飞机尾翼,坐舱盖,襟翼等军品,上世纪九十年代初适应建设社会主义市场经济建设的需要转型生产各种通用摩托车配件。这些产品在生产过程中表现出共同的特点,即产品结构复杂,工艺流程繁多,产品成批小批量地生产。现有生产管理系统是基于物料需求计划的人工系统,库存管理,采购订货等管理功能已初步实现了信息化,自动化。原系统经过数十年的应用,已被实践

13、证明是有效的,自足的系统,而目前用于企业级生产管理的软件产品,如业界熟悉的ERP系统,售价都在百万元以上,并非一般企业所能承担,且这些软件产品庞大而复杂,企业需为充分发挥这些产品的强大功能而频繁支付高昂的培训费用和维护费用。基于这些原因,贵州红林机械有限公司不打算使整个生产管理过程计算机化,更不愿意承担开发完整的生产管理信息系统的费用。用户需要的仅仅是一个零件生产计划系统,利用计算机的强大计算功能在最短时间内耗费最少的人力编制特定时期内零件的生产计划,以此为依据向各生产自制件的车间分派生产任务,下达生产指令,保证产品所需要的各种零件按时按量的完成。通过上面的分析,我们认识到所需构造的系统并非一

14、个完整的生产管理信息系统,而是生产管理系统的一个功能模块,在MRP的系统结构中应属于生产作业计划模块。主要功能为根据企业的年度生产计划获得各种产品的生产数量和交货期限等信息,然后按产品工艺结构展开,根据产品的结构(即该产品使用了哪些零件和组件,使用数量是多少)和零件的期量标准(包括零件的生产周期,生产间隔期,批量等)确定各种零件需要量和需求时间,编制零件生产计划。系统流程如图4提取产品供求信息生成计划条件年度生产计划计划时间段编制零件生产计划零件生产计划零件期量信息产品结构信息图4 系统流程生产计划的编制是企业生产管理系统的灵魂,企业在长期生产计划(三年期或五年期生产计划)的指导下,根据年度生

15、产计划的要求编制厂级生产作业计划,各车间依据厂级生产作业计划,权衡自己的生产能力编制车间级生产作业计划和派工计划。因此各级生产计划的可行性和高效性直接影响企业各生产运营,决定企业能否在规定时限内完成国家下达的指标和满足客户的订货要求。由于生产计划举足轻重的地位,当前投入市场的很多软件产品将生产计划作为整个软件系统的核心功能,在此基础上扩展产品功能满足企业经营的需要。所以为特定企业开发独立的生产计划软件是合理的,且这种软件在某种意义上也是可扩展的,甚至最终扩展成为通用的商业软件。当然,由于企业组织结构的灵活多样性和生产管理本身所表现出的复杂性,建造企业级生产管理系统需要长时间的调查工作和大量的分

16、析研究和编码工作,开发者不仅要掌握计算机专业技术,还要熟悉现代生产管理方法。这是一件需要耗费大量人时的软件工程项目。这里我们仅打算编写一个简单合用的计划程序,同时尽量减少系统的开发维护费用,也适当地考察今后的扩展。412 数据模型 应用包括零件,产品,仓库几个主要的实体,其实体关系图如图5所示。零件本身按其来源又可划分为外购件和自制件两类,将零件进行这样的划分是有必要的,因为我们总认为外购件满足“可满足性条件(available)”,即外购件在生产过程中任何时候都是绝对保证供应的,作出这一限定后系统仅对自制零件作出生产计划。零件既自制又外购的策略存在明显的缺点,首先是增加了固定费用投资,其次是

17、影响产品的标准化,再有就是削弱了成本预算控制能力,与用户交流的结果充分肯定了这个假设的正确性。外购件和自制件实体与零件实体存在继承关系,即外购件/自制件IS A SUBSET OF零件, 存放使用产品零件名称保存期限库存数量使用数量是否外购自制件外购件仓库期量标准代号名称代号图5 实体关系图产品实体和零件实体之间存在着联系“使用”或“包含”,因为一种产品由多种零件构成,而一种零件可以为多种产品使用,所以这个联系是多对多的。零件实体和仓库实体之间有“存放”联系,从概念上分析,企业肯定包含不止一个仓库,则这个联系本该是多对多的。但在应用中这个仓库实体并不承担仓库管理的功能,而仅提供诸如“本厂目前自

18、制和外购哪些零件,这些零件的库存量能否满足产品生产的需要”的信息。对每一种零件这些信息是唯一的,因此“存放”是一对多的关系。42 系统实施 421 关系模型 由上一节给出的实体关系图可导出该数据库应用的关系模型,基本的关系模型示意如下:加下划线的字段是该关系的主码。 关系1 产品(产品代号,产品名称)关系2 自制件(零件编号,零件名称,生产周期,批量,特征标示)关系3 外购件(零件编号,零件名称,供应商,保存期限)关系4 库存(零件编号,当前库存量,是否外购件)关系5 产品使用零件(产品代号,零件数量,使用数量)所有的关系都是合法的,即每一个属性都是原子的。关系1,2,3,4的主码只包含一个属

19、性,关系5的非主属性只有“使用数量”,它完全函数依赖于码,所以诸关系不存在非主属性部分函数依赖于码的情形,即关系属于2NF。同样地,也不存在关系的非主属性传递依赖于码的情形,则关系属于3NF。更进一步分析,可发现这些关系还属于BCNF。在实体关系图中,产品实体和零件实体的联系“使用”是一个多对多的关系,按一般的方法将此联系作为一个独立的关系:产品实体和零件实体的码作为新关系的码,联系的属性作为关系的属性,得到如上的关系5。由于每件产品包含多种零件,每种零件被多种产品使用,故关系5存在数据冗余量大的问题:相同的产品代号或零件代号可能被重复存储多次。在这里我们采用另一种设计策略:将关系5按产品种类

20、分成若干个关系,每一个关系对应着该产品与零件的使用联系。但这样定义的关系在企业开发研制新产品后会出现问题:在数据库中找不到对应的产品使用零件信息,无法完成计划。这时只能通过新建表来解决,可以在程序中动态创建数据表以适应新产品的加入。考虑到多个用户需要在局域网上共享生产管理信息,关系数据库采用微软的SQL-SERVER数据库管理系统实现,用客户/服务器体系结构。为了应用的需要,增加了几张表,如用于用户登录身份验证的“身份验证表”,在计划过程中充当中间变量的“模拟零件库存表”和用于存放规划结果的“零件生产规划表”等。422 各模块功能简介系统由零件生产计划编制,零件生产计划查询,增加零件与零件信息

21、修改,零件库存量查询,用户管理,登录等模块构成,各模块相互独立,与其他模块之间没有直接的信息交换,系统具有低耦合和高内聚的优点。编码时采用Visual Basic语言,在Microsoft Visual Studio6.0集成开发环境下完成系统实现。.Red_wood PCS修改密码零件生产计划查询零件生产计划编制零件库存量查询设置密码零件数据更新修改零件属性增加零件用户管理。 图8 系统的HIPO图4221 零件生产计划编制 编制零件生产计划是本系统的核心功能,该模块也是本系统中最为复杂的模块。其要求可用数学语言形式化地描述如下: 某厂生产m种产品,每一种产品都由多个零件构成,而且可能有不同

22、的产品使用相同的零件。所有m种产品总共使用r种零件,其中n种是自制件,其余r-n种是外购件,现仅关心自制件的生产安排。每一种产品使用自制件的数量可用m行n列正定矩阵P描述,第i行j列的矩阵元素表示产品i包含零件j的数量,所有n种零件的期量标准可用两个矢量C(零件生产周期)和N(批量)描述,矢量的第n个元素代表零件i的期量标准。另外还有一个m*r阶矩阵M用以形式化从产品生产计划中获得的信息,矩阵第i行j列的元素表示第i种产品在第j月的产量,r取决于计划期的长度。最长不超过12个月。规划的结果是一个n行r列的矩阵,其中第i行j列的元素表示第j月零件i的计划生产数量。规划的条件是计划期内每个月零件的

23、计划生产数量与当月预计库存数量之和至少等于该月零件需求量。计划期内某月零件的需求量可用矩阵P和矩阵M求得,具体方法是用P的转置矩阵与M作矩阵乘法,获得的n*r阶矩阵每一个元素表示某种零件在某一月的需求量。如果限制所有零件的生产数量只能是整数并加入某些最优化量度(如要求零件库存量最效益以降低成本),则该问题可以看作一个复杂的整数规划问题,数学家已提出许多用以解决整数规划问题的算法,如割平面法,分枝定界法等,但解整数规划问题还是很不容易的,没有对所有实例都有效的算法,而且Integer Programming早已被证明是NP完全的。所以用纯粹数学规划方法解决此问题是不现实的。 这里采用一种与贪心算

24、法类似的方法解决计划问题,可以称为“见好就收“的策略,预计计划期内某一月某种零件的生产数量时,检查本月零件库存量是否已满足需求,若零件库存量大于或等于零件需求量,则本月不再生产该零件,否则检测按批量生产出一批零件后零件的总量是否满足需求,若仍不满足,则取消批量限制而生产所需零件,不再动用库存零件,否则按批量生产一批零件,将满足需求后剩余的零件入库。由于问题并不具有贪心性质,使用这种策略编制零件生产计划时,零件的库存量并不能达到最小,但通常可在适当的时间内返回令用户基本满意的结果。 用数据库存储产品结构信息和零件期量标准使得算法的实现更加直接和容易,数据库管理系统本身的高效性也令算法的运行更快捷

25、。编制计划过程的时间复杂度应为O(m*n*r)。 输入计划期(开始时间,结束时间)计划期超过12个月获得计划期内产品产量选择待计划的产品统计计划期内零件需求量编制计划 图9 流程图 4222 零件生产计划查询,零件信息查询与修改,零件入库 这几个模块的实现方法大体相同,即根据查询条件编写相应的SQL语句查询数据库,返回用户所需信息,或修改记录集以更新数据库。这几个模块没有值得特别提请注意的算法,处理用户输入,响应键盘和鼠标事件,生成查询条件等操作占用了大部分代码。连接数据库和操作数据集的工作由ADO对象和ODBC数据源负责。第五章 用户环境简介 本软件安装和删除时,不经过注册表,不会改变用户操

26、作系统的设置,发布前经过严格的测试,一般不会与其它软件发生冲突,敬请放心使用。本软件具有良好的向上和向下兼容性,可以运行于Win9x、Win2000等平台上,在微型机上和服务器上都能顺利的工作。运行此软件需要Excel97和SQL_Server(2000或更高版本)的支持。仍在使用Excel95的用户可能需要更改应用到Excel95对象库,否则规划时可能出现难以预料的情况,我们对此表示歉意,并承诺在后续版本中予以解决。下面将简单介绍几个界面。51生产规划 编制零组件生产作业计划是本文的核心内容,也是设计和实现本软件的目的所在。编制计划前,用户必须提供若干参数作为规划的条件,这些参数有:计划期(

27、计划起始时间,计划终止时间),计划期内产品计划产量,规划开始前系统会提请用户输入上述参数。规划完成后用户可基于不同角度考察规划结果,如查询某种零件在某段时间内的生产数量等。53 零件增加/更改 “零件增加”即在逻辑上的“产品使用零件”关系中新增记录(在实现级,“产品使用零件”关系依照产品种类分割成若干关系,对应着若干张表),“零件更改”即修改某种自制零件的基本信息(自制零件的基本信息存放在基本零件表中),如生产周期,批量,是否外购件等。注意:界面中以蓝色标签标注的诸编辑框和组合框是必须由用户填入的参数。5库存零件查询输入库存零件查询输入界面用于提取或更新某种零件的库存量信息,提取信息的过程是根

28、据用户输入的零件编号或零件名称以及是否外购件等参数编制SQL语句,查询中央零件库零件库存量表,取得满足查询条件的记录并显示在数据栅格中。更新特定零件的库存量信息有两种途径,其一是用户手工输入零件编号和入库数量,系统查找出对应的记录并修改其库存数量字段,第二种方法是用户在查询结果(数据栅格)中选定需修改的记录并输入本次入库数量以更新零件库存量。第七章 展望和前景 用户的需要是软件升级的动力,就目前用户的需求来分析,本系统至少可以在以下两个方向进行扩展。 一厂级零件生产计划具体化到车间生产作业计划 厂级生产调度部门将生产计划下达到各车间,车间权衡生产能力和生产任务,根据工序流程和工艺分离面等编写车

29、间生产作业计划,包括派工计划,设备维护计划等。车间生产作业计划是监控车间日常生产活动,以保证按质按量完成生产任务的重要媒介。目前这一级生产作业计划仍由人工编制,耗时长,费工多,可靠性差。扩展后的系统有望提供对编制车间级生产作业计划的支持。二零件生产计划细化到原料供应计划 在制造装配型企业中,零组件一般来说并不是原子级的生产和计划单位:组件由若干零件组成,而制造一种零件需要若干种原料,原料供应不足很容易干扰生产计划的正常执行,导致计划失效。所以只能作零件级的生产计划是远远不够的,而扩展系统以编制原料供应计划是容易的。我们只需提供“零件使用原料”关系而不必作太大的修改就能提供这一功能。 国内已推出

30、多款基于物料需求计划技术或企业资源计划技术的商业软件,有些软件公司甚至将这类软件作为其唯一产品,而这类软件工具也已获得越来越多的国内企业的重视与首肯,我们相信在不久的将来,生产管理系统将会成为企业运营管理不可或缺的强大工具。第八章 小结 在张厚武老师的耐心指导下,经过本组成员的不懈努力,克服了种种困难,查阅了若干资料,终于完成了一个初步的系统。与大多数商业软件相比,该系统显得极其简单,但是在实现过程中,我们经过充分考虑,提出了一种新的零件生产计划,初步的实践表明这种方法简单明了,而且是正确有效的。系统的实现大量采用ADO技术连结和操纵关系数据库,在这一过程中,本组成员对ADO技术加深了认识,能

31、熟练使用ADO技术编制数据库应用,这将为将来的研究和开发工作打下基础。在本系统的分析和实现过程中,充分考虑了扩展系统以增加新的模块和功能或改变数据库应用的体系结构,最终形成一个完整的企业级资源计划系统。 致 谢 谨向张厚武老师表达我们诚挚的谢意,在系统开发的过程中,张老师并不介意我们的愚钝,而总是给予耐心的指导。对我们在工作过程中产生的怠惰畏难情绪时常予以提醒和疏导。没有他的帮助,我们不可能在如此短的时间内构造系统和完成论文。同时,也非常感谢系上各位领导、老师给予我们这样一个机会,让我们得以发展和提高。参考文献生产管理手册 南方工业出版社算法设计与分析 高等教育出版社软件工程-实践者的研究方法

32、机械工业出版社 附录附录一部分源代码 Dim intDateStartMonth As Integer 定义规划起始时间变量月Dim intDateEndMonth As Integer 定义规划终止时间变量月Dim txt1TorF As Boolean 定义逻辑变量来区别是响应起始还是终止时间Dim txt2TorF As BooleanDim blnPlanDateEnd As Boolean 定义规划时间输入完成变量,用于确定规划时间 输入完成标志Dim blnPlanDateGreaterCurDate As Boolean 定义重新规划时是否有规划时间 大于原规划时间 的逻辑变量D

33、im blnNoPart As Boolean Dim blnSingleQueryText6 As Boolean 在“单项查询”方式中选择按时段查询,时定义此两个布尔变量来区别是起始时间(blnsinglequerytext6)还是终止时间(blnSingleQueryText7)Private Sub disPlanTable()Dim rs As ADODB.RecordsetSet rs = New ADODB.RecordsetSet cnnDB = New ADODB.ConnectioncnnDB.ConnectionString = provider=Microsoft.Je

34、t.OLEDB.4.0; & data source= & App.Path & hlmms.mdbcnnDB.Openrs.Open select * from 零件生产规划, cnnDB, adOpenDynamic, adLockOptimisticrs.MoveFirstDo While Not rs.EOF If rs!规划时间 CDate(04 - 4 - 1) And Trim(rs!零件编号) = Trim(Text3.Text) Then 满足条件的记录加入零件生产规划表中,在此 之前,该表的内容为空 生成零件生产规划表 Call PartProTable(rs!零件编号,

35、rs!零件名称, rs!规划生产数量, rs!规划时间) End If rs.MoveNextLooprs.CloseEnd SubPrivate Function PartProTable(ByVal PartID As String, ByVal PartName As String _, ByVal PartNum As Integer, ByVal PartDate As Date)Dim rs1 As ADODB.RecordsetSet rs1 = New ADODB.RecordsetcnnDB.Openrs1.Open select * from 零件规划表1, cnnDB,

36、adOpenDynamic, adLockOptimisticrs1.AddNewcnnDB.BeginTrans rs1!零件编号 = PartID rs1!零件名称 = PartName rs1!规划时间 = PartDate rs1!规划生产数量 = PartNum rs1.UpdatecnnDB.CommitTransrs1.CloseEnd FunctionPrivate Sub cmcDel_Click()If Adodc1.Recordset.RecordCount 0 Then Adodc1.Recordset.Delete Adodc1.Recordset.UpdateEls

37、e MsgBox 没有可删除的记录, vbOKOnly, 提示End IfAdodc1.RefreshEnd SubPrivate Sub cmdExit_Click()Call CleanUpMe.HideUnload frmPlanEnd SubPrivate Sub cmdSingleQuery_Click()Dim startDate As StringDim endDate As StringIf Option3 Then 按编号选择 If Trim(Text4.Text) = Then MsgBox 请选择零件编号!, vbInformation, 提示 Exit Sub End

38、If Adodc1.RecordSource = select * from 零件生产规划 where 零件别名= & & PartIDtoName(Trim(Text4.Text) & ElseIf Option4 Then 按时间选择 If Trim(Text5.Text) = Then MsgBox 请选择查询年月!, vbInformation, 提示 Exit Sub End If Dim QueryDate, temp As String temp = Text5.Text temp = Format(temp, mm / dd / yyyy) Adodc1.RecordSourc

39、e = select * from 零件生产规划 where 规划时间= & # & temp & #ElseIf Option5 Then 按时间段查询 If Trim(Text6.Text) = Or Trim(Text7.Text) = Then MsgBox 初始/终止时间不能为空!, vbOKOnly + vbInformation, 提示 Exit Sub End If startDate = Format(CDate(Text6.Text), mm/dd/yyyy) endDate = Format(CDate(Text7.Text), mm/dd/yyyy) If startD

40、ate endDate Then MsgBox 初始时间不能大于终止时间!, vbInformation + vbOKOnly, 提示 Exit Sub End If Adodc1.RecordSource = select * from 零件生产规划 where 规划时间 between & # & startDate & # & and & # & endDate & #Else MsgBox 请选择查询方式!, vbInformation + vbOKOnly, 提示End IfAdodc1.RefreshEnd SubPrivate Sub Command1_Click()Adodc1

41、.RecordSource = select * FROM 零件生产规划Adodc1.RefreshEnd SubPrivate Sub cmbProduct_Click()Dim i As IntegercmbProduct.RefreshcmbSelect.Refreshi = cmbProduct.ListIndexcmbSelect.AddItem (cmbProduct.List(i)cmbSelect.RefreshcmbSelect.Text = cmbSelect.List(0)cmbProduct.RemoveItem (i)cmbProduct.RefreshDim myT

42、ext As StringmyText = cmbProduct.List(0)cmbProduct.Text = myTextEnd SubPrivate Sub cmdPlan_Click()blnPlanDateGreaterCurDate = False 首先假定当前规划时间包含原规划时间变量为假Call PlanDateGreaterCurDate 调用此过程判断当前规划时间是否包含原规划时间If blnPlanDateGreaterCurDate = True Then 重新规划时间大于原规划时间 Dim strMsg As String strMsg = 先前的规划数据将被删除!

43、 & vbCr & 您确定要重新规划吗? If MsgBox(strMsg, vbYesNo, 提示) = vbNo Then Unload Me Exit Sub End If lblprompt.Visible = True Label5.Visible = False “规划需求统计”表中的的时间大于规划初始时间,其内容将被删除 blnNoPart = False Call DelPrePlan If blnNoPart = True Then Exit SubEnd Iflblprompt.Visible = TrueLabel5.Visible = FalseCall CalPart

44、Req 调用计算零件各月需求过程,结果在“零件需求统计”表中Call PlanstrMsg = 规划已经完成,是否重新显示规划结果?If MsgBox(strMsg, vbYesNo, 询问) = vbYes Then Label5.Visible = True Adodc1.RefreshEnd Iflblprompt.Visible = FalsecmdPlan.Enabled = FalseLabel5.Visible = TruePlanAgain.Enabled = TrueEnd SubPrivate Sub Plan()Set rst = New ADODB.RecordsetD

45、im PartID As String 零件号Dim PartName As String 零件名称Dim PartReqNum As Integer 零件需求数量Dim PartProNum As Integer 零件生产数量Dim PartCycleNum As Integer 每期零件生产的最优量(期量值中的数量)Dim PartRemainder As Integer 模拟零件库中的零件剩余量Dim PartDate As Date 零件需求(或生产)时间Dim i, j, sum As IntegerDim curDate As Date 定义要规划的当前时间(年月)变量Call S

46、imRemainPart 规划开始时,模拟零件库的零件库存数量为中央零件库数量If intDateStartYear = intDateEndYear Then 如果规划时间为同一年 For i = intDateStartMonth To intDateEndMonth 从第一月到最后一月 curDate = CDate(CStr(intDateStartYear) & - & CStr(i) rst.Open select * from 零件需求统计 , cnnDB, adOpenDynamic, adLockOptimistic Do While Not rst.EOF If curDa

47、te = rst!需求时间 Then 找出与本月相同的时间的记录 PartID = rst!零件编号 PartReqNum = rst!需求数量 PartRemainder = chkPartRemainder(PartID) 调出零件库存量 PartCycleNum = chkPartCycleNUM(PartID) 调出零件期量的数量值 PartName = chkPartName(PartID) 由零件编号在“基本零件”表中找出其对应名称 If PartRemainder PartReqNum Then 如果(模拟)库存量少于需求量,则该月应生产 If (PartRemainder +

48、PartCycleNum) PartReqNum Then 如果剩余零件与该零件的期量值 之和小于该月需求量,则优先满足生产要求 PartProNum = PartReqNum - PartRemainder Call AddPartProPlan(PartID, PartName, PartProNum, curDate) 零件的该月生产量 Call UpdateRemainder(PartID, 0) 更新模拟零件库剩余量 Else PartProNum = PartCycleNum 按期量值生产 Call AddPartProPlan(PartID, PartName, PartProN

49、um, curDate) 零件的该月生产量 Call UpdateRemainder(PartID, PartRemainder + PartCycleNum - PartReqNum) 更新模拟零件库剩余量 End If Else 模拟零件库中零件满足该月的需求,即该月不用生产 Call UpdateRemainder(PartID, PartRemainder - PartReqNum) 更新模拟零件库剩余量 End If End If rst.MoveNext Loop rst.Close Next iElse 为跨年度规划 For i = intDateStartMonth To in

50、tDateEndMonth 从第一月到最后一月 当前时间 If i = 12 Then curDate = CDate(CStr(intDateStartYear) & - & CStr(i) Else curDate = CDate(CStr(intDateEndYear) & - & CStr(i - 12) End If rst.Open select * from 零件需求统计 , cnnDB, adOpenDynamic, adLockOptimistic rst.MoveFirst Do While Not rst.EOF If curDate = rst!需求时间 Then Pa

51、rtID = rst!零件编号 PartReqNum = rst!需求数量 PartRemainder = chkPartRemainder(PartID) 调出零件库存量 PartCycleNum = chkPartCycleNUM(PartID) 调出零件期量的数量值 PartName = chkPartName(PartID) 由零件编号在“基本零件”表中找出其对应名称 If PartRemainder PartReqNum Then 如果(模拟)库存量少于需求量,则该月应生产 If (PartRemainder + PartCycleNum) PartReqNum Then 如果剩余零

52、件与该零件的期量值 之和小于该月需求量,则优先满足生产要求 PartProNum = PartReqNum - PartRemainder Call AddPartProPlan(PartID, PartName, PartProNum, curDate) 零件的该月生产量 Call UpdateRemainder(PartID, 0) 更新模拟零件库剩余量 Else PartProNum = PartCycleNum 按期量值生产 Call AddPartProPlan(PartID, PartName, PartProNum, curDate) 零件的该月生产量 Call UpdateRe

53、mainder(PartID, PartRemainder + PartCycleNum - PartReqNum) 更新模拟零件库剩余量 End If Else 模拟零件库中零件满足该月的需求,即该月不用生产 Call UpdateRemainder(PartID, PartRemainder - PartReqNum) 更新模拟零件库剩余量 End If End If rst.MoveNext Loop rst.Close Next iEnd IfEnd SubPrivate Sub UpdateRemainder(ByVal myPartID As String, ByVal myPar

54、tNum As Integer)用于更新模拟零件库存数量Dim rst1 As ADODB.RecordsetSet cnnDB = New ADODB.Connection 首先打开数据库及数据表Set rst1 = New ADODB.RecordsetcnnDB.ConnectionString = provider=Microsoft.Jet.OLEDB.4.0; & data source= & App.Path & hlmms.mdbcnnDB.Open 打开数据库rst1.Open select * from 模拟零件库存 , cnnDB, adOpenDynamic, adLockOptimisticrst1.MoveFirstDo While Not rst1.EOF 从头依次查找所需的零件编号,更新其零件库存量 If myPartID = rst1!零件编号 Then cnnDB.BeginTrans rst1!数量 = myPartNum rst1.Update cnnDB.CommitTrans Exit Do End If rst1.MoveNextLooprst1.CloseEnd Sub

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!