《机动车检测系统毕业结业论文及说明.doc》由会员分享,可在线阅读,更多相关《机动车检测系统毕业结业论文及说明.doc(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、/第一章第一章 可行性分析可行性分析1、1 问题描述问题描述随着世界汽车产业格局的变化,我国汽车产业也迅速发展,汽车维修成为具潜力的行业,但汽车维修管理的规范化,网络化,智能化,使得必须建立起专业的汽车维修管理系统作为管理汽车维修方面的一系列问题成为了必不可少的。运用计算机来管理汽车维修的信息具有公正、严格和高效等诸多优点,从而取代了人工管理模式下由于各种原因出现管理漏洞的可能性,因而减少了工作人员的难度性,提高了工作效率。我们在现行系统初步调查的基础上提出了新系统目标,即新系统建立后所要求达到的运行指标,这是系统开发和评价的依据。1.2 可行性分析研究可行性分析研究1.2.1 技术可行性技术
2、可行性技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬、软件配置能否满足开发者需要等。目前大型汽车维修公司均建有局域网,并且采用 PC 机作为工作台,其容量、速度能满足系统要求。根据客户提出的系统功能、性能及实现系统的各项约束条件,根据新系统目标来衡量所需的技术是否具备,本系统是一个数据库管理和查询的系统,现有的技术以较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。1.2.2 经济可行性经济可行性因为通过网络管理汽车维修信息可以不受限制,因此可以节约许多的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高
3、维修管理的效率,即提高了维修站的经济效益,所以从经济上完全是可行的。(1) 汽车维修公司有能力承担系统开发费用开发新系统的工作是一项艰巨复杂的工作,它的投资主要是人力和物力的投资。对于本系统的开发者来说,其主要投资还是在人力和物力两个方面。如果是企业自己安排人手开发系统的话,其主要的投资还是在人力资源上,从系统的业务需求调查到系统的分析编码制作都是需要巨大的人力投入的。软件企业作为一个简短的高科技产业,其员工要求都比一般企业的要求要高,而且对系统开发及软件产业了解比较多,所以在自我开发管理系统的过程中,企业自己比较容易安排人手,这样就可以为企业节约大部分的额外开支。同时软件就其它产品来属于高端
4、行业,无论是产品的价格还是质量都比较高,而经营产品的经销商或者是商家都要求有雄厚的资金支持。所以,/在系统的开发过程中,企业完全有能力承担开发费用.(2) 管理系统将带来经济效益管理系统是一个信息化、智能化和先进管理理念的集合体。而管理是一个动态过程,在其运行过程中要采取多项措施。所以在管理中获得经济效益是一个综合效益,要对它进行直接定量的分析是比较困难的。一般新系统带来的经济效益是简洁的,其最主要的表现就是减少了企业管理费用和人力开支。而其它一些繁琐的事物都通过新系统来加以分析解决,不仅节省了大量的时间,还为企业的各项决策提供了宝贵的资料,为企业带来巨大的经济效益。1.2.3 操作可行性操作
5、可行性本系统采用基于 Windows 的图形用户界面,而该系统是大家熟悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。而整个汽车维修管理系统采用友好的交互界面,简洁明了,只需要对使用者进行简单的操作培训就可以使用本系统,来管理汽车的整个检修的流程。不需要对数据库进行深入的了解。1.3 结论意见结论意见综合以上三方面,无论是从技术上、经济上还是操作上,该系统都具有很高的开发可行性。系统基本上做到了在技术、经济、运行、法律上的可行,因此,相信在按照计划上实施的前提下,全系统的设计将会按时、高质量完成。所以,可以设计该系统的数据流程图,建立数据字典,开始开发系统。/第二章第二章项目开发
6、计划项目开发计划2.1 编写目的编写目的经过可行性分析报告,得出项目可进一步进行下去的结论,在软件继续进一步的开发之前首先给出此软件项目计划。2.2 项目背景项目背景项目分析单位在接到项目分析员给出的项目可行性分析报告后,在本系统,即车辆维修管理系统开发主管部门的统一下制定用于软件实质开发的软件项目计划,以使软件开发单位理解软件开发要求,进行开发。2.3 项目概述项目概述1、工作内容让计算机对车辆维修进行管理,用户可以直接在计算机上实现车辆检修的过程管理,在一定程度上实现信息化、自动化。 2、条件与限制开发该软件的条件比较简单,以开发单位目前的经济与技术条件已完全具备开发的条件。该系统可在用户
7、要求的期限内完成。 3、产品1)软件软件主要是完成之后的可执行文件,能够使用户方便的使用。2)文档文档内容包括:系统介绍,使用说明,测试计划及结果等。4、验收标准软件的验收标准完全由用户提出的软件需求制定,能保证软件的基本符合用户的要求。2.4 项目开发计划项目开发计划1、任务分解分三个大的阶段进行开发第一阶段完成本系统的数据流图跟 E-R 图;第二阶段完成概要设计与详细设计;第三阶段书写文档。2、预算软件资金投入较少,具体预算分配简略。 3、关键问题/各模块之间的联系和后台数据库的完成。使用目前的设备与现有开发技术完全可以开发出该系统,总的来说该项目没有较大的技术难点与其他的一些风险因素。对
8、于出现的一些小难点总都能得到解决。/第三章第三章 需求分析需求分析3.1 任务需求分析任务需求分析总的来说,汽车维修管理软件需要满足一下需求:(1)、该管理软件需要对进维修站的车辆的基本信息进行登记。(2)、该管理软件需要对车辆的维修过程进行统计和管理。(3)、该管理软件需要对车辆检修过程中消耗的材料配件进行登记。(4)、该管理软件需要对车辆维修后所需支付的费用进行统计和计算(6)、该管理软件需要对车辆维修完成后的出站管理进行登记(7)、该管理软件需要能完成对车辆检修的过程,维修历史信息的一些综合查询3.2 数据流图及实体联系图数据流图及实体联系图3.2.1 数据流图数据流图数据流图由四种基本
9、的元素构成:数据流(Data Flow),处理(Process),数据存储和数据源(数据终点) 。数据流(Data Flow):为具有名称且有流向的数据,用标有名称的箭头表示,一个数据可以是记录、组合项或基本项。处理(Process):表示对数据所进行的加工和变换,在图中用矩形框表示。指向处理数据流为该处理的输入数据,离开处理的数据为处理的输出数据。数据存储:表示用文件方式或数据库形式所存储的数据,堆砌进行的存取分别以指向或离开数据存储的箭头表示。数据源及数据终点:表示数据的来源或数据的去向,可以是一个组织或人员,它处于系统范围之外,所以又称它为外部实体,它是为了帮助理解系统界面而引入的,一般
10、只出现在数据流图的起点和终点。汽车维修管理系统的数据流图如下:图 3-1 数据流图汽车进站汽车检修结 算材料领料合格不合格质 检/3.2.2 实体联系实体联系 E-R 图图根据对数据流图和数据字典分析,我们可以确定应用中的实体,属性和实体之间的关系,并画出如下的 E-R 图 汽车管理系统的 E-R 模型如图 3-2:进站管理汽车编码车主进时间明细表审核检修管理开工时间完工时间合格负责人检次类型材 料 领 料汽车编码科目时间申请人付费管理汽车编码应付款实付款付款日期操作人出站管理汽车编码审核日期拿车人图 3-2 E-R 图系统 E-R 图说明:1) 该 E-R 图只是介绍了每个模块的主要的属性,
11、更加详细的介绍,请参照后面的系统详细设计2) 材料领用中的一个明细表是说明该表还有一个更详细的明细介绍第四章第四章 系统概要设计系统概要设计/4.1 总体设计总体设计通过这个阶段的工作将划分出组成系统的物理元素。系统概要设计的基本目的是用比较抽象的概括方式确定系统如何完成预定的任务,也就是要确定系统的配置物理方案。软件结构设计时应该遵循的最主要的原理是模块独立,让模块彼此间的接口关系应该尽量简单。4.2 系统功能模块图系统功能模块图可以根据模块独立原理对软件结构进行精化。为了合理的分解,得到尽可能高的内聚、尽可能松散的耦合,最终要的是,为了得到一个易于实现、易于测试和易于维护的软件结构,应该对
12、模块进行再分解或合并。本检修系统的模块图如 4-1汽车检修管理系 统综 合 查 询进 出 管 理检 修 管 理结 算 管 理成 本 管 理库 存 管 理基 础 设 置系 统 维 护单 车 查 询月 查 询汽 车 进 站汽 车 出 站检 修 过 程检 修 成 本材 料 领 料材 料 退 票材 料 出 库材 料 入 库图 4-1 系统的模块图本系统一共包含以下几大模块:1、综合查询(1) 单车信息的查询主要包括查询看这个车辆是否在本维修站,现在的检修状态,历史记录(2) 月查询查询本检修站一个月的业务情况2、进出管理(1) 汽车进站填写汽车的进站信息/(2) 汽车出站填写汽车的出站信息3、汽车检修
13、管理(1) 汽车检修过程管理汽车检修开,完工时间的记录,及主要负责人4、结算管理(1) 检修结算对检修完成车的付费的管理5、成本检修管理(1) 材料领料对检修的车办理材料领料(2) 材料退票6、库存管理(1) 材料出库(2) 材料入库7、基础设置(1) 员工维护8、系统维护(1) 数据库备份(2) 程序升级,数据库升级4.3 数据库概念设计数据库概念设计数据库一般分为三级模式:外模式、概念模式和内模式。外模式也就是不同用户所对的数据视图,它将数据库内部抽象的数据及其互相之间的关系表示为简单、直观的应用界面。概念模式是数据库中全部数据的逻辑结构和特征描述,通常以某种数据模型为基础。内模式是对数据
14、的物理结构和存储方式的描述。在这里将要设计的是数据库的概念模式,通过对车辆维修管理系统的内容和数据流程分析及 E-R 图,设计如下数据项和数据结构。 (主要的业务表)1) 汽车进站表(主键,单击 ID,进车时间,汽车编号,车主,审核,审核人,审核日期,是否作废,作废人,作废日期,备注)2) 汽车出站表(主键,进车主键,出车日期,提车人,审核日期,审核,审核人,作废,作废人,作废日期,备注)3) 检修表(主键,进车主键,开工时间,完工时间,负责人,是否合格,检修检次,检修类型)4) 结算表(主键,进车主键,应付款,实付款,付款日期,操作人)/5) 领料主表(主键,进车主键,单据 ID,开单日期,
15、申请人,操作人,审核,审核日期,审核人,作废,作废日期,作废人,科目,备注)6) 领料明细表(主键,主表主键,物资编码,物资单价,物资单位,领用数量,审核人,审核,审核日期,作废,作废人,作废日期,备注)4.4数据库逻辑结构设计数据库逻辑结构设计在数据库设计中相当重要的一步就是将概念模型转化为计算机上 DBMS 所支持的数据模型,例如,将 E-R 图模型转化为关系模型,道理很简单,我们设计概念模型基本上都是一些抽象的关系,在再数据库设计的实现过程中,在计算机上有效地表示出这些关系就成了数据库设计的关键,根据机车检修系统的功能要求,选取了 oracle9i 做为后台的数据库在上面的实体和实体之间
16、的 E-R 图设计的基础上,形成数据库中的表及表结构之间的关系下列图:1、进车表结构:(by_car_come)图 4-2其中关键字段介绍:Pk_id :本表的主键生成是根据 oracle 提供的 sys_guid()函数生成的一个长度为32 位的唯一标示,它所担当的功能除了是本表的唯一主键外,它还是其他业务表中的外键,其它业务表中都记着这个字段,通过这个字段来解决的问题是当同一个车辆在不同次的检修时能进行区分,2、检修表结构:(by_car_repair)/图 4-3其中关键字段介绍:Come_pkid:进车表的主键,通过它实现检修表和进车表的关联;Is_verify: 通过它来来确定这次检
17、修的车是否是合格的;Repair_type:检修类型,主要是来用来区分本次检修的车是否需要付费,它主要取一下的值:(检修,返修,其他),这三种类型的值,当检修类型是检修时则需要正常付费,当它取值为 返修,其他时则它的这次检修可能是本检修站造成的不需要支付本次的检修费用。3,材料领料表:(by_car_op_outdepot)图 4-4其中关键字段介绍:/Come_pkid:是进车表的主键,记这个字段的主要目的是能区分同一车牌号的车辆在本检修站的多次维修问题。O_id_apply:申请人字段,这个字段主要用来以后和这个人在本检修站的工作表现以及评优,工资,奖金等相关联。Subject_id :科
18、目这个字段主要在财务上用来区分维修站在一个月,或季度中在不同方面的材料支出,现在它的取值有:检修,售后,其他。4,材料领料明细表:(by_car_op_outdepot_ list)图 4-5其中关键字段介绍:Materal_price:物资单价,因为本系统是一个维修管理系统,而本系统需要在一次检修完成时,就要统计本次检修所需要的费用,所以该单价记录的是检修当时所用材料的单价,而不是采用的当检修完成付费时在计算该物资在库存中的数量,这样的好处是能更准确反映该车辆在当时检修是所耗用的费用,而不是按现在的库存单价,这样也更能赢的客户的满意,提高自己检修站的声誉,从而产生更好的效益。Material
19、_uit:物资单位,这也是一个需要详细设计的字段,因为本系统在算车辆在本次检修的费用时,就是统计的本表中所领用的消耗材料的费用,这个字段所可能遇到问题是:比如该物品在采购时使用的单位是百个(或者是盒) ,而在领用的过程中所按的单位是个,在这样两次操作过程中假如数量列都是 1,而采购时单位是百个,这样总数量就是 100 个,而在领用时单位是个,总数量就是 1 个,这样一来总金额就产生了很大的差别,数据库中的数据就不能保证完整性,所以在本系统中所给出的解决方案是单位同一,都用个,这样在后台中处理数量则就能避免这样的问题。这中问/题隐蔽性很强不易被发现,所以在设计工程中要时刻注意这种问题。Main_
20、pkid:和主表的关联外键。5,付款表(by_car_pay)图 4-6其中关键字段介绍Come_pkid:解决重复问题S_pay:在实际当中客户所支付的材料消耗费用一般情况下跟实际消耗的材料费用是不相等的,所以这里记下了客户所支付的金额。6,库存表(by_car_mateial_kc)图 4-7这里只是列举了一个简单的库存表,主要目的是来阐述一下,库存表中到底是数量,金额,还是记录数量,单价。本系统采用的是前者,也推荐采用前者,下面来做一个简单的介绍一般的仓库表中都要涉及到的三个字段就是,数量,金额,单价。而且存在这样的等式关系:金额 = 数量*单价。在数据库设计中是没有必要这三列都存储的可
21、以根据其中的两个来计算第三者, (实际中数量必选,在金额和单价之间选择)但是当你选择在数据库中存储单价时就可能产生很多问题,比说当你选择存储单价,小数位留几位的问题,一般觉得留 2 位就够了,可是在实际中涉及到的物资的单位可能有很多种,比如说库存中单位有是吨(t) ,而也有单位是克(g)的,这种情况下单价的小数位如果只有两位那么这两着的总金额可能就会产生很大的区别,你可能会用增加单价的小数位来解决这个问题,可是库存中还有很多其他的物资的,他们的单位不可能用到很/多位,这样一来数据库中将会产生很多的一列不好读懂的数据,而且处理起来也会引起很多的问题。所以我们将在库存中存,数量和金额,在我领用材料
22、时,我们来计算该物资的平均单价,当办理材料出库时,我们分别来更新金额和数量,这样长时间的平均下来我们库存中的材料价额也能反映现在市场上这种物资的价格走势。所以在本系统中存储的是数量和总金额7,出车登记表(by_car_out)图 4-8其中关键字段介绍:Out_Date:记录该车这次检修出维修站的时间,好用来统计该车的总的检修时间以及该维修站的工作效率4.5连接数据库的特点连接数据库的特点当开发环境通过连接到数据库上之后,在设计中使用数据库画笔可实现对该数据库中表格,视图等的操作,如创建表,修改表,删除表,增加/删除记录。设计中设计数据窗口的时候,通过对话框实现与数据的连接。在应用程序中则一般
23、是在应用程序对象中书写连接数据库的程序代码,使得应用程序开始运行并实现与数据库的连接/第五章第五章 程序详细设计程序详细设计详细设计阶段的根本目标是确定应该如何具体地实现所要求的系统,包括了用户界面设计、程序过程设计等步骤。5.1 系统的设计和开发环境系统的设计和开发环境操作系统:操作系统:WindowsXP。数据库系统:数据库系统:oracle9i开发工具开发工具:PowerBuilder10.5PowerBuilder 是著名的数据库应用开发工具生产厂商 Sybase Inc.的子公司PowerSoft 于 1991 年 6 月推出的数据库应用开发工具 .PowerBuilder 除了能够
24、设计传统的高性能、基于客户/服务器(Client/Server)体系结构的应用系统外,也能够方便地构建和实现分布式系统,还可以开发基于 Internet 的应用系统。PowerBuilder 采用了面向对象和可视化技术,提供可视化的应用开发环境,使得我们利用 PowerBuilder,可以方便快捷地开发出利用后台服务器中的数据和数据库管理系统的数据库应用程序。用 PowerBuilder 不仅能够开发客户端应用程序,而且还可以轻而易举地构造应用服务器,从而形成分布式应用。PowerBuilder 支持多种平台,并能生成机器代码的可执行文件5.2 用户界面设计用户界面设计5.2.1 一般交互设计
25、一般交互设计一般交互涉及信息显示、数据输入、和系统整体控制等方面。1、一致性为客户交互界面中的菜单选择、命令输入、数据显示以及众多的其他功能,使用一致的格式。在设计的过程中,基本上保持了系统的格式一致。2 、行有较大影响的操作前提示用户确认在设计过程中,如果用户要执行作废操作,以及对数据库的读写操作时,都会有窗体弹出询问继续操作或者予以提示3、减少操作间需要记忆的内容为了避免用户为下一步操作而记忆大量数据,所以在设计过程中在需要数据传递的窗体中设置结构变量,来传递数据。4、允许错误允许用户的误操作尽量不对系统造成伤害/5.2.2 信息显示设计信息显示设计应当尽量为用户提供的界面显示时完整的、明
26、确的和容易理解的。这样才能满足用户的需求。使用不同的方式显示信息:用文字、图形、颜色和符号等方式传达信息。1、只显示与当前工作有关的信息在用户操作有关系统的特定功能的信息时,不必看到与之无关的数据、菜单和图形。2、使用便于用户迅速吸收数据的方式来表示数据在系统设计的过程中,较多地使用了图表的形式表示数据,例如在分析中就使用了折线图形式表现了复杂的数据。这样,用户可以直观的体会到图表所表示的含义。3、使用一致的标记、标准的缩写和可预知的颜色为了使系统所表达的含义准确、无误,就必须适用一致的标记、标准的缩写和可以预知的缩写,这样用户就无需参照其他信息源就能理解,而正确地适用软件。5.2.3 输入界
27、面设计输入界面设计用户的大部分时间用在选择菜单命令、键入数据和向系统提供输入。在系统中,键盘是主要的输入介质,因此我们要做到保证显示信息和数据输入的数据之间的一致性,尽量少的改变程序界面的风格,5.3 系统的主要功能及实现系统的主要功能及实现根据上面的需求分析,设计好数据库系统,然后开发应用程序可以考虑的窗体的系统,每一个窗体实现不同的功能,可以设计下面的几个模块。5.3.1 进出管理进出管理汽车进站汽车进站:功能:本模块的主要功能是对进入维修站的车辆管理登记,包括对新来的车辆进行添加,作废,导出,打印。具体实现:当有新的维修车辆进入维修站时,需要办理添加,车牌号,车主等信息汽车进站按钮在主界
28、面的位置/图 5-1点击这个按钮后可以看到该菜单下的两个主要的模块,汽车进站和出站,点击进站可以看到如下的界面图 5-2在打开主界面时系统会有一个默认的时间,一般是本月的一号到系统的当前时间,系统会将在这个时间段内的数据通过左侧的数据窗口对象将数据过滤出来,呈现到用户的界面前,数据有三种颜色,灰色-数据未审核,蓝色-数据已审核,红色-数据已作废,不同颜色的实现是通过动态获得数据窗口对象字段的取值,根据不同的取值来显示字体的不同颜色。当点击添加时,系统会弹出新的进车添加窗口系统的默认 时间段/图 5-3在这里面进行汽车进站的添加、修改、等操作。单据 ID 在新界面打开时是不会赋值的,当确定添加的
29、保存时才会生成,这样做的好处就是避免了同时操作数据库时生成相同的单据号,能更好的减少程序的并发执行,保存时执行了数据窗口的 update 语句,同时更改数据窗口为只读属性dw_1.Modify(“DataWindow.readonly=yes“),对于保存成功的单据就可以进行审核操作了,通过 sql 的 update 语句将刚才更新到数据库记录的审核标记更改为已审核,同时执行数据存储过程DECLARE lp_pro PROCEDURE FOR pkg_carout.in_carout(:ls_guid,:ls_carcode);EXECUTE lp_pro;向出车表里面添加数据,更新出车表。审
30、核时同时操作了数据库里面的两张表,只有当这两个表的更新都成功执行后我们才能执行 commit;语句,将所有的数据一次性的全部提交到数据库中,当当者有一个更新没有成功时,我们都要对数据操作进行 rollback 操作,提示用户操作失败,只有这样我们才能保证数据库中的数据完整的。当审核后下面的审核提示就会显示,当我们退出这个界面时我们就会在主界面中看到我们添加的数据。图 5-4因为系统是按进车日期降序排列的,所以我们新添加的数据会显示在第一行,由保存时生成审核提示新添加的数 据行/于数据窗口是继承孙老师的数据窗口控件,支持点击数据窗口表头进行排序。查询按钮 当点击是系统就会按照左侧的查询条件进行随
31、意的组合快速的找到我们需要的,图 5-5 单据,我们就可以对单据进行修改了。这里主要用到了 PB 里面通过 ls_original_select = dw_1.GetSQLSelect( )动态的获得数据窗口对象的 where 条件,通过新添加的条件我们可以修改 where 条件,在将我们新生成的 where 条件和 select 语句关联再用 dw_1.SetSQLSelect(ls_select)语句将数据窗口中的数据进行重新提取。汽车出站汽车出站:前提条件:已办理结算付款功能:对将要离开本检修站的车辆提车人和出车时间进行登记出车管理主界面:图 5-6查询条件随 意组合组合查 询条件双击该
32、行/同样我可以根据左侧的查询条件快速找到我们需要办理出车登记的车辆,双击该行时会打开新的窗口图 5-7这个窗口我们使用 freeform 格式的数据窗口对象,根据双击事件中的脚本OpenWithParm(w_car_comeadd_read,ls_guid)的 guid 参数,我们使用带参数的数据窗口提取数据找到我们需要的数据,我们就可以添加数据项,保存时用数据窗口的 update语句,将我们更改的数据 更新到数据库中。审核后根据得到值将字体的颜色改变:if( is_verify =1,rgb(0,0,255),if( is_destory=1, rgb(255,0,0), rgb(0,0,0
33、) )退出后刷新主数据窗口将我们的数据提取到界面供用户查看, 对于审核后的数据我们不能再进行修改了。5.3.2 汽车检修管理汽车检修管理检修过程检修过程前提条件:已办理进车登记,并审核功能:主要对车辆检修过程中,开工,完工,检修类型,汽车主要故障录入,数据的导出,打印等。/图 5-8左侧数据窗口检索数据的条件是车辆已经进站并且已经审核。单击需要的车辆后我们可以在右侧的数据窗口中显示我们需要的检修车辆的信息。在这里面我们需要输入的开工的日期和完工的日期,这两个在系统中我们使用的是 pb 中提供的日期控件,这样我们能减少用户的输入,从而能减少用户输入数据时产生的错误。当我们点击开工时系统会提示是否
34、将开工时间设定为输入的值,因为我们现在定义数据库时有一个字段标记了是否开工,当填入数据保存后系统不再提供修改本时间的窗口,所以该时间需要用户谨慎填写。点击开工后调用数据窗口的 update 语句更新数据。当车辆修竣完成时,需要填写的信息主要有本次检修类型,本次检修故障,在设计填写检修故障时考虑到用户输入数据习惯点击这个按钮。图 5-9系统会弹出新的故障录入界面如下条件快速 找到这里/图 5-10从这里我们可以很方便的录入本次检修车辆的故障,单击确定后系统将文本传回数据窗口对应的行。录入完成后可以点击完工,调用数据窗口的 update 语句更新检修表同时执行存储过程:If (ll_rtnm =
35、1) THENdw_2.Object.end_flagll_row = 1If (1 = dw_2.Update() THENString ls_guid,ls_carcodels_guid = dw_2.Object.PK_IDll_rowls_carcode = dw_2.Object.CAR_CODEll_rowDECLARE lp_pro PROCEDURE FOR pkg_carrepair.UP_CARREPAIR(:ls_guid,:ls_carcode);EXECUTE lp_pro;COMMIT;这里完工时再次更新了多张数据库中的表,所采用的机制还是当所有的更新数据库的语句全
36、部执行成功后,在一次性提交全部数据,当有一条语句没有更新成功时,所有的更新语句全部 rollback;这样来保证数据库中数据的完整性。5.3.3 检修成本管理检修成本管理材料领料材料领料:前提条件:已检修开工,并且没有检修完成功能:对正在检修的车辆进行检修领料,审核,作废,导出,打印。通过主界面选择检修成本管理后,录入故障/图 5-11材料领料主要是对在修机车所领用的材料进行的统计,当打开主界面时右侧的数据窗口将会过滤出领料时间在这段时间内的数据供用户查看,也可以更改右侧的查询条件,如:单据编号,汽车编码这两个条件都是包含当所输入的内容是配包含在数据中时,会检索出数据来,审核是被审核的单据将被
37、检索出来,作废是作废的单据将会被检索出,当点击添加按钮时,将打开新的添加界面如下图 5-12单据 ID、新打开的窗口不会得到单据 ID,只有在保存时才会产生新的单据 ID 这样能最大限度的避免同时操作产生相同的单据号。汽车编码、这一列所用的是一个下拉的数据窗口对象,而这个子数据窗口对象得系统默认时间保存产生/到数据的条件是车辆已经开工,并且还未完工,从而这样能更好的控制材料的领料,保证了材料的领用时有控制的,并且也能及时的得到正在检修的车辆,而不会影响维修站的工作效率。科目、这一列用的也是下拉数据窗口对象,这样在财务部门改变了财务的支出科目时能及时的得到反映,从而能正确的统计维修站各项的费用支
38、出,开票人、申请人,这两列用的也是下拉数据窗口对象,并且是通过 pb 提供的操作数据源的改变到数据源但中图 5-13 这样做的好处是在以后也需要用到人员时,直接在编辑格式里面选择即可,方便 以后编写程序。领料记录框,当选择了车号时,选中这个复选框时,动态的获得明细数据窗口的位置和大小,同时改变它的位置和大小,使历史记录的数据窗口显示出来。通过图 5-14三种检索方式一种快速的找到需要办理领料的材料,双击该材料将添加到领料明细表里面的这里需要处理的一种情况是在同一个数据窗口中不能有相同的物资出现在不同行,因为这样只能有一条数据被更新到数据库中,解决办法,在同一张出料明细上不允许有相同物资占用不同
39、的行,加上如下的判断:IF dw_2.Find(“material_code = “+ls_material_code+“,1,ll_rowcount) 1 then returnif FileExists (filepath) thenif MessageBox(“确认选择“,“文件已存在,覆盖吗?“,Question!,YesNo! )1 thenreturnend ifend if/ 创建 OLE 对象xlApp = CREATE OLEObject/ 连接 Excelli_Ret = xlApp.ConnectToNewObject( “Excel.Application“ )IF l
40、i_Ret 0 THENMessageBox(“系统提示“,“连接 Excel 出错,不能正常存取!“)RETURNEND IFxlApp.Application.Workbooks.Add()xlSub = xlApp.Application.ActiveWorkbook.Worksheets1 dec j,columncount ,ll_k,ll_cnumstring ls_colname,ls_label,ls_type,ls_objll_cnum =dec(dw_1.Object.DataWindow.Column.Count)/ 将列名转化为中文名称,即标题头名称 for j = 1
41、 to ll_cnum /ls_objj = dw_1.describe(“#“+string(j)+“.name“) ls_labelj = dw_1.describe(ls_objj+“_t“+“.text“) next /添加列标题FOR ll_j = 1 TO ll_cnumxlSub.cells1,ll_j = ls_labelll_j NEXT/添加数据内容ll_r_count=idw_1.rowcount()for ll_k = 1 TO ll_cnumls_type=idw_1.Describe(ls_objll_k+ “.ColType“ )CHOOSE CASE Left(
42、ls_type,4)CASE “char“for ll_j=1 to ll_r_countls_dat=dw_1.GetItemString( ll_j, ls_objll_k)xlSub.cellsll_j+1,ll_k=ls_datnextCASE “date“for ll_j=1 to ll_r_countls_dat=idw_1.GetItemDatetime( ll_j, ls_objll_k)xlSub.cellsll_j+1,ll_k=ls_datnextCASE ELSEfor ll_j=1 to ll_r_countls_dat=dw_1.GetItemNumber( ll_
43、j, ls_objll_k)xlSub.cellsll_j+1,ll_k=ls_datnextEND CHOOSEnextxlApp.ActiveSheet.Columns(“A:Z“).AutoFit /列宽自动调整xlApp.Application.DisplayAlerts = FalsexlApp.Application.Workbooks1.SaveAs(filepath)xlApp.quit()xlApp.DisConnectObject()DESTROY xlApp2、打印系统的中的打印调用同一的打印窗口预览窗口 w_print_preview 需要定义传递参数的结构如下/图 5
44、-18打印时将我们需要的参数传递到打印预览窗口,界面如下图 5-19在这个界面再进行打印操作。打印/第六章第六章 软件测试软件测试6.1 测试的方法测试的方法软件的测试方法有两种,一种是黑盒测试(功能测试) ,另外一种是白盒测试(结构测试) 。黑盒测试把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当的接受输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息的完整性。白盒测试的前提是可以把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序
45、内部的逻辑测试程序,检测程序中的主要执行通路是否能按预定的要求正确工作。由于本次的设计主要有本人完成所以在对软件进行黑盒测试的同时,也相当于是在进行白盒测试6.2 测试步骤和结果测试步骤和结果1、登录界面:输入用户名 zhaoxb 密码:zhaoxb,数据库连接测试成功登录成功。2、进车主界面:输入进车日期:2011-6-17,车辆编号:冀 G110,车主:test;保存,审核都成功。3、机车检修界面:选择冀 G110,开工正常。4、材料领料界面:选择冀 G110 车辆,能正常出料。5、车辆检修界面:机车故障正常录入,冀 G110 完工正常。6.、结算界面:选择冀 G110,双击显示消耗领料正
46、常。正常结算。7、出车界面:选择冀 G110,填入信息正常办理出车登记业务。8、查询界面:输入冀 G110,查询结果与实际相符9、材料领料能正常导出 excel,导出功能正常10、出车登记打印预览,能正常预览打印界面,打印预览功能正常通过以上测试程序能正常工作,能够完成设计时要求,程序能够正常运行6.3 改进意见改进意见虽然现存汽车检修管理系统已经能够满足了当今企业的使用要求,但随着企业的发展,使用的新的原材料和新的检修工艺都将会代替原来的,这样系统就会不断的升级,这样会遇到系统升级的问题,以前的升级模式都是将新的程序覆盖到原来的系统上,可是当客户机发生问题检修系统丢失时,用户可能用原来久的程序,这样就会导/致数据库的数据发生错误,所以要加上程序的版本控制,和自动升级功能,由于系统开发时间比较短,前期的调研不充分,开发力量有限,有些隐性的问题在还没有发现,希望用户能反馈信息,做出调整,及时修正错误,完善系统的功能