1、编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第77页 共78页成 绩武汉轻工大学经济与管理学院 物流信息系统 课程设计报告题 目 物流信息系统课程设计报告 姓 名 学 号 专业年级 物流管理1501 指导教师 黄键 职 称 年 月 日教师评语:指导教师_(签名)年 月 日目 录目 录一课程设计的序言3二课程设计的内容及其步骤4 (一)建立数据库4(二)主程序.6.(三)主菜单.7(四)建立工具栏.7.(五)建立logo表单.8.(六)表单基本信息表system.15.(七)表单rkd(入库单).19.(八)出库单ckd.25.(九)器材明细表表单qcmx.scx.35(十
2、)浏览修改表单llxg.scx. .41(十一)修改总数据库表单xgmain.55(十二)个人工具卡表单grgj. 58(十三)创建本地视图ll_gjk.60(十四)创建修改个人工具卡表单grgjk .61 (十五)建立报表.64.(十六)连编 .67(十七)制作安装盘.68三课程设计的总结和感想71一、设计的序言设计目的:物流信息系统课程设计为学生提供了一个既动手又动脑,独立实践的机会。培养学生“物流信息系统”课程所学知识的综合应用,分析和解决企业物流信息系统实际问题的能力。设计要求由教师布置课程设计的思路,提供设计资料,学生根据资料,结合企业物流系统的相关知识,对资料进行深入分析,独立完成
3、物流信息系统课程设计。设计内容:1根据企业库房需求进行分析。2利用VFP进行软件设计。 二、课程设计的内容及其步骤(一)建立数据库1、新建数据库1508090003郑万芳,保存到e:1508090003郑万芳 目录下。2、在数据库中新建表systen(.dbf),五个字段:fzr、bgy、jhy、cly、mima,其标题分别为:负责人、保管员、计划员、材料员、密码。3、新建表main(.dbf): ckbh c(10), rq d(8),qcmc c(16),ggxh c(20),lb c(6),dw c(4), dj n(8,2),pzbh c(10),rksl n(8,2),rkje n(
4、10,2), cksl n(8,2), ckje n(10,2),gcmc c(30),bz c(6),cly c(6),bgy c(6),jhy c(6),llr c(6),fzr c(6),lh c(6),yt c(20),qu c(2),jia c(2),hao c(2),ku c(2)。其标题分别为:出库编号,日期,器材名称,规格型号,类别,单位,单价,凭证编号,入库数量,入库金额,出库数量,出库金额,工程名称,班组,材料员,保管员,计划员,领料人,负责人,料号,用途,区,架,号,库。说明:c-字符型;d-日期型;n-数值型,括号内为字节长度,逗号后面的数值为几位小数。4、新建表grg
5、jk(.dbf): ckbh c(10), rq d(8),qcmc c(16),ggxh c(20),lb c(6),dw c(4), dj n(8,2), cksl n(8,2), ckje n(10,2),bz c(6),jhy c(6),llr c(6)。其标题分别为:出库编号,日期,器材名称,规格型号,类别,单位,单价,出库数量,出库金额,班组,计划员,领料人。完成后(二)主程序set talk off &关闭对话模式set safe off &关闭对话框set stat off &不显示提示对话框set dele on &不处理已删除的记录set cent on &设定日期格式年为
6、4位数set cons on &激活从程序中向 Visual FoxPro 主窗口或活动的用户自定义窗口的输出set date to ansi &设置日期格式set stat bar on &打开状态栏set color to &设定配色方案set sysmenu off &关闭系统主菜单close all &关闭各种类型的文件RELEASE WINDOW 常用 &关闭常用工具栏if mod(day(date(),2)=0 &偶数日期_SCREEN.backcolor=rgb(80,180,150) &窗口背景颜色MODIFY WINDOW SCREEN TITLE 库房管理应用软件 ver
7、2.1 为齐;鲁石化检修公司机泵车间编制 今天是:+dtoc(date()+ +cdow(date()else &奇数日期_SCREEN.backcolor=rgb(80,150,180) &窗口背景颜色MODIFY WINDOW SCREEN TITLE 库房管理应用软件 ver 2.1 ; 软件编制者:王永成 今天是:+dtoc(date()+ +cdow(date()endifZOOM WINDOW SCREEN MAX &主窗口最大化_SCREEN.controlbox=.f. &去掉主窗口控制按钮deactivate window 项目管理器 &关闭项目管理器mypath=left(
8、sys(16),rat(,sys(16) &确定程序所在的位置set defa to (mypath) &设置当前路径set path to data;form;pic &指明路径open database kfgl &打开数据库do form logo &运行表单logoread events &占用进程,启动事件处理quit &退出(三)主菜单操作(BR器材入库 命令:do form rkd器材出库 命令:do form ckd-退出 命令:Clea event编辑(BR编辑浏览出入库单 命令:do form llxg浏览个人工具卡 命令:do form grgjk修改个人工具卡 命令:d
9、o form grgjk-基本设置 命令:do form systen游戏(BR猜数游戏 命令:do form csyx身体状态测试 命令:do form stcs-心灵感应 命令:do form xlgy退出(BR 命令Clea(四)建立工具栏1、点击“文件”“新建”按钮,选择“类”,出现新建类对话框。2、类名输入郑万芳kuf,派生于选择toolbar,存储于:“e:1508090003郑万芳郑万芳kuf.vcx”,按确定按钮,出现类设计器。3、跟建立表单一样,如图5-2,我们建立8个命令按钮,其tooltiptext分别为:器材入库,器材出库,修改,浏览,查找器材,身体状态测试,猜数游戏,
10、退出。给按钮加上图片、文字(例如:猜字)。在各自的click方法程序中输入相应的命令(如:do form rkd),现在还没建立这些表单,可以在建完以后再输。(五)建立logo表单(1)新建表单logo,titlebar为0-关闭,height=115,width=222。其init过程:use systenThisform.Label1.width =0Thisform.Label3.Left =thisform.widthpublic tbs,bgy1,cly1,jhy1,fzr1thisform.top=0thisform.left=0bgy1=bgycly1=clyjhy1=jhyfz
11、r1=fzr(2)Label1的caption为“欢迎使用库房管理软件”,透明,楷体,12号,黄色。(3)Label2的caption为“输入密码”,透明,黑体,12号,绿色。(4)Label3的caption为“软件作者:武汉轻工大学 郑万芳”,透明,白色。(5)文本框的Name为txtpassword,passworchar为*。(6)计时器timer1,interval=200。其timer过程:if thisform.top160 &判断label1的宽度是否大于160 Thisform.Label1.width =0 &label1的宽度设为0Else Thisform.Label1
12、.width = Thisform.Label1.width +16 &宽度增加16EndIf*以下作用是让label3向左移动If Thisform.Label3.Left =3 =messagebox(你不是合法用户!你不能使用!,64,提示窗口) thisform.release Clea event else =messagebox(口令不正确!请重新输入!,64,提示窗口)thisform.txtpassword.value=thisform.txtpassword.setfocus()endifENDIF(8)命令按钮cancel,退出。其click过程:thisform.rele
13、aseClea event出现的问题:点击确定按钮,出现一个程序错误的提升,显示文件不存在以及找不到变量解决方案:因为对vfp软件操作不够精通,暂时没有想到解决方案。望老师见谅。(六)表单 基本信息表system(1)表单的“caption”为“基本信息”,“windowtype”为1-模式(2) 建立标签“label1label5”、文本框“text1text5”和命令按钮“command1”。(3)右击表单选择“数据环境”(图6-1)。(4)填加表systen.dbf。(图6-2)(5) 、text1text5的“controlsource”分别选择systen.fzr、systen.jh
14、y、systen.cly、systen.bgy、systen.mim(6)、label1label5的caption为:负责人、计划员、材料员、保管员、密码。(7) 、command1.cilck为:thisform.release。(8)、text5的“inputmask”为:“XXXXXX”,“passwordchar”为:“*”。出现的问题:Text1-4无法输入数据,基本信息表不能正常使用。解决方案:因为对vfp软件的使用不够精通,所以对该出现的问题无法解决,望老师见谅。(七)表单rkd(入库单)(1)、我们用一些标签和线条建立(如图6-3)表单rkd,你可以根据自己单位的情况设计。其
15、“titlebar”为:0-关闭(2)、建立17个文本框(由于我在设计时进行过修改,删掉了一些文本框,所以现在不连续),其“backstyle”为:0-透明、“bordercolor”为:0-无(没有“0-无”这个选项,只有颜色的选择,如下图:)其“controlsource”分别为:text9为bgy1,text12为fzr1,text17为cly1,其它的均与其name相同(例:text1为text1.)。(3)、组合框combo2,“bordercolor”为:0-无(没有“0-无”这个选项,同上),“controlsource”为cbo1,“rowsource”为:“钢材,管件,配件,
16、工器具,量具,杂品,消耗品,油料,劳保,阀门”,“rowsourcetype”为:1-值。(4)、命令按钮command1(确定)的click过程为:tis=messagebox(保存入库单?,4+64,提示窗口)if tis=6if !used(main)use mainelsesele mainendifAPPEND BLANKrepl lb with cbo1repl rq with date()repl pzbh with text4repl gcmc with text5repl yt with text6repl lh with text13repl qcmc with text1
17、9repl ggxh with text20repl dw with text7repl rksl with text8repl dj with text10repl rkje with text11repl jhy with text23repl bgy with bgyrepl fzr with fzrrepl llr with clyusetext20=text13=text4=text8=0.00text10=0.00text11=0.00text1=year(date()text2=month(date()text3=day(date()thisform.cbo2.setfocust
18、hisform.refreshendif(5)、命令按钮command2(退出)的click过程:usethisform.release(6)、表单form1的init过程: public text1,text2,text3,text4,text5,text6,text7,text8,text10,text11,; text19,text20,text23,cbo1,text9,text13text5=text6=text7=text13=text17=text19=text20=text23=text12=text9=text4=text8=0.00text10=0.00text11=0.0
19、0text1=year(date()text2=month(date()text3=day(date()cbo1= thisform.cbo2.setfocus(7)、表单form1的destroy过程:release text1,text2,text3,text4,text5,text6,text7,text8,text10,text11,; text19,text20,text23,cbo1,text9,text13出现的问题:1. 点击组合框1的下拉箭头,无法选择2. 点击确定命令后,弹出是否保存入库单,选择“是”,出现以下程序错误,显示文件不存在解决方案:因为对vfp软件的使用不够精通
20、,所以对出现的问题无法解决,望老师见谅。(八)出库单ckd 最初我设计的出库单象入库单一样,一次只能开一种材料,由于在车间使用就改成现在这样。图7-1(1)、文本框text1的“dateformat”为:14-汉语;“tapstop”(如下图:)为:.F.假;“value”为:=date()。其他略。(2)、建立表格Grid1。右击Grid1选择生成器选择main表,选定如下字段:qcmc、ggxh、dw、dj、cksl、ckje、lb,按确定按钮。(图7-2)(3) 、修改表格Grid1。“deletemark”为:.F.-假;“recordmark”为:.F.-假;“recordsourc
21、e”为:(无)(去掉main);“scrollbars”为:2-垂直。Combo1的“rowsource”为:一班,二班,三班,四班,五班,六班,办公室;“rowsourcetype”为:1-值。(4)、表单的init过程:public bz1,bh1,llr1*建立临时表lscreat cursor ls ( ckbh c(10), rq d(8),qcmc c(16),ggxh c(20),dw c(4), ; dj n(8,2), cksl n(8,2), ckje n(10,2),gcmc c(30),bz c(6),; yt c(20),cly c(6),bgy c(6),jhy c
22、(6),llr c(6),fzr c(6),lb c(6)with thisform.grid1.recordsource=ls.column1.controlsource=ls.qcmc.column2.controlsource=ls.ggxh.column3.controlsource=ls.dw.column4.controlsource=ls.dj.column5.controlsource=ls.cksl.column6.controlsource=ls.ckje.column7.controlsource=ls.lbendwith(5)、打印按钮的cilck过程:bz1=bo1.
23、valuebh1=allt(thisform.text5.value)llr1=allt(thisform.text6.value)sele lsmessagebox(请用B5纸!,16,提示信息)REPORT FORM ckdan.frx TO PRINTER thisform.refresh(6)、保存按钮的cilck过程:bz1=bo1.valuebh1=allt(thisform.text5.value)rq1=date()llr1=allt(thisform.text6.value)gcmc1=allt(thisform.text3.value)yt1=allt(thisform.t
24、ext4.value)*检查输入是否有效sele lscount for !deleted() to zsif zs=0messagebox(至少要有一条记录才能保存!,16,提示信息)returnendifif empty(bz1)messagebox(请填写班组,16,提示信息)returnendiflocat for ls.cksl=0if found()messagebox(请填写数量,16,提示信息)returnendif*加入到正式表中go topdo while !eof()insert into main (ckbh,rq,qcmc,ggxh,dw,dj,cksl,ckje,g
25、cmc,yt,llr,jhy,lb,bz) ; value (bh1,rq1,ls.qcmc,ls.ggxh,ls.dw,ls.dj,ls.cksl,ls.ckje,gcmc1,ls.yt,llr1,jhy1,ls.lb,bz1) if allt(ls.lb)=工器具 insert into grgjk (ckbh,rq,qcmc,ggxh,dw,dj,cksl,ckje,llr,jhy) ; value (bh1,rq1,ls.qcmc,ls.ggxh,ls.dw,ls.dj,ls.cksl,ls.ckje,llr1,jhy1) endif skipenddozap(6)、退出按钮的cilc
26、k过程:tt=0thisform.release(7)、Grid1下的Column1下的Text1的DblClick过程:do form qcmx sele lsthis.value=main.qcmcwith thisform.grid1.column2.text1.value=main.ggxh.column3.text1.value=main.dw.column4.text1.value=main.dj .column5.text1.value=0 .column6.text1.value=0.column7.text1.value=main.lbendwiththisform.refr
27、eshthisform.grid1.column5.text1.setfocusthisform.refresh(8)、Grid1下的Column5下的Text1的LostFocus过程:if this.valuecksl1 ss=allt(str(cksl1) messagebox(开票数量不能大于库存数量+ss,16,提示信息) thisform.grid1.column5.text1.value=0 thisform.grid1.column5.text1.setfocus retuendif thisform.grid1.column6.text1.value=ls.cksl*ls.d
28、jthisform.grid1.refresh(9)、Grid1的rightcilck过程:sele lsdo tjia.mpr &调用tjia菜单thisform.grid1.refreshthisform.grid1.setfocus 附加:建立tjia菜单(1)、新建快捷菜单(2)、“填加一条”的过程内容为:locat for ls.cksl=0if found()messagebox(请填写数量,16,提示信息)returnendifappend blank(3)、“删除选定一条”的过程内容为:if messagebox( 是否真的删除该行?,36,提示信息)=6deleendif(4
29、)、生成为tjia。出现的问题:1. 点击保存命令,出现以下程序错误,显示文件不存在2. 点击退出命令,出现以下程序错误解决方案:因为对vfp软件的使用不够精通,所以对以上出现的错误无法给出解决方案,望老师见谅。(九) 器材明细表表单qcmx.scx(1)建立标签(按其caption内容):“在上面的文本框中输入”,“器材名称或规格型号”,“库存数量:”,“库存金额:”,“器 材 明 细 表”,“库”,“区”,“架”,“号”,“器材名称:”,“规格型号:”,“单位:”,“单价:”。(2)建立文本框:ku,qu,jia,hao,qcmc,ggxh,dw,dj(以上文本框的controlsourc
30、e分别为:“main.+其名”),text7,text8,text10。(3)建立命令按钮command15(图8-2) (4) 建立表格Grid1,右击选择“生成器”,选择表main的如下字段:rq,qcmc,ggxh,rkbh(前面设置的表main里没有rkbh字段),rksl,rkje,ckbh,cksl,ckje,lb。其它属性在这里就不一一介绍了。(5)form1.init:tbs.hide &在运行此表单时隐藏快捷图标public cksl1 &定义全局变量(6)form.destroy:tbs.show &在关闭此表单时显示快捷图标(7)text10.interactivecha
31、nge:locate for allt(qcmc)=allt(this.value)if found()go recn()thisform.refreshelselocate for allt(this.value)$allt(ggxh)if found()go recn()thisform.refreshendifendif (8)command1.click:mand2.enabled=.t. mand5.enabled=.t.if !RECN()=1 skip -1 else go 1 this.enabled=.f. mand4.enabled=.f.endifthisform.ref
32、resh (9)command2.click:mand1.enabled=.t.mand4.enabled=.t.if !eof() skip 1 else go bottom this.enabled=.f. mand5.enabled=.f.endifthisform.refresh (10)command3.click:THISFORM.RELEASE(11)command4.click:mand2.enabled=.t.mand5.enabled=.t. go 1 this.enabled=.f.mand1.enabled=.f.thisform.refresh (12)command
33、5.click:mand1.enabled=.t.mand4.enabled=.t. go bottom this.enabled=.f.mand2.enabled=.f.thisform.refresh (13)grid1.refresh:thisform.grid1.recordsource=sele main.rq,qcmc,ggxh,pzbh,rksl,rkje,ckbh,cksl,ckje,lb from main into curs temp;where allt(qcmc)=allt(thisform.qcmc.value) .and. allt(ggxh)=allt(thisf
34、orm.ggxh.value) sele tempsum rksl to sl1sum cksl to sl2sum rkje to je1sum ckje to je2cksl1=sl1-sl2thisform.text7.value=sl1-sl2thisform.text8.value=je1-je2 sele main出现的问题:1. 点击“运行”,立马出现程序错误解决方案:因为对vfp软件的使用不够精通,所以对以上问题无法解决,望老师见谅。(十) 浏览修改表单llxg.scx(1)、建立选择按钮组Optiongroup1。ButtonCount=3.(2)、建立选择按钮组Option
35、group2。ButtonCount=11.(3)、建立表格Grid1。DeleteMark=.F.-假;RecordSourceType=0-表。(4)、建立形状Shape1、Shape2,选择背景颜色。(5)、建立组合框Combo1。ControlSounrce=rq1;RowSounrce=select rq distinct from main into cursor combo1;RowSounrceType=3-SQL语句。(6)、建立组合框Combo2。ControlSounrce=rq2;RowSounrce=select rq distinct from main into cursor combo2;RowSounrceType=3-SQL语句。(7)、建立组合框Combo3。ControlSounrce=bz1;RowSounrce=一班,二班,三班,四班,五班,六班,办公室;RowSounrceType=1-值。(8)、建立Command1。Caption=修改;command1.click:do form xgmain。(9)、建立
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100