版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学士论文PAGEPAGE37概述目前有很多行业(包括设备维修),运用专家系统已达到很高水平,并取得了较好的实际效果。据了解国外有些矿山设备厂商,在维修业务中已逐步采用了这一技术,而国内很少见到这一方面的报道。随着计算机技术的普及与提高,以及大型矿山设备的增多,笔者认为目前已有可能和必要建立一个面向区域性的矿山设备维修专家系统(以下简称系统),以象维修专家那样求解维修领域中的复杂和非数值问题。1.1系统应具有的功能该系统具有诊断、调试、计划和执行等功能,对发生故障的矿山设备进行处理,使其恢复正常工作,这个系统既能对有经验的维修工程师提供维修设备帮助,也能训练初学者以提高他们的业务水平。其次,这个系统使专家的专长不受时间和空间的限制。1.2系统应具有的特点启发性:能充分利用知识库,对维修设备中的疑难问题进行推理、判断,作出决策。透明性:让用户尽可能多地了解系统的工作过程,以提高他们的协作和信赖程度。学习性:通过不断地修改和更新知识库,达到系统知识的增长和完善。自我纠错:对系统运用过程中产生的错误有识别能力,并加以纠正。智能化的交互界面:充分利用多媒体技术来实现人机交互,使用户方便、快捷地提出问题,得到结果。1.3实际中解决问题的对策:1.从开发的组织形式来说,可由本行业的维修协会来协调和统筹,将有经验的维修技术人员和计算机人员组成开发小组,这些人员不仅具备本行业的专业知识,而且互相信任,能紧密协作,有出色的沟通技巧。2.专家系统所能获得的知识数量的多少和优劣程度,是专家系统成功与否的关键,因而笔者建议系统应从以下几方面来获得知识:(1)从事维修和使用第一线的专家,其知识被同行所公认的,并拥有大量本行业既有代表性又是不寻常的案例,他们应具备计算机专业经验和知识,乐于此项工作,愿意将自己的经验和知识公诸出来,直至有成果。(2)从以往发表在权威杂志上的维修资料及其它方面的公共知识。(3)厂商的技术资料(包括厂商维修人员的经验)。3.解决一些特殊疑难问题时,应克服单个专家系统的局限性,与其他专家系统协同解决,其手段可以是任务分解,黑板技术(“讨论”方式)等。4.由于不可能在短时间内,建立庞大而完善的医疗仪器维修专家系统。因而我们应选取一些大型的、重点的设备,同时对解决问题所需的知识和经验,要易于定义易于获取,以便更容易5.选择一些通用的、高效的专家系统开发地建立专家系统。软件,作为设计开发专家系统的辅助手段和环境,以提高开发的效率、质量和水平。比如骨架型开发工具,我们可以借用已开发好的其他行业的维修专家系统,去掉其描述领域知识的规则,保留推理机部分,把精力放在创建规则上。6.培训和提高维修专家的计算机专业知识,特别是人工智能知识,以便他们尽可能多地了解知识工程师的开发过程,有利于维修专家将自己的知识和经验尽可能完整和准确地表达出来,有助于维修专家和知识工程师之间的协作和配合。7.目前矿山设备从业人员,对专家系统不是十分了解,因而不可能象常规开发应用软件那样,提出具体的需求。故可由设计者快速地开发出一个最小系统,或由其他行业维修专家系统抽取有关部分来作为原形,在此基础上提出要求和意见,再进行开发。6开发系统的目的、内容和意义矿山选厂设备是保证矿山生产的关键,矿山选厂设备维修的好坏直接影响矿山生产。而传统的设备维修计划的确定,维修管理方法都是凭管理人员和技术人员的经验,以及对设备技术每年一次的普查来确定。但是由于人员的变动,资料的不健全,导致维修计划的随机性很大,不是维修过剩就是维修不足,而且事故较多,这些都会使维修的经济性差,或影响矿山正常生产。收集矿山多年来的设备维修记录,结合维修管理人员和几乎上人员的工作经验,统计分析关键设备零部件的维修间隔期,维修频次等,建立数学模型,确定维修策略,建立数据库。对工段、设备、部件和维修方式进行编码,建立相关数据库,据实时检测运行数据,根据维修规则构造预测推理机制。系统经过分析、判断,自动生成选厂关键设备未来一周、一个月维修计划,并预测维修所需备件消耗及其备件金额。使原来的经验维修转变为科学维修,事后维修转变为预测维修、预防维修和主动维修相结合的可靠性维修,提高矿山选厂设备的可靠性和维修性,降低设备故障及维修费用,改进传统的设备维修管理观念和方法,提高矿山选长设备管理水平及其经济社会效益。开发专家系统是一项艰巨而繁重的工作,但随着计算机硬件技术的飞速发展,以及更通用而有效的开发方法出现,在我们矿山设备维修行业,又有众多热心这项公益事业的专家,相信在不长的时间内,我们的设想将成为现实,从而极大地提高矿山设备维修效率和水平。在该系统知识库的基础上,成功的开发了矿山选厂设备维修管理专家系统。实践证明该系统运行速度快,预测的维修计划准确。证明了该系统知识库的内容,结构合理,它为数据库的实现及推理的设计与实现起了一个很好的铺垫。系统分析及总体设计2.1系统的设计要求1)系统应在windows98以上环境中运行。2)能在系统中完成设备,设备零部件,设备零部件的类别极其维修方式维护与管理;能进行设备维修知识库,设备维修运行档案,设备维修档案及设备维修计划的管理。3)能实现计算机自动生成维修计划,并预测其备件金额。4)能实现对设备维修知识库,设备维修运行档案,设备维修档案及设备维修计划的查询。5)应提供友好的操作界面,系统运行正确,可靠。2.2系统的分析设备维修专家系统主要实现如下功能:系统维护,知识库管理,维修档案管理,计划生成,计划管理,计划查询,运行档案,报表打印等。在本次介绍中,着重介绍计划生成,计划编辑以及计划查询,详情见后页。2.3系统总体框架做任何的设计,都会有一个总体的设计和方案,设备维修专家系统采用了简单明了的方法设计,以VFP软件进行设计,为便于观察,笔者将系统的整体功能,以框架形式显示,(以下简称设备维修专家系统为系统)具体设计如图所示:矿山选厂设备维修管理专家系统系统启动界面权限认证界面系统主控界面系知维计计计运报其退统识修划划划行表它出维库档生管查档打护管案成理阅案印理管理2.4系统的总体设计在勾画出整体方案后及设计后,目前主要就是设计计划管理这一块计划管理主要包括计划编辑,计划生成,计划查询。在周计划编辑中,根据一周的实际情况,对设备进行进行编辑,比如说选取什么设备,什么部件,工作人员等等。计划生成,主要是利用档案库,对计划进行存档,以备分。计划查询主要是在不可编辑的界面下,对所有的设备进行查询,比如查询工作人员,查询备件价格,查询设备,部件等等。选厂设备维修管理专家系统,是一个针对某大型选厂设备维修管理的实际情况而开发的基于C/S模式的预测型专家系统。它通过推理根据全局数据库及知识库,自动生成未来一定时间段的维修计划,预测其所需备件及其费用,实现了选厂设备维修管理的智能化。在计划管理中,主要是将工段表,设备表以及部件表中的相关部件进行过滤,并最终存放于计划表中,使得在计划管理界面中能对相关部件实现编辑,修改以及备分,大大的节省了劳动力,也提高了劳动效率,更方便工作人员对工件进行维修。其此在计划查询中,用户可根据自己的需要查询所需要的工段,设备,以及部件等,改变了以往用户以手工查询记载在工作本上的尴尬,也便于管理。在计划生成中,用户可根据自己的需要,在一周内,甚至一个月内生成新的计划,并按照要求更换所要更换的零件,或者对所需要维护的零件进行维护。在计划管理中,可以根据自己的需要,编辑或查询自己想查询的零部件。而且效率是以往的几倍以上。根据维修记录,本系统中产生维修间隔(样本)异常值的可能因素有以下几方面:1)由于设备发生不可预测的以外事故而引起的维修,此次以外维修日期与上次检修日期的时间间隔可能很短,甚至可能短至几个小时;2)当零部件维修方式为更换时,若对零件进行了改造或其它延长寿命的维修方式,则可能更换时间间隔比正常更换时间间隔长的多(有时可能长至十几年,甚至几十年);3)由于资料遗失或记录不全,漏掉中间某次或若干次维修,也可能会使其维修间隔时间远远超过其正常维修间隔时间。以上这些因素均可能产生异常子样值(即维修间隔异常值),若不将异常子样剔除则会使维修周期的推算很不准确,进而直接影响系统自动预测维修计划的准确性。因此在计算维修周期前应先剔除异常值。系统将历年来的历史维修记录进行分析,按维修方式集合将部件分为23累,如01类,其维修方式为更换,洗洁,换油和调整间隙等。如果某部件所有可能维修方式均包含于这一维修方式集合,则该部件就属于这一部件类别。如轴承的维修方式为更换,洗洁,换油和调整间隙;油嘴的维修方式为更换,洗洁和换油。因此,系统将轴承和油嘴定为01类部件。由于选厂目前为止所有部件被分为23类(随着时间的推移与数据和知识的积累,以后可能会不断增加),所以此规则库中有23条规则:规则1如果该部件所有可能维修方式为01类维修方式集合(更换,调整间隙,洗洁,加油,处理漏油)的子集,那么该部件分为01类;规则2如果该部件所有可能维修方式为02类维修方式集合(更换,重浇,安装,焊补等)的子集,则该部件为02类。其余规则原理及格式与此类似,在此不作详细介绍。系统从实时检测系统获取各零部件的运行时间,并将它与维修周期进行比较,以此来预测维修计划。维修计划预测规则以下内容:规则1若维修周期大于运行时间,则该零部件进入维修计划表;规则2若在一个维修计划中同一个零部件要进行多种维修,且其中一种维修方式为更换,那么只保留该部件,其费用即为购置该部件所需金额。数据结构设计3.1数据库的基本知识数据库(DB)(database),可以直接地理解为存放数据的仓库。只不过这个仓库是在计算机的大容量存储器上,如硬盘就是一类最常见计算机的大容量存储设备。数据库中数据必须按一定的格式存放,因为它不仅需要存放,而且还要便于查找。所以可以认为数据库中的数据是被存放在计算机内、有组织的、可以表现为多种形式的可共享的数据库相关数据集合。数据库技术使数据能按一定格式组织、描述和存储,且具有较少的冗余度,较高的数据独立性和易扩展性,并可为多个用户所共享。人们总是尽可能地收集各种各样的数据,然后对它们进行加工,目的是要从这些数据中得到有用的信息。在科学技术飞速发展的今天,人们接触的事物越来越多,反映这些事物的数据量也急剧增加。过去人们手工管理和处理数据,现在借助计算机来保存和处理大量复杂的数据,这样能方便而充分地利用这些宝贵的数据资源。数据库技术正是由于这一需求驱动而发展起来的一种计算机软件技术。数据库管理系统了解了数据和数据库的概念,就应该研究如何利用计算机有效地组织和存储数据、获取管理数据。完成这个任务的是数据库管理系统DBMS(databaseManagementsystem),它属于一类计算机系统软件。数据库管理系统是处于用户与计算机之间的一层数据管理软件,它的主要功能包括以下几个方面:数据定义功能DBMS提供数据定义语言DDL(datadsfinitionlanguage),用户通过它可以方便地对数据库中的相关内容进行定义。如对数据库、基本表、视图、和索引进行定义。数据操纵功能DBMS向用户提供数据操纵语言DML(datamanipulationlanguage),实现对数据库的基本操作,如对数据库中数据的查询、插入、删除、和修改。数据库中的运行管理这是DBMS的核心部分,它包括并发控制,即自理多个用户同时使用某些数据时可能使用的问题,安全性检查、完整性约束条件的检查和执行、数据库的内部维护,如索引、数据字典的自动维护等。所有数据库的操作都要在这些控制程序的统一管理下进行,以保证数据的安全性、完整性以及多个用户对数据库的并发使用。、数据库的建立和维护功能包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重要组织功能和性能监视、分析功能等,这些功能通常由一些实用程序完成的。它是数据库管理系统的一个重要组成部分。数据库系统数据库系统DBS(databasesystem)通常是指带有数据库的计算机应用系统。因此,数据库系统不仅包括数据本身,即实际存储在计算机中的数据,还包括相应的硬件、软件和各类人员。数据库系统是一个有使用维护人员、加工设备和数据资源的完整计算机应用系统,现在分别介绍相关内容。3.11数据的类型数据是描述客观试题的,能够由计算机处理的数字,字母,符号,图象和声音等。这些不同形式的数据反映了数据的不同类型。不同类型的数据表示方法和处理方法是不同的。这里提供7中数据类型:数据型数据N(NUMERIC),由数字,小数点和正负号组成,有效位数为16位,如36,36.88等字符型数据C(Character),由中、英文字符,数字、空格和其它专用符号组成。一个字符的最大长度为254个字符。浮点型数据F(float),表示工程和科学计算4)逻辑型数据L(logical),表示逻辑判断结果的值,只能取真(.t.或.y.)或假(.f.或.n.)逻辑型数据长度固定为一个字符。5)日期型数据D(date)是用来表示日期的特殊数据,固定宽度为8位。6)备注型数据M(memo)仅用于定义字段。固定宽度10个字节。7)通用型数据G(general)仅用于定义字段,是特殊数据类型。3.12常量常量是指在程序运行过程中其值不变化的数据。在foxpro中有四种类型的常量:数值行常量、字符型常量、逻辑型常量、日期型常量。3.13变量变量是指用标识符命名的,其值在程序运行过程中经常改变的数据。规定变量名最多为10个字符,可以由字母、数字和下划线组成,但必须以字母开头(也可以是汉字),中间不能有空格。3.14表达式表达式是由运算对象、对象符和括号所组成的一个有物理意义的式子。每个表达式都产生一个值,并且具有某种类型,该类型称为“表达式的类型”。3.15函数函数是系统为实现一般表达式不能或难以实现的某些特定操作而预先编制好的彝族程序,供用户调用。3.2数据库的设计在建立表、数据库、查询、表单、报表以及应用程序时、可以用《项目管理器》来组织和管理文件。利用项目管理器,可以在项目中添加或移去文件、创建新文件或修改已有文件、查看表的内容,具体设计如下:创建新项目新建一个项目,取名项目1,保存于e:2.创建数据库在项目1中,新建一数据库,取英文名dashansj(大山数据库)3.在dashansj中建立数据表。在数据库目录中新建数据表,这里有两种形式的表,一种是数据表,另一种是所谓的自由表。自由表是不与数据库关联的表,用户可以在适当的时候将自由表加入到数据库中成为数据表。所建立的表如下:jihua(计划表)内含字段:gddm字符型宽2标题为工段代码sbbh字符型宽20标题为设备编号sbmc字符型宽40标题为设备名称bjbh字符型宽20标题为设备编号bjmc字符型宽40标题为设备名称jxfs字符型宽40标题为检修方式jxrq日期型宽8标题为检修日期dj数字型宽8标题为单价sxbj字符型宽10标题为所需备件jxnr字符型宽10标题为检修内容bjsl数字型宽8标题为备件数量je数字型宽8小数点2位,标题为金额jhsj字符型宽20标题为计划时间sjsj字符型宽20标题为实际时间cl字符型宽10标题为材料gj字符型宽10标题为工具fzr字符型宽10标题为负责人jxyy字符型宽10标题为检修原因bz字符型宽10标题为备注sfrk逻辑型宽1标题为是否入库jxfsb(检修方式表)内含字段:bjlb字符型宽2标题为部件类别jxfs字符型宽40标题为检修方式gdb(工段表)内含字段:gddm字符型宽2标题为工段代码gdmc字符型宽4标题为工段名称sbb(设备表)内含字段:gddm字符型宽2标题为工段代码sbbh字符型宽20标题为设备编号sbmc字符型宽40标题为设备名称zdbs逻辑型宽1标题为重点标识5,bjb(部件表)内含字段:gddm字符型宽2标题为工段代码sbbh字符型宽20标题为设备编号sbmc字符型宽40标题为设备名称bjbh字符型宽20标题为设备编号bjmc字符型宽40标题为设备名称bjlb字符型宽2标题为部件类别zdbs逻辑型宽1标题为重点标识tzl数字型宽2标题为台装量bjdj数字型宽8数2位,标题为备件单价6,zskb(知识库表)内含字段:gddm字符型宽2标题为工段代码sbbh字符型宽20标题为设备编号sbmc字符型宽40标题为设备名称bjbh字符型宽20标题为设备编号bjmc字符型宽40标题为设备名称bjlb字符型宽2标题为部件类别jxrq日期型宽8标题为检修日期jxfs字符型宽40标题为检修方式lspc数字型宽8标题为历史频次pjzq数字型宽8标题为平均周期7,rqb(日期表)内含内容:qsrq日期型宽8标题为起始日期zzrq日期型宽8标题为终止日期8,dab(档案表)内含内容:gddm字符型宽2标题为工段代码sbbh字符型宽20标题为设备编号sbmc字符型宽40标题为设备名称bjbh字符型宽20标题为设备编号bjmc字符型宽40标题为设备名称jxfs字符型宽40标题为检修方式jxrq日期型宽8标题为检修日期dj数字型宽8标题为单价sxbj字符型宽10标题为所需备件jxnr字符型宽10标题为检修内容bjsl数字型宽8标题为备件数量je数字型宽8小数点2位,标题为金额jhsj字符型宽20标题为计划时间sjsj字符型宽20标题为实际时间cl字符型宽10标题为材料gj字符型宽10标题为工具fzr字符型宽10标题为负责人jxyy字符型宽10标题为检修原因bz字符型宽10标题为备注sfrk逻辑型宽1标题为是否入库rpyx数字型宽8标题为日平运行9,yxdab(运行档案表)内含内容:gddm字符型宽2标题为工段代码sbbh字符型宽20标题为设备编号sbmc字符型宽40标题为设备名称bjbh字符型宽20标题为设备编号bjmc字符型宽40标题为设备名称jxfs字符型宽40标题为检修方式jxrq日期型宽8标题为检修日期lspc数字型宽8标题为历史频次pjzq数字型宽8标题为平均周期建完所需要的数据表后,选择工段表,以追加方式在工段代码里分别输入yk,sk,对应的工段名称为原矿,碎矿;在设备表的设备编号里追加输入yk999,sk999,对应的名称为1#旋回破碎机,2#旋回破碎机;在部件表里部件编号追加输入yk9999,sk9999,对应的部件名称为齿轮,轴承,并在部件类别里输入cl,zc;在检修方式表部件类别追加输入cl,zc,检修方式输入更换,清洗。为使数据表,更简洁明了,在这里没有使用索引。一般来说,在创建数据库项目的数据表时,应遵循以下几项原则:1)必须把所有的数据元素组织到数据表中。同时,与同一现实对象相关的数据最好组织到同一个数据表中。2)必须全面为数据表中的记录设计关键字,这是对数据表进行排序、查询和分析的必要前提。3)数据表中不允许出现重复的行或列,这样不仅会浪费磁盘存储空间,而且还有可能在统计、分析数据时产生错误,从而导致数据库功能的失败。4)在每个数据单元中只允许有唯一的数据元素,这是保证数据库查询统计正确性的前提,对于实际情况中出现的重复元素,可以通过建立两长表的方法来解决。专题模块的程序设计利用表单,可以让用户在熟悉的界面下查看数据或将数据输入数据库,具体设计如下:4.1制作表单从〈项目管理器〉中选择〈文档〉标签,然后选择表单项,单击〈新建〉按钮,在弹出的〈新建表单〉对话框中选择〈新建表单〉选项。这里着重介绍计划编辑,计划查询和计划生成。4.11新建表单jhbj(计划编辑)在此表单中,主要实现的功能为,利用工段过滤设备,设备过滤部件,部件过滤检修方式,并且增加若干按狃,以达到编辑和入库的功能。具体制作如下:新建表单命名jhbj,点鼠标右键,在数据库设计器中添加数据表jihua,gdb,bjb,sbb和dab,利用鼠标将jihua表拉到表单上,形成一个数据表,并将其放置于表单左边,同时在jihua数据表中用鼠标左键拖出如下图中所示文本框,并且增加四个复选框,在表单界面添加七个按狃,分别命名如下图所示,位于表单位置下边部位。此时应对表单更改属性,点鼠标右键,出现属性框,在数据中找到buffermode将其选为2-开放式,此处更改为缓冲模式。双击表单,在form1事件代码里输入如下代码:setdeleon,settalkoff在grdjihuaclick事件代码里输入:thisform.refresh在combo4click事件代码里输入:selesbbsetfiltertoallt(gddm)=allt(gdb.gddm)单击combo4右键,在生成器列表项选gdb并选定gdmc和gddm,并在生成器布局中双击gddm,(此处双击gddm隐藏,以下均为同意),并在生成器值中选定gddm返回,并存储到jihua.gddm在combo1click事件代码里输入:m=sele('')selebjbsetfiltertoallt(sbbh)=allt(sbb.sbbh)thisform.txtsbmc.value=allt(sbb.sbmc)selejihuasbbh=sbb.sbbhsele(m)单击combo1右键,在生成器列表项选sbb并选定sbmc和sbbh,并在生成器布局中双击sbbh,并在生成器值中选定sbbh返回,并存储到jihua.sbbh在combo2click事件代码里输入:selejxfsbsetfiltertoallt(bjlb)=allt(bjb.bjlb)thisform.txtbjmc.value=allt(bjb.bjmc)thisform.txtdj.value=bjb.bjdjselejihuabjbh=bjb.bjbh单击combo2右键,在生成器列表项选bjb并选定bjbh,bjmc和sbbh,并在生成器布局中双击sbbh和bjbh并在生成器值中选定bjbh返回,并存储到jihua.bjbh在combo3click事件里无需输入代码,单击combo3右键,在生成器列表项选jxfsb并选定jxfs和bjlb,并在生成器布局中双击bjlb并在生成器值中选定jxfs返回,并存储到jihua.jxfs在command1click事件里输入代码:m=sele('')selejihuaappendmand1.enabled=.mand2.enabled=.mand3.enabled=.mand4.enabled=.mand5.enabled=.mand7.enabled=.bo1.enabled=.bo2.enabled=.bo3.enabled=.bo4.enabled=.t.thisform.txtsbmc.enabled=.t.thisform.txtbjmc.enabled=.t.thisform.txtjhsj.enabled=.t.thisform.txtsjsj.enabled=.t.thisform.txtsxbj.enabled=.t.thisform.txtbjsl.enabled=.t.thisform.txtjxnr.enabled=.t.thisform.txtjxyy.enabled=.t.thisform.txtje.enabled=.t.thisform.txtjxrq.enabled=.t.thisform.txtbz.enabled=.t.thisform.txtcl.enabled=.t.thisform.chksfrk.enabled=.t.thisform.txtgj.enabled=.t.thisform.txtfzr.enabled=.t.thisform.refreshsele(m)在command2caption里输入修改,click事件里输入代码:m=sele('')selemand1.enabled=.mand2.enabled=.mand3.enabled=.mand4.enabled=.mand5.enabled=.mand7.enabled=.bo1.enabled=.bo2.enabled=.bo3.enabled=.bo4.enabled=.t.thisform.txtsbmc.enabled=.t.thisform.txtbjmc.enabled=.t.thisform.txtjhsj.enabled=.t.thisform.txtsjsj.enabled=.t.thisform.txtsxbj.enabled=.t.thisform.txtbjsl.enabled=.t.thisform.txtjxnr.enabled=.t.thisform.txtjxyy.enabled=.t.thisform.txtje.enabled=.t.thisform.txtjxrq.enabled=.t.thisform.txtbz.enabled=.t.thisform.txtcl.enabled=.t.thisform.chksfrk.enabled=.t.thisform.txtgj.enabled=.t.thisform.txtfzr.enabled=.t.thisform.refreshsele(m)在command3caption里输入删除click事件里输入代码:selejihuayn=messagebox('确定删除此记录?',4+64+256,'信息提示')docasecaseyn=6deletetableupdate()thisform.refreshcaseyn=7tablerevert()endcasegotopthisform.refreshmand1.enabled=.mand2.enabled=.mand3.enabled=.mand4.enabled=.mand5.enabled=.mand7.enabled=.t.bo1.enabled=.bo2.enabled=.bo3.enabled=.bo4.enabled=.f.thisform.txtsbmc.enabled=.f.thisform.txtbjmc.enabled=.f.thisform.txtjhsj.enabled=.f.thisform.txtsjsj.enabled=.f.thisform.txtsxbj.enabled=.f.thisform.txtbjsl.enabled=.f.thisform.txtjxnr.enabled=.f.thisform.txtjxyy.enabled=.f.thisform.txtje.enabled=.f.thisform.txtjxrq.enabled=.f.thisform.txtbz.enabled=.f.thisform.txtcl.enabled=.f.thisform.chksfrk.enabled=.f.thisform.txtgj.enabled=.f.thisform.txtfzr.enabled=.f.在command4caption里输入确认click事件里输入代码:m=sele('')selejihuadj=jihua.djbjsl=jihua.bjslthisform.txtje.value=dj*bjslsumjetozjethisform.text3.value=zjeif!eof()skipskip-1elsegobottomendif=tableupdate()mand1.enabled=.t.mand2.enabled=.t.mand3.enabled=.t.mand4.enabled=.f.mand5.enabled=.f.mand7.enabled=.t.bo1.enabled=.bo2.enabled=.bo3.enabled=.bo4.enabled=.f.thisform.txtsbmc.enabled=.f.thisform.txtbjmc.enabled=.f.thisform.txtjhsj.enabled=.f.thisform.txtsjsj.enabled=.f.thisform.txtsxbj.enabled=.f.thisform.txtbjsl.enabled=.f.thisform.txtjxnr.enabled=.f.thisform.txtjxyy.enabled=.f.thisform.txtje.enabled=.f.thisform.txtjxrq.enabled=.f.thisform.txtbz.enabled=.f.thisform.txtcl.enabled=.f.thisform.chksfrk.enabled=.f.thisform.txtgj.enabled=.f.thisform.txtfzr.enabled=.f.thisform.refreshsele(m)在command5caption里输入还原,click事件里输入代码:m=sele('')selejihua=tablerevert()mand1.enabled=.t.mand2.enabled=.t.mand3.enabled=.t.mand4.enabled=.f.mand5.enabled=.f.mand7.enabled=.t.sele(m)在command6caption里输入入库,click事件里输入代码:c=sele('')selejihuach=messagebox('确认入库吗?',4+32+0,'信息窗口')ifch=6n=reccount()fori=1tongoigb=jihua.gddmsb=jihua.sbbhsm=jihua.sbmcbb=jihua.bjbhbm=jihua.bjmcwf=jihua.jxfswr=jihua.jxrqcb=jihua.sxbjcs=jihua.bjsldj=jihua.djcost=jihua.jejg=jihua.jhsjsg=jihua.sjsjrk=jihua.sfrkgj=jihua.jxnryy=jihua.jxyyfr=jihua.fzrx=jihua.bzinsertintodab(gddm,sbbh,sbmc,bjbh,bjmc,jxfs,jxrq,sxbj,bjsl,dj,je,jhsj,sjsj,sfrk,jxnr,jxyy,fzr,bz);value(gb,sb,sm,bb,bm,wf,wr,cb,cs,dj,cost,jg,sg,rk,gj,yy,fr,x)endforelsereturnendifthisform.refreshsele(c)在command7caption里输入退出,click事件里输入代码:thisform.release将combo4,combo1,combo2,combo3,txtsbmc,txtbjmc,txtjxrq,txtjhsj,txtsjsj,txtsxbj,txtbjsl,txtdj,txtje,txtzje,txtjxnr,txtjxyy,txtbz,txtcl,txtfzr,txtgj,chksfrk,command4,command5事件属性enabled改为F—假。最后呢,将表单Form1背景颜色属性改为0,128,128即为深蓝色。4.12,jhcx(计划查询)在此表单中,主要是便于方便用户查询记录,具体制作如下:新建表单命名jhcx,点鼠标右键,在数据库设计器中添加数据表jihua,gdb,bjb,sbb和jxfsb,利用鼠标将jihua表拉到表单上,形成一个数据表,并将其放置于表单左边,同时在jihua数据表中用鼠标左键拖出如图中所示文本框,并且增加,三个复选框,分别命名如上图所示,位于表单显示位置。此时应对表单创建属性,点鼠标右键,出现属性框,在数据中找到buffermode将其选为2-开放式,此处更改为缓冲模式。双击表单,在form1事件代码里输入:setdeleon,settalkoff在grdjihuaclick事件代码里输入:thisform.refresh在combo4click事件代码里输入:selejihuasetfiltertojihua.gddm=gdb.gddm=tablerevert()thisform.refresh单击combo4右键,在生成器列表项选gdb并选定gdmc和gddm,并在生成器布局中双击gddm并在生成器值中选定gddm返回,无需存储。在combo1click事件代码里输入:selejihuasetfiltertojihua.gddm=gdb.gddmsetfiltertojihua.sbbh=sbb.sbbhthisform.refresh单击combo1右键,在生成器列表项选sbb并选定sbmc和sbbh,并在生成器布局中双击sbbh并在生成器值中选定sbbh返回,无需存储。在combo2click事件代码里输入:selejihuasetfiltertojihua.bjbh=bjb.bjbhthisform.refresh单击combo2右键,在生成器列表项选bjb并选定bjmc,bjbh和sbbh,并在生成器布局中双击sbbh和bjbh并在生成器值中选定sbbh返回,无需存储。单击text1右键,在生成器列表项值中选择Rqb.Qsrq返回。单击text2右键,在生成器列表项值中选择Rqb.zzrq返回。在command4click属性代码里输入:thisform.release将text1,text2txtsbmc,txtbjmc,txtjxrq,txtjhsj,txtsjsj,txtsxbj,txtbjsl,txtdj,txtje,txtzje,txtjxnr,txtjxyy,txtbz,txtcl,txtfzr,txtgj,chksfrk,事件属性readonly都改为T—.真.。最后呢,将表单Form1背景颜色属性改为0,128,128即为深蓝色。4.13,jhsc(计划生成)在此表单中,主要制作的目的是生成新的计划,去掉老的计划,称之周计划生成,具体制作如下:新建表单命名jhsc,点鼠标右键,在数据库设计器中添加数据表jihua,dab,zskb,yxdab,和rqb,利用鼠标将jihua表拉到表单上,形成一个数据表,并将其放置于表单左边,同时在jihua数据表中用鼠标左键拖出如图中所示文本框,分别命名如上图所示,位于表单显示位置。此时应对表单创建属性,点鼠标右键,出现属性框,在数据中找到buffermode将其选为2-开放式,此处更改为缓冲模式。双击表单,在form1事件代码里输入settalkoff在grdjihuaclick事件代码里输入:thisform.refresh单击text1右键,在生成器列表项值中选择Rqb.Qsrq返回。单击text2右键,在生成器列表项值中选择Rqb.zzrq返回。在text1lostfocus事件代码里输入:thisform.text2.value=thisform.text1.value+6在text3lostfocus事件代码里输入:thisform.text3.value=thisform.text2.value+1thisform.text4.value=thisform.text3.value+6在command3click属性代码里输入:m=sele('')selejihuach=messagebox("确实生成计划吗?",4+32+0,"提示信息")ifch=6deletealltableupdate()elsereturnendifthisform.refreshsele(m)在command2caption属性改为确定click属性代码里输入:c=sele('')ifempty(thisform.text3.value).and.empty(thisform.text4.value)messagebox("请输入计划日期!",40,"提示信息!")endifselezskbn=reccount()fori=1tonselezskbgoigb=zskb.gddmsb=zskb.sbbhsm=zskb.sbmcbb=zskb.bjbhbm=zskb.bjmcbl=zskb.bjlbjf=zskb.jxfsjr=zskb.jxrqlp=zskb.lspcpz=zskb.pjzqrq=thisform.text4.valueseleyxdablocateforsbbh=sb.and.bjbh=bbiffound()ys=yxsjendififys>=pzinsertintojihua(gddm,sbbh,sbmc,bjbh,bjmc,jxfs,jxrq,sxbj,bjsl,dj,je,jxnr,jhsj,sjsj,cl,gj,sfrk,jxyy,fzr,bz);value(gb,sb,sm,bb,bm,jf,rq,'',0,0.00,0.00,0,0,0,'','',.f.,'','','')endifendforselejihuam=reccoun()fori=1tomifjxfs='更换'sm=sbbhbm=bjbhselebjblocateforsbbh=sm.and.bjbh=bmiffound()bc=bjmcdj=bjdjsl=tzlendifselejihuareplaceclbjwithbmreplacedjwithdjreplacebjslwithslreplacejewithdj*bjslendifendforselejihuay=reccount()fori=1toyifjxfs='更换'sd=sbbhbd=bjbhdeleallforsbbh=sd.and.bjbh=bd.and.jxfs<>'更换'endifendforthisform.label4.visible=.f.thisform.label5.visible=.f.thisform.label6.visible=.f.thisform.text3.visible=.f.thisform.text4.visible=.mand3.visible=.f.thisform.text1.value=thisform.text3.valuethisform.text2.value=thisform.text4.valuerq1=thisform.text3.valuerq2=thisform.text4.valueselerqbappendblankreplaceqsrqwithrq1replacezzrqwithrq2thisform.refreshsele(c)在command1属性caption改为退出click属性代码里输入:thisform.release最后呢,将表单Form1背景颜色属性改为0,128,128即为深蓝色。总体来说,用户在设计一个新的表单时,应遵循以下步骤来进行:用户用户表单的属性;在表单中添加所需的控件对象;设置控件对象的属性;书写表单及控件对象的事件驱动代码表单的调整与报表布局的调整有许多相似之处,如控件对齐操作、修改控件尺寸、设置控件色彩的操作几乎都是一样的,这里就不再介绍了。但表单控件报表控件也有不同,表单中的控件在调整和定制之后,将对控件的属性产生影响。设置Tab顺序在表单中,可以设置允许通过使用Tab键来移动焦点,用户可以通过设置Tabindex属性来设置或修改控件的Tab顺序。用户也可以在《显示》菜单中选择《Tab键次序》选项,或是单击《表单设计器》工具栏的《设置Tab键次序》按钮,使《表单设计器》由设计模式进入设置Tab顺序模式,然后在其中交互式地修改控件Tab顺序,如图所示:设置控件对象的Tab顺序,应先单击控件对象左边的Tab顺序框,设置此对象的Tab顺序为1,然后按Shift键,单击其他对象的Tab顺序框,依次设置此对象的顺序为2,3……。设置完毕,接受此Tab顺序,并返回设计模式。设置完Tab顺序后,控件对象的TabIndex属性将受到影响。在表单运行后,当使用者使用Tab键来移动焦点时,移动顺序将按用户设置的Tab顺序进行。4.2:制作计划报表做为一个完善的系统,其输入、输出是两个不可缺少的部分,报表便是输出数据的重要工具。以下主要将介绍报表的设计方法。事实上数据表有两个,一个是从表,它记录了矿山机械的全部内容,另一个是主表,录入方式有表单方式(即单表表单)和多表方式(即主从表方式)。报表也一样,有单表报表和主从报表,由于单表报表已经在前面有所涉及,为此本节将介绍主从报表的制作方法。其步骤如下:(1)打开项目管理器。(2)在项目管理器中将页面切换至“文档”页。(3)在文档页中选择“报表”,如下图所示。(4)点击“新建”按钮出现报表向导面板,如下图所示。在面板上有两种方式建立报表,第一种是新建立报表,它生成一个空白报表,如下图所示。在空白报表之中,需要用户自己增添控件、引入数据源等,比较复杂,一般需要熟悉的程序员才能完成。第二种是按报表向导生成报表,它是一种程序化的制作过程,比较简单。在此,选择报表向导制作报表。(5)点击“报表向导”按钮如下图所示的窗口。(6)选择“一对多报表向导”,点击“确定”按钮出现如下图所示的窗口。在引入数据源时,往往需要打开一个文件夹对话框。在项目文件夹中选择主表数据表,它会将主表中的一切字段列示出来,供制作者选择。全部选入到右边的字段列表框中,如下列图所示。点击“下一步”,出现如图所示的窗口。(9)将从表字段选择到右边的字段列表框中,然后点击“下一步”,出现主从表在报表中的关联字段,它与表单的数据关联完全一样,如图所示。报表中的数据与表单中的数据一样,显示时往往需要按某一个字段或几个字段进行排序显示。因此点击“下一步”按钮即进入字段排序的设置,如果不需要进行排序则直接点击“完成”按钮即可。报表是一种格式性很强的东西,点击“下一步”会出现一个报表样式选择窗口,选择适当的报表样式即可。另外,报表中往往需要产生统计数字。为此,对该字段作统计设计,如图所示。最后出现报表完成设置,如保存、修改、预览等。在保存报表之前,最好做一次预览,它能够体现报表设置的正确性和完善性,如果需要修改,再做其他选择。将报表保存到项目创建的报表文件夹即可,后面在主窗体中将调用它。完成后会发现,向导将出现一个程序生成器,在它之中,自动地报表放置到该生成器之中了,如图所示。可以看出,VisualFoxpro6.0的向导是一个比较完美的程序制作工具。但注意到,无论是表单或是报表,用向导制作的东西总是固定的,它未必能满足人们的需要,在前面的表单制作中多次涉及到,需要人们对它进行修改和完善。4.3制作主窗体在项目中,已经制作了三个程序,一个计划编辑,一个是计划生成,一个是计划查询,需要一个主界面将三者联系起来,形成一个总体。具体主窗体界面如下所示:主窗体的制作方法如下:打开项目管理器进入项目制作。在项目管理器中将页面切换至“文档”。在文档页面中选择“表单”。增加一个新的空白的表单。在表单中放入三个命令按钮及一个标签控件。设置命令按钮及标签的属性。修饰主表单。最后也是最重要的是,需要为三个按钮控件编制事件代码,如果没有什么事情也不能实现。生成器是带有选项卡的对话框,用于简化对表单、复杂控件和参观完整性代码的创建和修改过程。每个生气器显示一系列选项卡,用于设置选中对象的属性。可使用生成器在数据库表之间生成控件、表单、设置控件格式和创建参照完整性。VisualFoxpro6.0是一个功能强大的数据库管理系统(DBMS),同以前的数据库管理系统相比,具有更快速、更有效、更灵活的突出特点。它能够迅速而又简单地建立用户的数据库,从而方便到使用和管理数据;它不仅支持客户机/服务器(client/server)结构,而切具有与其他软件共享和交换数据的能力。VisualFoxpro6.0提供对象和事件处理模式,利用面向对象编程(OOP)的威力使用户能够最快速到建立和修改应用程序。因此,用VisualFoxpro6.0做为编辑软件的平台,大大加快了编辑人员的工作进度,而且为数据库系统的开发提供了更快的速度、更强的能力和更大的灵活性。系统使用说明设备维修管理是设备管理的重要内容之一。矿上生产中大部分设备处于连续运行状态,如选矿厂的生产设备。大多数矿山设备均具有工作条件恶劣、负荷大的特点,切故障出现的随即性也较大。因此,关键设备因故障引起的非正常停机将造成整个生产过程的中断,带来很大的经济损失。预知故障出现的时间并进行即使有效的维修可以减少设备停机时间,从而提高设备运转率,最大限度地减少由于故障造成的经济损失。据此,利用数据库技术,建立一个较为完整的设备维修管理专家系统,对设备故障信息进行分析、预测及有效知道设备维修是非常必要的。该系统具有诊断、调试、计划和执行等功能,对发生故障的矿山设备进行处理,使其恢复正常工作,这个系统既能对有经验的维修工程师提供维修设备帮助,也能训练初学者以提高他们的业务水平。其次,这个系统使专家的专长不受时间和空间的限制。矿山设备专家维修系统充分调查矿山选厂设备维修管理的实际要求,收集某选矿厂的历史维修数据,并对其进行分析计算,确定该厂所有设备极其零部件的平均维修周期、历史频次……。掌握专家系统的基本理论极其应用。在此基础上进行系统分析,确定其总体功能极其数据结构,完成系统的数据与开发。具体主要功能如下:5.1.主要功能:5.11.系统维护管理,包括:工段表编辑(含添加、修改、删除)与查询设备表编辑(含添加、修改、删除)与查询部件表编辑(含添加、修改、删除)与查询维修方式名称表编辑(含添加、修改、删除)与查询数据库清理:对打上删除标记的记录进行清理,释放其占用内存。5.12维修知识库管理:包括维修知识库编辑:对维修知识表中的内容进行增删或修改。维修知识库查询:根据输入的设备及部件名称查找对应该设备零部件维修知识表内容进行查询。(3)自动维护知识库:根据已执行维修
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 娱乐行业招聘策略总结
- 2025年全球及中国螺旋藻虾青素行业头部企业市场占有率及排名调研报告
- 2025年全球及中国合成生物学智造平台行业头部企业市场占有率及排名调研报告
- 2025-2030全球轻型柴油发动机行业调研及趋势分析报告
- 2025-2030全球反流检测设备行业调研及趋势分析报告
- 2025-2030全球装饰金属板光纤激光切割机行业调研及趋势分析报告
- 2025-2030全球降膜式风冷螺旋式冷水机组行业调研及趋势分析报告
- 2025年全球及中国无塑工业软包涂层纸行业头部企业市场占有率及排名调研报告
- 2025年全球及中国聚合物氢气分离膜行业头部企业市场占有率及排名调研报告
- 2025年全球及中国摇摆式生物工艺容器行业头部企业市场占有率及排名调研报告
- 搞笑小品剧本《大城小事》台词完整版
- 物业服务和后勤运输保障服务总体服务方案
- 人大代表小组活动计划人大代表活动方案
- 《大模型原理与技术》全套教学课件
- 2023年护理人员分层培训、考核计划表
- 《销售培训实例》课件
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解)
- 【经典文献】《矛盾论》全文
- Vue3系统入门与项目实战
- 2024年宁夏回族自治区中考英语试题含解析
- 光伏发电项目试验检测计划
评论
0/150
提交评论