vfp实例教程库房管理软件·一、建立数据库·九.浏览修改表单llxg.scx·二、主程序·十.修改总数据库表单xgmain·三、主菜单·十一.个人工具卡表单grgj·四.建立logo表单·十二.创建本地视图ll_gjk·五.表单systen·十三.创建修改个人工具卡表单grgjk·六.表单rkd(入库单)·十四.建立报表·七.出库单ckd·十五.连编·八.器材明细表表单qcmx.scx·十六.制作安装盘一、建立数据库1、新建数据库kfgl,保存到d:\demo\data目录下。2、在kfgl数据库中新建表systen(.dbf),五个字段:fzr、bgy、jhy、cly、mima,其标题分别为:负责人、保管员、计划员、材料员、密码。(图5-1)可以在其‘输入掩码’文本框内输入其掩码,其作用是:在你浏览此表时只显示掩码,而不显示其内容。例如:你的密码是“wyc”,你输入掩码为“ok”,在你浏览表时,显示密码为“ok”,可以起到一定的保密作用,而在程序中调用表显示其内容时,不显示掩码。3、新建表main.dbf:ckbhc(10),rqd(8),qcmcc(16),ggxhc(20),lbc(6),dwc(4),djn(8,2),pzbhc(10),rksln(8,2),rkjen(10,2),cksln(8,2),ckjen(10,2),gcmcc(30),bzc(6),clyc(6),bgyc(6),jhyc(6),llrc(6),fzrc(6),lhc(6),ytc(20),quc(2),jiac(2),haoc(2),kuc(2)。其标题分别为:出库编号,日期,器材名称,规格型号,类别,单位,单价,凭证编号,入库数量,入库金额,出库数量,出库金额,工程名称,班组,材料员,保管员,计划员,领料人,负责人,料号,用途,区,架,号,库。说明:c-字符型;d-日期型;n-数值型,括号内为字节长度,逗号后面的数值为几位小数。4、新建表grgjk.dbf:ckbhc(10),rqd(8),qcmcc(16),ggxhc(20),lbc(6),dwc(4),djn(8,2),cksln(8,2),ckjen(10,2),bzc(6),jhyc(6),llrc(6)。其标题分别为:出库编号,日期,器材名称,规格型号,类别,单位,单价,出库数量,出库金额,班组,计划员,领料人。二、主程序settalkoff&&关闭对话模式setsafeoffsetstatoffsetdeleon&&不处理已删除的记录setcentonsetdatetoansicloseallRELEASEWINDOW常用&&关闭常用工具栏ifmod(day(date()),2)=0&&偶数日期_SCREEN.backcolor=rgb(80,180,150)&&窗口背景颜色MODIFYWINDOWSCREENTITLE库房管理应用软件ver2.1为齐;鲁石化检修公司机泵车间编制今天是:+dtoc(date())++cdow(date())else&&奇数日期_SCREEN.backcolor=rgb(80,150,180)&&窗口背景颜色MODIFYWINDOWSCREENTITLE库房管理应用软件ver2.1;软件编制者:王永成今天是:+dtoc(date())++cdow(date())endifZOOMWINDOWSCREENMAX&&主窗口最大化_SCREEN.controlbox=.f.&&去掉主窗口控制按钮deactivatewindow项目管理器&&关闭项目管理器mypath=left(sys(16),rat(\,sys(16)))&&确定程序所在的位置setdefato(mypath)&&设置当前路径setpathtodata;form;pic&&指明路径opendatabasekfgl&&打开数据库doformlogo&&运行表单logoreadeventsquit三、主菜单操作(\BR——器材入库命令:doformrkd——器材出库命令:doformckd——\-——退出命令:Cleaevent编辑(\BR——编辑浏览出入库单命令:doformllxg——浏览个人工具卡命令:doformgrgj——修改个人工具卡命令:doformgrgjk——\-——基本设置命令:doformsysten游戏(\BR——猜数游戏命令:doformcsyx——身体状态测试命令:doformstcs——\-——心灵感应命令:doformxlgy退出(\X)    eventBR命令Clea四、建立工具栏1、在‘项目管理器’中选‘类库’,按‘新建’按钮,出现新建类对话框。2、类名输入‘kuf’,派生于选择‘toolbar’,存储于:‘D:\demo\form\kuf.vcx',按‘确定’按钮,出现类设计器。3、跟建立表单一样,如图5-2,我们建立8个命令按钮,其‘tooltiptext’分别为:器材入库,器材出库,修改,浏览,查找器材,身体状态测试,猜数游戏,退出。给按钮加上图片、文字(例如:‘猜’字)。在各自的‘click’方法程序中输入相应的命令(如:doformrkd),现在还没建立这些表单,可以在建完以后再输。四.建立logo表单(图5-3)(1)表单logo,titlebar为0-关闭,height=115,width=222。其init过程:usesystenThisform.Label1.width=0Thisform.Label3.Left=thisform.widthpublictbs,bgy1,cly1,jhy1,fzr1thisform.top=0thisform.left=0bgy1=bgycly1=clyjhy1=jhyfzr1=fzr(2)Label1的caption为“欢迎使用库房管理软件”,透明,楷体,12号,黄色。(3)Label2的caption为“输入密码”,透明,黑体,12号,绿色。(4)Label3的caption为“软件作者:齐鲁石化公司检修公司机泵车间王永成”,透明,白色。(5)文本框txtpassword,passworchar为‘*’。(6)计时器timer1,interval=200。其timer过程:ifthisform.top140&&如果表单的顶边距主窗口的距离小于140thisform.top=thisform.top+10&&距离增大10,即表单向下移动10thisform.left=thisform.left+20&&表单的左边距增大20,即向右移动20endif&&结束判断IfThisform.Label1.width160&&判断label1的宽度是否大于160Thisform.Label1.width=0&&label1的宽度设为0ElseThisform.Label1.width=Thisform.Label1.width+16&&宽度增加16EndIf*以下作用是让label3向左移动IfThisform.Label3.Left-272Thisform.Label3.Left=Thisform.WidthThisform.Label3.Left=Thisform.Label3.Left-5ElseThisform.Label3.Left=Thisform.Label3.Left-5EndIfthisform.refresh&&刷新表单(7)命令按钮ok,确定。其init过程:publicnn=0其click过程:n=n+1IFallt(thisform.txtpassword.value)=allt(systen.mima)thisform.release&&hidesetclasslibto('kuf')tbs=creat('kuf')&&用tbs代替自定义工具栏kuftbs.dock(0)&&0=顶部、1=右、2=左、3=底部tbs.show&&显示工具栏DOmain.mpr&&执行主菜单程序ELSEifn=3=messagebox(你不是合法用户!你不能使用!!,64,提示窗口)thisform.releaseCleaeventelse=messagebox(口令不正确!请重新输入!,64,提示窗口)thisform.txtpassword.value=''thisform.txtpassword.setfocus()endifENDIF(8)命令按钮caecel,退出。其click过程:thisform.releaseCleaevent五.表单systen(1)、表单的“caption”为“基本信息”,“windowtype”为1-模式。(2)、建立标签“label1~label5”、文本框“text1~text5”和命令按钮“command1”。(3)、右击表单选择“数据环境”(图6-1)。(4)、填加表systen.dbf。(图6-2)(5)、text1~text5的“controlsource”分别选择systen.fzr、systen.jhy、systen.cly、systen.bgy、systen.mima。(6)、label1~label5的caption为:负责人、计划员、材料员、保管员、密码。(7)、command1.cilck为:thisform.release。(8)、text5的“inputmask”为:“XXXXXX”,“passwordchar”为:“*”。操作说明:此表单让你修改一些基本数据,在材料入库时这些人的名字自动填加,在这里可以修改密码。退出表单修改自动保存。六.表单rkd(入库单)(1)、我们用一些标签和线条建立(如图6-3)表单rkd,你可以根据自己单位的情况设计。其“titlebar”为:0-关闭。(2)、建立17个文本框(由于我在设计时进行过修改,删掉了一些文本框,所以现在不连续),其“backstyle”为:0-透明、“bordercolor”为:0-无。其“controlsource”分别为:text9为bgy1,text12为fzr1,text17为cly1,其它的均与其name相同(例:text1为text1...)。(3)、组合框combo2,“bordercolor”为:0-无,“controlsource”为cbo1,“rowsource”为:“钢材,管件,配件,工器具,量具,杂品,消耗品,油料,劳保,阀门”,“rowsourcetype”为:1-值。(4)、命令按钮command1(确定)的click过程为:tis=messagebox(保存入库单?,4+64,提示窗口)iftis=6if!used(main)usemainelseselemainendifAPPENDBLANKrepllbwithcbo1replrqwithdate()replpzbhwithtext4replgcmcwithtext5replytwithtext6repllhwithtext13replqcmcwithtext19replggxhwithtext20repldwwithtext7replrkslwithtext8repldjwithtext10replrkjewithtext11repljhywithtext23replbgywithbgy1replfzrwithfzr1replllrwithcly1usetext20=text13=text4=text8=0.00text10=0.00text11=0.00text1=year(date())text2=month(date())text3=day(date())thisform.combo2.setfocusthisform.refreshendif(5)、命令按钮command2(退出)的click过程:usethisform.release(6)、表单form1的init过程:publictext1,text2