36文档仅供参考,不当之处,请联系改正。RecordSourceSELECT*FROMgongyingshangINTOCURSORtempRecordSourceType4-SQL说明(1)“编号”文本框的InteractiveChang事件代码:ThisForm.Grid1.RecordSource="Select*FromgongyingshangWhere(bhlike'%'+bianhao+'%')intocursortemp"ThisForm.Grid1.Refresh(2)“公司名称”文本框的InteractiveChang事件代码:mingcheng=Alltrim(ThisForm.Txtmch.Value)ThisForm.Grid1.RecordSource="Select*FromgongyingshangWhere(gsmchlike'%'+mingcheng+'%')intocursorep"ThisForm.Grid1.Refresh(3)“添加”按钮的Click事件代码:*查询编号有无重的bianhao=Alltrim(ThisForm.Txtbh.Value)SelectgongyingshangseekbianhaoorderbhIfFound()=Messagebox("此编号已经存在,请检查!!!")ThisForm.Txtbh.Setfocus652020年4月19日
37文档仅供参考,不当之处,请联系改正。Return&&提前结束本次过程Endif*查询单位名称有无重的mingcheng=Alltrim(ThisForm.Txtmch.Value)SelectgongyingshangSeekmingchengordergsmchIfFound()=Messagebox("此公司名称已经存在,请检查!!!!")ThisForm.Txtmch.SetfocusReturn&&提前结束本次过程Endifc=ThisForm.Txtdh.Valued=ThisForm.Txtdzh.Valuee=ThisForm.Txtwzh.Valuef=ThisForm.Txtjyyl.ValueIfbianhao<>""andmingcheng<>""thenInsertintogongyingshangValues(bianhao,mingcheng,c,d,e,f)ThisForm.Txtbh.Value=""ThisForm.Txtmch.Value=""ThisForm.Txtdh.Value=""ThisForm.Txtdzh.Value=""ThisForm.Txtwzh.Value=""652020年4月19日
38文档仅供参考,不当之处,请联系改正。ThisForm.Txtjyyl.Value=""ThisForm.Grid1.Refreshelse=Messagebox("请输入编号和公司名称!!!")Endif(4)“删除”按钮的Click事件代码:Selectgongyingshangdeleteforgsmch=ThisForm.Txtmch.ValueThisForm.Txtbh.SetfocusThisForm.Txtbh.Value=""ThisForm.Txtmch.Value=""ThisForm.Txtdh.Value=""ThisForm.Txtdzh.Value=""ThisForm.Txtwzh.Value=""ThisForm.Txtjyyl.Value=""ThisForm.Refresh(5)“修改确定”按钮的Click事件代码:a=ThisForm.Txtbh.Valueb=ThisForm.Txtmch.Valuec=ThisForm.Txtdh.Valued=ThisForm.Txtdzh.Value652020年4月19日
39文档仅供参考,不当之处,请联系改正。e=ThisForm.Txtwzh.Valuef=ThisForm.Txtjyyl.ValueSelectgongyingshangIfa<>""andb<>""thenUpdategongyingshangSetbh=a,gsmch=b,dh=c,dzh=d,wzh=e,jyyl=fWherebh=aEndifThisForm.Refresh(6)“退出”按钮的Click事件代码:ThisForm.Release(7)Form1的Init过程代码:setdeleteon&&设置删除标志有效(8)Form1的Deactivate过程代码:*在关闭窗口时,将设置了逻辑删除标记的记录物理删除IfUsed("gongyingshang")ThenSelectgongyingshangUseEndifSelect0UsegongyingshangPack652020年4月19日
40文档仅供参考,不当之处,请联系改正。Use(三)Ypru.scx药品入库表单的设计控件设置:对象类型对象名属性设置表单FormlCaption药品入库Iconpoint10.ico文本框Txtbb数据类型字符文本框Txtmch数据类型字符文本框Txtqx数据类型日期文本框Txtzhl数据类型字符文本框Txtly数据类型字符文本框Txtlxr数据类型字符文本框Txtshl数据类型数值文本框Txtjj数据类型数值文本框Txtpfl数据类型数值文本框Txtshj数据类型数值组合框CombolRowsourcetype1-值Rowsource名称查询,编号查询,来源查询,检验员。联系人表格GridkcReadOnly.T.-真RecordSourceSELECT*FROMyaopinxinxiINTOCURSORtemp(1)“药品编号”文本框的InteractiveChange事件代码如下:652020年4月19日
41文档仅供参考,不当之处,请联系改正。bh=AllTrim(ThisForm.Text1.Value)&&药品库存一览表的数据源是药品信息表,查询条件能够是模糊信息,查询结果存入临时表中。ThisForm.Gridkc.RecordSource="Select*From药品信息Where(ypbhLike'%'+bh+'%')IntoCursortemp"&&其中查询语句中的“%”是通配符,代表多个字符,“%+bh+%”意思是只要条件中包含变量bh代表的信息就符合条件。Select药品信息&&选择药品信息表SeekbhOrderypbh&&查找编号按药品编号排序ThisForm.Txtmch.Value=ypmch&&输入编号时,对应的名称出现在Txtmch中ThisForm.Gridkc.Refresh&&表格刷新(2)“模糊查询”中“输入关键字”文本框InteractiveChange事件的代码:bltj=AllTrim(ThisForm.Text13.Value)DoCaseCaseThisForm.Combo1.Value=1ThisForm.Gridkc.RecordSource="Select*From药品信息Where(ypmchLike'%'+bltj+'%')IntoCursortp"652020年4月19日
42文档仅供参考,不当之处,请联系改正。Select药品信息SeekbltjOrderypmchCaseThisForm.Combo1.Value=2ThisForm.Gridkc.RecordSource="Select*From药品信息Where(ypbhLike'%'+bltj+'%')IntoCursortp"Select药品信息SeekbltjOrderypbhCaseThisForm.Combo1.Value=3ThisForm.Gridkc.RecordSource="Select*From药品信息Where(yplyLike'%'+bltj+'%')IntoCursortp"Select药品信息SeekbltjOrderyplyCaseThisForm.Combo1.Value=4ThisForm.Gridkc.RecordSource="Select*From药品信息Where(jyyLike'%'+bltj+'%')IntoCursortp"Select药品信息SeekbltjOrderjyyCaseThisForm.Combo1.Value=5ThisForm.Gridkc.RecordSource="Select*From药品信息Where(lxr652020年4月19日
43文档仅供参考,不当之处,请联系改正。Like'%'+bltj+'%')IntoCursortp"Select药品信息SeekbltjOrderlxrENDCASEThisForm.Gridkc.Refresh(3)“保存”按钮Click事件的代码如下:blbh=ThisForm.Txtbh.Valueblmch=ThisForm.Txtmch.Valueblqx=ThisForm.Txtqx.Valueblzhl=ThisForm.Txtzhl.Valueblly=ThisForm.Txtly.Valuebllxr=ThisForm.Txtlxr.Valueblshl=ThisForm.Txtshl.Valuebljj=NTOM(ThisForm.Txtjj.Value)&&函数ntom()是将数字格式转换成货币格式blpfj=NTOM(ThisForm.Txtpfj.Value)blshj=NTOM(ThisForm.Txtshj.Value)InsertIntorukujilu(ypbh,ypmch,yply,lxr,jhrq,zhl,shl,jj,pfj,shj)values(blbh,blmch,blly,bllxr,DATETIME(),blzhl,blshl,bljj,blpfj,blshj)&&将信息写入入库记录中Select药品信息&&选择表药品信息652020年4月19日
44文档仅供参考,不当之处,请联系改正。SeekblbhOrderypbh&&查找药品编号的值,如果找到,说明表中有此药品编号的相应信息,没找到则说明此药品编号是新药品编号。IfFound()&&如果找到此药品编号,则更新相关记录信息Update药品信息Setypmch=blmch,shl=blshl+shl,jhrq=datetime(),yply=blly,yxrq=blqx,zhl=blzhl,lxr=bllxr,jj=bljj,shj=blshj,pfj=blpfjWhereypbh=blbhElse&&如果没有找到此药品编号,则插入相关记录信息InsertInto药品信息(ypbh,ypmch,yply,lxr,jhrq,yxrq,zhl,shl,jj,pfj,shj)Values(blbh,blmch,blly,bllxr,DATETIME(),blqx,blzhl,blshl,bljj,blpfj,blshj)EndifThisForm.Txtbh.InteractiveChange()&&方便查询核对输入信息ThisForm.RefreshThisForm.Gridkc.RefreshThisForm.command2.enabled=.F.&&保存按钮再次设置为不可用(4)单击Grid控件时的相关代码放到了对象Grid的Text1的Gotfocus过程中,相关代码如下:Select药品信息ThisForm.Txtbh.Value=ypbh652020年4月19日
45文档仅供参考,不当之处,请联系改正。ThisForm.Txtmch.Value=ypmchThisForm.Txtqx.Value=yxrqThisForm.Txtjj.Value=jjThisForm.Txtshj.Value=shjThisForm.Txtpfj.Value=pfjThisForm.Txtly.Value=yplyThisForm.Txtlxr.Value=lxrThisForm.Txtzhl.Value=zhlThisForm.Txtshl.Value=shl(5)“退出”按钮的代码如下:ThisForm.Release(三)Ypck.scx药品出库表单的设计652020年4月19日
46文档仅供参考,不当之处,请联系改正。控件设置:对象类型对象名属性设置表单FormlCaption出库IconFolder05.ico文本框Txtchkbh数据类型字符Enabled.F.-假文本框Txtkhbh数据类型字符Enabled.T.-真文本框Txtkhmch数据类型字符Enabled.T.-真文本框Txtypbh数据类型字符652020年4月19日
47文档仅供参考,不当之处,请联系改正。Enabled.T.-真文本框Txtypmch数据类型字符Enabled.F.-假文本框Txtshl数据类型数值Enabled.T.-真文本框Txtshj数据类型数值Enabled..F.-假文本框Txtyshk数据类型数值Enabled.T.-真文本框Txtshshk数据类型数值Enabled.T.-真文本框Txtzhk数据类型数值Enabled.T.-真文本框Txtzhb数据类型数值Enabled.T.-真文本框Txtqk数据类型数值Enabled.F.-假组合框CombolRowSourceType1-值RowSource001,002…命令按钮CmdxchkCaption新出库命令按钮CmdqdCaption确定命令按钮CmdkhzlCaption客户资料命令按钮CmddyCaption结算打印表格GridlReadOniy.T.真RecordSourceSELECTypbh,ypmch,jj,shj,pfj,shl,yplyFROMyaopinxinxiINTOCURSORtempRecordSoureType4-SQL说明表格Grid2ReadOnly.T.-真RecordSourceChukuxinxiRecordSourceType4-SQL说明(1)“客户编号”文本框InteractiveChange事件的代码:chxbh=Alltrim(ThisForm.Txtkhbh.Value)IfnotUsed("kehuxinxi")Then&&如果表“kehuxinxi”没有打开,则打开652020年4月19日
48文档仅供参考,不当之处,请联系改正。Select0UsekehuxinxiEndifSelectkehuxinxiSeekchxbhOrderbhThisForm.Txtkhxm.Value=xm&&将搜索到的客户姓名显示出来SelectkehuxinxiUse(2)“药品编号”文本框InteractiveChange事件的代码:chxbh=AllTrim(ThisForm.Txtypbh.Value)ThisForm.Grid1.RecordSource="Selectypbh,ypmch,jj,shj,pfj,shl,yplyFrom药品信息Whereypbh=chxbhintocursortemp"Select药品信息SeekchxbhOrderypbhThisForm.Txtypmch.Value=ypmchThisForm.Txtshj.Value=shjshengyushuliang=shlThisForm.Txtshl.Value=0(3)“数量”文本框LostFocus事件的代码:Select药品信息shuliang=ThisForm.Txtshl.Value652020年4月19日
49文档仅供参考,不当之处,请联系改正。shoujia=ThisForm.Txtshj.ValueIfshuliang>shengyushuliang=Messagebox("数量不足")Endif(4)“实付金额”文本框InteractiveChange事件的代码:ThisForm.Txtzhb.Value=ThisForm.Txtshshk.Value-ThisForm.Txtyshk.Value*ThisForm.Txtzhk.Value(5)“折扣”文本框InteractiveChange事件的代码:ThisForm.Txtzhb.Value=ThisForm.Txtshshk.Value-ThisForm.Txtyshk.Value*ThisForm.Txtzhk.Value(6)“新出库”按钮Click事件的代码:riqi=DTOS(DATE())SelectdistinctchkbhFromchukuxinxiWhereSUBSTR([chkbh],1,8)=ALLTRIM(riqi)intocursortempxchk0Selecttempxchk0ListSelectCOUNT(*)asshumuFromtempxchk0INTOCURSORtempxchkSelecttempxchkList652020年4月19日
50文档仅供参考,不当之处,请联系改正。Ifshumu=0thenshumubianhao='01'ElseIfshumu<10thenshumubianhao='0'+ALLTRIM(STR(shumu+1))Elseshumubianhao=STR(shumu+1)EndifEndifThisForm.Txtchkbh.Value=riqi+ALLTRIM(shumubianhao)IfUsed("tempxchk0")thenSelecttempxchk0UseEndifIfUsed("tempxchk")thenSelecttempxchkUseEndif(7)“确定”按钮Click事件的代码:chukubh=ThisForm.Txtchkbh.Valuekehubianhao=ThisForm.Txtkhbh.Valuekehumch=ThisForm.Txtkhxm.Value652020年4月19日
51文档仅供参考,不当之处,请联系改正。caozuoyuan=ThisForm.Combo1.Valueyaopinbianhao=ThisForm.Txtypbh.Valueyaopinmch=ThisForm.Txtypmch.Valueshuliang=ThisForm.Txtshl.Valueshoujia=ThisForm.Txtshj.Value*改写药品信息表中的库存数量Update药品信息Setshl=shl-shuliangWhereypbh=yaopinbianhao*将新出库的药品信息写入到出库信息表中InsertIntochukuxinxi(chkbh,ypbh,ypmch,shj,shl,khbh,khmch,xshrq,czy)values(chukubh,yaopinbianhao,yaopinmch,shoujia,shuliang,kehubianhao,kehumch,datetime(),caozuoyuan)ThisForm.Grid2.RecordSource="Select*FromchukuxinxiWherechkbh=chukubhintocursorchukulinshi"ThisForm.Grid1.RecordSource="Selectypbh,ypmch,jj,shj,pfj,shl,yplyFrom药品信息Whereypbh=yaopinbianhaointocursortemp"ThisForm.Grid1.RefreshThisForm.Grid2.Refreshzonghe=shoujia*shuliangThisForm.Txtyshk.Value=zonghe+ThisForm.Txtyshk.ValueThisForm.Refresh(8)“客户资料”按钮Click事件的代码:652020年4月19日
52文档仅供参考,不当之处,请联系改正。DoFormkehu(9)“结算打印”按钮Click事件的代码:ReportFormchukuPreview(三)Rkjl.scx入库记录查询表单的设计控件设置:对象类型对象名属性设置表单FormlCaption入库查询Iconexplorer.ico时间控件OleqzhzhrqBaseClass是OleContorol组合框CombolRowSource药品编号,药品名称文本框Textl数据类型字符组合框CombolRowsourceType1-值RowSource001,002…命令按钮CommandlCaption查询\53文档仅供参考,不当之处,请联系改正。RecordSourceSELECT*FROMrukuxinxiRecordSourceType4-SQL说明(1)Form1的Init事件代码:Thisform.Oleqshrq._Value=CTOD('^'+STR(YEAR(DATE()))+'-1'+'-1')Thisform.Olezhzhrq._Value=DATE()(2)“查询”按钮Click事件的代码:yaopin=AllTrim(ThisForm.Text1.Value)DoCaseCaseThisForm.Combo1.Value==''ThisForm.Grid1.Recordsource="SELECT*FROMchukuxinxiWherexshrqbetweenThisForm.Oleqshrq._ValueandThisForm.Olezhzhrq._Valueintocursortemp"CaseThisForm.Combo1.Value=='药品编号'ThisForm.Grid1.Recordsource="SELECT*FROMchukuxinxiWhere(xshrqbetweenThisForm.Oleqshrq._ValueandThisForm.Olezhzhrq._Value)and(ypbhlike'%'+yaopin+'%')intocursortemp"CaseThisForm.Combo1.Value=='药品名称'ThisForm.Grid1.Recordsource="SELECT*FROMchukuxinxiWhere(xshrqbetween652020年4月19日
54文档仅供参考,不当之处,请联系改正。ThisForm.Oleqshrq._ValueandThisForm.Olezhzhrq._Value)and(ypmchlike'%'+yaopin+'%')intocursortemp"endcaseThisForm.Refresh(3)“退出”按钮Click事件的代码:ThisForm.Release(三)Ckjl.scx出库记录查询表单的设计控件设置:652020年4月19日
55文档仅供参考,不当之处,请联系改正。对象类型对象名属性设置表单FormlCaption出库查询组合框CombolRowSource药品编号,药品名称文本框Textl数据类型字符组合框CombolRowsourceType1-值RowSource001,002…命令按钮CommandlCaption查询\56文档仅供参考,不当之处,请联系改正。ThisForm.Grid1.Recordsource="SELECT*FROMchukuxinxiWhere(xshrqbetweenThisForm.Oleqshrq._ValueandThisForm.Olezhzhrq._Value)and(ypbhlike'%'+yaopin+'%')intocursortemp"CaseThisForm.Combo1.Value=='药品名称'ThisForm.Grid1.Recordsource="SELECT*FROMchukuxinxiWhere(xshrqbetweenThisForm.Oleqshrq._ValueandThisForm.Olezhzhrq._Value)and(ypmchlike'%'+yaopin+'%')intocursortemp"endcaseThisForm.Refresh(3)“退出”按钮Click事件的代码:ThisForm.Release(三)Bwl.scx备忘录表单的设计652020年4月19日
57文档仅供参考,不当之处,请联系改正。控件设置:对象类型对象名属性设置表单FormlCaption备忘录IconCrdfle13.ico文本框Textl数据类型字符Enabled.F.-假表格Grid1ReadOnly.T.-真RecordSourcebeiwangluxinxiRecordSourceTypeI-别名DeleteMark.F.-假命令按钮Command1Caption制定备忘录命令按钮Command2Caption删除备忘录Enabled.F.-假命令按钮Command3Caption修改备忘录Enabled.F.-假命令按钮Command4Caption保存备忘录命令按钮Command5Caption退出【ESC】Cancel.T.-真652020年4月19日
58文档仅供参考,不当之处,请联系改正。(1)全局变量bwl,为布尔型,在主程序中定义,初值为真。bwl为真表示备忘录为新制定,为假表示备忘录为修改过的。(2)制定备忘录ThisForm.Text1.enabled=.T.&&点击制定备忘录按钮,文本框Text1可用ThisForm.Text1.Value=""&&使Text1的值为空beiwanglu=.T.&&beiwanglu为真表示备忘录为新制定(3)删除备忘录在备忘录表格中双击要删除的记录,则【删除备忘录】按钮可用,其中代码如下:Delete&&删除当前记录ThisForm.commAND2.Enabled=.F.&&删除完成再次变为不可用状态ThisForm.Refresh(4)修改备忘录在备忘录表格中双击要删除的记录,则“删除备忘录”按钮变为可用状态,其中代码如下:ThisForm.Text1.Enabled=.T.&&文本框Text1可用652020年4月19日
59文档仅供参考,不当之处,请联系改正。beiwanglu=.F.&&beiwanglu为假表示对现有备忘录进行修改(5)保存备忘录neirong=ThisForm.Text1.ValueSelectbeiwangluxinxiIfbeiwanglu&&如果beiwanglu为真,则执行制定备忘录的相关操作InsertIntobeiwangluxinxi(nr,zdsj,zdr)Values(neirong,DATETIME(),[ren])Else&&如果为假,则执行修改备忘录的相关操作ReplacenrWithneirong,zdsjWithDATETIME()ThisForm.command3.Enabled=.F.&&再次使修改按钮改回不可用状态EndIfThisForm.Grid1.Refresh(6)Grid控件的相关操作Grid1的Text1的gotfocus过程中对应的相关代码如下:SelectbeiwangluxinxiThisForm.Text1.Value=nr&&使选中记录的备忘信息显示在文本框中Grid1的Text1的Dblclick过程中对应的相关代码如下:ThisForm.command2.Enabled=.T.ThisForm.command3.Enabled=.T.652020年4月19日
60文档仅供参考,不当之处,请联系改正。五、系统测试所有表单程序制作完成后,就需要进行系统测试,以进行系统对项目的整体性能测试,对系统程序错误进行修改。测试系统是否完善。(一)测试方法(1)打开“项目管理器”对话框。(2)单击“连编”按钮,弹出“连编选项”对话框。(3)在“连编选项”对话框的“操作”栏中选择“连编可执行文件”单选钮。在“选项”栏中选择“重新编译全部文件”和“显示错误”。(4)单击“确定”按钮,并在“另存为”对话框中输入生成文件的文件名:医药管理系统.EXE,完成连编。如果连编出现错误,可根据错误提示逐步改正错误。重复以上过程即可。(5)连编获得成功后,可在“项目管理器”中选择主程序,选择运行。或找到连编后的文件医药管理系统.EXE,系统运行检查各表单运行状况。(二)测试结果652020年4月19日
61文档仅供参考,不当之处,请联系改正。医药管理系统.EXE能够成功运行,各表单程序能够运转,无表单代码错误。医药销售系统设计制作成功!一、设计总结药品在人们平常生活中是不可缺少的,如何能够处理好药品的信息,及时了解各种药品的需求就尤关重要,因此药品管理系统能够良好的满足的大众对药品的了解和需求,提高大家的生活效率,具有良好的可推广性。VisualFoxPro是一门面向对象的语言,能够对公司的具体要求抽象话,使程序更加通俗易懂,结合当今主流的三大框架,使程序具有良好的可拓展性和阅读性,而且经过对权限的处理,对用户不同的需求给予不同的权利,良好的完成不同用户对药品的不同需求。经过VisualFoxPro打造的药品管理系统,能够满足大多数人对药品的了解,具有较高的价值,值得大家借鉴。在这次课程设计过程中,我首先对医药管理进行了了解,仔细分析了该管理对系统功能的要求,并根据这些功能要求对系统进行定义,确定系统必须做什么。但由于对医药管理了解不多,需求分析难免不够完善。652020年4月19日
62文档仅供参考,不当之处,请联系改正。本系统最终能够基本实现绝大多数功能,可是也有很多不足之处,如药品进库信息功能,对新进药品进行入库存储,可是由于进价跟有效期的变化不能只是对该药品的库存量更改。进价能够运用加成定价法更改。在这次课程设计中虽然遇到过很多的困难,但我从中学到了很多有用的知识,经过不断的翻阅资料,各个问题的解决使我对系统的设计越来越感兴趣。相信我从这次课程设计所学到的东西能够让我在以后的学习及工作中受益无限。经过本次实习,我们对管理信息系统有了深刻的了解,我们从中得出了一些经验,要学好管理信息系统,我们应该从这几个方面考虑:掌握信息管理和信息系统的基本理论基本知识;掌握管理信息系统的分析方法、设计方法和实现技术;具有信息组织、分析研究、传播与开发利用的基本能力;具有综合运用所学知识分析和解决问题的基本能力;了解相关领域的发展动态;掌握文献检索、资料查询、收集的基本方法,具有一定的科研和实际工作能力。通俗地讲,就是从信息中发掘财富。经过学习,一方面,我们锻炼了自己的能力,在实践中成长,另一方面,提高了我们自身的素质,让我们收获了不少知识,学到了很多课本上学不到的东西,提高了我们的实际操作能力。七、参考文献、致谢(一)参考文献:VisualFoxPro程序设计教程宋秀芹主编国防工业出版社(二)致谢:652020年4月19日
63文档仅供参考,不当之处,请联系改正。经过这周的学习,我要以下老师和同学表示我的谢意。首先感谢我的指导教师梅益军老师。感激她在我整个课程设计的过程中给予的指导和帮助,并时刻向我提出最宝贵的意见,让我能够顺利完成这次的设计和报告。然后我要谢谢我的合作伙伴,十分感谢她们与我友善合作,我们一起努力地做实验操作和课程设计,让我感受到了团结的力量,不论何时,我们都应该团结合作,这样我们才能够有效率的做事,做出更好的东西。感谢学校和老师给了我们这个机会,让我们从中学到很多的知识,真是受益匪浅。经济管理学院课程设计鉴定表652020年4月19日
64文档仅供参考,不当之处,请联系改正。自我鉴定:学生签名:日期:指导老师意见:指导老师签名:日期:等级评定:评定内容平时成绩(30%)报告文体规范(10%)报告内容(60%)总评(等级)成绩老师签名:日期:652020年4月19日