毕业设计(论文)超市进销存信息管理系统设计_第1页
毕业设计(论文)超市进销存信息管理系统设计_第2页
毕业设计(论文)超市进销存信息管理系统设计_第3页
毕业设计(论文)超市进销存信息管理系统设计_第4页
毕业设计(论文)超市进销存信息管理系统设计_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、毕业设计 引言目录摘 要2引言31本课题的研究意义和目的41.1开发背景41.2研究超市进销存管理系统的意义42系统设计62.1系统目标设计62.2开发设计思想62.3开发和运行环境选择62.4系统功能分析72.5系统功能模块设计73数据库设计83.1数据库需求分析83.2数据库概念结构设计93.3数据库逻辑结构设计93.4数据库结构的实现114各个功能模块的创建144.1系统菜单的设计144.3身份验证界面的设计164.3.1用户身份验证界面164.3.2创建“修改密码”表单184.4信息管理模块设计204.4.1“商品信息管理”表单204.4.2“输入查询条件”表单275系统的编译和发行4

2、0结束语41致谢42参考文献43摘 要超市管理系统是目前应用于中型或是大型超市商品进、销、存、管理等系统中的典型代表,涉及到了商品或货物管理中的以下4个方面,即进货、销售、库存及盘点。通过一个超市管理系统的例子,介绍了超市进、销、存、管理信息化的一般解决方案,其重要性不言而喻。但是,目前超市在具体的业务流程处理过程中仍然使用手工操作的方式来实施,不仅费时、费力,效率低下,而且无法达到理想的效果。本系统是根据超市的特点,集进、销、存、分析于一体,为超市量身定做的进、销、存、管理软件。在设计过程中最大限度满足用户的要求,因此,该系统具有较强的实用性和针对性。本系统界面友好,操作简单,可维护性强,功

3、能完备。本论文介绍了超市管理信息系统开发的全过程,主要从管理思想、系统分析说明、系统设计说明、系统使用说明、技巧与体会等方面对本管理系统加以论述。前言部分指明了选题背景和开题意义;而后又详细介绍了系统的分析、系统的开发与设计说明等内容;最后给出了系统的使用说明和系统设计的心得体会。 关键词:系统设计、系统分析、进销存、信息管理系统引言随着社会经济的发展,信息化程度的不断深入,超市的传统业务己愈来愈不能满足消费者的需要。如今,商品进、销、存、管理是大小型超市经营管理中的核心环节,也是一个超市能够取得效益的关键,如果能够做到合理生产,及时销售,库存量最小,减少积压,那么超市就能取得最佳的效益。由此

4、可见,进、销、存、管理决策的正确与否直接影响了超市的效益。本管理信息系统是针对超市的实际需求开发设计的,我组在超市中采集了许多实际资料。利用计算机运算速度快、存储信息容量大、处理逻辑问题强、功能强大的优势及计算机网络与通信网的结合,可以使众多的个人计算机不仅能够同时处理文字、数据、图像、声音等信息而且方便快捷,特别是局域网的应用,它可以通过数据通信网或专用数据电路,与远方的局域网、数据库或处理中心相连接,构成一个大范围的信息处理系统,从超市管理特别是查询与决策信息的管理需求出发,针对性强,功能齐备,旨在通过帮助超市管理实现信息化,以提高超市管理的效率。与此同时,我们所学到的知识也得到了理论联系

5、实际的目的。45毕业设计 第1章 本课题的研究意义和目的1本课题的研究意义和目的1.1开发背景随着科技发展和社会进步,尤其是计算机大范围的普及,计算机应用逐渐由大规模科学计算的海量数据处理转向大规模的事务处理和对工作流的管理,这就产生了以台式计算机为核心,以数据库管理系统为开发环境的管理信息系统在大规模的事务处理和对工作流的管理等方面的应用,特别是在超市管理之中的应用日益收到人们的关注。目前,无论公司还是企业对于货物都实行了信息化管理以提高管理水平和工作效率,同时也可以最大限度地减少手工操作带来的错误。于是,进销存管理信息系统便应运而生。在工厂中,涉及产品原料的采购、库存,投入生产,报损,甚至

6、有时涉及到销售,同时,对于产品也有相同的生产,库存,销售和盘点等类似环节。在其他非生产性单位,如超市,商店等,则主要涉及到进货,库存,销售和盘点4方面。我们的系统开发的整体任务是实现超市管理的系统化、规范化、自动化和智能化,从而达到提高企业管理效率的目的。1.2研究超市进、销、存、管理系统的意义随着社会的进步和计算机技术的发展,尤其是网络技术的飞速进步,信息观念已经深入人心。信息科学作为当代社会中的重要一环在国民经济中起着举足轻重的作用。从目前看来,依靠电子化手段,加强超市的管理,是各家超市提高其工作效率、增强其业务竞争力的重要因素。对超市来说,至少有如下几点益处:1、界面清晰、功能少而实用、

7、操作简单。2、开发周期短、维护费用低、软件更新速度快。3、风格友好化,轻松管理,容易上手,达到一看就懂、一学即会。4、目标系统必须具有可靠性、安全性、可维护性、可移植性等,对于不同的管理人员授予不同的操作权限,具有定期数据备份功能。5、以表格的形式输出信息。6、增加数据有效性验证:即在操作人员因某种原因错误的输入了数据时系统会自动提出数据录入有误并加以提示,这样方便操作人员输入的数据有效性。7、系统的通用性:此系统为综合性工业企业库存管理系统,里面的数据都是从数据库中提出(包括公司名称、操作人名称等),不受固定数据限制。增强系统的通用性。总之,现代超市的竞争和发展,已突破传统业务的框架,为了提

8、高超市的业务竞争能力,扩大客户群,培育新的利润增长点,务必大力改良其超市的进、销、存、管理系统,因此建立一个功能齐全、灵活、通用、可靠、安全、统一的超市管理系统成为各超市当前业务发展的迫切之需。毕业设计 第2章 系统设计2系统设计2.1系统目标设计通过该超市管理系统,利于计算机的技术,使得进货,销售,库存能够有利结合起来,产销衔接,提高超市效率和效益从而达到提高账户管理效率的目的。系统开发的总体任务是使超市人员可以轻松快捷地完成对账户管理的任务2.2开发设计思想本系统开发设计思想:通过完成这个超市进、销、存、管理系统,实现公司企业货物管理的稳定性,易操作性,可维护性,安全性等,从而达到提高货物

9、管理效率的目的。可行性分析就是对项目开发的可能性和必要性进行分析,避免盲目投资。主要是必要性分析和效益分析,同时还要进一步进行技术可行性分析,投资效益分析,组织管理可行性分析,建立是否存在否定项目的可能性。超市管理系统需要投资费用和未来的运营维护费用,尤其投资费用主要包括设备费用,人员费用,材料费用和其他费用,如由于工作方式改变需要增加的其他开支,通常保证新系统运行的可靠性,要求手工和计算机处理在长时间并存。系统的收益主要通过新系统销售来实现,但有些指标也是难以计算的,例如如下指标:货物管理中节省的人力,减轻的劳动强度。降低成本几其他费用。改进薄弱环节,提高工作效率。提高数据处理的及时性和准确

10、性。其他各种有利方面。2.3开发和运行环境选择开发工具:visualfoxpro60中文版,运行环境:windows9x或windows2000。2.4系统功能分析系统功能分析是在系统开发的总体任务的基础上完成的。本例要完成的功能主要有:(1)信息管理,日常操作,信息查询,系统管理。(2)商品信息管理。(3)商品进货管理,商品销售管理。(4)进货记录查询,商品销售记录查询,库存记录查询。(5)登录系统,修改密码,关于系统,退出系统。2.5系统功能模块设计在系统功能分析的基础上,根据visualfox程序编制的特点,如图:超市管理系统信息管理日常操作系统管理信息查询商品信息管理商品进货管理商品销

11、售管理库存信息查询销售信息查询进货信息查询重新登录退出系统修改密码毕业设计 第3章 数据库设计3数据库设计在visualfoxpro60中,数据库指的是可以存储一个或多个表(dbf文件)及数据的关系数据库,所谓的关系数据库就是多个表的集合。每个表通过形成一定关系的公共字段与另外的表联系。一般来说数据库可按下列步骤进行设计:(1)确定需要的表。着手把信息分成各个独立的主题,每个主题对应一个表。(2)确定所需字段。确定每个表中要保存哪些信息,一个信息为一个字段。(3)确定表之间的联系。3.1数据库需求分析数据库需求分析是数据库结构设计的第一个阶段,是收集基本数据、数据结构以及数据处理的流程。针对本

12、实例,通过对超市进销存管理的内容和数据流程分析,总结如下需求信息:(1)进货信息中要包含商品信息。(2)销售信息中要包含商品信息。(3)库存信息中要包含商品信息。经过上述系统功能分析和需求总结,考虑到将来功能上的扩展,设计如下面所示的数据项和数据结构:商品信息,包含商品编号,商品名称,商品单位,商品单价,类别,产地及说明等。进货信息,包含进货编号,商品编号,进货单价,进货数量,进货时间,经手人,供货单位等。销售信息,包含出货编号,商品编号,出货单位,出货数量,出货编号,经手人及说明等。库存信息,包含商品编号,库存说明和说明等。系统设置,包含商品类别等。用户信息,包含用户,密码等。有了上面的数据

13、结构、数据项和数据流程,然后进行下面的数据库设计。3.2数据库概念结构设计根据上面的设计规划本实例中的实体有:商品信息实体,进货实体,销售信息实体,库存信息实体和用户信息实体。实体与实体之间的关系e-r图分别如下:3.3数据库逻辑结构设计我们需要将上面的数据库概念结构转化为visualforpro数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。超市进销存管理系统数据库中各个表格的设计结果几个表格每个表格表示在数据库中的一个表。这些表为用户基本信息表。“商品信息”表的字段设置如下:字段名类型宽度可否为空默认值

14、说明商品编号字符型6否主索引字段商品名称字符型40可商品单位字符型6否商品单价浮动型6否1位小数产地字符型40否类别字符型20说明备注型4条形码字符型14“进货信息”表的字段设置如下:字段名类型宽度可否为空默认值说明进货编号字符型10否主索引字段商品编号字符型6否普通索引字段进货数量浮动型8否1位小数销售单价浮动型8否1位小数进货时间日期时间型8否供货单位字符型40可经手人字符型20可单位备注型4“销售信息”表的字段设置如下:字段名类型宽度可否为空默认值说明销售编号字符型8否主索引字段商品编号字符型6否普通索引字段销售数量浮动型8否1位小数销售单价浮动型8否1位小数销售时间日期时间型8否接收人

15、字符型20否经手人字符型20可说明备注型4“库存信息”表的字段设置如下:字段名类型宽度可否为空默认值说明商品编号字符型6否主索引字段库存数量浮动型81位小数说明备注型4“用户信息”表的字段设置如下:字段名类型宽度可否为空默认值说明用户名字符型20否主索引字段密码字符型20否1位小数“系统设置”表的字段设置如下:字段名类型宽度可否为空默认值说明商品类别字符型20否主索引字段3.4数据库结构的实现在需求分析、概念结构设计的继承上得到数据库的逻辑结构之后,我们就可以在visual foxpro数据库系统中实现该逻辑结构。实现数据库的逻辑结构的方式是直接使用visual foxpro的项目管理器来实现

16、。下面将以本例中jxcdata数据库为实例,来说明.在visualfoxpro主窗口选择【文件】【新建】菜单,打开“新建”对话框。在此对话框中的“文件类型”选项组中选中“项目”选项后单击【新建文件】按钮,打开“创建”对话框,在此对话框中选择项目文件的保存位置并输入项目名称,单击【保存】按钮可保存项目并完成一个visualfoxpro项目的创建。项目创建完成以后即可打开项目管理器,如下图:新建数据库如图所示:在项目管理器中选择data选项卡,在目录树中打开jxcdata数据库,选中“本地视图”项,单击新建按钮,在打开的“新建本地视图”对话框中单击新建视图按钮,即可打开视图设计器来设计本地视图。设

17、置好的视图inview,outview,storeview输出结果分别如下:毕业设计 第4章 各个功能模块的创建4各个功能模块的创建建立功能模块的目的在于:一个是使用者能简单明了地掌握软件功能,另个是未开发的人贝也能轻松地进行维护。根据本软件的特点,本系统将分为3个功能模块它们是:信息管理模块、日常操作模块、信息查询模块。在进入各个功能模块前,应该给用户提供一个选择的界面,即系统的主界面。下面按系统计开发顺序逐一介绍。4.1系统菜单的设计系统主菜单的功能在于引导用户进入不同的功能模块。本系统主菜单的界面为简单起见,设计界面如图所示。界面的系统菜单又包含三个子菜单,分别为“日常操作”、“信息查询

18、”、“系统管理”,引导进入个同的功能模块。本例中的系统主菜单的结构如下表所示:菜单菜单项结果命令信息管理(a)商品信息管理(p)命令doformproadmin日常操作(d)商品进货管理(i)命令doformiinact_商品操作(o)命令doformoutact信息查询(s)进货信息查询(i)命令doforminseach_销售信息查询(o)命令doformoutseach_库存信息查询(s)命令doformstoresearch系统管理(m)修改密码(m)命令doformsetpass_关于系统(a)doabout.prg_退出系统(e)clearevents4.2创建“splash”表单

19、“splash”表单是程序中比较常见的一种界面,一般作为程序的第一个界面显示给用户,在该界面中显示程序的名称,创建人,版本等信息。“splash”表单布局如下所示:“splash”表单中计时器控件time事件代码为:*移动欢迎使用标签*当标签移动到表单最右侧时ifthisform.lable14.left=thisform.width*-移动到最左侧thisform.lable14.left=thisform.lable14.left+1endif*-使“超市进销存管理系统”变色*-随机生成颜色i=tnt(rand()*255)j=tnt(rand()*255)k=tnt(rand()*255

20、)4.3身份验证界面的设计因为本系统的特殊性,本系统各处会涉及到密码即身份验证。如用户身份验证等。4.3.1用户身份验证界面设计“系统登录表单”的用户验证界面如图所示。接下来,我们为各控件填写事件响应。“系统登录“表单中“确定”按钮的“click”事件代码:*-精确比较setexacton*-判断是否输入用户名ifalltrim(thisform.textdser.value)-“”messagebox(“请输入用户名”,48,“进销存管理系统”)thisform.textuser.setfousreturnendif*-获取输入的信息user_n=alltrim(thisform.textu

21、ser.value)user_p=alltrim(thisform.textuser.value)*-定义逻辑变量is_user,用于判断是否为合法用户localis-uuseris-uuser=.f.*-遍历用表中所有的记录*-判断输入的用户名称和用户密码是否存在select用户信息gotopdowhile.not.eof()*-寻找与输入的用户名和密码匹配的记录isuser=(user_n=用户信息.用户名).and.(user_p=用户信息.密码)*-如果找到ifis_userexitelseskipendifenddo*-如果正确ifisuser*-保存登录用户ccuruser=all

22、trim(thisform.textuser.value)*-调用主界面doformmainform*-推出当前表单thisform.release*-如果登录不正确elsemessagebox(“用户名或用户密码不正确!”,0+16,”进销存管理系统”)thisform.textuser.value=”thisform.textpass.value=”thisform.textuser.setfocusendif*-模糊比较serexactoff“取消”按钮的”click”事件代码如下:*-释放登录表单thisform.release*-清除事件循环clearevents*-退出visual

23、foxproquit至此,”系统登录”表单创建完成。4.3.2创建“修改密码”表单首先要创建表单界面,在表单中添加3个标签控件,4个文本框控件,2个按钮控件,布局如下:然后向“修改密码”表单中添加“确定”按钮的“click”事件代码如下:setexacton*-进入数据检查*-检查原密码select用户信息locateforalltrim(用户名)=alltrim(thisform.txt用户名.value);.and.alltrim(密码)=alltrim(thisform.txt原密码.value)if.not.found()messagebox(“原密码错误,请重新输入”,48”进销存管

24、理系统”)thisform.txt原密码.setfocusreturnendif*-如果”密码”栏为空ifempty(alltrim(thisform.txt新密码.value).and.empty(alltrim(thisform.txt.确认密码.valre)messagebox(“密码不能为空”,48,”进销存管理系统”)thisform.txt新密码.setfocusreturnendif*-如果两次密码不一致ifalltrim(thisform.txt新密码.value)alltrim(thisform.txt确认密码.value)messagebox(“密码与确认密码不一致”,48

25、,”进销存管理系统”)thisform.txt新密码.setfocusreturnendif*-获取表单中各数据项的值sname=alltrim(thisform.txt用户名.value)spass=alltrim(tihsform.txt新密码.value)*-确定对话框yn=messagebox(“确定保存”,4+32,”进销存管理系统”)*-如果确认ifyn=6*-修改密码update用户信息set密码=spasswhere用户名=snamemessagebox(“密码修改成功”,64,”进销存管理系统”)thisform.releaseendifsteexactoff“修改密码”表单

26、中”取消”按钮的功能设计是被单击退出当前表单,该按钮的”click”时间代码如下:thisform.rrlrase4.4信息管理模块设计本模块由“商品信息管理”功组成,该功能由“商品信息管理”和“输入查询条件”表单完成。4.4.1“商品信息管理”表单“商品信息管理”表单界面如下图:“商品信息管理”表单中的“checkempty”方法代码如下:*-如果商品信息为空ifeof().and.bof().orreccount()=0thisform.mygroup.cmdtop.enabled=.f.thisform.mygroup.cmdpre.enabled=.f.thisform.mygroup

27、.cmdnext.enabled=.f.thisform.mygroup.cmdbtm.enabled=.f.thisform.mygroup.cmdadd.enabled=.f.thisform.mygroup.cmdedit.enabled=.f.thisform.mygroup.cmddel.enabled=.f.thisform.mygroup.cmdexit.enabled=.f.returnendif*如果“商品消息”表只有一条记录ifreccount()=1thisform.mygroup.cmdtop.enabled=.f.thisform.mygroup.cmdpre.ena

28、bled=.f.thisform.mygroup.cmdnext.enabled=.f.thisform.mygroup.cmdbtm.enabled=.f.returnendif*如果记录指针位于第1条记录并且处于“浏览”状态ifbof().or.recno()=1.and.thisform.formmode=.f.thisform.mygroup.cmdtop.enabled=.f.thisform.mygroup.cmdpre.enabled=.f.thisform.mygroup.cmdnext.enabled=.t.thisform.mygroup.cmdbtm.enabled=.t

29、.rerurnendif*如果记录指针位于最后1条并且处于“浏览”状态ifbof().or.recno()1.and.recno()reccunt()thisform.mygroup.cmdtop.enabled=.t.thisform.mygroup.cmdpre.enabled=.t.thisform.mygroup.cmdnext.enabled=.t.thisform.mygroup.cmdbtm.enabled=.t.rerurnendif“商品信息管理”表单中的“setmode”方法代码如下*formmode为.f.表示为浏览状态*formmode为.t.表示为修改状态*控制表单中

30、文本框thisform.setall(“readonly”,!formmode,“textbox”)*控制编辑框thisform.edt说明.readonly=!formmode*控制组合框thisform.cmp商品类别.enabled=formmode*控制命令组中的命令按扭thisform.mygrop.cmdsearch,enabled=!formmodethisform.mygrop.cmdadd,enabled=!formmodethisform.mygrop.cmdexit,enabled=!formmode*移动记录按扭thisform.mygrop.cmdtop,enable

31、d=!formmodethisform.mygrop.cmdpre,enabled=!formmodethisform.mygrop.cmdnext,enabled=!formmodethisform.mygrop.cmdbtm,enabled=!formmode*修改状态时ifformmode=.t.thisform.mygroup.cmdedit.caption=”保存”thisform.mygroup.cmddel.caption=”恢复”thisform.mygroup.cmdedit.tooltiotext=”保存对记录的修改”thisform.mygroup.cmddel.tool

32、tiptext=”s删除当前记录”endif因此,如果要使表的单进入“浏览”状态,则只需要使用如下代码即可。thisform.formmode=.f.thisform.sermodethisform.refresh相应地,如果要使表单进入“修改”状态,则只需要使用如下代码即可。thisform.formmode=.thisform.sermodethisform.refresh“mygroup”命令组中的“编辑“按钮”的“click”事件代码:*如果是作为“编辑”按扭时ifthis.caption=”编辑”*保存记录指针位置select商品信息thisform.oldrecord=recno(

33、)*使表单进入“浏览”状态thisform.formmode=.t.thisform.setmodethisform.refreshreturnendif*如果是作为“保存”按扭时ifthis.caption=”保存”*如果商品标号为空ifempry(alltrm(thisform.txt商品编号.value)messagebox(“商品编号不能为空”,48,“进销存管理系统”)thisform.txt商品编号.setfocusrerurnendif*如果商品名称为空ifempty(alltrim(thimform.txt商品名称.value)messagebox(“商品名称不能为空”,48,

34、“进销存管理系统”)thisform.txt商品名称.serfocusreturnendif*如果商品单位为空ifempty(alltrim(thimform.txt商品单位.value)messagebox(“商品单位不能为空”,48,“进销存管理系统”)thisform.txt商品单位.serfocusreturnendif*如果商品单位小于或者等于0ifthisform.txt商品单价.value0gothisform.oldrecordendif*回到“浏览”状态thisform.formmode=.f.thisform.setmodethisform.refreshendifretu

35、rnendif*如果按扭标题为“删除”ifthisform.caption=”删除”*确认对话框yn=messagebox(“确认删除”,4+32,“进销存管理系统”)如果确认ifyn=6*删除记录select商品信息delefpackthisform.checkemptyendifendif“退出”按钮的“click”事件代码如下:thisform.release至此,“商品信息管理”表单创建完成。4.4.2“输入查询条件”表单在项目管理器中新建一个表单作为“输入查询条件”表单,保存为“searchkey”,在表单中添加一个文本框控件,一个组合框控件,两个标签控件和两个按钮控件。向页面中添加

36、控件,如图:输入查询条件”表单中的“确定”按钮的“click”事件代码:*声明变量localfindstr,oldrecord,stable*如果没有选择查询字段ifthisform.findlx.value=”messagebox(“没有选择查询字段”,48,”进销存管理系统”)*如果选择了字段*模糊比较setexactoffselect商品信息*根据选项指定查询条件docasecasethisform.findlx.value=”商品编号”findstr=”+alltrim(thisform.findkey.value)=”$”+”商品编号”casethisform.findlx.valu

37、e=”商品名称”findstr=”+alltrim(thisform.findkey.value)=”$”+”商品名称”casethisform.findlx.value=”商品产地”findstr=”+alltrim(thisform.findkey.value)=”$”+”商品产地”casethisform.findlx.value=”商品类别”findstr=”+alltrim(thisform.findkey.value)=”$”+”商品类别”endcase*保存记录指针位置oldrecord=recno()*设置过滤条件setfilterto&findstrgotop*循环dowhi

38、le.not.eof()*刷新“商品信息管理”表单preadmin.refresh*将表单最小化thisform.windowstate=1ifmessagebox(“是本笔记录吗?”,4+32,“进销存管理系统”)=6*已找到指定的记录exitelse*未找到指定的记录skip*刷新“商品信息管理”表单proadmin.refeshendif*将表单还原thisform.windowstate=0enddo*如果到了表的末尾ifeof()messagebox(“未找到指定的记录”,48,“进销存管理系统”)*回到原纪录gooldrecordendif*清楚过滤条件setfilterto*刷新

39、“商品信息管理”表单proadmin.refresh*退出当前表单thisform.releaseendif“输入查询条件”表单中的“取消”按钮的“click”事件代码:thisform.release至此,“输入查询条件”表单创建完成。4.5日常操作模块设计“超市进销存管理系统“中的日常操作模块包括“商品进货操作”和“商品出货”操作功能,分别由“商品进货操作”表单和“商品出货”表单来完成。4.5.1“商品进货操作”表单创建表单界面:添加一个复选框和两个按钮控件,将“进货信息”表,“商品信息”表和“库存信息表”添加到表单的数据环境中。控件布局如下:添加“autoadd函数代码:*作用:使“00

40、0000xx”形式的编号自动加1functionautoadd(ncode)*-获取字符串长度nlen=len(ncode)*-将字符型转换为数值型,即获取非0部分的数值ncode=val(ncode)*-非0部分数字加1ncode=ncode+1*转换为字符型ncode=alltrim(str(ncode)*获取转换后的字符长度nlength=len(ncode)*在数字之前加上前置“0”nzero=”0000000000”ncode=substr(nzero,1,nlen-nlength)+ncode*返回结果returnncodeendfunc4.5.2“商品出货操作”表单创建表单界面:

41、在项目管理器中新建一个表单为“商品出货表单”,命名为:”“outact”,将将“进货信息”表,“商品信息”表和“库存信息表”添加到表单的数据环境中,从数据环境中将要在表单中显示的字段拖到表单中,并做适当调整,然后添加一个复选框控件,两个按钮控件,创建好的表单布局如下图:添加“商品出货操作”表单的“iniit”事件代码:*使用当前日期生成进货编号前6位leftno=substr(alltrim(str(year(date()、3);+alltrim(str(month(date());+alltrim(str(day(date();*_从“出货信息”中生成进货编号后4位select出货信息set

42、orderto出货编号setfrltertosetfrltertottod(出货信息.出货时间)=date()gobottomif出货信息.出货编号=”righno=“0000”elserighno=substr(出货信息.出货编号、7)endif*-对后4位增1righno=autoadd(rightno)*-完整编号fullno=leftno+rightno*-在表单中显示thisform.txt出货编号.value=fullnothisform.txt出货时间.value=datetime()thisform.txt出货数量.value=0thisform.txt出货单价.value=0

43、thisform.txt经手人.value=”thisform.txt接收人.value=”thisform.cmb商品编号.value=”*-刷新表单thisform.refresh添加“商品出货操作”表单的“确定”按钮的事件代码:*-获取表单中的数据outno=alltrim(thisform.txt出货编号.valuepno=thisform.cmb商品编号.valueoutcount=thisform.txt出货数量.valueoutprice=thisform.txt出货单价.valueouttime=thisform.txt出货时间.valueoutperson=alltrim(t

44、hisform.txt经手人.value.outdanwei=alltrim(thisform.txt接收人.value.outnote=thisform.edt说明.value*-如果商品编号为空ifpno=”messagebox(“商品编号为空或错误”,48,”进销存管理系统”)thisform.cmb商品编号.setfocusreturnendif*-检查商品编号合法性dimensionrecnum(1)recnum=2selectcount(*)from商品信息where商品编号=pnointoarrayrecnumifrecnum1messagebox(“商品编号错误”,48,”进销

45、存管理系统”)thisform.cmb商品编号.setfocusendif*-如果没有库存ifthisform.txt库存数量.value=0messagebox(“该商品没有库存”,48,”进销存管理系统”)thisform.cmb商品编号.value=”thisform.cmb商品编号.setfocusreturnendif*-如果出货数量小于0或者大于库存数量ifoutcount=0messagebox(“出货数量错误”,48,”进销存管理系统”)thisform.txt出货数量.setfocusreturnendif*-如果进货单价小于0ifoutprice=0messagebox(“

46、出货单价错误”,48,”进销存管理系统”)thisform.txt出货单价.setfocusreturnendif*-如果经手人为空ifoutperson=”messagebox(“经手人不能为空”,48,”进销存管理系统”)thisform.txt经手人.setfocusreturnendif*-在进货信息表中插入记录begintransinsertint出货信息values(outcount,pno,outcount,outprice,outtime,outdanweioutperson,outnote)*-更新库存信息表update库存信息set库存数量=库存数量-outcountwhe

47、re商品编号=pnoendtrans*-如果选中了复选框ifthisform.check1.value=1reportformoutviewfor出货编号=thisform.txt出货编号.valuepreviewendif*-对话框messagebox(“出货成功”,64,”进销存管理系统”)*-初始化表单thisform.initthisform.rsfresh“商品出货操作”表单的“取消”按钮的事件代码:thisform.release至此“商品出货操作”表单创建完成。4.6信息查询模块设计“超市进销存管理系统”中的信息查询模块由“进货信息查询”,“出货信息查询”和“库存信息查询”3个功

48、能组成,分别由“进货记录查询”,出货记录查询“,”库存记录查询“3个表单完成。4.6.1创建“进货信息查询”表单在项目管理器中创建一个表单作为“进货信息查询”表单,保存为“insearch”,将“inview”视图和“系统设置”表添加到表单的数据环境中。在表单中添加一个表格控件,六个标签控件,五个文本框控件,一个组合框控件和两个按钮控件,如下图:4.6.2创建“出货信息查询”表单“出货信息查询”表单用来查询出货记录,该表单提供了按照商品编号,商品名称,商品类别,经手人,接收人和出货日期等多种查询方式。在项目管理器中新建一个表单作为“出货信息查询”表单,保存为“outsearch”,将“outv

49、iew”视图和“系统设置”表添加到表单的数据环境中。在表单中添加一个表格控件,一个组合框控件,五个文本框控件,六个标签控件和两个命令按钮控件,创建好的“出货信息查询”表单如下图:添加“出货信息查询”表单代码:*-收集查询条件searchfiler=”.t.”ifnotempty(alltrim(thisform.txt商品编号.value)searchfiler=searchfiler+”and”+alltrim(thisform.txt商品编号.value)+”s商品编号”endififnotempty(thisform.txt商品名称.value)searchfiler=searchfiler+”and”+alltrim(thisform.txt商品名称.value)+”s商品名称”endififnotempty(alltrim(thisform.cmb商品类别.value)searchfiler=searchfiler+”and”+alltrim(thisform.txt商品类别.value)+”s商品类别”endififnotempty(thisform.txt经手人.value)searchfiler=searchfiler+”and”+alltrim(thisform.txt经手人.value)+”s经手人”endififnotempty(thisform.

温馨提示

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

评论

0/150

提交评论