版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1系统需求分析(宋体 四号 粗体)本贸易公司系统的业务主要用于基本信息的管理,包括供货商信息、顾客信息、商品信息和仓库信息的维护以及所经营商品的进、销、存管理,完成的主要功能包括:(1)客户管理包括供货商和顾客信息的管理。管理和维护供货商或顾客的公司名称、地址、联系人姓名、联系电话、邮政编码和公司主页等信息。(2)商品管理包括随所有营销商品信息的管理。管理和维护商品的名称、规格型号、计量单位、底线库存和高线库存等信息。(3)仓库管理包括对仓库信息的管理,管理和维护仓库的名称、地址和负责人等信息。(4)进销存管理包括进货管理和销售管理两大部分,记录进货的信息,包括供应商信息、商品信息和存货仓库的
2、悉尼西,同时同步更新库存信息;记录销售信息,包括顾客信息、商品信息和存款仓库的信息,同时同步更新库存信息。(5)查询统计包括商品库存信息的查询、进货信息和销售信息的查询。同时及时了解短线商品,即库存量低于库存的商品和超储商品,以及库存量高于高线库存的商品的信息,从而及时的出货和补货。(正文:宋体 小四号 行间距:固定值 18磅 段前 段后间距 0)2基本功能概述(1)系统为公司的客户信息建立档案,包括供货商和顾客的公司名称、地址、联系人、联系电话、传真、邮编和公司主页等信息,并能对这些信息进行增加、修改、删除和查询等操作。(2)系统为公司所营销的商品信息建立档案,包括商品名称、规格、记录单位、
3、底线库存和高线库存等信息,并能对这些信息进行增加、修改、删除和查询等操作。(3)系统为公司所储库仓库建立档案,包括仓库的名称、地址和负责人等信息,并能对这些信息进行增加、修改、删除和查询等操作。(4)当公司进货时能对进货的信息进行入库管理,记录供货商信息、所存储仓库信息、进货商品的名称、规格、数量和进货时间等进货信息,并能对这些信息进行增加、修改、删除和查询等操作。同时需要同步更新相应商品的库存信息。(5)当公司销售时能对销售的信息进行入库管理,记录顾客信息、出货仓库信息、销售商品的名称、规格、数量和出货时间等销售信息,并能对这些信息进行增加、修改、删除和查询等操作。同时系统要能自动列出仓库中
4、可供销售商品的信息,同时对超过库存的销售能制止和提示,销售后要能同步更新商品的库存信息。(6)当出现了底线货品和超储货品时,系统要能查出这些商品并显示给系统操作员。(7)系统应该具有查询所有信息的功能。(8)系统应该可以管理用户并设置相应的权限。(9)系统应该可以对基础数据进行维护。(10)系统应该有很好的可扩展性。3系统模块设计贸易管理系统系统管理基本信息管理营销管理查询统计图1 贸易管理系统基本功能模块一个通用的贸易管理系统可以分为以下几个功能模块,如图1所示。(1)系统管理系统管理模块包括的主要功能是对于用户信息的管理及密码的修改。这些设置一般不轻易改动,其包含的功能模块如图2所示。其中
5、系统用户管理用于设置使用系统的用户,包括设置权限、添加、删除和修改用户信息等。用户密码修改功能提供当前用户修改本人密码的权限。系统管理系统用户管理用户密码修改图2 “系统管理”功能模块(2)基本信息管理基本信息管理用于设置和维护公司的基本信息,包括供货商和顾客的基本信息管理、仓库信息管理和所营销的商品信息的管理,其包含的功能模块如图2所示。其中,客户管理包括了供货商信息和顾客信息的管理和维护两个模块。包括公司名称、地址、联系人、联系电话、传真号码和公司主页等信息。仓库信息管理用于添加、编辑和删除公司存储货物的库房的具体信息,包括仓库的编号、名称、地址和负责人的信息。基本信息管理客户管理商品管理
6、图3 “基本信息管理”功能模块仓库管理供货商管理顾客管理商品管理用于添加、编辑和删除公司所经营商品的具体信息。(3)营销管理营销管理模块是系统的核心功能模块,主要实现了公司的进、销、存管理、其包含的功能模块如图4所示。其中,进货管理用于添加、设置和修改公司的进货信息,包括供货商的编号和名称、存储仓库的编号和名称、所进商品的编号、名称、规格、计量单位、进货数量、单价和入库时间的信息。销售管理用于添加、设置和修改公司的进货信息,包括顾客的编号和名称、出库商品的编号和名称、所售商品的编号、名称、规格、计量单位、出货数量、单价和出库时间的信息。库存管理用于管理商品的存储信息,当进货和出货时需要更新商品
7、的库存量。营销管理进货管理库存管理图4 “营销管理”功能模块销售管理(4)查询统计查询统计进货信息查询短线商品统计图5 “查询统计”功能模块销售信息查询库存信息查询超储商品统计查询统计模块实现了库存信息、进货信息、销售信息的查询,以及短线商品和超储商品的统计显示,包含的功能模块如图5所示。其中,库存信息查询模块主要提供库存信息的查询和显示,提供商品的库存商品名称、商品规格、商品计量单位和商品的库存数量的信息。可以通过仓库名称和商品名称进行数据的过滤。进货信息查询主要提供进货的时间、进货商品数量、名称、规格、型号、供货商名称和存储仓库名称等信息的显示,可以通过供货商名称、商品名称或仓库名称进行数
8、据过滤。销售信息查询主要提供销售商品的时间、商品数量、名称、规格、型号、顾客名称和出货仓库等信息的显示,可以通过顾客名称、商品名称或仓库名称进行数据过滤。短线商品统计提供了自动显示当前库存中的库存数量低于其底线库存的商品信息,便于提醒公司及时补货。超储商品统计提供了自动显示当前库存中的库存数量高于其底线库存的商品信息,便于提醒公司及时出货。功能结构如图11所示:。4数据库的设计根据上面的需求分析和功能模块设计,贸易管理系统共需8张表: 表1 系统数据表及用途(所有表格为5号字,代码为5号字):表名用途cuser保存系统用户的信息customer保存公司顾客的信息depot保存公司仓库的信息pr
9、oduct保存公司所营销商品的信息sell保存商品销售的信息stock保存商品进货的信息storage保存商品库存的信息图6 数据库图示( 可以截图,也可以用表格)5各个功能模块窗体创建(这个部分写的是系统各个功能模块窗体的设计和程序代码,窗体要截图,代码要有注释,代码只列出主要功能按钮的程序,相似按钮的代码可以省略)(1)创建登录窗体和主窗体 图7 系统数据模块(截图,注意图编号要按顺序排列)各个组件的主要属性设置入下表2:表2 数据模块组件属性设置组件名称属性属性值adoconnection1connectionstringprovider=sqloledb.1;persist secur
10、ity info=false;user id=sa;initial catalog=sale_manage;data source=bbbloginpromptfalseconnectedtrueado_providerconnectiontablenameadoconnection1providerado_customerconnectiontablenameadoconnection1customerado_userconnectiontablenameadoconnection1cuserado_productconnectiontablenameadoconnection1produc
11、tado_depotconnectiontablenameadoconnection1depotado_stockconnectiontablenameadoconnection1stockado_sellconnectiontablenameadoconnection1sellado_storageconnectiontablenameadoconnection1storageadoq_cxconnectionadoconnection1用于登录的窗体时在整个程序运行之前首先呈现给用户的界面,通过它来进行用户的合法性验证,创建的窗体如图8:图8 登录窗体下列代码实现的功能时在窗体创建时从系统
12、用户表中读出所有的用户名,并将它们添加到“用户名”的下拉列表中,在用户单击了“登录”按钮后验证用户输入的用户名和密码是否正确,如验证合法则登陆到主窗体。procedure tcfrm_login.formcreate(sender: tobject);begin dm.ado_user.open; dm.ado_user.sort:=userid; while not dm.ado_user.eof do begin combobox1.items.add(dm.ado_user.fieldbyname(username).asstring); dm.ado_user.next; end; c
13、ombobox1.itemindex:=0end;procedure tcfrm_login.combobox1change(sender: tobject);begin edit1.text:=; edit1.setfocus;end;procedure tcfrm_login.bitbtn2click(sender: tobject);begin dm.ado_user.close; application.terminate;end;procedure tcfrm_login.bitbtn1click(sender: tobject);var kl:variant; pass:strin
14、g;begin username:=combobox1.text; kl:=dm.ado_user.lookup(username,username,pass);/从数据库表中查询出选中用户所对应的密码 if varisnull(kl) then pass:= else pass:=kl; if edit1.textpass then/验证密码,如果连续三次密码错误则关闭应用程序 begin i:=i+1; if i=3 then begin application.messagebox(pchar(密码验证错误,拒绝访问!), pchar(提示), mb_iconexclamation);
15、application.terminate; close; end; application.messagebox(pchar(密码验证错误,重新录入!),pchar(提示), mb_iconquestion); edit1.text:=; edit1.setfocus(); exit; end; dm.ado_user.close; cfrm_login.hide; cfrm_mainform:=tcfrm_mainform.create(application);/创建主窗体 cfrm_mainform.showmodal;/显示主窗体end;procedure tcfrm_login.f
16、ormactivate(sender: tobject);beginedit1.setfocus;end;procedure tcfrm_login.formclose(sender: tobject; var action: tcloseaction);begin dm.ado_user.close; application.terminate;end;(3)主窗体设计 图9 系统主界面设计(4)用户管理窗体设计 图10 用户管理窗体代码如下:procedure tcfrm_czy.datasource1datachange(sender: tobject; field: tfield);b
17、egin e_id.text:=dm.ado_user.fieldbyname(userid).asstring; e_name.text:=dm.ado_user.fieldbyname(username).asstring; if dm.ado_user.fieldbyname(manager).asboolean=true then image1.visible:=true else image1.visible:=false;end;procedure tcfrm_czy.bitbtn4click(sender: tobject);/删除用户记录beginif dm.ado_user.
18、fieldbyname(manager).asboolean=true then begin application.messagebox(pchar(系统管理员,不可删除!) ,pchar(提示),mb_iconexclamation+mb_ok); exit; end; mes:=是否要删除操作员; if application.messagebox(pchar(mes),pchar(等待确认) ,+mb_iconquestion+mb_okcancel)=idok then dm.ado_user.delete;end;procedure tcfrm_czy.bitbtn1click(s
19、ender: tobject);begin bitbtn3.tag:=1;/设置“保存”按钮(button3)的标记,以区别是新建还是编辑 e_id.enabled:=true; e_name.enabled:=true; e_id.text:=; e_name.text:=; bitbtn1.enabled:=false; bitbtn2.enabled:=false; bitbtn3.enabled:=true; bitbtn4.enabled:=false; e_id.setfocus();end;procedure tcfrm_czy.bitbtn3click(sender: tobj
20、ect);var bh,xm:string;begin bh:=e_id.text; xm:=e_name.text; if bitbtn3.tag=1 then/标记为1则进行新建操作 begin try dm.ado_user.appendrecord(bh,xm); except e_id.setfocus; e_id.text:=; e_name.text:=; mes:=录入错误!+#13+#13+注意:、均不能为空 +#13+ 且不可重复,请重新录入!; application.messagebox(pchar(mes),pchar(提示),mb_iconexclamation);
21、 exit; end; dm.ado_user.sort:=userid; e_id.text:=; e_name.text:=; e_id.setfocus(); end else/标记为2则进行编辑操作 begin dm.ado_user.edit; dm.ado_user.fieldbyname(userid).asstring:=bh; dm.ado_user.fieldbyname(username).asstring:=xm; try dm.ado_user.post; except mes:=录入错误!+#13+#13+注意:、均不能为空 +#13+ 且不可重复,请重新录入!;
22、application.messagebox(pchar(mes),pchar(提示),mb_iconexclamation); dm.ado_user.cancel; exit; end; dm.ado_user.sort:=userid; end; bitbtn3.enabled:=false; bitbtn1.enabled:=true; bitbtn2.enabled:=true; bitbtn4.enabled:=true;end;(5)供货商信息管理窗体供货商信息窗体与顾客信息管理窗体、仓库信息管理窗体和商品信息管理类似窗体,所以其他三个窗体代码略去不写。 图11 供货商信息管理窗
23、体代码如下:procedure tcfrm_provider.ghssl;/统计供货商总数并显示的函数begin providercount:=dm.ado_provider.recordcount; statusbar1.panels0.text:=当前的供货商总数为:+inttostr(providercount);end;procedure tcfrm_provider.tbutton1click(sender: tobject);begin dm.ado_provider.append; tbutton5.tag:=0; tbutton1.enabled:=false; tbutton
24、2.enabled:=false; tbutton3.enabled:=false; tbutton5.enabled:=true; tbutton6.enabled:=true; dbedit1.enabled:=true; dbedit2.enabled:=true; dbedit3.enabled:=true; dbedit4.enabled:=true; dbedit5.enabled:=true; dbedit6.enabled:=true; dbedit7.enabled:=true; dbedit8.enabled:=true; dbedit9.enabled:=true;end
25、;procedure tcfrm_provider.tbutton2click(sender: tobject);begintbutton5.tag:=1; tbutton1.enabled:=false; tbutton2.enabled:=false; tbutton3.enabled:=false; tbutton5.enabled:=true; tbutton6.enabled:=true; dbedit1.enabled:=true; dbedit2.enabled:=true; dbedit3.enabled:=true; dbedit4.enabled:=true; dbedit
26、5.enabled:=true; dbedit6.enabled:=true; dbedit7.enabled:=true; dbedit8.enabled:=true; dbedit9.enabled:=true;end;procedure tcfrm_provider.tbutton6click(sender: tobject);begindm.ado_provider.cancel; tbutton1.enabled:=true; tbutton2.enabled:=true; tbutton3.enabled:=true; tbutton5.enabled:=false; tbutto
27、n6.enabled:=false; dbedit1.enabled:=false; dbedit2.enabled:=false; dbedit3.enabled:=false; dbedit4.enabled:=false; dbedit5.enabled:=false; dbedit6.enabled:=false; dbedit7.enabled:=false; dbedit8.enabled:=false; dbedit9.enabled:=false;end;procedure tcfrm_provider.tbutton3click(sender: tobject);var me
28、s:string;beginmes:=是否要删除供货商; if application.messagebox(pchar(mes),pchar(等待确认) ,+mb_iconquestion+mb_okcancel+mb_defbutton2)=idok then begin dm.ado_provider.delete;/删除顾客记录 end; ghssl;end;procedure tcfrm_provider.tbutton5click(sender: tobject);begin if dbedit1.text= then /判断是否输入了供货商名称 begin application
29、.messagebox(pchar(供货商名称不能为空,请重新录入!) , pchar(提示),mb_iconexclamation); dbedit1.setfocus(); exit; end; if tbutton5.tag=1 then dm.ado_provider.edit; try dm.ado_provider.post; except application.messagebox(pchar(输入信息有错误!), pchar(提示), mb_iconexclamation); dbedit1.setfocus(); exit; end; tbutton1.enabled:=t
30、rue; tbutton2.enabled:=true; tbutton3.enabled:=true; tbutton5.enabled:=false; tbutton6.enabled:=false; dbedit1.enabled:=false; dbedit2.enabled:=false; dbedit3.enabled:=false; dbedit4.enabled:=false; dbedit5.enabled:=false; dbedit6.enabled:=false; dbedit7.enabled:=false; dbedit8.enabled:=false; dbedi
31、t9.enabled:=false; ghssl; end;procedure tcfrm_provider.formcreate(sender: tobject);begin dm.ado_provider.open; dm.ado_provider.first; statusbar1.panels1.text:=当前用户:+username; ghssl;end;procedure tcfrm_provider.formclose(sender: tobject; var action: tcloseaction);begin dm.ado_provider.close; release;
32、end;图12 商品信息管理窗体 图13 仓库信息管理窗体(6)进货管理窗体设计在进货管理窗体中单击“新入库”或“编辑入库信息”按钮,可以打开入库信息编辑窗体,其窗体设计如图15所示,在该窗体中可以输入或修改商品进货的信息。销售管理窗体和销售编辑窗体与进货类似,代码省略不写。图14 进货管理窗体 代码如下procedure tcfrm_stock.tbutton3click(sender: tobject);var mes:string;beginmes:=是否要删除入库信息; if application.messagebox(pchar(mes),pchar(等待确认) ,+mb_icon
33、question+mb_okcancel+mb_defbutton2)=idok then begin dm.ado_stock.delete;/删除入库信息 dm.ado_storage.open; if dm.ado_storage.locate(productid;depotid,vararrayof(dm.ado_stock.fieldbyname(productid).asstring,dm.ado_stock.fieldbyname(depotid).asstring),) then begin dm.ado_storage.edit; dm.ado_storage.fieldby
34、name(quantity).asfloat:= dm.ado_storage.fieldbyname(quantity).asfloat-dm.ado_stock.fieldbyname(quantity).asfloat; dm.ado_storage.post; end; end;图15 编辑入库信息窗体代码如下:procedure tcfrm_stockedit.formcreate(sender: tobject);/在窗体创建时添加信息begin/添加供货商编号到dbcombobox1中 dm.ado_provider.open; dm.ado_provider.first; wh
35、ile not dm.ado_provider.eof do/遍历供货商信息表 begin dbcombobox1.items.add(dm.ado_provider.fieldbyname(providerid).asstring); dm.ado_provider.next; end;/添加仓库编号到dbcombobox2中 dm.ado_depot.open; dm.ado_depot.first; while not dm.ado_depot.eof do/遍历仓库信息表 begin dbcombobox2.items.add(dm.ado_depot.fieldbyname(depo
36、tid).asstring); dm.ado_depot.next; end;/添加商品编号到dbcombobox3中 dm.ado_product.close; dm.ado_product.open; dm.ado_product.first; while not dm.ado_product.eof do/遍历商品信息表 begin dbcombobox3.items.add(dm.ado_product.fieldbyname(productid).asstring); dm.ado_product.next; end; datetimepicker1.date:=date();end
37、;procedure tcfrm_stockedit.dbcombobox1change(sender: tobject);begindm.ado_provider.first;if dm.ado_provider.locate(providerid,dbcombobox1.text,) then dbedit1.text:=dm.ado_provider.fieldbyname(companyname).asstring;/在用户在下拉列表中选择了编号后查询出该编号所对应的供应商公司名称并显示end;procedure tcfrm_stockedit.dbcombobox2change(se
38、nder: tobject);begin dm.ado_depot.first; if dm.ado_depot.locate(depotid,dbcombobox2.text,) then dbedit2.text:=dm.ado_depot.fieldbyname(depotname).asstring;end;procedure tcfrm_stockedit.dbcombobox3change(sender: tobject);begin dm.ado_product.first; if dm.ado_product.locate(productid,dbcombobox3.text,
39、) then begin dbedit3.text:=dm.ado_product.fieldbyname(productname).asstring; dbedit4.text:=dm.ado_product.fieldbyname(spec).asstring; dbedit5.text:=dm.ado_product.fieldbyname(unit).asstring; end;/在用户在下拉列表中选择了编号后查询出该编号所对应的商品名称、商品规格和计量单位并显示end;procedure tcfrm_stockedit.formclose(sender: tobject; var a
40、ction: tcloseaction);begindm.ado_provider.close;dm.ado_customer.close;dm.ado_depot.close;dm.ado_storage.close;release;end;procedure tcfrm_stockedit.bitbtn2click(sender: tobject);begindm.ado_stock.cancel; dm.ado_provider.close;dm.ado_customer.close;dm.ado_depot.close;dm.ado_storage.close; close;end;p
41、rocedure tcfrm_stockedit.bitbtn1click(sender: tobject);varpaymoney:double;beginif length(dbedit6.text)=0 then/检查是否输入了商品数量 begin application.messagebox(pchar(商品数量不能为空,请重新录入!) , pchar(提示),mb_iconexclamation); dbedit6.setfocus(); exit; end; if dbedit7.text= then begin application.messagebox(pchar(商品单价不
42、能为空,请重新录入!) , pchar(提示),mb_iconexclamation); dbedit7.setfocus(); exit; end; if dbcombobox1.text= then begin application.messagebox(pchar(供货商编号不能为空,请重新录入!) , pchar(提示),mb_iconexclamation); dbcombobox1.setfocus(); exit; end; if dbcombobox2.text= then begin application.messagebox(pchar(仓库编号不能为空,请重新录入!)
43、 , pchar(提示),mb_iconexclamation); dbcombobox2.setfocus(); exit; end; if dbcombobox3.text= then begin application.messagebox(pchar(商品编号不能为空,请重新录入!) , pchar(提示),mb_iconexclamation); dbcombobox3.setfocus(); exit; end; paymoney:=strtofloat(dbedit7.text)*strtofloat(dbedit6.text); if bitbtn1.tag=1 then dm
44、.ado_stock.edit; dm.ado_stock.fieldbyname(stockdate).asdatetime:=strtodate(datetostr(datetimepicker1.date); dm.ado_stock.fieldbyname(payment).asfloat:=paymoney; try dm.ado_stock.post; except application.messagebox(pchar(输入数据有误,请重新录入!), pchar(提示), mb_iconexclamation); dbcombobox1.setfocus(); exit; en
45、d; dm.ado_storage.open; if dm.ado_storage.locate(productid;depotid,vararrayof(dbcombobox3.text,dbcombobox2.text),)then begin dm.ado_storage.edit; dm.ado_storage.fieldbyname(quantity).asfloat:= dm.ado_storage.fieldbyname(quantity).asfloat+strtofloat(dbedit6.text); dm.ado_storage.post; end else begin dm.ado_storage.append; dm.ado_storage.fieldbyname(depotid).asstring:=dbcombobox2.text; dm.ado_storage.fieldbyname(depotname).asstring:=dbedit2.text; dm.ado_storage.fieldbyname(pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《防火墙技术》课件
- 《中西建筑艺术差异》课件
- 中班文明小观众课件
- 采购部门报告范文模板
- 墙砖地砖施工合同范本
- 财务管理调查报告范文
- 不同企业总结报告范文
- 毕野设计开题报告范文
- 2023年高考真题-语文(天津卷) 含答案
- 《建设之路的探索》课件
- 投标保证金交付证明
- 质量问题投诉登记、处理台账
- 小班健康活动认识五官课件
- 施工单位履约考评检查表
- 中国脓毒症及脓毒性休克急诊治疗指南
- 【中学】主题班会:关爱他人 快乐自己
- 高级别脑胶质瘤放射治疗PPT
- “不”的变调 (共10张PPT)课件
- DB32∕T 3748-2020 35kV及以下客户端变电所建设标准
- 部编版小学语文75首古诗默写专项练习
- 燃气入户安检培训PPT.ppt
评论
0/150
提交评论