客车管理系统设计改进

客车管理系统设计改进

1.在铁路信息化建设目标的指导下,主动适应车辆修制改革和客车技术管理不断发展的需要,充分利用既有的信息资源和系统资源,制定客车技术管理信息化建设的总体规划和发展方向,编制客车技术管理的技术规范和数据编码,为客车综合管理软件建设提供指导性方案和技术依据,以不断提高铁路客车技术管理的现代化水平和信息化程度和实现客车生产、经营、技术管理科学化、信息化。依据每辆客车由新造到报废所产生的全部技术数据,形成铁路客车技术信息库,使客车技术管理数据资源规范、统一,数据存储实时、完整,信息资源高度共享,信息分析准确、快捷,为铁路客车技术管理的宏观决策、生产组织、质量控制和企业发展提供全面的信息服务和技术支持。   实现对车辆段客车调度信息的管理,包括客车的技术履历、各种技术参数、客车当前位置、走行公里统计、命令查询、车统—14、交路、车电等管理等,提供了简便的录入、查询和统计打印的功能,并将车统—181录入、查询和统计打印功能编入动态编组程序中,从而能进行有效的故障技术分析和调度管理。在编组界面中,可以根据实际情况对各列车进行动态编组。工作人员在电子动态板上移动运行客车、备用客车、检修客车,直观明了,轻松自如。将有关规章等作为编组条件,计算机自动记录编组后状态,自动更新计算机网络上每个工作站,并能对车辆故障进行分类管理,实现各种故障的分析汇总功能。根据需要,系统还具备多条件查询、打印功能及对各类信息的综合处理能力。   2.系统特点   (1)以电子动态编组板为基本界面,在此界面下,全部完成动态编组和车统—181的录入、分析、统计、打印,直观快捷。(2)以车号、车次为纽带,通过电子动态编组板将调度、库检、乘务、上部、车电等部门有机结合起来。(3)通过计算机网络,将铁路局、车辆段机关、调度室与客技站的业务有机联系起来,实现信息共享,信息准确、快捷。(4)具有强大的统计分析功能,能进行分类显示和多种条件查询、统计、分析。(5)具有车统—181自动报警、定检到期报警功能。当某一辆客车有181故障未处理时或定检到期时,在编组动态板上,该客车红色闪烁报警,并用不同的闪烁方式提示报警原因。(6)具有子母车、茶炉车、空调车编组错误提示功能。(7)具有界面友好,可操作性强和易学易用等特点。   3.系统软件设计和实现   3.1界面设计   3.2实现流程   (1)图形显示车次   程序启动时,从车次库中读取车次信息,根据车次数据,绘制出该车次图形,该车次上时,快捷显示该车次的到达日期、往返公 里、运行区间及当前区间。   (2)图形显示股道   程序启动时,从股道库中读取股道信息,根据股道数据,绘制出该股道图形,显示股道号,用鼠标放在该股道上时,快捷显示该股道的股道长度、允许停放车辆数。   (3)图形显示客车   程序启动时,从客车履历库中读取客车数据,根据客车数据,绘制出该客车图形,显示车号、非运用车状态、一位端、双层车等信息,用鼠标放在该客车上时,快捷显示该客车的车种、车型、转向架型号、制动机型号、子母车、广播室、茶炉、空调、厂段辅修单位及到期。   (4)单击列车   显示整列车所有客车的主要基本信息,包括子母车、广播室、茶炉、办公车、转向架、制动机、轴报型号及乘务员交路人员、天数等信息。   (5)客车控件实现方法   选择TGraphicControl作为祖先类,然后在ClassName框中输入新控件(类)的名称,一般以“T”开头。PalettePage是用来选择新控件在Delphi的窗口中的控件页面名称。在UnitFileName中添好新控件文件的路径及文件名,单击OK按钮,新的控件便加入了。现在为该控件编写代码。   按照上面的方法,选择TGraphicControl为祖先类,新控件的名称是TTrainBox(客车控件)。选择好文件路径和文件名后,单击OK按钮,开始编写代码。   每一个控件,都会被创建(Create)和删除(Destroy),所以必须首先编写这两个过程。对于控件中的每一个过程,都必须在前面先定义,然后再在后面编写。定义的过程或属性有四种:①在private后定义的是属于控件内部使用的,使用该控件的人无法看到;②在protected后定义的一般是看不到的,只在别人使用该控件作为祖先类编写其它控件时才可见;③在public后定义的只允许别人在程序中调用;④在published后定义的可以在属性窗口(ObjectInspector)中看到。由于创建和删除过程除了在编程过程中建立控件时自动执行外,还可能在程序运行过程中动态创建控件时被调用,所以把它定义在public后。   首先为这个控件添加一些属性。我们定义一个Data属性用于设置客车的履历资料,在履历资料中存储客车的车号、车种、车型、配属、标记速度等信息,程序可以自动通过车种显示客车的不同颜色,也可以通过车型或标记速度显示不同的颜色。   在程序中一般不直接使用属性,所以要定义一个变量,和该属性对应起来,以便修改或读取其值。因为它只在控件内部使用,所以我们把它定义在private后。其它的变量和属性也类似的定义,因为执行写入该类属性的时候需要做其它的事情,所以不能光用一个变量来处理,应该用一个过程来处理。这种过程一般定义在protected后。   因为我们编写的是可视化控件,所以必须在控件上画图。我们这个控件的祖先类TGraphicControl中封装有一个Canvas(画布)对象,我们可以直接使用它来画图。   祖先类TGraphicControl中有一个Paint事件,当控件需要重画时,便会自动触发,但我们要为这个事件编写一段程序。首先在protected后定义一个Canvas对象。由于它是祖先类中已有的,所以不需要加任何说明。我们将使用这个对象来画图。然后就要定义一个Paint过程,编写绘制控件的代码。先在public后定义Paint过程。由于它是由祖先类触发的,而不是由用户调用的,所以后面必须加上override,否则,该控件将会由于Paint过程永远不会被调用而不成为可视化控件。Paint过程中的宽、高等变量是用来控制客车控件的大小,这部分程序和普通的Application中的程序差别不大,大部分都是对画布进行操作。FFlash是和该控件的属性Flash相关联的布尔型变量,在程序中判断该客车是否需要报警闪烁提示。当需要报警时,通过执行toFlash(n:integer)方法,使该客车控件在主界面中闪烁报警,整形变量n表示报警方式(0:表示整个客车闪烁;1:表示左边1/3闪烁;2:表示中间1/3闪烁;3:表示右边1/3闪烁。),因此,可以区分报警原因。#p#分页标题#e#   通过编写鼠标事件,让我们能够操纵它。鼠标事件分为OnStartDrag、OnDragOver和OnDragDrop三个,在定义后面都要加上override。在后面编写它的代码。OnStartDrag表示开始拖动控件,OnDragOver表示经过该控件上方,是否允许放在该容器中,OnDragDrop表示将控件放在所在位置的容器中。定义事件的方法和定义属性差不多,只是类型是TNotifyEvent类型。   TNotifyEvent是默认事件,其定义为:TNotifyEvent=procedure(Sender:TObject)。   (6)窗体装入速度慢的处理   在缺省情况下,Delphi装入和显示项目的第一个窗体。如果窗体装入过程超过一秒,用户只好耐心等待,特别是在窗体中含有大型位图或许多控件时。在应用程序启动时,首先启动一个简单的快速装入窗体,可以将公司标志或其他信息显示在上面,然后在快速窗体后台中装入慢速窗体,慢速窗体装入后,将快速窗体卸出,从而解决了让用户厌烦的等待问题。   如果省略Form1.Show方法,则需装入慢速窗体后才能显示信息窗体。Refresh方法让更新显示后再执行后面的命令。在缺省情况下,只在不执行其他代码时,才有机会刷新显示。慢速窗体Form2装入后,将快速窗体Fomr1卸出。另外,由于窗体装入比较慢,特别是包含位图或其他资源的大文件装入更慢,所以应用程序运行期间应尽量避免频繁装入/卸出窗体,而最好在应用程序启动时把窗体装入内存,需要时再显示。   4.结束语   客车管理信息系统有效实现了客车管理由“人控”到“人机互控”的过渡,使得整个过程准确、系统、全面、受控,为列车安全、正点运行打下坚实的基础。整个系统功能强大,界面友好,操作简单,具有详尽、准确的报表统计,各种信息查阅显示、报警功能,为调度员的各项工作带来极大方便,减轻了劳动强度,提高劳动效率。对于车统—181统计、查询、管理,调度员编组、查询命令,客车专职作各类统计报表,乘务员统计客车走行公里、年季月走行公里报表等各项工作,该系统能全部自动处理,提高了各种统计报表的准确率,大大减轻了劳动强度,提高劳动效率。