机动车驾驶员管理系统本科毕业论文_第1页
机动车驾驶员管理系统本科毕业论文_第2页
机动车驾驶员管理系统本科毕业论文_第3页
机动车驾驶员管理系统本科毕业论文_第4页
机动车驾驶员管理系统本科毕业论文_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、北京工业大学计算机学院毕业论文课题:机动车驾驶员管理系统目 录第一部分 系统概述2一、 前言:2二、 系统环境与开发工具选择21系统环境22选择开发工具2第二部分 总体设计3一、系统结构总图:3二、系统功能3三、 数据库设计:4(一)创建表结构4(二)数据库说明7第三部分 功能模块详细设计8一、 主界面设计:8二、 新增数据:8三、 数据编辑13四、 查询数据16五、 统计报表18六、 系统设置18七、 关于本软件20第四部分 结尾21一、 总结21二、 参考文献:21三、 附录(源程序)21第一部分 系统概述一、 前言:随着社会的发展进步,机动车和驾驶员的数量迅速增加,机动车驾驶员管理是交通

2、管理部门的重要任务,手工操作则要求投入大量的人力物力。通过对实际情况的调查,本系统发挥了计算机系统的数据处理能力,在对所需备案基本数据进行存贮的基础上,通过数据统计、分析,帮助有关部门更好的进行管理。二、 系统环境与开发工具选择1 系统环境开发环境:microsoft windows95操作系统,intel petium处理器133mhz,32m内存,philips显示器640480显示分辨率。运行环境:microsoft windows95/98/nt操作系统,586及以上主频,8m及以上内存,运行本系统需要8m剩余硬盘空间。 2 选择开发工具visual foxpro是美国microsof

3、t公司于推出的新一代高级程序设计语言。它具有良好图形用户界面(gui),同时又是一种完全支持面向对象程序设计(oop)的语言。该系统不仅可以简化数据管理,而且使应用程序的开始流程更为合理。visual foxpr 使组织数据、定义数据库规则和建立应用程序等工作变得简单易行。利用可视化的设计工具和向导,可以快速创建表单、查询和报表。visual foxpro还提供了一个集成化的开发环境,不仅拥有功能强大的面向对象程序设计工具以及客户/服务器能力,而且还支持activex,这些特点都为快速开发功能全面的应用程序创造了良好的条件。基于以上的特点,本人应用中文版的visual fro 6.0开发了机动

4、车驾驶员管理系统。第二部分 总体设计一、系统结构总图: 启动主界面 数据处理查询数据统计报表 系统设置数据处理 退出数据处理数据输入处理数据编辑输入处理企事业单位驾驶员数据机动车数据单位事故记录 会员数据处理事故月报驾驶员分类统计企事业单位设置密码数据编辑输入处理窗体背景数据备份 登录 打印会员卡二、系统功能本系统采用面向对象的程序设计思想,以菜单和表单的形或进行各种表单的调用,主要完成以下功能:(1)对企事业单位、驾驶员信息、机动车信息以及事故记录等进行备案登记。(2)具有超级权限的操作员可对已经正式备案的上述信息进行修改、删除。(3)按驾驶证号等条件查询事故记录;查询统计月事故记录以及年事

5、故记录;按单位名称等条件查询驾驭员基本情况或会员情况;按单位名称等件查询机动车的基本情况;按所在区县、地区等条件查询已备案的单位情况(4)统计报表的预览及打印(5)具有超级权限的操作员可对本系统密码及准驾证号等静态数据库进行维护此外,为了保证系统的安全,在进入本系统前必须输入有效的密码,并根据用户的不同级别为其设置相应的系统菜单,以防止非法用户进入系统和用户越权操作损害数据的安全。三、 数据库设计:(一)创建表结构企业事业单位dw.dbf 数据表字段结构此数据表主要用来存贮备案的企事业单位的基本数据名称类型长度标题dwbh字符8单位编号dwmc字符30单位名称dwdz字符30单位地址zgld字

6、符8主管领导lxdh字符15联系电话gczs整数3公车总数sczs整数3私车总数驾驶员信息 jsy.dbf 数据表字段结构此数据表主要用来存贮机动车驾驶员的基本数据名称类型长度标题xm字符8姓名xb字符2性别csrq日期8出生日期xzdz字符30现住地址dwbh字符8单位编号lxdh字符15联系电话sfzh字符18身份证号qzrq日期8取证日期yxrq日期8有效日期zjcx字符 8准驾车型jszh字符15驾驶证号zp通用4驾驶员照片会员信息hy.dbf 数据表字段结构此数据表主要用来存贮驾驶员会员的基本数据,仅有除驾驶员数据表之外的会员信息字段名称类型长度标题hyzh字符8会员证号jszh字符

7、15驾驶证号mz字符4民族whcd字符4文化程度fhmc字符8分会名称hyje整数4会员金额机动车信息jdc.dbf 数据表字段结构此数据表主要用来存贮备案的公有企事业单位的基本数据名称类型长度标题cphm字符8车牌号码cpxh字符10厂牌型号cllx字符8车辆类型clys字符4车辆颜色syq字符2所有权cz字符30车主czdz字符30车主地址fzrq日期8发证日期bsrq日期8报损日期事故记录sg.dbf数据表字段结构此表用来存放驾驶员的事故记录名称类型长度标题jszh字符15驾驶证号cphm字符10车牌号码sgbh字符6事故编号sgsj日期8事故时间sgdj字符2事故等级sgjs备注4事故

8、简述密码表mm.dbf数据表字段结构此数据表存贮密码数据主要用来设置可以操作本系统的人员及权限名称类型长度标题mm字符6密码qx字符1权限区县代号qxdh.dbf数据表字段结构此数据表用来存贮各个区县的代号,是个静态数据表,主要用来方便用户输入企事业单位的基本数据名称类型长度标题qxmc字符6区县名称qxdh字符2区县代号(二)数据库说明 本数据库共包括:企业事业单位、驾驶员信息、机动信息、事故记录、会员信息、等数据表,其间存在着多个关联。【驾驶员】表与【企事业单位】表的单位编号使这两个表存在关联,这样可知驾驶员所在单位详细情况,或查看某个单位的驾驶情况等。【事故记录】表通过驾驶证号与【驾驶员

9、】表关联;通过车牌号与【机动车】表关联。这样便可找到事故所涉及机驾驶员的详细情况和机动车的详细资料等。【会员信息】表与【驾驶员】表通过驾驶证号关联,这样便可查看会员的详细情况。另外数据库中还设置了三个静态数据表,用于维护系统,方便使用。第三部分 功能模块详细设计一、 主界面设计: 为了使应用程序的主要功能得以体现,方便用户使用应用程序中的命令和工具,我根据用户所要执行的任务为系统设计了菜单,给用户提供了一个结构化的、可访问的途径。在设计中并指定了访问键。另外,权限低的操作员对于系统设置等部分操作无操作权,则通过废止相应的菜单项来进行控制。 主界面是一个顶层表单,init:do 主菜单.mpr

10、with this, .t.二、 新增数据:主要功能:新增数据操作主要是将企事业单位信息、 机动车信息、驾驶员信息和事故记录, 等数据进行输入。实现方法: 1动态加载页面 由于数据较多故采用页框形式,这样操作员在同一表单中即可将要输入的数据全部输入. 但是在系统调试过程中发现即使操作员只想操作某一种信息,系统也要把四个页框的信息全部调入,这样浪费了时间,尤其是相当系统数据量大的候运行变慢,为了解决这个问题,我采用了动态加载页面控件,通过在将每个页面上的控件创建类, 然后当激活页面时再加载这些控件.具体的操作如下: 象通常一样设计表单,在所有页面上包含所有控件. 将第2,3,4页的所有控件分别存

11、为类.page2.vcx, page3.vcx, page4.vcx 在第2,3,4页的a ctivate事件中添加类如:第2 页的activate事件代码:if this.controlcount=0 this.addobject(page2,page2) this.page1.visible=.t.endif2方便用户输入: 在输入姓名、地址等中文字段时,系统自动切换至中文输入法。 在输入界面设置了一组快捷菜单“复制、剪切、复制”,这样在输入重复的信息时直接复制即可。3为了确保输入数据的有效性,对于有固定信息的字段,通过下拉列表框等控制件为用户预先设定选项供用户选择,这样即保证了数据库中不

12、存储无效数据。 4统一界面,如蓝色标签字段为关键性字段,通过与其它字段颜色不同,提示操作员必须输入。另外有些字段的信息由系统自动产生,则该字段输入框的背景颜色为“淡蓝色”。对操作员操作员进行提示。(一)企事业单位信息:1 版面设计:增加单位代码:根据调研发现,实际运作情况的单位编号是根据单位所在的区县、分组、分片产生的。所以我将单位代码的输入变为“区县号”、“地区号”、“分组号”和“单位号”四项分别输入,其中区县号由下拉列表框选则输入,系统可根据选则自动形成代码,四个代码输入后单位代码自动产生,这样即方便操作又不易出错。其它信息的输入均为文本框。2 属性和事件 新增属性isadd属性,用来判断

13、企事业数据表目前是否在新增关态,目前设置为.f.,表明目前不在新增状态. oldrecord属性,用来储存新增记录前,当前的记录编号,等放弃新增后,还返回到原来记录位置。目前设置为03 操作: 本表单主要设置了四个按钮:若要增加记录,单击“新增”按钮;此时,全部指令按钮都停用了,只有“保存”、“取消”两个按钮是启用的;另外,所有字段也全部清空等待用户输入。字段输入后单击“保存”钮结束本次新增操作。如果不想保留本次操作,还可单击“取消”钮撤消本次操作,并返回到增加之前的状态。thisform.isadd=.t.thisform.oldrecord=recno()append blankthisf

14、orm.pf.jdc.cmdadd.enabled=.f.thisform.pf.jdc.cmdexit.enabled=.f.thisform.pf.jdc.cmdcancel.enabled=.t.thisform.pf.jdc.cmdsave.enabled=.t.thisform.pf.jdc.cbocllx.setfocus()thisform.refresh()(二)驾驶员信息:驾驶员信息的输入与单位信息的输入的设计思想与操作方法基本相同。不同之处是:首先,为了使驾驶员的信息更加充分,增加了驾驶员照片字段,当用户单击鼠标右键后弹出打开文件对话框,选则照片。其次,增加了会员输入。如果

15、该驾驶员是会员,则单击“入会”按钮,系统弹出“会员登录信息”表单,作为“驾驶员信息”的子表单。由于会员信息的部分字段与驾驶员信息相同,故将其父表单的如“姓名、性别”、“联系电话”等信息直接继承,并将这些字段设为只读。该表单的关键性字段是“会员证号”,会员号由系统自动产生。会员信息输入完毕后,返回其父表单。会员卡信息输入完毕后,可直接打印会员卡。然后再返回其父菜单。(三)机动车信息:机动车信息的输入与单位信息的输入的设计思想与操作方法基本相同。(四)事故记录信息:事故信息的输入与单位信息的输入的设计思想与操作方法基本相同。三、 数据编辑(一)修改数据:此项操作功能是将原始数据表中的数据进行修改、

16、删除操作。为了保证原始数据的安全,设置了“超级“操作权限,操作员应具有其操作权限才可进入修改。数据编辑界面由页框组成,共四个页面,分别以企事业单位、驾驶员信息、机动车信息、和事故记录进行修改,每一页由表格控件显示其所对应的数据。操作方法如下:以驾驶员数据修改为例(二)删除数据:要删除某个驾驶员的数据应先在表格空件中指定,即在该记录上单击,然后点“删除“按钮,系统此时提示是否真的删除这个人的信息,回答“是“则该信息从原始数据表中删除。回答“否“则撤消删除。修改操作:先在表格控件中指定该条记录,然后单击“修改“按钮,系统弹出修改子表单,显示指定的当前记录信息,修改数据后点击“确定“返回;单击“取消

17、“撤消刚才的修改,恢愎成原来数据。为了方便操作,在此设置了查询功能,以便快速定位到要操作的记录。主要代码:删除操作local ndo case case thisform.pf.activepage=1 n=thisform.pf.dw.grid1.column2.text1.value case thisform.pf.activepage=2 n=thisform.pf.jsy.grid1.column1.text1.value case thisform.pf.activepage=3 n=thisform.pf.jdc.grid1.column1.text1.value case th

18、isform.pf.activepage=4 n=thisform.pf.sg.grid1.column1.text1.valueendcaseyn = messagebox(是否确定删除 + alltrim(n)+; 的信息?,4+32,信息窗口)if yn = 6deletepackdo case case thisform.pf.activepage=1 thisform.pf.dw.grid1.recordsource=企事业单位 case thisform.pf.activepage=2 thisform.pf.jsy.grid1.recordsource=驾驶员信息 case th

19、isform.pf.activepage=3 thisform.pf.jdc.grid1.recordsource=机动车信息 case thisform.pf.activepage=4 thisform.pf.sg.grid1.recordsource=事故记录endcasethisform.refreshresult = tableupdate(.f.)if result = .t.=messagebox(删除成功 ! ,48,信息窗口)else=messagebox(删除不成功 ! , 48,信息窗口)=tablerevert(.f.) endifendifthisform.refres

20、h() 修改操作:public curentcurent=recno()do case case thisform.pf.activepage=1 do form dw case thisform.pf.activepage=2 do form jsy case thisform.pf.activepage=3 do form jdc case thisform.pf.activepage=4 do form sgendcasethisform.refresh()四、 查询数据1. 事故记录的查询:根据查询情况的不同,设置了通过驾驶证号、事故编号、车牌号码三种条件进行查询。驾驶证号查询是为了查

21、找某个驾驶的事故记录。事故编号查询是为了查看某项事故所涉及的人员。车牌号码查询是查某辆车的事故记录。每次查询结束后系统会自重置查询条件,以备下一个查询。在这个表单中的数据环境是“事故记录”表和“驾驶员情况”表通过驾驶证号关联。本组操作是通过建立临时查询文件来实现的,在查询过程中,通过查询条件的不同分别调用各自的查询文件,并将查询结果在表格中显示。2. 驾驶员查询:在这个表单里设置了两个查询条件:按单位名称查询该单位的驾驶员的基本情况,并显示驾驶员总数;第二种条件是根据驾驶员的驾驶证号进行查询。在这个表单中的数据环境是“驾驶员情况”表和“企事业单位”表关联。其设计思想与事故查询基本相同。五、 统

22、计报表在经过以上收集和组织数据后,要将数据进行打印或显示在屏幕。在本系统可将企事业单位的基本情况表;驾驶员基本情况表,各个单位的驾驶员统计,事故月报表等输出。 其中单位驾驶员统计是建立了一个一对多的分组报表,这样就可根据实际需要,分别将各个单位的驾驶员情况查询,输出。事故月报表是将事故记录根据月份进行分组输出。六、 系统设置修改静态数据:车辆类型和车型代号这些数据,在用户输入数据时通过选项按钮组为用户提供一组预先设定的选则,这样方便用户也避免了数据库存储无效的数据。这些固定的数据也是相对而言的,一但实际操作中这些数据的定义有所改变,这些预定的数据就要随之改变来保持一致。功能实现:为了保证原始数

23、据的安全,设置了“超级“操作权限,操作员应具有其操作权限才可进入修改。具体到数据表数据的增加、修改和删除与其它数据表是一样的。 2.设置窗体背景设置背景是指操作员可根据个人的喜好随时更改窗体背景以增加操作的趣味性。功能实现:这一功能是通过get file 命令调出打开图形文件对话框, 用户选择文件时并可预览要选择的文件。背景文件被选定将其全文件名作为一字符串,保存在公共变量中,以备使用。那么,其它窗体是怎样传递这一信息的呢?我在每一个可设置背景的窗体的ctive事件中判别这上公共变量是否为空,如果不为空则通过命令设置窗体的icture属性,这样窗体的背景颜色就改变了。3.设置密码为了保证系统的

24、安全性,本系统设置了权限功能,首先登录时根据用户输入的密码来判断权限,如果权限不够,数据维护菜单下的数据编辑与系统维护的更改密码子菜单将不可用。4数据备份: 数据备份是数据维护的重要工作,备案的数据一般需要上报实现数据共享。另外在实际中随时都有可能遭到意外的甚至是人为的破坏,为了保证数据的安全,一般应定期对数据进行备份以防不测。功能实现:在这一功能模块中要备份的数据包括数据表文件和报表文件等,并分别设置了备份到不同的位置,:盘、:盘、:盘共三个出口,主要操作命令是在程序中运行操作系统”copy”命令 ,复制结束后通过ctive windows 命令再返回到本系统的主窗体,这样操作员就很方便的将

25、数据备份了,即方便了数据流通又保证了数据安全。七、 关于本软件界面如下图所示(略)。本界面用来显示版本版权及其它信息。另外上移的说明文字是利用timer控件控制label控件在容器类控件内移动实现的。代码如下:thisform.container1.label1.top=thisform.container1.label1.top-1if thisform.container1.label1.top+thisform.container1.label1.height0 thisform.container1.label1.top=thisform.container1.height+5endi

26、f本界面中单击作者的email地址,即可调用用户机上缺省的邮件处理程序来给作者发送邮件。第四部分 结尾一、 总结通过各位指导老师的指点和同学之间的交流,使我完成了本系统的设计。在此对各位指导老师与同学表示感谢!在本系统中,我力求使自己的程序功能更加强大和更便于操作。如有时通过工具栏、菜单、鼠标右键、等都可以实现相同的功能,相应的按钮和菜单的enabled属性也控制得非常到位,以免用户的错误操作。本程序也经过了我较为大量的测试,每次发现问题后我都耐心的寻找问题所在,然后予以一一解决。然而由于我的水平有限和时间仓促,程序中肯定还存在不少的问题,有些问题我现在也没有解决,如没有实现查找后数据的修改、

27、系统提示用户不够完善,程序代码不够精炼等,是我在下一步设计中应该解决的问题,也希望能得到各位老师和同学的更多指点。通过本系统的设计,我学到了不少visual foxpro编程的技巧,更增加了我的windows下应用程序的编程信心,尤其在数据库编程方面有了很大的进步。在今后的工作学习中,我要更加努力的学习编程知识,使自己的编程能力更上一层楼。二、 参考文献:1、vfp6.0中文版入门与提高清华大学出版社李加福、邸学峰著2、vfp6.0中文版程序员指南北京希望电脑公司microsoft corporation3、vfp6.0程序设计指南清华大学出版社吴迪、曲蒙著4、vfp6.0函数大全北京航空航天

28、大学出版社徐培忠著三、 附录(原程序)主表单:name = form1procedure initset sysmenu offset sysmenu toset talk offset delete offset exact offset confirm offset safety offset status bar offset multilock onset defa to c:bsdo mainmenu.mpr with this, .t.endprocprocedure loadlocal iwith this.toolbars1,1 = 表单控制项.toolbars2,1 = 表单

29、设计工具.toolbars3,1 = 查询设计工具.toolbars4,1 = 配置方式.toolbars5,1 = 报表控制项.toolbars6,1 = 报表设计工具.toolbars7,1 = 数据库设计工具.toolbars8,1 = 数据表设计工具.toolbars9,1 = 预览打印.toolbars10,1 = 常用.toolbars11,1 = 调色板endwithfor i = 1 to 11 this.toolbarsi,2 = wvisible(this.toolbarsi,1)if this.toolbarsi,2hide window (this.toolbarsi,

30、1)endifendforendprocprocedure destroyset sysmenu to defaultset sysmenu onset talk onset confirm onset safety onset status bar onmodify windows screenendprocprocedure unloadlocal ifor i=1 to 11 if this.toolbarsi,2 show window (this.toolbarsi,1) endifendforendproc口令表单:name = cmdokprocedure clickpublic

31、 i, ctlmenu,lognamei=i+1select 密码表p=alltrim(thisform.txtpasswd.value)locate for mm=alltrim(thisform.txtpasswd.value)if found() ctlmenu=qx isuser=.t. logname=thisform.txtname.value thisform.release() set default to c:bs do form 主窗体.scx else thisform.label3.caption=dkldsa if i3 messagebox(密码错误!+chr(13

32、)+请重新输入!,48,信息窗口) thisform.txtname.setfocus() else messagebox(密码错误三此!+chr(13)+系统无法启动!,48,信息窗口) thisform.release() endifendifendprocname = cmdcancelprocedure clickclear eventsclose allthisform.releaseendproc主菜单:mainmenu.mprlparameters oformref, getmenuname, luniquepopups, parm4, parm5, parm6, parm7,

33、parm8, parm9local cmenuname, ntotpops, a_menupops, ctypeparm2, csaveformnameif type(m.oformref) # o or ; lower(m.oformref.baseclass) # form or ; m.oformref.showwindow # 2messagebox(只能从顶层表单调用该菜单。请确认您表单的 showwindow 属性已设为 2。阅读此菜单 mpr 文件的头部分,可以获得详细信息。)returnendifm.ctypeparm2 = type(m.getmenuname)m.cmenu

34、name = sys(2015)m.csaveformname = m.oformref.nameif m.ctypeparm2 = c or (m.ctypeparm2 = l and m.getmenuname)m.oformref.name = m.cmenunameendifif m.ctypeparm2 = c and !empty(m.getmenuname)m.cmenuname = m.getmenunameendifdimension a_menupops4if type(m.luniquepopups)=l and m.luniquepopupsfor ntotpops =

35、 1 to alen(a_menupops)a_menupopsm.ntotpops= sys(2015)endforelsea_menupops1=数据维护ea_menupops2=查询数据va_menupops3=打印报表ta_menupops4=设置sendifdefine menu (m.cmenuname) in (m.oformref.name) bardefine pad _04n0zaqhm of (m.cmenuname) prompt 数据维护(e) color scheme 3 ;key ctrl+e, ctrl+e ;message 输入、修改、删除企事业单位、机动车、

36、驾驶员备案信息define pad _04n0zaqhn of (m.cmenuname) prompt 查询数据(v) color scheme 3 ;key alt+v, alt+v ;message 查询输入企事业单位、机动车、驾驶员备案信息define pad _04n0zaqho of (m.cmenuname) prompt 打印报表(t) color scheme 3 ;key alt+f, alt+f ;message 浏览打印报表define pad _04n0zaqhp of (m.cmenuname) prompt 设置 (s) color scheme 3 ;key a

37、lt+s, define pad _04n0zaqia of (m.cmenuname) prompt 帮助(h) color scheme 3 ;key alt+h, define pad _04n0zaqib of (m.cmenuname) prompt 退出(x) color scheme 3 ;key alt+x, on pad _04n0zaqhm of (m.cmenuname) activate popup (a_menupops1)on pad _04n0zaqhn of (m.cmenuname) activate popup (a_menupops2)on pad _04

38、n0zaqho of (m.cmenuname) activate popup (a_menupops3)on pad _04n0zaqhp of (m.cmenuname) activate popup (a_menupops4)on selection pad _04n0zaqib of (m.cmenuname) ;do _04n0zaqie ;in locfile(bsmainmenu ,mpx;mpr|fxp;prg ,where is mainmenu?)define popup (a_menupops1) margin relative shadow color scheme 4

39、define bar 1 of (a_menupops1) prompt 新增数据(a). ;key alt+a, alt+a ;message 输入企事业单位、机动车、驾驶员备案信息define bar 2 of (a_menupops1) prompt 编辑数据(e). ;key alt+e, alt+e ;skip for ctlmenu=0 ;message 修改、删除企事业单位、机动车、驾驶员备案信息on selection bar 1 of (a_menupops1) do form 新增on selection bar 2 of (a_menupops1) do form 编辑d

40、efine popup (a_menupops2) margin relative shadow color scheme 4define bar 1 of (a_menupops2) prompt 企事业单位信息(q). ;key alt+q, alt+q ;message 查询企事业单位备案信息define bar 2 of (a_menupops2) prompt 驾驶员信息(j). ;key alt+j, alt+j ;message 查询驾驶员备案信息define bar 3 of (a_menupops2) prompt 机动车信息(c). ;key alt+c, alt+c ;m

41、essage 查询机动车备案信息define bar 4 of (a_menupops2) prompt 事故信息(s). ;key alt+s, alt+s ;message 查询事故记录on selection bar 1 of (a_menupops2) do form dwcxon selection bar 2 of (a_menupops2) do form jsycxon selection bar 3 of (a_menupops2) do form jdccxon selection bar 4 of (a_menupops2) do form sgcxdefine popu

42、p (a_menupops3) margin relative shadow color scheme 4define bar 1 of (a_menupops3) prompt 企事业单位清单(q). ;key alt+q, alt+qdefine bar 2 of (a_menupops3) prompt 驾驶员名册(j).define bar 3 of (a_menupops3) prompt 机动车备案清单(c)define bar 4 of (a_menupops3) prompt 事故统计表(s)on selection bar 1 of (a_menupops3) report

43、form dw noconsole previewon selection bar 2 of (a_menupops3) report form jsy noconsole previewon selection bar 3 of (a_menupops3) report form jdc noconsole previewon selection bar 4 of (a_menupops3) report form sg noconsole previewdefine popup (a_menupops4) margin relative shadow color scheme 4defin

44、e bar 1 of (a_menupops4) prompt 更改密码(p). ;skip for ctlmenu=0define bar 2 of (a_menupops4) prompt 窗体背景(b).on selection bar 1 of (a_menupops4) do form 设置on selection bar 2 of (a_menupops4) do form 设置activate menu (m.cmenuname) nowaitif m.ctypeparm2 = cm.getmenuname = m.cmenunamem.oformref.name = m.csa

45、veformname endifprocedure _04n0zaqieset sysmenu to defaultset sysmenu onkj.mpr define popup 快捷菜单 shortcut relative from mrow(),mcol()define bar _med_redo of 快捷菜单 prompt 重做(d) ;key ctrl+r, ctrl+r ;message 重复上一次命令或操作define bar _med_undo of 快捷菜单 prompt 撤消(u) ;key ctrl+z, ctrl+z ;message 撤消上一次命令或操作defin

46、e bar 3 of 快捷菜单 prompt -define bar _med_paste of 快捷菜单 prompt 粘贴(p) ;key ctrl+v, ctrl+v ;message 粘贴剪贴板上的内容define bar _med_copy of 快捷菜单 prompt 复制(c) ;key ctrl+c, ctrl+c ;message 将选定内容复制到剪贴板上define bar _med_cut of 快捷菜单 prompt 剪切(t) ;key ctrl+x, ctrl+x ;message 移去选定内容并将其放入剪贴板activate popup 快捷菜单 新增代码:cmd

47、add.clickthisform.isadd=.t.thisform.oldrecord=recno()append blankthisform.pf.dw.recbuttons.enabled=.f.thisform.pf.dw.cmdadd.enabled=.f.thisform.pf.dw.cmdexit.enabled=.f.thisform.pf.dw.cmdcancel.enabled=.t.thisform.pf.dw.cmdsave.enabled=.t.thisform.pf.dw.cbo1.enabled=.t.thisform.pf.dw.cbo1.setfocus()

48、thisform.refresh()cmdsave.clickresult = tableupdate(.f.)if result = .f.=messagebox(保存不成功!+chr(13)+请注意代号是否输入(重复)?;,48,信息窗口)thisform.pf.dw.cbo1.setfocus()else=messagebox(保存成功!,48,信息窗口) thisform.pf.dw.cbo1.value= thisform.pf.dw.text2.value= thisform.pf.dw.text3.value= thisform.pf.dw.text4.value= thisfo

49、rm.pf.dw.recbuttons.enabled = .t. thisform.pf.dw.cmdadd.enabled=.t. thisform.pf.dw.cmdexit.enabled=.t. thisform.pf.dw.cmdcancel.enabled=.f. thisform.pf.dw.cmdsave.enabled=.f. thisform.pf.dw.txtxm.enabled = .f.thisform.refresh()endifcmdcancel.clickyn = messagebox(是否放弃编辑?,4+32,信息窗口)if yn = 6=tablereve

50、rt(.f.) thisform.isadd =.t. go thisform.oldrecordthisform.isadd = .f. thisform.pf.dw.recbuttons.enabled=.t. thisform.pf.dw.cbo1.value= thisform.pf.dw.text2.value= thisform.pf.dw.text3.value= thisform.pf.dw.text4.value= * thisform.pf.dw.recbuttons.enabled = .t.thisform.pf.dw.cmdcancel.enabled=.f.thisform.pf.dw.cmdsave.enabled=.f. thisform.pf.dw.cmdadd.enabled=.t. thisform.pf.dw.cmdexit.enabled=.t.thisform.pf.dtop = 268cmdexit.clickyn = messagebox(是否确定离开?,4+32,信息窗口)if yn = 6 thisform.release()clear eventsendifrecbuttons.refr

温馨提示

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

评论

0/150

提交评论