VFP仓库管理系统课程设计_第1页
VFP仓库管理系统课程设计_第2页
VFP仓库管理系统课程设计_第3页
VFP仓库管理系统课程设计_第4页
VFP仓库管理系统课程设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

课程设计任务书20112012 学年第一学期专业班级: 计算机应用技术 学号: 姓名: 课程名称: 数据库系统与应用 完成期限:自2011年12月12日至2011年12月18日 共 1 周课程设计题目 数据库仓库管理系统课程设计 设计目的:仓库形态具有种种优点,但在目前状况下,它仍存在零售业企业所共有的落后的一面,如:不能有效地管理每种商品,收款结算速度慢,而且在仓库管理中,商品的进、销、存等决策以经验为主,缺乏实时分析功能,管理人员对及时传递资料的要求始终得不到满足。而该系统则可以方便的实现商品的录入,查询,添加,删除等功能。使操作更简便效率 功能要求: 综合运用所学的数据库基本知识,并能通过查阅相关文献材料,独立完成该课题的设计开发工作。要求根据本课题设计出合理的数据结构,并实现商品的录入,查询,修改,删除等功能。 一、设计的任务:完成教学管理系统中主要模块的设计和实现。 二、开发工具:Visual FoxPro6.0 / Visual FoxPro8.0 三、进度安排:第17周进行课程设计、设计说明书的撰写和课程设计答辩。 四、参考资料: 1 陶宏才.数据库原理及设计.北京:清华大学出版社,20012 范立南.SQL Server 2000 实用教程.北京: 清华大学出版社,20033 李香敏.SQL Server 2000 编程员指南.北京:北京希望电子出版社。4 王丙义,胡鸿. 数据库原理与Visual Foxpro应用. 北京:中国铁道出版计划答辩时间: 2011 年 12 月 18 日指导教师(签字): 2011 年 月 日目 录第1章 引言- 1 -第2章 需求分析- 1 -2.1系统概述- 1 -2.2运行环境- 1 -2.3功能需求描述- 1 -第3章 总体设计- 2 -3.1系统设计- 2 -3.2系统模块结构图- 2 -3.3模块设计- 3 -3.4数据库设计- 4 -3.4数据库概念结构设计- 5 -第4章 详细设计- 7 -4.1功能选择界面的设计- 7 -4.2设备入库模块的设计- 8 -4.3设备出库模块的设计- 10 -4.4 设备还库模块的设计- 11 -4.5 设备需求模块的设计- 12 -4.6 设备采购模块的设计- 13 -4.7 显示报表模块的设计- 14 -第5章 系统的编译和发行- 16 -5.1 设置主文件- 16 -5.2 构造主文件- 16 -5.3 在.app和.exe文件中包含和排除文件- 16 -第6章 小结- 17 -6.1系统的功能和特点- 17 -6.2存在的问题与改进方向- 17 -6.3自我体会- 18 -参考文献- 19 -附录1:部分程序源代码- 19 -附录2:程序运行界面:- 28 -第1章 引言企业的物资供应管理往往是很复杂的,烦琐的。由于所掌握的物资种类众多,订货,管理,发放的渠道各有差异,各个企业之间的管理体制不尽相同,各类统计计划报表繁多,因此物资管理必须实现计算机化,而且必须根据企业的具体情况制定相应的方案。仓库管理部门是企业中的一个重要部门,每天都有大量的业务在这里产生。对于一个现代化的企业来说,如何把仓库部门每天发生的业务如实的记录下来,保证仓库有条理地进行,同时确保相关数据的安全,信息处理的高效,并保证系统的实用性强,这是要本系统设计实现的基本要求,并要求在每一步骤的设计过程中都能生动清晰地有所体现。第2章 需求分析2.1系统概述管理信息系统是一个利用计算机软硬件资源,手工作业,分析、计划、控制和决策模型以及数据库的人-机系统。它能提供信息支持企业或组织的运行、管理和决策功能。2.2运行环境处理器:Intel Pentium 166 mx 或更高内存: 32MB以上硬盘空间:1GB以上显卡:SVGA显示适配器2.3功能需求描述 l 仓库管理各种信息的输入,包括入库、出库、还库、需求信息的输入等。l 仓库管理各种信息的查询、修改和维护。l 设备采购报表的生成。l 在库存管理中加入最高储备和最低储备字段,对仓库中的物资设备实现监控和报警。l 企业各个部门的物资需求的管理。l 操作日志的管理。l 仓库管理的使用帮助。第3章 总体设计3.1系统设计1. 系统目标设计系统开发的总体任务是实现企业物资设备管理的系统化,规范化和自动化,从而达到提高企业物资管理的效率的目的。2. 开发设计思想仓库管理的特点是信息处理量比较大。所管理的物资设备种类繁多,而且由于入库单,出库单,需求单等单据发生量特别大,关联信息多,查询和统计的方式各不相同。因此在管理上实现起来有一定的困难。在管理的过程中经常会出现信息的重复传递,单据,报表种类繁多,各个部门管理规格不统一等问题。在本系统的设计过程中,为了克服以上困难,满足计算机管理的需要,我们采取了下面的一些原则: 统一各种原始的单据的格式,统一帐目和报表的格式。 删除不必要的管理冗余,实现管理规范化、科学化。 程序代码标准化,软件统一化,确认软件的可维护行和实用性。 界面尽量简单化,做到实用、方便,尽量满足企业中不同层次员工的需要。 建立操作日志,系统自动记录所进行的各种操作。3.2系统模块结构图仓库管理系统系统模块输入模块维护模块查看模块报表模块帮助模块打印设置日志管理入库模块出库模块还库模块需求模块3.3模块设计按照前面的分析,我们将管理系统的逻辑模块统一到6个实际功能模块中,如图所示。切换面板用于切换不同的操作,每项具体操作结束后,都会返回到切换面板。设备入库设备出库设备还库设备需求设备采购显示报表 切换面板下面对各模块的作用进行说明:1. 设备入库模块:添加设备到库存中。2. 设备出库模块:将设备从库存取出并记录。3. 设备还库模块:将归并到库存的设备保存到数据库。4. 设备需求模块:记录各部门的设备需求。5. 设备采购模块:记录要采购的设备。6. 切换面板:用于切换到不同的操作,如设备入库、设备出库等。7. 显示报表:显示库存过多、库存不足等信息。 3.4数据库设计仓库现有库存各部门需求企业总体生产计划汇总处理设备采购设备出库设备入库设备还库在仔细调查企业仓库物资设备管理过程的基础上,得到本系统所处理的时间流程如图所示:数据流程图在本设计中,通过对企业仓库管理的内容和数据流程分析,设计的数据项和数据结构如下:1. 设备代码信息。包括的数据项有设备号、设备名称。2. 现有库存信息。包括的数据项有现有设备、现有数目、总数目、最大库存、最小库存等。3. 设备使用信息。包括的数据项有使用的设备、使用部门、数目、使用时间、出库时状态。4. 设备采购信息。包括的数据项有采购的设备、采购员、供应商、采购数目、采购时间等。5. 设备归还信息。包括的数据项有归还设备、归还部门、归还数目、归还时间、经手人等。6. 设备需求信息。包括的数据项有需求的部门、需求设备、需求数目、需求时间等。有了上面的数据结构、数据项和数据流程,就能进行下面的数据库设计。3.4数据库概念结构设计这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。本设计根据上面的设计规划出的实体有库存实体、入库实体、出库实体、采购实体、还库实体、需求实体。仓库管理系统数据库中的各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。1. 设备代码表:列名数据类型可否为空设备号(主键)数值型(20)不能为空设备名称字符型(50)可为空2. 设备入库表:列名数据类型可否为空设备号数值型(20)不能为空入库时间(主键)日期型(8)可为空供应商字符型(50)可为空供应商电话字符型(15)可为空入库数量数值型(20)可为空价格字符型(10)可为空采购员字符型(20)可为空3. 设备出库表:列名数据类型可否为空设备号数值型(20)不能为空出库时间(主键)日期型(8)可为空使用部门字符型(50)可为空出库状况数值型(20)可为空经手人字符型(20)可为空出库数量数值型(10)不能为空领取人字符型(50)可为空用途字符型(50)可为空4. 现有库存表:列名数据类型可否为空设备号(主键)数值型(20)不能为空现有库存数值型(20)可为空最大库存数值型(20)可为空最小库存数值型(20)可为空总数数值型(20)可为空5. 部门需求表:列名数据类型可否为空设备号(主键)数值型(20)不能为空部门名称字符型(20)不能为空需要数量数值型(20)可为空需求开始时间日期型(8)可为空需求结束时间日期型(8)可为空6. 设备还库表:列名数据类型可否为空设备号(主键)数值型(20)不能为空还库时间日期型(8)不能为空仓库管理员数值型(20)可为空归还数量数值型(20)可为空归还人字符型(10)可为空7. 操作日志表:列名数据类型可否为空操作员字符型(50)不能为空操作内容字符型(50)不能为空操作时间日期型(8)可为空8. 设备采购计划表:列名数据类型可否为空设备号数值型(20)不能为空现有库存数值型(20)可为空总库存数值型(20)可为空最大库存数值型(20)可为空购买数量数值型(20)可为空供应商字符型(20)不能为空价格字符型(10)可为空计划采购时间(主键)日期型(8)可为空第4章 详细设计4.1功能选择界面的设计这一模块的主要功能是作为系统主界面为进入本系统不同功能界面选择提供一个接口,使用一个窗口来实现这一功能。首先建立一个表单,设取“caption”属性为“仓库管理”。在该表单上添加6个“按钮”控件,它们的“caption”属性分别为“设备入库”,“设备出库”,“设备还库”,“部门需求”,“设备采购”,“显示报表”。然后在表单上添加“图象控件”,并设其“stretch”属性为“2-strech(扩展)”,“pictrue”属性为图片所在的位置,本例中为“c:仓库管理001.jpg”。1. 在“comm.and1”(“caption”属性为“设备入库”)控件的“click”事件中添加如下代码:do form 设备入库表thisform.release2. 在“comm.and2”(“caption”属性为“设备出库”)控件的“click”事件中添加如下代码:do form 设备出库表thisform.release3. 在“comm.and3”(“caption”属性为“设备还库”)控件的“click”事件中添加如下代码:do form 设备还库表thisform.release4. 在“comm.and4”(“caption”属性为“部门需求”)控件的“click”事件中添加如下代码:do form 部门需求表thisform.release5. 在“comm.and5”(“caption”属性为“设备采购”)控件的“click”事件中添加如下代码:do form 设备采购表thisform.release6. 在“comm.and6”(“caption”属性为“显示报表”)控件的“click”事件中添加如下代码:do form 显示报表thisform.release7. 在“form1”的属性里选择“autocenter”设置为“.T.-真”,同时将“backcolor”设置为“255,255,255”,“windowstate”设置为“0-普通”。8. 添加“form1”的“init”事件的代码如下:set directory to c:仓库管理 *将程序的默认的路径指向资源所在的文件夹4.2设备入库模块的设计在设备入库模块中将实现设备数据的添加和入库等功能。本模块设计采用先用向导生成表单,然后用修改的方法实现。首先在项目管理器的文档视图下单击“新建”按钮,在接下来的向导中,“数据库和表”选择“仓库管理”以及“设备入库表”。值得注意的是,在结束表单向导前,可选择“保存表单以备将来使用”,“保存并运行表单”,或者“保存表单并用表单设计器修改表单”。由于Visual FoxPro6.0向导生成的表单只具有普遍性,对于当前设计的仓库管理系统还需要一定的改变,因此以我们选择“保存表单并用表设计器修改表单”。单击“完成”按钮系统提示保存表单,将表单保存为“设备入库表.scx”,存于c:仓库管理目录下。根据功能需求,把“cmdprint”、“”cmdexit、“cmdDelete”和“cmdedit”的Visible属性都设为“.F.-假”。添加2个命令按钮,Caption属性分别设为“修改库存”和“回主界面”。在“回主界面”命令按钮的click事件中添加代码如下:thisform.releasedo form 仓库管理在修改库存命令按钮的click事件中添加代码如下:select 现有库存表 getid=thisform.设备号1.text1.valueset order to 设备号seek getidif found() getnum=thisform.入库数量1.text1.value update 现有库存表 set 现有库存=(现有库存+getnum) where (设备号=getid)else insert into 现有库存表 (设备号,现有库存,最大库存,最小库存); value(thisform.设备号1.text1.value ,thisform.入库数量1.text1.value,1000,10)endifinsert into 操作日志表(操作员,操作内容,操作时间);values (thisform.采购员1.text1.value,设备入库,date()保存后运行表单。4.3设备出库模块的设计在设备出库模块中将实现设备出库数据的添加和修改库存等功能。该模块的功能和设备入库的功能相似。在表单的左上角加上了显示当前时间的功能,添加标签label2的caption属性设为“当前时间”;添加label3的caption属性设为空;为当前表单的label3init事件添加如下代码:this.caption=dtoc(date()该模块具体实现过程不再一一详细说明。下面列出了表单中所用到控件的属性值。1. Form1控件的主要属性:属性名称属性值Caption设备出库表Autocenter.T.-真BackColor255.255.2552. ButtonSet1控件的主要属性:控件名属性名称属性值cmdExitVisible.F.-假cmdDeleteVisible.F.-假cmdPrintVisible.F.-假cmdEditVisible.F.-假Command1Caption修改库存Command2Caption回主界面下面时设备出库表单中“修改库存”命令按钮的click事件的代码:select 现有库存表*先在该表单的数据环境中添加现有库存表getid=thisform.设备号1.text1.valueset order to 设备号seek getid *在现有库存表中查找设备号等于getid的纪录if found() getnum=thisform.出库数量1.text1.value update 现有库存表 set 现有库存=(现有库存-getnum) where (设备号=getid) *如果库存表中有该项设备,则更新库存表 insert into 操作日志表(操作员,操作内容,操作时间); values (thisform.领取人1.text1.value,设备出库,date()else messagebox(出错,1,错误的设备号)endif4.4 设备还库模块的设计在设备还库模块中将实现设备还库数据的添加和修改库存等功能,按照前面介绍的步骤设计设备还库表。设备还库表所可能用到的控件的属性如表所示:1. Form1控件的主要属性:属性名称属性值Caption设备还库表Autocenter.T.-真BackColor255.255.2552. ButtonSet1控件的主要属性:控件名属性名称属性值cmdExitVisible.F.-假cmdDeleteVisible.F.-假cmdPrintVisible.F.-假cmdEditVisible.F.-假Command1Caption修改库存Command2Caption回主界面下面是设备还库表中“修改库存”命令按钮的click事件的代码:select 现有库存表*先在该表单的数据环境中添加现有库存表 getid=thisform.设备号1.text1.valueset order to 设备号seek getid *在现有库存表中查找设备号等于getid的纪录if found() getnum=thisform.归还数量1.text1.value update 现有库存表 set 现有库存=(现有库存-getnum) where (设备号=getid) insert into 操作日志表(操作员,操作内容,操作时间); values (thisform.归还人1.text1.value,设备还库,date() *如果库存表中有该项设备,则更新库存表,同时更新操作日志else messagebox(出错,1,错误的设备号)*如果没有该设备号则报告出错信息 endif保存后运行表单。4.5 设备需求模块的设计在设备需求模块中将实现设备需求数据的添加和保存日志等功能。首先通过Visual Foxpro的表单向导生成所需的设备需求表单,选择部门需求表的所有可用字段,然后为保持程序风格的一致,继续采用表单的阴影式和图片按钮的风格。在“步骤3-排序次序”时。选择设备号的升序排列。最后单击“完成”按钮,把表单保存在“c:仓库管理”目录下,名为“设备需求.scx”。1. Form1控件的主要属性:属性名称属性值Caption部门需求表Autocenter.T.-真BackColor255.255.2552. ButtonSet1控件的主要属性:控件名属性名称属性值cmdExitVisible.F.-假cmdDeleteVisible.F.-假cmdPrintVisible.F.-假cmdEditVisible.F.-假Command1Caption保存日志Command2Caption回主界面在表单设计器中,双击“保存日志”命令按钮。添加click事件代码如下:insert into 操作日志表 (操作员,操作内容,操作时间) values (username,设备需求,date()双击回主界面命令按钮,添加click事件代码如下:thisform.releasedo form 仓库管理保存对表单所作的修改。4.6 设备采购模块的设计在设备采购模块中将实现设备采购数据的添加和保存日志等功能。1. 由数据表生成表单通过Visual Foxpro的表单向导,生成设备采购计划表单。在选择数据库和表时,选择仓库管理数据库和设备采购计划表。在选择字段时,选择所有可用字段,选择阴影式和图片按钮作为设备采购计划表的样式。选择计划采购时间的升序排列作为设备采购计划表的索引。2. 为窗体修改和添加命令按钮添加2个命令按钮“保存日志”和“回主界面”。设置表单中控件的属性。下面的表列出了需要修改的控件的名称以及属性值。1) Form1控件的主要属性:属性名称属性值Caption设备采购表Autocenter.T.-真BackColor255.255.2552) ButtonSet1控件的主要属性:控件名属性名称属性值cmdExitVisible.F.-假cmdDeleteVisible.F.-假cmdPrintVisible.F.-假cmdEditVisible.F.-假Command1Caption保存日志Command2Caption回主界面3) 为按钮添加click事件代码:在表单设计器中,双击保存日志命令按钮。添加click事件代码如下:insert into 操作日志表 (操作员,操作内容,操作时间);values (username,设备需求,date()*把设备需求写入操作日志表中双击回主界面按钮,添加click事件代码如下:thisform.release*释放本表单do form 仓库管理*运行仓库管理界面4.7 显示报表模块的设计在该模块中,一共要显示3个报表,分别提供库存不足,库存过多和操作日志等信息。1. 设计显示报表表单在空白表单中添加一个页框控件,并按照下表设置页框的属性,同时在数据环境里添加现有库存表和操作日志表。控件名属性名称属性值Form1Caption显示报表Pageframe1Caption3Pageframe1.Page1Caption库存不足表Pageframe1.Page2Caption库存过多表Pageframe1.Page3Caption操作日志分别为每个page添加一个表格grid1。设置表格控件的属性,如表所示:grid1控件的主要属性表:控件名属性名称属性值Pageframe1.Page1.grid1ReadOnly.T.-真Pageframe1.Page1.grid1RecordSourceType1-别名Pageframe1.Page1.grid1ColumnCount-1Pageframe1.Page2.grid1ReadOnly.T.-真Pageframe1.Page2.grid1RecordSourceType1-别名Pageframe1.Page2.grid1ColumnCount-1Pageframe1.Page3.grid1ReadOnly.T.-真Pageframe1.Page3.grid1RecordSourceType1-别名Pageframe1.Page3.grid1ColumnCount-12. 代码设计定义Pageframe1.Page1.grid1的init事件运行“显示报表”表单,界面所图所示:local Custs1select 设备号,最大库存,现有库存 from 现有库存表 where (现有库存最大库存) into cursor Custs1thisform.页框.库存过多.库存过多表.recordsource=Custs1定义Pageframe1.Page2.grid1的init事件local Custs2select 设备号,最小库存,现有库存 from 现有库存表 where (现有库存最小库存) into cursor Custs2thisform.页框.库存不足.库存不足表.recordsource=Custs2定义Pageframe1.Page3.grid1的init事件local Custs3select * from 操作日志表 into cursor Custs3thisform.页框.操作日志.操作日志表1.recordsource=Custs3运行“显示报表”表单。第5章 系统的编译和发行5.1 设置主文件用主图标标记的文件是用户在启动.app或者.exe时被调用的文件。它可以是一个表单、菜单或者程序,建议使用程序作为主文件。5.2 构造主文件如果主文件是一个程序,它将调用应用程序框架中的各个功能组件,然后由这些组件调用应用程序的其余部分。如果要建立一个简单的主程序,可以按下列步骤进行。1. 现设置应用环境界面。2. 建立初始用户界面。3. 建立事件循环。4. 恢复环境,退出应用程序。5.3 在.app和.exe文件中包含和排除文件如果在发布的应用程序中不想再更改这些文件,可把它们放在项目中并设置为“包含”。那么这些文件变成只读的,不能修改。如果想修改这些文件,把它们放在项目中并设置为“排除”,然后作为独立文件随着应用程序一起发布。在默认情况下,Visual FoxPro6.0在嵌放的过程中排除了数据库、表格、成为.ff的c库文件和.app文件。建议除了一些特定的表格,最好不要包含这类文件。数据库和表格需要变化和添加,而如果编译后包含自.exe或者是.app文件中,由于这二个文件被创建后都是静态的,因此被包含的文件也是静态的和只读的。把数据库和表格包含在这些文件中很明显会带来问题。因为这些文件不能被包含在文件.exe或者是.app文件中,所以要在发布一个应用程序之前为这些文件做好准备。如要排除可修改的文件,首先在项目管理器中,选择可修改的文件,然后从“项目”菜单中选择“排除”命令。在一个文件被排除后,则在文件的左方加入一个排除符号。第6章 小结6.1系统的功能和特点一个完整的企业物资供应管理系统应该包括计划管理,合同托收管理,仓库管理,定额管理,统计管理,财务管理等模块。其中仓库管理是整个物资供应管理系统的核心。管理信息系统是一个利用计算机软硬件资源,手工作业,分析、计划、控制和决策模型以及数据库的人-机系统。它能提供信息支持企业或组织的运行、管理和决策功能。数据库软件用来管理数据的优势在于可以迅速从成千上万的数据中找到我们需要的数据,而查询功能的设计也是数据库应用软件设计过程中的重点也是难点。本设计过程中利用表单向导强大的功能,轻松完成了数据的查询功能。而且表单向导生成的查询功能非常强大,完全可以满足数据库应用软件的需要。为了快速开发高效的软件,本设计中的多数表单的设计采用利用表单设计向导生成,然后在生成的表单的基础上修改。6.2存在的问题与改进方向界面设计相对单一,数据库结构不够完美,代码设计不够完整而系统,本设计除了以简单实现其功能外,对VFP的掌握运用不够成熟和全面,对其数据库和数据库的操作有待提高,对VFP系统中工具栏的使用以及项目管理器、设计器、生成器的了解不到位,在表设计器中建立索引和在命令中使用索引等内容学习起来不够扎实,不会使用查询设计器和向导知识,在报表中使用控件以及连编应用程序更是难懂,其它的相对接触也不是很多,不敢妄言发表看法。无论是针对何种系统的设计和查询过程,都会把对表单设计放在比较引人注目的位置上,熟练掌握表单设计器以及常用表单控件的应用知识外,还要对菜单设计的相应细节和主要知识点重点处理,这部分设计由于直观,充满视觉冲击力,直接影响到达到客户理想中的实际要求!如果这一点完成得不够令人满意,恐怕间接地也会影响到用户们对整个数据库应用系统设计的质量标准。另外还有对应用程序的相互重视,一个好的系统,是系统的,还是非系统形式的,程序代码的正确而持久性地执行,操作,查询,管理,备份,恢复等功能的实现对整个软件开发生命周期起到关键性的作用。现在的程序员未来的前景一片辉煌,比如,目前广泛使用的JAVA编程,编程,C#编程,本系统的主文件便是使用程序完成的来代替菜单设计。6.3自我体会 在整个计算机学科中,我所热爱的就是数据管理技术一块,同样,我照样报考了今年四月份的全国计算机等级考试四级数据库工程师。正是一心执著于对整个数据库技术的深刻认识和专研学问,而且眼下又要面临大专生就业的严酷现实,更是希望找到一份从事数据库项目的工作。我知道,数据库技术是计算机科学与技术学科知识领域的一个重要组成部分,它的极速发展极大地促进了基于计算机的数据管理技术在各领域的广泛应用。针对本设计结果来看,离我理想状态下的信息管理系统距离巨远,对自身面临的微不足道的境遇深感惭愧。自今往后,我愿认真学好数据库技术,确定结合自身条件发展的可行性目标,围绕着这一目标切实做出一番事业来!参考文献陶宏才.数据库原理及设计.北京:清华大学出版社,2001范立南.SQL Server 2000 实用教程.北京: 清华大学出版社,2003李香敏.SQL Server 2000 编程员指南.北京:北京希望电子出版社,2004王丙义,胡鸿. 数据库原理与Visual Foxpro应用. 北京:中国铁道出版社,2005附录1:部分程序源代码1. 密码修改表单的修改按钮的click事件源代码:if empty(thisform.text4.value) mess=messagebox(用户名不能为空!,48,警告)else if empty(thisform.text1.value) mess=messagebox(旧密码不能为空!,48,警告) else if empty(thisform.text2.value) mess=messagebox(新密码不能为空!,48,警告) else if empty(thisform.text3.value) mess=messagebox(重复密码不能为空!,48,警告) else if alltrim(thisform.text2.value)alltrim(thisform.text3.value) or len(alltrim(thisform.text2.value)len(alltrim(thisform.text3.value) mess=messagebox(二次密码不一致!,48,警告) else locate for alltrim(用户名)=alltrim(thisform.text4.value) and alltrim(密码)=alltrim(thisform.text1.value) if eof() mess=messagebox(密码错误,系统将取消你的修改权利!,48,警告) thisform.release else repl 密码 with alltrim(thisform.text3.value) mess=messagebox(密码修改成功!,48,信息) thisform.release endif2. 添加操作员表单的最首按钮的click事件源代码:go topthisform.grid1.setfocusthisform.grid1.refresh3. 添加操作员表单的上一个按钮的click事件源代码:skip-1if bof()? chr(7) =messagebox(警告,这已经是第一条记录!,48,信息窗口)go topendifthisform.grid1.setfocusthisform.grid1.refresh4. 添加操作员表单的下一个按钮的click事件源代码:skipif eof()? chr(7) =messagebox(警告,这已经是最后一条记录!,48,信息窗口)go bottomendifthisform.grid1.setfocusthisform.grid1.refresh5. 添加操作员表单的最末按钮的click事件源代码:go bottomthisform.grid1.setfocusthisform.grid1.refresh6. 主要控件的源代码清单:1) 主程序源代码:SET TALK offset sysmenu off set cent on _screen.windowstate=2_screen.icon=iconshappy.ico _screen.maxbutton=0_screen.minbutton=1_screen.closable=.f.modify window screen nocloseMODIFY WINDOW SCREEN TITLE 仓库管理信息系统 ZOOM WINDOW SCREEN MAX set default to datado form 登录表单read eventsclearclose allreturnendif2) 登录表单的确定按钮控件的click源代码:locate for alltrim(用户名)=alltrim(bo1.value) and alltrim(密码)=alltrim(thisform.text1.value) if !eof() if alltrim(级别)=管理员 public jb,username jb=1 username=alltrim(bo1.value) else public jb,username jb=0 username=alltrim(bo1.value) endif do menu.mpr thisform.release do form 仓库管理else#define missmatch_loc 用户或口令错,请重新登录!wait window missmatch_loc timeout 1bo1.value=thisform.text1.value=thisform.text1.setfocusnumcount=numcount+1 if numcount=4 numcount=0 mess =messagebox(三次口令错,将退出程序!,4+16+2,退出) clear event release thisform endif endif3) 密码修改表单的修改按钮的click事件源代码:if empty(thisform.text4.value) mess=messagebox(用户名不能为空!,48,警告)else if empty(thisform.text1.value) mess=messagebox(旧密码不能为空!,48,警告) else if empty(thisform.text2.value) mess=messagebox(新密码不能为空!,48,警告) else if empty(thisform.text3.value) mess=messagebox(重复密码不能为空!,48,警告) else if alltrim(thisform.text2.value)alltrim(thisform.text3.value) or len(alltrim(thisform.text2.value)len(alltrim(thisform.text3.value) mess=messagebox(二次密码不一致!,48,警告) else locate for alltrim(用户名)=alltrim(thisform.text4.value) and alltrim(密码)=alltrim(thisform.text1.value) if eof() mess=messagebox(密码错误,系统将取消你的修改权利!,48,警告) thisform.release else repl 密码 with alltrim(thisform.text3.value) mess=messagebox(密码修改成功!,48,信息) thisform.release endif4) 添加操作员表单的最首按钮的click事件源代码:go topthisform.grid1.setfocusthisform.grid1.refresh5) 添加操作员表单的上一个按钮的click事件源代码:skip-1if bof()? chr(7) =messagebox(警告,这已经是第一条记录!,48,信息窗口)go topendifthisform.grid1.setfocusthisform.grid1.refresh6) 添加操作员表单的下一个按钮的click事件源代码:skipif eof()? chr(7) =messagebox(警告,这已经是最后一条记录!,48,信息窗口)go bottomendifthisform.grid1.setfocusthisform.grid1.refresh7) 添加操作员表单的最末按钮的click事件源代码:go bottomthisform.grid1.setfocusthisform.grid1.refresh8) 添加操作员表单的修改按钮的click事件源代码:if mand5.caption=修改thisform.text1.readonly=.f.thisform.text2.readonly=.f.thisform.text3.readonly=.bo1.readonly=.mand5.caption=保存mand1.enabled=.mand2.enabled=.mand3.enabled=.mand4.enabled=.mand6.enabled=.mand7.enabled=.mand8.enabled=.mand5.caption=修改thisform.text1.readonly=.t.thisform.text2.readonly=.t.thisform.t

温馨提示

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

评论

0/150

提交评论