1、货运站货场信息管理系统 一、概述 随着经济全球化的加快和中国经济的腾飞,我国铁路运输业取得了巨大的发展。而货场是铁路货运站最基本的作业场所之一,工人数量多,作业任务重,作业种类多。而随着信息科技的发展,传统的管理模式逐渐被信息化及数字化的管理模式所取代,如何用先进的管理手段,提高货场的管理水平,已成为货运站货场的当务之急。面对信息时代的机遇和挑战,用科技手段提高货场管理水平无疑是一条行之有效的途径。 货运站货场信息管理系统的开发充分利用了信息技术和计算机技术,提高了货运站货场的管理水平、服务水平。系统实现了货场计划管理、货场作业管理、货场设备管理、货场安全管理、客户服务管理,并拥有查询、
2、录入、修改、打印等功能。该系统主要服务于货运站货场工作人员,除此之外也设置客户服务管理,来满足客户对货运信息的查询及对货物运输的反馈,更加丰富了货运站货场信息管理系统的内容,拓宽了使用范围。 二、需求分析 铁路货场是铁路运输企业面向社会办理货物运输业务的窗口和货物起止的集散地。为了安全、方便、快捷地运送货物,经济合理地利用铁路货场设备,充分发挥货场的作业能力,必须加强货场管理,从而实现货场作业标准化、管理科学化、服务文明化。 目前,一些铁路货运站虽然采用计算机工作,但是多数统计报表仍由人工处理,信息在不同实体之间没有实现共享,造成大量重复劳动。由于车站作业岗位多,实行手工登记装卸信息,使
3、xx经常处于繁忙状态,导致其他作业点一直等待上报数据,造成时间浪费;而且手工登记容易出错,并且无法追查错误原因,作业效率低下。在此基础上,通过设计开发货运站货场信息管理系统,实现货运集中管理,信息高度共享,提高工作质量和工作效率。 三、系统设计 3.1系统功能 本系统功能模块分为:货场计划管理、货场作业管理、货场设备管理、货场安全管理、客户服务管理。客户的操作权限仅限使用客户服务管理功能模块及修改密码,管理员操作权限可使用除客户服务管理和系统初始化全部功能模块,超级管理员可使用所有功能。 (1)货场计划管理:月计划查询及打印、运单查询及打印、货源信息查询; (2)货场作业管理:货场出
4、车查询、装卸车作业查询; (3)货场设备管理:货区查询、货位查询、装卸机械查询、篷布使用查询; (4)货场安全管理:货运事故查询;货运事故报告打印 (5)客户服务管理:信息查询、服务评价; (6)系统管理:初始化系统、修改密码、数据备份、数据恢复、退出。 3.2系统功能结构 本系统共分6大部分、20个完整的功能模块。系统结构图如图1所示。 图1 货运站货场信息管理系统功能结构 四、主要功能模块设计 4.1数据库表设计 (1)创建一个标准项目,名称为货运站货场信息管理系统。 (2)在项目管理器下创建一个数据库,名称为datebase,在数据库中创建以下数据库表:czq
5、x(操作权限)、fwpj(服务评价)、hccc(货场出车)、hcsg(货场事故)、hqhw(货区货位)、pbgl(篷布管理)、hwyd(货物运单)、yjh(月计划)、zxc(装卸车)、zxjx(装卸机械),创建完成后输入数据。具体内容见附录一。 4.2表单设计 设计的表单有登陆、服务评价、货场出车查询、货场事故查询、货区查询、货位查询、货物运单查询、货源信息查询、客户货物信息查询、篷布使用查询、数据备份、数据恢复、系统初始化、修改密码、月计划查询、装卸车查询、装卸机械查询。 4.2.1登陆界面设计 图2 登录界面设计图 用户进入系统前,必须通过登录进入主程序界面,登录界面主要用于确
6、认用户的身份及使用权限,并且可对系统信息起到保密作用。系统登录界面如图2及图3所示 图3 登录界面运行图 (1)表单设计 在货运站货场信息管理系统项目中,添加一个新表单,名称为“登陆”。 在表单中添加Text控件、Label控件、mand控件、Image控件。 重要控件属性:Text2的PasswordChar属性设为“*” (2)代码设计 在“登陆L”按钮的Click事件中添加以下代码实现判断密码是否正确的功能。如果密码不正确,将提示密码不正确。 locate for alltrim(czqx.用户名)== alltrim(thisform.text1.value);
7、 and alltrim(czqx.密码)== alltrim(thisform.text2.value) if !eof() =messagebox('欢迎您使用!','货运站货场信息管理系统') else =messagebox("密码不正确") thisform.text2.value="" endif thisform.release 在“退出Z”按钮的Click事件中添加以下代码: Quit 在“image1”图片的Click事件中添加以下代码: thisform.text1.value="客户" 在“imag
8、e2”图片的Click事件中添加以下代码: thisform.text1.value="管理员" 在“image3”图片的Click事件中添加以下代码: thisform.text1.value="超级管理员" 4.2.2系统初始化设计 系统初始化会清空所有记录,在执行此操作之前,系统会自动备份数据到默认备份目录下,以防数据丢失。系统初始化界面如图4及图5。 图4 系统初始化界面设计图 图5 系统初始化界面运行图 (1)表单设计 在货运站货场信息管理系统项目中,添加一个新表单,名称为“系统初始化”。 在表单中添加shape控件、Label控件、mand控件。
9、2)代码设计 在“初始化F”按钮的Click事件中添加以下代码实现系统初始化的功能。 private outpath a=messagebox("确定要执行初始化操作吗?",32+4,"系统提示") if a=6 a=messagebox("初始化会清空所有数据,继续吗?",32+4,"系统提示") if a=6 close all database outpath ="" if directory(sys(5)+sys(2003)+"\bak")=.f. MKDIR sys(5)+sys(2003)+"\bak" endi
10、f if file("系统设置.Rtt")=.t. handle=fopen("系统设置.Rtt",2) m=1 do while feof(handle)=.f. mystr=fgets(handle) if m=7 outpath=mystr endif m=m+1 enddo fclose(handle) if empty(outpath)=.t. outpath =sys(5)+sys(2003)+"\bak" endif else out
11、path =sys(5)+sys(2003)+"\bak" endif mypath="" Mypath=sys(5)+sys(2003)+"\data" datepath=sys(5)+sys(2003)+"\data\DataBase" wait windows "正在准备备份数据...." Timeout 0.8 thisok=thisform.rainbak1.bak(mypath,outpath) if thisok=.t. wait windows "正在准备初始化...." Timeout 0.8 thisfor
12、m.rainfunction1.dateformat(datepath) else messagebox("初始化失败!",16,"系统提示" ) return endif jmpath=alltrim(outpath)+"\DataBase.dbc" thisform.lockdatebase1.lock(jmpath,"正在加密备份文件....") wait windows "正在删除其它设置文件...." Timeout 0.8 if file("系统设置.Rtt")=.t. dele file ("系统设置.RTT")
13、 endif if file ("检测.RBT")=.t. dele File("检测.RBT") endif messagebox("系统初始化完成!",32,"系统提示") ENDIF ENDIF 在“退出E”按钮的Click事件中添加以下代码: thisform.release 4.2.3修改密码设计 通过本功能,用户可以修改自己的登陆密码,保证自身账户的安全性。修改密码界面如图6及图7。 图6 修改密码界面设计图 图7 修改密码界面运行图 (1)表单设计 在货运站货场信息管理系统项目中,添加一个新表单,名称为“修改密码”。
14、 在表单中添加Label控件、mand控件。 (2)代码设计 t1=alltrim(thisfor。m.text1.value) t2=alltrim(thisform.text2.value) t3=alltrim(thisform.text3.value) t4=alltrim(thisform.text4.value) use czqx do case case t1="客户" if t2="111" if t3=t4 update czqz set 密码 =t3 where 编号="1" else messagebox('新密码输入不一致!',48,'操作失
15、败!') endif else messagebox('原密码输入错误!',48,'操作失败!') endif case t1="管理员" if t2="222" if t3=t4 update czqz set 密码 =t3 where 编号="2" else messagebox('新密码输入不一致!',48,'操作失败!') endif else messagebox('原密码输入错误!',48,'操作失败!') endif case t1="超级管理员" if t2="333" if t3=t4 update czqz set 密码 =t3
16、where 编号="3" else messagebox('新密码输入不一致!',48,'操作失败!') endif else messagebox('原密码输入错误!',48,'操作失败!') endif 在“退出”按钮的Click事件中添加以下代码: thisform.release 4.2.4数据备份设计 数据备份可以将数据保存到其他位置,当由于某些意外原因而发生数据无法使用时,可以利用数据恢复进行恢复,以减少意外所带来的损失。数据备份界面如图8及图9。 图8 数据备份界面设计图 图9 数据备份界面运行图 (1)表单设计 在货运站货场信息管
17、理系统项目中,添加一个新表单,名称为“数据备份”。 在表单中添加shape控件、Label控件、mand控件。 (2)代码设计 在“备份B”按钮的Click事件中添加以下代码实现数据备份的功能。 close all database private outpath mypath="" Mypath=sys(5)+sys(2003)+"\data\" outpath=alltrim(thisform.text1.value) thisform.rainbak1.bak(mypath,outpath) JMPath=alltrim(outPath)+"\DateB
18、ase.dbc" thisform.Lockdatebase1.lock(JmPath,"正在加密备份文件....") messagebox("备份完成!",32,"系统提示") 在“退出E”按钮的Click事件中添加以下代码: thisform.release 4.2.5数据恢复设计 数据备份可以将数据保存到其他位置,当由于某些意外原因而发生数据无法使用时,可以利用数据恢复进行恢复,以减少意外所带来的损失。数据恢复界面如图10及图11。 图10 数据恢复界面运行图 图11 数据恢复界面运行图 (1)表单设计 在货运站货场信息管理系统项目中,添加一个新表
19、单,名称为“数据恢复”。 在表单中添加shape控件、Label控件、mand控件。 (2)代码设计 在“恢复R”按钮的Click事件中添加以下代码实现数据备份的功能。 close all database private outpath mypath="" Mypath=alltrim(thisform.text1.value) outpath=sys(5)+sys(2003)+"\data" thisform.rainbak1.bak(mypath,outpath) thisform.Lockdatebase1.lock(sys(5)+sys(2003)+
20、"\data\DataBase.dbc","正在解密....") messagebox("数据恢复成功!无需要重新运行程序,可以直接使用!",32,"系统提示") 在“退出E”按钮的Click事件中添加以下代码: thisform.release 4.2.6月计划查询设计 查询月度运输计划,包括货物重量、体积、车种及始发终到地点等内容。月计划界面如图12及图13。 图12 月计划查询界面设计图 图13 月计划查询界面运行图 (1)表单设计 在货运站货场信息管理系统项目中,添加一个新表单,名称为“月计划查询”。 在表单中添加bo控件、Label控件、mandgro
21、up控件、shape控件、Grid控件。 在表单中添加数据环境,数据环境为yjh.dbf。 (2)代码设计 在“查询”按钮的Click事件中添加以下代码实现查询月计划的功能。 cif=alltrim(thisform.bo1.displayvalue) ctext=alltrim(thisform.text1.value) if empty(ctext) messagebox('请输入查询条件!',48,'操作失败!') thisform.text1.setfocus
22、 else select *; from datebase!yjh; where &cif.==alltrim(thisform.text1.value) ; order by 货物名称; into cursor
23、linquery thisform.grid2.recordsource='linquery' thisform.refresh endif 在“退出”按钮的Click事件中添加以下代码: thisform.release 其他如货场出车查询、货场事故查询、货区查询、货位查询、货物运单查询、货源信息查询等查询在界面设计及代码设计上基本一致,以下不再赘述。其他见附录二。 4.2.7月计划录入设计 录入月度运输计划,包括货物重量、体积、车种及始发终到地点等内容。月计划录入界面如图
24、14及图15。 图14 月计划录入界面设计图 图15 月计划录入界面运行图 (1)表单设计 在货运站货场信息管理系统项目中,添加一个新表单,名称为“月计划录入”。 在表单中添加Label控件、mandgroup控件、text控件、shape控件。 (2)代码设计 在“保存”按钮的Click事件中添加以下代码实现月计划录入的功能。 t1=alltrim(thisform.text1.value) t2=alltrim(thisform.text2.value) t3=alltrim(thisform.text3.value) t4=alltrim(thisfor
25、m.text4.value) t5=alltrim(thisform.text5.value) t6=alltrim(thisform.text6.value) t7=alltrim(thisform.text7.value) t8=alltrim(thisform.text8.value) t9=alltrim(thisform.text9.value) t10=alltrim(thisform.text10.value) t11=alltrim(thisform.text11.value) t12=alltrim(thisform.text12.value) insert
26、 into yjh (货物名称,日均(车),静载重(t每车),车数,运价(吨公里),发送吨,始发站,终到站,日期,车种,货源地,备注) ; values(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12) 在“退出”按钮的Click事件中添加以下代码: thisform.release 服务评价与月计划录入在界面设计及代码设计上基本一致,以下不再赘述。 4.3报表设计 4.3.1运单打印设计 打印货物运单,包括委托方、收货方、货物名称、重量及始发目的地等内容,并统计总重量。运单打印界面如图16及图17。 图16 运单打印界面设计图 图1
27、7 运单打印界面运行图 (1)在货运站货场信息管理系统项目中,添加一个新报表,名称为“运单打印”。 (2)在表单中添加Label控件、字段控件。 (3)在表单中添加数据环境,数据环境为hwyd.dbf。 货场事故打印与运单打印在界面设计及控件设计上基本一致,以下不再赘述。 4.4菜单设计 (1)在货运站货场信息管理系统项目中,添加一个新菜单,名称为“mainmenu”。 (2)按照功能模块结构依次输入子菜单和命令,命令有三种,分别是quit(退出)、do form 表单名和report form 报表名.frx preview。 (3)根据权限要求在跳过设置跳过条件,依靠定义全
28、局变量实现。具体菜单界面见图18、19、20。 图18 客户使用权限界面运行图 图19 管理员使用权限界面运行图 图20 管理员使用权限界面运行图 4.5主程序设计 主程序是整个系统运行的第一步,主程序可以设置全局变量、运行界面属性、调用登陆界面和菜单等,所以,设计主程序对设计数据库系统至关重要。 public x use czqx x=alltrim(czqx.编号) clear screen _screen.left=-10000 do form 表单\登
29、陆 _screen.caption='货运站货场信息管理系统' do mainmenu.mpr _screen.left=0 read events 五、结束语 货运站货场信息管理系统的应用能够实现货场基础设备及生产作业资源化管理,货运指挥人员可以实时掌握货场的作业车分布、月计划、货区货位、装卸工作、装卸设备等资源和计划的变化和利用情况,最大程度提高货物运输的工作质量和工作效率。
30、 附录一:原始数据库表 表1 月计划.DBF数据库表结构 序号 字段名称 字段类型 字段宽度 小数位数 索引 1 货物名称 字符型 10 升序 2 日均(车) 数值型 10 0 3 静载重(t/车) 数值型 8 0 4 车数 数值型 3 0 5 运价(吨公里) 数值型 8 2 6 发送吨 数值型 8 0 7 终到站 字符型 10 8 始发站 字符型 10 9 日期 日期时间型 8 10 车种 字符型 10 11 货
31、源地 字符型 10 12 备注 备注型 4 表2 货物运单.DBF数据库表结构 序号 字段名称 字段类型 字段宽度 小数位数 索引 1 货运编号 字符型 10 升序 3 收货方 字符型 10 5 收货人xx 字符型 15 7 收货方地址 字符型 40 8 货物名称 字符型 10 9 件数 数值型 4 0 10 重量(t) 数值型 8 0 11 体积(M) 数值型 8 0 12 运费 数值型 8 0 13 始发地
32、字符型 20 14 目的地 字符型 20 16 收货时间 日期时间型 8 17 备注 备注型 4 表3 货区货位.DBF数据库表结构 序号 字段名称 字段类型 字段宽度 小数位数 索引 1 货物名称 字符型 10 升序 2 品类 字符型 10 3 货区 字符型 20 4 货位 字符型 20 5 重量(t) 数值型 8 0 6 体积(M) 数值型 8 0 7 占货位比例 数值型 8 4 8 货位占货区比例 数值型
33、 8 4 9 货位利用率 数值型 8 4 10 备注 备注型 4 表4 装卸机械.DBF数据库表结构 序号 字段名称 字段类型 字段宽度 小数位数 索引 1 机械名称 字符型 20 升序 2 数量 数值型 2 0 3 可用数量 数值型 2 0 4 报修数量 数值型 2 0 5 适用范围 字符型 40 6 备注 备注型 4 表5 篷布管理.DBF数据库表结构 序号 字段名称 字段类型 字段宽度 小数位数 索引 1 篷布种类
34、字符型 20 升序 2 数量 数值型 4 0 3 可用数量 数值型 4 0 4 报修数量 数值型 4 0 5 适用范围 字符型 40 6 备注 备注型 4 表6 货场事故.DBF数据库表结构 序号 字段名称 字段类型 字段宽度 小数位数 索引 1 事故编号 字符型 10 升序 2 事故等级 字符型 1 3 事故种类 字符型 4 4 损失款额 数值型 10 0 5 赔偿款额 数值型 10 70 6 事故原因 字符型 1
35、00 7 备注 备注型 4 表7 服务评价.DBF数据库表结构 序号 字段名称 字段类型 字段宽度 小数位数 索引 1 货运编号 字符型 10 升序 2 运输速度 字符型 10 3 货物有无损坏 字符型 10 4 运价水平 字符型 20 5 其他说明 字符型 100 6 备注 备注型 4 表8 装卸车.DBF数据库表结构 序号 字段名称 字段类型 字段宽度 小数位数 索引 1 货运编号 字符型 10 升序 2 股道现在车 数值
36、型 8 升序 3 装卸车数量 数值型 8 4 装卸车时间 日期时间型 8 5 装卸车地点 字符型 20 6 备注 备注型 4 表9 货场出车.DBF数据库表结构 序号 字段名称 字段类型 字段宽度 小数位数 索引 1 货运编号 字符型 10 升序 2 出车时间 日期时间型 8 3 出车内容 字符型 20 4 出车数量 数值型 8 5 备注 备注型 4 表10 操作权限.DBF数据库表结构 序号 字段名称 字段类型
37、 字段宽度 小数位数 索引 1 用户名 字符型 10 升序 2 密码 字符型 10 3 编号 字符型 7 4 备注 备注型 4 附录二:其他功能模块运行界面 图21 运单查询你界面运行图 图22 货运事故打印界面运行图 图23 货源信息查询界面运行图 图24 货场出车查询界面运行图 图25 装卸车查询界面运行图 图26 货区查询界面运行图 图27 货位查询界面运行图 图28 装卸机械查询界面运行图 图29 篷布使用查询界面运行图 图30 货运事故查询界面运行图 图31 信息查询界面运行图 图32 服务评价界面运行图






