毕业设计论文订货管理系统设计(VFP设计)

上传人:仙*** 文档编号:146314086 上传时间:2022-08-31 格式:DOC 页数:50 大小:1.50MB
收藏 版权申诉 举报 下载
毕业设计论文订货管理系统设计(VFP设计)_第1页
第1页 / 共50页
毕业设计论文订货管理系统设计(VFP设计)_第2页
第2页 / 共50页
毕业设计论文订货管理系统设计(VFP设计)_第3页
第3页 / 共50页
资源描述:

《毕业设计论文订货管理系统设计(VFP设计)》由会员分享,可在线阅读,更多相关《毕业设计论文订货管理系统设计(VFP设计)(50页珍藏版)》请在装配图网上搜索。

1、目 录摘要前言第1章 系统概述21.1 系统功能21.2 系统设计思想21.3 系统功能模块3第2章 数据库设计32.1 数据库需求分析32.2 数据库结构设计42.3 数据表结构设计5第3章 可视化类及系统主表单73.1 可视化类73.2 系统主表单8第4章 用户管理模块104.1 系统登录表单104.2 修改密码表单134.3 修改和删除用户表单154.4 添加用户表单19第5章 信息浏览管理模块215.1 产品信息浏览表单215.2 客户信息浏览表单245.3 产品信息管理表单275.4 客户信息管理表单325.5 订货信息管理表单36第6章 查询与打印输出模块436.1 打印输出436

2、.2 数据备份恢复446.3 其它45结论47总结与体会48谢 辞49参考文献50第1章 系统概述1.1 系统功能在社会经济发展,社会的信息化程度越来越高,中小企业在信息化的过程中担任了很重要的角色,其信息化速度也较快。另外随着企业的发展,其对信息化的要求也越来越高,使用信息化的管理手段将明显地减少管理的工作量,并使管理的过程规范化和自动化。因此有必要使用一个完整的系统来管理企业的各种信息数据。本说明书通过一个完整的小型订货管理系统来介绍如何定制及开发一个企业信息管理系统。本系统开发的总体任务是实现与订货相关的各种信息的系统化、规范化和自动化。系统主要完成的功能如下:l 系统登录控制:必须使用

3、特定的用户名和密码登录系统后才能使用。l 产品信息管理:管理订货中所使用的产品信息,可以浏览、增加、修改和删除产品信息。l 客户信息管理:管理订货时客户的信息,可以浏览、增加、修改和删除客户信息。l 订货信息管理:管理订货的信息,可以浏览、增加、修改和删除订货信息,在增加订货时需要使用的产品信息和客户信息必须首先通过产品信息管理和客户信息管理功能添加。l 客户信息浏览:浏览系统中所有客户的信息,可以使用指定的关键字查询相应的客户,并且可以使用报表的形式将查询结果输出。l 产品信息浏览:浏览系统中所有产品的信息,可以使用指定的关键字查询相应的产品,并且可以使用报表的形式将查询结果输出。l 用户权

4、限管理:实现简单的用户权限管理,普通用户仅能修改自己的密码,而管理员用户可以添加、修改和删除用户。1.2 系统设计思想订货管理系统的主要目的是实现对订货信息的管理,然而规范的订货信息管理必然会涉及订货的客户,以及订货中所涉及的产品,因此在系统中需要添加客户信息管理和产品信息管理的功能。一个信息管理系统必然由一定的用户来操作,要保证信息管理系统中的信息正确,需要对能够操作系统的用户进行管理,因此在系统中添加了用户权限管理的功能。信息管理系统中管理各种信息的目的是在于日后能够对系统中的信息进行浏览、查询、输出的备份,因此系统中添加了信息浏览、备份等功能。因此,一个简单而完整的订货管理系统包含了信息

5、管理、信息浏览和用户管理等功能。1.3 系统功能模块根据上述的系统功能分析,得出如图1所示的系统功能模块图。图1系统功能模块图第2章 数据库设计2.1 数据库需求分析数据库在一个管理系统中占有非常重要的地位,设计的好坏将直接对应用系统的效率以及实现产生影响。本系统中用户的需求具体体现在各种信息的提供、保存和查询,这就要求数据库结构能充分满足各种信息的输入和输出。因此,本系统的需求信息为:l 订货信息涉及产品信息和客户信息。l 产品信息和客户信息中需要存在惟一的字段。l 产品信息和客户信息可以进行信息的模糊查询。l 产品信息、客户信息和订货信息可以增加、删除、修改和打印输出。l 用户信息的用户名

6、必须是惟一的以及包含权限信息。综合上述的系统功能分析和需求分析,设计如下的数据结构:n 产品信息,包含编号、品名、单位、单价、产地、说明等。n 客户信息,包含编号、名称、联系人、电话、地址等。n 订货信息,包含订货编号、产品编号、产品数量、客户编号、电话、送货地址、订货日期、说明等。n 用户信息,包含账号、密码、姓名、部门、权限等2.2 数据库结构设计根据上面的分析,就设计出能满足用户需求的各种实体,以及它们之间的关系。设计出的实体有:订货信息实体、客户信息实体、产品信息实体和用户信息实体。各个信息实体具体的描述ER图如下。产品信息、客户信息和订货信息实体之间关系的ER图如图2所示。图2实体之

7、间关系的ER图订货信息实体的ER图如图3所示。图3订货信息实体的ER图产品信息实体的ER图如图4所示。图4产品信息实体的ER图客户信息实体的ER图如图5所示。图5客户信息实体的ER图用户信息实体的ER图如图6所示。图6用户信息实体的ER图2.3 数据表结构设计Visual FoxPro开发时可以直接使用自带的数据库,订货管理系统中使用的各个数据表的字段设置如下。用户信息(UserInfo)的字段设置如表1所示。表1用户信息表(UserInfo)字段名类 型宽 度是否为空默认值说 明账号字符型10否主索引字段密码字符型10否姓名字符型8是部门字符型10是管理逻辑型1否.F.账号管理权限产品信息表

8、(ProductInfo)的字段设置如表2所示。表2产品信息表(ProductInfo)字段名类 型宽 度小数位数索 引是否为空编号字符型8主索引否品名字符型30否单位字符型4否单价数值型81位小数否类别字符型10否产地字符型10是说明字符型40是订货信息表(OrderInfo)的字段设置如表3所示。表3订货信息表(OrderInfo)字段名类 型宽 度小数位数索 引是否为空订货编号字符型8主索引否产品编号字符型8普通索引否产品名称字符型30否产品单价数值型81位小数否产品数量数值型6否订货总额数值型101位小数是客户编号字符型8普通索引客户名称字符型30下单日期日期型8送货地址字符型30联系

9、人字符型8联系电话字符型20备注字符型20客户信息表(ClientInfo)的字段设置如表4所示。表4客户信息表(ClientInfo)字段名类 型宽 度小数位数索 引是否为空编号字符型8主索引否名称字符型30否联系人字符型8否地址字符型30否电话字符型20否说明字符型30是第3章 可视化类及系统主表单3.1 可视化类在系统中要多次使用移动记录工具栏和命令按钮工具栏,每个表单都各做是很繁琐的。因此,创建可视化类可以减小工作量,又能保证风格的统一。移动记录工具栏可视类的效果如图7所示。图7 移动记录工具栏 移动记录工具栏类中的4个按钮是根据表单记录指针的位置不同,禁用或者启用不同的按钮,具体为:

10、l 数据表为空或者只有一条记录,禁用4个按钮。l 记录指针位于数据表开始,禁用“首记录”和“上一个”按钮。l 记录指针位于数据表末尾,禁用“末记录”和“下一个”按钮。l 记录指针位于数据表中部,启用4个按钮。移动记录工具栏类的Refresh事件代码:-*如果数据表为空或者只有一条记录IF BOF() .AND. EOF() .OR. RECCOUNT()=1 THIS.Cmdtop.ENABLED=.F. THIS.Cmdpre.ENABLED=.F. THIS.Cmdnxt.ENABLED=.F. THIS.Cmdbtm.ENABLED=.F.ENDIF*如果在记录指针在数据表的末尾IF R

11、ECNO()=RECCOUNT() .OR. EOF() THIS.Cmdtop.ENABLED=.T. THIS.Cmdpre.ENABLED=.T. THIS.Cmdnxt.ENABLED=.F. THIS.Cmdbtm.ENABLED=.F.ELSE*如果记录指针在数据表的首部 IF RECNO()=1 .OR. BOF() THIS.Cmdtop.ENABLED=.F. THIS.Cmdpre.ENABLED=.F. THIS.Cmdnxt.ENABLED=.T. THIS.Cmdbtm.ENABLED=.T. ELSE*如果记录指针不在数据表的首部也不在尾部 THIS.Cmdtop.

12、ENABLED=.T. THIS.Cmdpre.ENABLED=.T. THIS.Cmdnxt.ENABLED=.T. THIS.Cmdbtm.ENABLED=.T. ENDIFENDIF-命令按钮工具栏类的效果如图8所示。图8 移动记录工具栏命令按钮工具栏类,由于在表单中创建可视类的对象后,类中的各个按钮的操作对象不同,所以代码要在创建可视类的对象后再添加。3.2 系统主表单本系统中使用.PRG程序作为主程序,由该程序设置运行的环境,并调用系统登录表单。登录通过后显示Logon表单,然后才是系统主菜单,再由系统主菜单调用其他表单来完成系统提供的各个功能。系统主程序代码:-*系统环境设置CLE

13、AR & 清屏CLEAR ALL & 从内存中释放所有的内存变量SET ESCAPE OFF & 禁止运行的程序在按ESC键被中断SET TALK OFF & 关闭命令显示SET SAFETY OFF & 覆盖时不要确认SET STAT BAR OFF & 将状态栏关闭SET SYSMENU OFF & 可关掉VFP系统菜单区域SET SYSMENU TO & 关闭系统菜单SET CENTURY ON & 显示四位年代SET DATE ANSI & 指定日期表达式的显示格式为yy.mm.dd*避免多次运行程序*声明API函数“FindWindow”DECLARE Integer FindWin

14、dow IN USER32.DLL String lpClassName,String lpWindowNamelpWindowName=订货管理系统IF .NOT. FindWindow(0,lpWindowName)=0 &寻找窗口标题 =MESSAGEBOX(程序已经运行了,48,订货管理系统) QUIT ENDIF_Screen.Caption=lpWindowName*声明全局变量PUBLIC cUser,IsAdmin & 声明全局变量,用来保存系统中的登录用户*调用登录表单DO FORM Logon & 显示登录表单*进入事物处理READ EVENTS & 进入事务处理QUIT

15、& 退出Visual FoxPro-系统主表单是一个状态控件其作用是作为程序主窗口、装载主菜单、装载状态栏。系统主表单在初始化时,需要调用系统主菜单,然后将登录用户的用户名显示在状态栏中。系统主表单的Init事件代码:-*调用系统主菜单DO Main.MPR WITH This*显示当前登录用户THISFORM.OLEcontrol1.Panels(2).Text=CUser*刷新表单THISFORM.Refresh-系统主菜单的结构如表5所示。系统中的所有信息管理、浏览功能都是通过系统主表单中的菜单调用的,系统中实现的简单用户权限管理也是通过菜单来实现的。表5系统主菜单结构菜单菜单项结果命令

16、跳过条件系统数据备份命令do form databackup数据恢复命令do form datarestore-命令退 出命令Quit信息管理产品信息管理命令do form 产品管理客户信息管理命令do form 客户管理订货信息管理命令do form 订货管理信息浏览产品信息浏览命令do form 产品浏览 with cBrowse客户信息浏览命令do form 客户浏览 with cBrowse用户管理添加用户命令do form AdduserIsAdmin=.F.修改用户命令do form Setuser with cModifyIsAdmin=.F.删除用户命令do form Setu

17、ser with cDeleteIsAdmin=.F.修改密码命令do form Setpass数据订货报表命令do .档案过程.prg订货总额命令do .订货总额.qpr关于关于命令do form 关于心灵感应命令do form 心灵感应第4章 用户管理模块用户管理模块包括系统登录、修改密码、修改和删除用户、添加用户5项功能,其中修改和删除用户功能是集成在一个表单中。有账号管理权限的用户登录系统后,才能执行修改用户、删除用户和添加用户功能。4.1 系统登录表单系统登录(Logon)表单如图9所示。在使用中如果用户名为空,则弹出“账号不能为空”对话框,等待输入;如果连续3次输入的账号或者密码错

18、误,则弹出警告对话框后退出系统。账号和密码都正确,则将用户名存储在全局变量“Cuser”中,将用户是否具有账号管理权限存储在全局变量“IsAdmin”中,退出系统登录表单,调用系统Logo表单。 “确定”按钮的Click事件代码:-*改为精确比较SET EXACT ON *试图登录次数自动加1THISFORM.i=THISFORM.i+1*选择“系统用户信息”表所在的工作区SELECT UserInfo*查找用户名LOCATE FOR ALLTRIM(账号)=ALLTRIM(THISFORM.txt账号.VALUE)*如果找到用户名IF FOUND()*如果密码正确IF ALLTRIM(密码)

19、=ALLTRIM(THISFORM.txt密码.VALUE)*将登录的用户名保存到全局变量中CUser=账号IsAdmin=管理 *退出表单 THISFORM.RELEASE *调用系统Logo表单 DO FORM Logo ELSE *如果密码错误 *如果次数小于3 IF THISFORM.i3MESSAGEBOX(密码错误,请重新输入,48,订货管理系统)THISFORM.txt账号.VALUE=THISFORM.txt密码.VALUE=THISFORM.txt账号.SETFOCUSELSE*如果次数为3MESSAGEBOX(用户名或者密码错误三次,系统无法启动,16,订货管理系统) *退

20、出表单 THISFORM.RELEASE *结束事件循环 CLEAR EVENTS *退出Visual FoxPro QUIT ENDIF ENDIFELSEIF THISFORM.i3MESSAGEBOX(账号不存在,请重新输入,48,订货管理系统)THISFORM.txt账号.VALUE=THISFORM.txt密码.VALUE=THISFORM.txt账号.SETFOCUSELSEMESSAGEBOX(账号或者密码错误三次,系统无法启动,16,订货管理系统) THISFORM.RELEASE &退出表单 CLEAR EVENTS &结束事件循环 QUIT &退出Visual FoxPro

21、 ENDIF ENDIF*改为模糊比较SET EXACT OFF图9 系统登录表单账号、密码正确后进入到欢迎使用界面Logo表单如图10所示。该界面中显示程序的名称、制作人、版权等信息,并播放登录音乐。 图10 欢迎使用界面表单Logo表单的Init事件代码:-SET BELL ONSET BELL TO .MUSICwelcome.wav,2?CHR(7) “进入”按钮的Click事件代码:-*-调用“Mainform”表单DO FORM Mainform*-退出“logo”表单THISFORM.RELEASE()4.2 修改密码表单修改密码(SetPass)表单如图11所示。该表单是用来更

22、改当前登录用户的密码。图11修改密码表单“确定”按钮的Click事件代码:-*声明本地变量,记录表单中输入情况LOCAL OK*默认是输入无误OK=.T.*比较方式为精确比较SET EXACT ON*检测表单中数据输入情况DO CASE*如果新密码为空CASE EMPTY(ALLTRIM(THISFORM.txt新密码.VALUE) .AND. EMPTY(ALLTRIM(THISFORM.txt确认密码.VALUE)MESSAGEBOX(新密码不能为空,48,订货管理系统)THISFORM.txt新密码.SETFOCUSOK=.F.*如果新密码与确认密码不一致CASE ALLTRIM(THI

23、SFORM.txt新密码.VALUE) ALLTRIM(THISFORM.txt确认密码.VALUE)MESSAGEBOX(新密码与确认密码不一致,48,订货管理系统)THISFORM.txt新密码.SETFOCUSOK=.F.ENDCASE*如果输入无误IF OK=.T.*检测原密码输入情况SELECT USERINFOLOCATE FOR ALLTRIM(账号)=ALLTRIM(cuser) .AND. ALLTRIM(密码)=ALLTRIM(THISFORM.txt原密码.VALUE)*如果输入正确IF FOUND()LOCAL NewPassNewPass=ALLTRIM(THISFO

24、RM.txt新密码.VALUE)UPDATE USERINFO SET 密码=NewPass&修改密码MESSAGEBOX(修改成功,64,订货管理系统)THISFORM.RELEASEELSE*如果原密码错误MESSAGEBOX(原密码错误,48,订货管理系统)THISFORM.txt原密码.SETFOCUSENDIFENDIF*改为模糊比较SET EXACT OFF-4.3 修改和删除用户表单修改用户和删除用户(SetUser)表单如图12、图13所示。修改用户和删除用户功能是使用一个表单来完成的。因此,表单在接收到参数值后根据参数值来确定使用哪种功能,其不同点为表单标题和CmdOK按钮的

25、初始标题。CmdOK按钮有3种标题修改、确定和删除。 图12修改用户表单修改用户和删除用户(SetUser)表单的Init事件代码:-*声明参数,用来接收执行参数PARAMETERS cFormMode*将接到的参数值保存到表单属性中THISFORM.FormMode=cFormMode*如果参数值为“cModify”IF THISFORM.FormMode=cModify*表单作为“修改用户”表单THISFORM.txt密码.Width=200THISFORM.CmdOK.Caption=修改ELSE*表单作为“删除用户”表单THISFORM.txt密码.Width=200THISFORM.

26、CmdOK.Caption=删除THISFORM.CAPTION=删除用户ENDIF*表单进入浏览状态THISFORM.bModify=.F.THISFORM.ModeControl*刷新表单THISFORM.Refresh- “CmdOK”按钮的Click事件代码:-*当“确定”按钮的标题为“修改”时,如果单击该按钮IF THIS.CAPTION=修改*表单进入修改状态THISFORM.bModify=.T.THISFORM.ModeControl*显示“确认密码”文本框THISFORM.txt密码.Width=200*修改“确定”按钮标题为“确定”THIS.CAPTION=确定*修改“退出

27、”按钮标题为“取消”THISFORM.CmdCCL.CAPTION=取消*清除“密码”与“确认密码”文本框中的内容THISFORM.txt密码.Value=THISFORM.txt确认密码.Value=*刷新表单THISFORM.RefreshELSE*当“确定”按钮标题为“确定”时,如果单击该按钮IF THIS.CAPTION=确定*检测表单中的数据输入情况LOCAL OKOK=.T.DO CASE*如果密码与确认密码为空CASE EMPTY(ALLTRIM(THISFORM.txt密码.VALUE) .AND. EMPTY(ALLTRIM(THISFORM.txt确认密码.VALUE)ME

28、SSAGEBOX(新密码不能为空,48,订货管理系统)OK=.F.THISFORM.txt密码.SETFOCUS*如果密码与确认密码不一致CASE ALLTRIM(THISFORM.txt密码.VALUE)ALLTRIM(THISFORM.txt确认密码.VALUE)MESSAGEBOX(密码与确认密码不一致,48,订货管理系统)OK=.F.THISFORM.txt密码.SETFOCUS*如果修改的是当前用户,而且取消了当前用户的账号管理权限CASE ALLTRIM(THISFORM.Cmb用户名.DisplayValue)=Cuser .AND. THISFORM.CHK账号管理.Value

29、=.F.MESSAGEBOX(你不能取消当前用户的账号管理功能,48,订货管理系统)THISFORM.CHK账号管理.Value=.T.THISFORM.CHK账号管理.SETFOCUSOK=.F.ENDCASE*如果表单中数据输入无误IF OK=.T.*更新数据表中的数据TABLEUPDATE(.F.)MESSAGEBOX(用户信息修改成功,64,订货管理系统)*表单进入浏览状态THISFORM.bModify=.F.THISFORM.ModeControl*隐藏确认密码文本框THISFORM.txt密码.Width=200*修改“确定”按钮标题为“修改”THISFORM.CmdOK.Cap

30、tion=修改*修改“退出”按钮标题为“退出”THISFORM.CmdCCL.Caption=退出*刷新表单THISFORM.RefreshENDIFELSE*当“确定”按钮的标题为“删除”IF THIS.CAPTION=删除*确认对话框YN=MESSAGEBOX(确认删除,4+32,订货管理系统)IF YN=6*如果要删除的用户为默认的用户管理员IF ALLTRIM(THISFORM.Cmb用户名.Value)=sysadmin MESSAGEBOX(不能删除默认的用户管理员,48,订货管理系统)ReturnENDIF*如果要删除的用户为当前登录用户IF ALLTRIM(THISFORM.c

31、mb用户名.Value)=ALLTRIM(cuser)MESSAGEBOX(不能删除当前登录用户,48,订货管理系统)ReturnENDIF*如果用户可以删除SELECT USERINFODELETE&逻辑删除PACK&物理删除*移动记录指针IF BOF()SKIPELSESKIP-1ENDIF*刷新表单THISFORM.RefreshENDIFENDIFENDIFENDIF-图13删除用户表单在修改状态下姓名、部门可以编辑,确认密码框显示并可以编辑,账号管理复选框启用。作为删除用户表单,默认的管理员“sysadmin”不能被删除,当前登录用户也不能被删除。4.4 添加用户表单添加用户(Add

32、User)表单如图14所示。该表单是用来添加新的账号。“确定”按钮的Click事件代码:-*声明本地变量,储存表单中各数据项中的数据是否正确LOCAL OK*本地变量的默认值为“.T.”OK=.T.*精确比较SET EXACT ON*进入数据检查DO CASE*如果“账号”栏为空CASE EMPTY(THISFORM.txt账号.VALUE)MESSAGEBOX(用户名不能为空,48,订货管理系统)THISFORM.txt账号.SetFocusOK=.F.*如果“姓名”栏为空CASE EMPTY(THISFORM.txt姓名.Value)MESSAGEBOX(姓名不能为空,48,订货管理系统)

33、THISFORM.txt姓名.SetFocusOK=.F.*如果“密码”栏为空CASE EMPTY(ALLTRIM(THISFORM.txt密码.Value) .AND. EMPTY(ALLTRIM(THISFORM.txt确认密码.VALUE)MESSAGEBOX(密码不能为空,48,订货管理系统)THISFORM.txt密码.SetFocusOK=.F.*如果两次密码不一致CASE ALLTRIM(THISFORM.txt密码.Value) ALLTRIM(THISFORM.txt确认密码.VALUE)MESSAGEBOX(密码与确认密码不一致,48,订货管理系统)THISFORM.txt

34、密码.SetFocusOK=.F.ENDCASE*如果检测无误IF OK=.T.*检测添加的账号名称是否存在LOCAL sUser,cName,cPart,cPass,nNumsUser=ALLTRIM(THISFORM.txt账号.Value)SELECT UserinfoCount FOR 账号=sUser TO nNum*如果存在IF nNum0MESSAGEBOX(要添加的账号已经存在,48,订货管理系统)THISFORM.txt账号.Value=THISFORM.txt账号.SetfocusELSE*如果不存在*获取表单中各数据项的值cName=ALLTRIM(THISFORM.tx

35、t姓名.Value)cPart=ALLTRIM(THISFORM.txt部门.Value)cPass=ALLTRIM(THISFORM.txt密码.Value)IF THISFORM.CHK账号管理.Value=1bAdmin=.T.ELSEbAdmin=.F.ENDIF*确定对话框YN=MESSAGEBOX(确定保存,4+32,订货管理系统)*如果确认IF YN=6*添加记录INSERT INTO USERINFO VALUES (sUser,cPass,cName,cPart,bAdmin)*对话框MESSAGEBOX(添加成功,64,订货管理系统)*退出表单THISFORM.Releas

36、eENDIFENDIFENDIF*模糊比较SET EXACT OFF 图14添加用户表单第5章 信息浏览管理模块信息浏览模块包括产品信息浏览和客户信息浏览两个表单,同时还是信息选择表单,根据接收参数值的不同来确定使用表单的哪种功能.5.1 产品信息浏览表单产品信息浏览(ProSelect)表单如图15所示。该表单是用来浏览产品、选择产品的。根据接收参数值的不同,标题会改变,作为产品信息浏览时“打印”按钮显示,作为产品信息选择时隐藏该按钮,以及“编号”有变化。产品信息浏览(ProSelect)表单的Init事件代码:-*声明参数,用来接收运行参数PARAMETERS cFormMode*使用属性

37、接收参数值THISFORM.FormMode=cFormMode*声明全局变量用来储存查询条件PUBLIC SelTJ*设定全局变量的初始值SelTJ=.T.*指定表单的数据工作区SELECT ProductInfo*清除对指定工作区设置的过滤条件SET FILTER TO*如果表单是作为“产品信息浏览”表单IF THISFORM.FormMode=cBrowseTHISFORM.Grid1.Column1.Header1.Caption=编号THISFORM.CmdPrint.Visible=.T.THISFORM.CAPTION=产品信息浏览ELSE*如果表单是作为“产品信息选择”表单IF

38、 THISFORM.FormMode=cSelectTHISFORM.Grid1.Column1.Header1.Caption=编号(双击选择)THISFORM.CmdPrint.Visible=.F.THISFORM.CmdExit.Left=THISFORM.CmdExit.Left-35THISFORM.CAPTION=产品信息选择ENDIFENDIF*刷新表单THISFORM.Refresh-图15产品信息浏览表单在产品信息浏览表单执行其选择功能如图16所示,在表单的表格控件第一列中双击时,则将双击的记录“编号”字段值返回给调用表单,然后退出。表格控件“Text1”文本框的DblCl

39、ick事件代码:-*如果表单是作为产品信息选择表单IF THISFORM.FormMode=cSelect*将选择的值赋给自定义变量THISFORM.SelectedPro=ALLTRIM(THIS.VALUE)*退出表单THISFORM.ReleaseENDIF- 图16产品信息选择表单“查找”按钮的Click事件代码:-*查询条件默认为“.T.”SelTJ=.T.*如果“产品编号”文本框非空IF .NOT. EMPTY(ALLTRIM(THISFORM.txt产品编号.Value)SelTJ=SelTJ + AND + ALLTRIM(THISFORM.txt产品编号.Value) + $

40、 编号ENDIF*如果“产品名称”文本框非空IF .NOT. EMPTY(ALLTRIM(THISFORM.txt产品名称.VALUE)SelTJ=SelTJ + AND + ALLTRIM(THISFORM.txt产品名称.Value)+ $ 品名ENDIF*选择“产品信息”表所在的工作区SELECT ProductInfo*清除工作区中的过滤条件SET FILTER TO*对工作区设置过滤条件SET FILTER TO &SelTJ*刷新表单THISFORM.Refresh5.2 客户信息浏览表单客户信息浏览(ClientSelect)表单如图17所示。该表单是用来浏览客户、选择客户的。根

41、据接收参数值的不同,标题会改变,作为客户信息浏览时“打印”按钮显示,作为客户信息选择时隐藏该按钮,以及“编号”有变化。图17客户信息浏览表单客户信息浏览(ClientSelect)表单的Init事件代码:-*声明参数,用来接收表单的运行参数PARAMETERS cFormMode*使用自定义属性保存运行参数THISFORM.FormMode=cFormMode*声明全局变量PUBLIC SelTJSelTJ=.T.*选择“客户信息”表所在的工作区SELECT ClientInfo*取消可能存在的过滤条件SET FILTER TO*如果表单作为客户信息浏览表单IF THISFORM.FormMo

42、de=cBrowseTHISFORM.Grid1.Column1.Header1.Caption=编号THISFORM.CmdPrint.Visible=.T.THISFORM.CAPTION=客户信息浏览ELSE*如果表单作为客户信息选择表单IF THISFORM.FormMode=cSelectTHISFORM.Grid1.Column1.Header1.Caption=编号(双击选择)THISFORM.CmdPrint.Visible=.F.THISFORM.CmdExit.Left=THISFORM.CmdExit.Left-35THISFORM.CAPTION=客户信息选择ENDIF

43、ENDIF-在客户信息浏览表单执行其选择功能如图18所示,在表单的表格控件第一列中双击时,则将双击的记录“编号”字段值返回给调用表单,然后退出。图18客户信息选择表单表格控件“Text1”文本框的DblClick事件代码:(略,详见产品信息浏览表单表格控件“Text1”文本框的DblClick事件代码)“退出”按钮的Click事件代码:-*确认对话框YN=MESSAGEBOX(确定退出,4+32,订货管理系统)*如果确认IF YN=6*如果表单是作为产品信息选择表单IF THISFORM.FormMode=cSelectTHISFORM.SelectedPro=0000000000ENDIF*

44、退出表单THISFORM.ReleaseENDIF -“查找”按钮的Click事件代码:-*查询条件默认为“.T.”SelTJ=.T.*如果txt编号文本框中的值非空IF .NOT. EMPTY(ALLTRIM(THISFORM.txt编号.Value)SelTJ=SelTJ + AND + ALLTRIM(THISFORM.txt编号.Value) + $ 编号ENDIF*如果txt名称文本框中的值非空IF .NOT. EMPTY(ALLTRIM(THISFORM.txt名称.VALUE)SelTJ=SelTJ + AND + ALLTRIM(THISFORM.txt名称.Value)+ $

45、 名称ENDIF*如果txt联系人文本框中的值非空IF .NOT. EMPTY(ALLTRIM(THISFORM.txt联系人.VALUE)SelTJ=SelTJ + AND + ALLTRIM(THISFORM.txt联系人.Value)+ $ 联系人ENDIF*选择“客户信息”表所在工作区SELECT ClientInfo*清除可能存在的过滤条件SET FILTER TO*设置过滤条件SET FILTER TO &SelTJ*刷新表单THISFORM.Refresh5.3 产品信息管理表单产品信息管理(ProductInfo)表单如图19所示。该表单的功能包括分条浏览产品信息,增加、修改、

46、删除和打印产品信息。产品信息管理表单具有3种状态浏览、修改和数据表为空。l 浏览状态,表单数据环境中的产品信息表不为空,“保存”和“取消”按钮不可用,其它可用,表单中与数据绑定的文本框都只读,数据表中记录的条数大于1,表单中移动记录工具栏可用。l 修改状态,是指在表单中添加记录或者修改表单中的已有记录时,表单中移动记录工具栏禁用,除了“保存”和“取消”按钮外禁用,表单中与数据绑定的文本框中的内容都可以编辑。l 数据表为空状态,表单数据环境中的产品信息表为空,则表单中与数据绑定的文本框只读,移动记录工具栏禁用,除了“增加”和“退出”按钮外都禁用。产品信息管理(ProductInfo)表单的Mod

47、eControl方法代码:-*声明本地变量,用来接收自定义属性值Local BeModify,BeBrowseBeModify=THISFORM.bModifyBeBrowse=THISFORM.bBrowse*控制表单中与数据绑定的控件的状态THISFORM.txt编号.ReadOnly=.NOT. BeModifyTHISFORM.txt品名.ReadOnly=.NOT. BeModifyTHISFORM.txt单位.ReadOnly=.NOT. BeModifyTHISFORM.txt单价.ReadOnly=.NOT. BeModifyTHISFORM.txt类别.ReadOnly=.N

48、OT. BeModifyTHISFORM.txt产地.ReadOnly=.NOT. BeModifyTHISFORM.txt说明.ReadOnly=.NOT. BeModify*控制表单中工具栏及其中按钮的状态THISFORM.ProMoveRec.Enabled=.NOT. BeModifyTHISFORM.ProAdminButton.CmdAdd.Enabled=.NOT. BeModifyTHISFORM.ProAdminButton.CmdMod.Enabled=.NOT. BeModifyTHISFORM.ProAdminButton.CmdDel.Enabled=.NOT. BeModifyTHISFORM.ProAdminButton.CmdPri.Enabled=.NOT. BeModifyTHISFORM.ProAdminButton.CmdExit.Enabled=.NOT. BeModify*控制表单“命令按钮工具栏”中“保存”与“取消”按钮状态THISFORM.ProAdminButton.CmdSa

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!