毕业设计论文物流管理系统医药物流管理系统.doc

上传人:sccc 文档编号:4865367 上传时间:2023-05-20 格式:DOC 页数:31 大小:249.02KB
返回 下载 相关 举报
毕业设计论文物流管理系统医药物流管理系统.doc_第1页
第1页 / 共31页
毕业设计论文物流管理系统医药物流管理系统.doc_第2页
第2页 / 共31页
毕业设计论文物流管理系统医药物流管理系统.doc_第3页
第3页 / 共31页
毕业设计论文物流管理系统医药物流管理系统.doc_第4页
第4页 / 共31页
毕业设计论文物流管理系统医药物流管理系统.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《毕业设计论文物流管理系统医药物流管理系统.doc》由会员分享,可在线阅读,更多相关《毕业设计论文物流管理系统医药物流管理系统.doc(31页珍藏版)》请在三一办公上搜索。

1、电子科技大学毕业设计论文 物流管理系统医药物流管理系统 摘 要 再现今市场经济条件下,物流管理已被众多公司所采用,使用物流管理系统来对公司的运营进行管理,已是成为各公司的重要手段。本文首先阐述了物流管理系统的基本概念,再针对物流管理系统在医药行业所能发挥的巨大作用,进行此系统的需求分析,接着对系统的八个部分进行功能上的简单介绍,然后重点介绍了此系统的详细设计与功能模块的实现,最后分析存在的问题,提出假定的解决方案。 关键词物流管理 查询 结账 报表Abstract In the condition of the market economy nowadays, the logistics ma

2、nagement has already been used by many corporations. Using the logistics management system to manage the running of the corporation has been the main measure of the corporations. The paper firstly shows us the concept of the logistics management system. Secondly, because the logistics management sys

3、tem has a great effect on the medication industry, it does the analyzing of requirement, Thirdly, it has a simple introduction to the eight parts of the system on the function. Then it emphatically narrates the design and the function achievement of the system. Finally for the problem which existing

4、, it suggest the schema which is solving Keywords logistics management search settle accounts statements 目 录一.引 言3二.需求分析42.1 开发背景42.2 初步设计42.3 实现目标52.4 系统结构图52.5 系统流程图62.6 开发环境62.6.1 硬件环境62.6.2 软件环境6三.概要设计73.1 销售管理73.2 进货管理73.3 库房管理73.4 调货管理83.5 财务管理83.6 账目管理83.7 基础信息管理93.8 系统管理10四.详细设计及功能实现104.1 数据

5、库设计104.2 主程序界面设计114.3 系统登录界面设计124.4 功能模块设计与功能实现134.4.1 查询类模块144.4.2 报表类模块174.4.3 登记类模块194.4.4 结账类模块224.4.5 可修改类模块254.5 其它模块设计264.5.1操作员管理264.5.2权限管理设计274.5.3 数据备份与恢复29五.存在问题及解决方案30六.结 论31七.参考资料31一.引 言物流管理是指在社会再生产过程中,根据物质资料实体流动的规律,应用管理的基本原理和科学方法,对物流活动进行计划、组织、指挥、协调、控制和监督,使各项物流活动实现最佳的协调与配合,以降低物流成本,提高物流

6、效率和经济效益。物流管理的内容包括:(1)、对物流活动诸要素的管理,包括运输、储存等环节的管理;(2)、对物流系统诸要素的管理,即对其中人、财、物、设备、方法和信息等六大要素的管理;(3)、对物流活动中具体职能的管理,主要包括物流计划、质量、技术、经济等职能的管理等。现在物流管理的流程一般分为10个阶段:订单处理作业采购作业进货入库作业库存管理作业补货及拣货作业流通加工作业出货作业处理配送作业会计作业营运管理及绩效管理作业 过去物流管理着重在企业内部作业与组织的整合,对下游顾客的对应,是以服务与品质为主要重心。随着物流业的发展物流管理从物的处理,提升到物的加值方案设计、解决和管理上。可以为客户

7、提供度身订造式的,并带有个性化的服务,企业逐渐转向强调跨企业界限的整合,使得顾客关系的维护与管理变得越来越重要. 二.需求分析2.1 开发背景本系统假设为一个医药品的销售公司做物流管理系统。随着我国市场经济的蓬勃发展和对医药品的需求迅速增加,医药行业也相应的处于一个飞速发展的时期。行业的快速发展必然导致各企业之间的竞争更加激烈,为了使自己的企业在竞争中能够站稳脚跟,不被激烈的竞争环境所压倒,必然要求企业加强对自身的管理,提高企业的经营效率。由于医药行业的特殊性,造成医药品的种类繁多,业务量巨大,若仍然采用人工的记账方式,必然不能满足企业的需求,企业需要利用计算机来进行医药品的物流管理,因此需要

8、构造一个物流管理系统。2.2 初步设计 由于本系统假设为一个医药品的销售公司做物流管理系统。针对医药品销售的特点,初步设计本系统包含以下几个功能模块:(1) 销售管理:包含销售登记,销售退货,销售报表。(2) 进货管理:包含入库登记,入库退货,入库报表。(3) 库房管理:包含库存查询,库存盘点,库存修改,库存报表。(4) 调货管理:包含调货登记,调货查询。(5) 财务管理:包含收款单,收款查询,付款单,付款查询。(6) 账目管理:包含财务结账,当月结账,销售查询统计,入库查询 统计,销售退货查询,财务报表,月报表。(7) 基础信息管理:包含药品信息,员工信息,客户信息,供应商信 息,仓库基本信

9、息。(8) 系统管理:包含操作员管理,权限设置,数据备份,数据恢复。2.3 实现目标本医药物流管理系统在完成运行后,需要达到以下效果:(1) 操作简单,易于上手。(2) 查询方便灵活,浏览简单,明目。(3) 数据存储安全可靠。(4) 功能全面,实用性强。(5) 自动化信息管理。2.4 系统结构图 图1. 医药物流管理系统结构图2.5 系统流程图 图2. 医药物流管理系统流程图2.6 开发环境 2.6.1 硬件环境 主频50MHz以上 内存10MB以上 240MB以上的硬盘空间 VGA或更高的分辨率显示器,1MB以上的显存 2.6.2 软件环境本系统是在 Windows XP 环境下,采用Mic

10、rosoft Visual FoxPro 6.0数据库开发工具进行构建系统。Microsoft Visual FoxPro 6.0是微软公司推出的可视化编程工具,它的开发效率高,成本低,投资小,见效快。Microsoft Visual FoxPro 6.0一直是中国台式机数据库的主流,易学,易用,易维护。三.概要设计通过前面的需求分析可以知道,本系统一共分为了8个系统模块,包括:销售管理,进货管理,库房管理,调货管理,财务管理,账目管理,基础信息管理,系统管理。每个系统模块下,包含了若干小的功能模块。每一个系统模块都实现其特定的功能。3.1 销售管理 销售管理模块主要实现销售方面的功能,它包含

11、销售登记,销售退货,销售调查三个功能模块。销售管理主要是针对公司的销售人员而设计,帮助公司对所销售的药品进行一个系统地记录。销售登记可以实现日常的销售开票,自动计算金额,多种结算方式。销售退货用于单据已开出的客户进行退货操作。销售报表实现按日期查询药品销售信息,可预览和打印销售报表。3.2 进货管理进货管理模块主要实现药品入库的功能,它包括入库登记,入库退货,入库报表三个功能模块。进货管理主要是针对公司的仓库管理人员而设计,此系统模块能帮助公司在药品入库的时候,对药品的各项信息进行系统地记录,可以大大减少进行手工记录时所犯的错误,提高公司的营运效率。入库登记实现入库登记操作,并自动计算金额,生

12、成入库票号。入库退货实现调用药品的基本信息,生成退货票号作为退货的凭证。入库报表实现按日期查询入库药品信息,打印和预览入库报表。3.3 库房管理库房管理模块是对药品在库房中的管理,它包括库存查询,库存盘点,库存修改,库存报表。此系统模块同样为仓库管理员而设计。由于同种药品入库有时间上的先后,而药品的信息也会随着时间的推移而不停的修改。因此库房管理模块就能实现对库存中的药品信息进行系统地管理。l 库存查询实现按不同条件查询库存信息,以页框和列表来浏览信息。l 库存盘点实现以表单的形式显示库存数量大于零的全部药品信息。l 库存修改实现查询和浏览信息功能外,还设置了修改,删除信息功能。l 库存报表实

13、现按条件查询库存信息,预览和打印库存报表。3.4 调货管理 调货管理用于实现对库存的药品在不同的仓库之间进行调动的记录。它包含调货登记,调货查询。与上面两个系统模块一样,此模块仍然为仓库管理人员设计。药品由于其种类繁多,信息复杂,在进行药品的调动时,对调动的信息进行记录也就显得尤为关键。调货登记完成各仓库间药品调货信息记录,自动生成调货票号,日期,以列表的形式显示调货结果。调货查询支持条件和日期查询,以页框和列表方式浏览调货信息。3.5 财务管理财务管理主要实现收款与付款的记录功能。医药品业务的流通量是非常巨大的,因此在财务上对收款与付款的信息记录也就非常繁琐。利用财务管理系统模块可以简化这些

14、操作,使用方便,简洁。财务管理包含收款单,付款单,收款查询,付款查询。收款单可实现查询和浏览收款信息,对未付款客户进行结款操作。收款查询能按不同条件查询收款信息,以页框和列表浏览收款信息。付款单可对供应商进行结款操作,能查询与浏览付款信息。付款查询与收款查询相似,可查询与浏览付款信息。3.6 账目管理账目管理所包含的功能模块较多,它主要是为公司的财务人员而设计。它可以大大简化公司财务人员的工作量,对公司的财务账目信息有一个系统的管理。账目管理系统模块包含财务结账,当月结账,销售查询统计,入库查询统计,销售退货查询,入库退货查询,财务报表,查询月报表。财务结账可完成日结账操作,可汇总每日结账信息

15、。当月结账完成月结账操作,统计汇总结账信息销售查询统计可查询与浏览销售信息,统计汇总销售信息。入库查询统计可查询与浏览药品入库信息,自动汇总入库药品信息。销售退货查询可查询与浏览销售退货的信息结果,快速浏览信息。入库退货查询与销售退货查询的功能实现相似。财务报表可按时间查询财务报表,以报表形式反映药品的进销存情况,预览和打印财务报表。查询月报表可按条件查询该月的药品进销存信息,可预览和打印此月报表。3.7 基础信息管理 基础信息管理模块是对公司的常用信息进行管理,如药品,员工,客户的信息等。这个模块相当于公司的档案管理,有大量的数据信息。它包含药品信息,员工信息,客户信息,供应商信息,仓库基本

16、信息。这些信息数据是其它功能模块实现的基础。药品信息实现浏览查询药品基本信息,可添加,修改,删除信息。员工信息提供了添加,修改,删除员工信息功能,也可查询浏览。客户信息实现了客户信息的添、删、改功能。供应商信息与上述三种功能模块实现的功能相似。仓库基本信息出了现了信息的添、删、改功能外,还能自动生成7位仓库编号。3.8 系统管理系统管理模块是针对系统的保护而设计的。此模块专为系统管理员而设计。此系统的管理操作可直接影响整个系统的操作管理。它包括操作员管理,权限管理,数据备份,数据恢复。操作员管理可以对操作员信息进行增加、删除、修改,可设置操作员密码。权限管理能查询操作员级别及使用权限,为一般操

17、作员设置权限。数据备份可以对库存中的数据信息实现备份功能。数据恢复可将数据备份的库存信息安原路经恢复。四.详细设计及功能实现4.1 数据库设计利用Microsoft Visual FoxPro 6.0新建一个数据库,名称为Medicamentmanage ,在此数据库中添加27个表:临时登记表Ltabdhdj, 临时日结表Ltabrj,临时入库登记表Ltabrkdj,临时入库退货表Ltabrkth,临时销售登记表Ltabxsdj,临时销售退货表Ltabxsth,临时月结表Ltabyj,调货登记表Tabdhdj,供应商信息表Tabgys,结算方式表Tabjsfs,库存表Tabkc,客户信息表Ta

18、bkh,权限表Tabpurview,日结表Tabrj,入库登记表Tabrkdj,入库结账表Tabrkjz,入库票号表Tabrkph,入库退货表Tabrkth,仓库信息表Tabstorage,销售登记表Tabxsdj,销售结账表Tabxsjz,销售票号表Tabxsph,销售退货表Tabxsth,员工信息表Tabyginfo,月结表Tabyj,月结初始化Tabyjcsh,药品信息表Tabypinfo。4.2 主程序界面设计 创建一个标准项目,名称为“医药物流管理系统”,在该项目中添加一个表单,名称为Fdesktop。在表单中插入名称为Vcxmain的ToolBar类。在各个按钮的Click事件中添

19、加类代码。 图3. 主程序界面 为了使操作更加简便,将常用的几种操作单独提出来,设计一个Vcxmain的Toolbar类。添加代码如下: 在“销售登记”按钮的Click事件中添加代码:do form formxiaoshoudj同理,在“入库登记”按钮中添加:do form formrukudj在“调货登记”按钮中添加:do form formtiaohuodj 在“库存查询”按钮中添加:do form formkcquery在“销售查询”按钮中添加:do form formxiaoshouquery在“入库查询”按钮中添加:do form formrukuquery在“财务结账”按钮中添加:

20、do form formcwjz在“药品信息”按钮中添加:do form formypmanage在“退出”按钮中添加:quit4.3 系统登录界面设计 用户进入系统前,必须进入系统登录界面,系统登录界面能够确认用户的身份及使用权限。 图4. 系统登录界面 首先要判断用户输入的用户名是否正确,然后判断用户输入的密码是否正确,如果正确,这根据用户选择操作员说拥有的权限级别为全局变量赋值,如果不正确,弹出系统警告。在进行编码的时候,首先将使用的数据表权限表打开:use databasetabpurview &打开数据表为了对所输入的操作员姓名与权限表中的姓名相比较,我们用权限表中的“操作员姓名”作

21、为索引文件:set order to 操作员姓名 &指定控制索引文件当输入姓名与密码以后,我们要判断所输入的操作员名称和密码是否正确。方法是先查找表中是否有所输入的名字,如果表中没有所输入的名字,则系统登陆失败,并显示登陆失败。在查询搜索名字时,可用以下语句:seek cname &快速查询判断错误,并显示错误界面:if alltrim(tabpurview.操作员姓名)!=cname cMessagetext=操作员错误,请重新输入!如果在表中找到了所输入的名字,则系统需要对所对应的密码进行比较判断,看是否能与名字所匹配,方法与上面的名字比较相似: if alltrim(tabpurview

22、.密码)!=ppassword cmessagetext=密码错误,请重新输入!当系统发现所输入的名字与密码都正确的时候,系统需要给此用户赋予表中相对应的权限,先判断用户的权限级别: purview=val(alltrim(tabpurview.权限级别) 再对应的各个系统模块,分别赋予相应的权限,以“销售管理”权限为例,将销售管理的权限赋值给全局变量: pxsgl=tabpurview.销售管理 &赋值给全局变量 4.4 功能模块设计与功能实现通过前面的需求分析可以知道,本系统共有8个部分,一共包含33个完整的功能模块。这33个功能模块,除去系统管理所实现的功能,其它的模块根据其实现的功能可

23、以分为以下几类:(1) 查询类模块:库存查询,调货查询,收款查询,付款查询, 销售查询统计,入库查询统计,销售退货查询, 入库退货查询。(2) 报表类模块:销售报表,入库报表,库存报表,财务报表,查询 月报表,库存盘点。(3) 登记类模块:销售登记,销售退货,入库登记,入库退货,调货 登记。(4) 结账类模块:收款单,付款单,财务结账,当月结账。(5) 可修改类模块:库存修改,药品信息,员工信息,客户信息,供 应商信息,仓库基本信息。 4.4.1 查询类模块由于本系统中含有大量的数据信息,而在实际的系统操作中,又需要对数据进行查询,因此在这些查询类模块中,我们要设计并实现查询这项功能。 图5.

24、 查询系统界面在本系统中,查询的种类分为两大类:分别为条件查询与时间查询。条件查询分为四种方式,分别为模糊查询(like) ,小于查询()和等于查询(=)。为了实现这条件查询的这几种方式,在创建表单的时候,须在表单上添加2个Combo控件,属性均为:RowSource RowSourceType,分别用来提供查询字段列表和查询条件列表。而如果模块中,要实现按日期查询,还需要在表单中加入2个Text控件,属性为Format Value,用来提供日期的输入。对于模块需要按条件还是日期来查询,在查询前,需要进行选择,为了实现这个选择功能,在表单设计时,需添加2个Check控件,用来分别选择查询的方式

25、。当选择查询的类型时,只要在查询方式前加上勾,系统就将采用此种查询方式,系统判断是否选择,使用下面的方法:if thisform.check1.value=1 &选择了该方法if thisform.check1.value=0 &为没选择该方法 当系统发现选择了该查询方式,则需要设置控件有效来使用此方法: store.t.to bo1.enabled,bo2.enabled,thisform.text1.enabled &设置控件有效 若发现未使用该方法,只需要将第一句改为: store.f.to bo1.enabled 即可。这样也就实现是选择条件还是日期来查询。如果按选择条件查询,系统在查

26、询的时候,将查询过程分成三个情况。 第一种情况为查询操作失败,出现这种情况,主要是使用查询的时候,没有按照要求来进行查找操作,如没有填写查询的字段,没有选择查询的方式,出现这种情况,系统会提示查询失败,需要重新查询。系统判断出没有填写完整的查询,也就是没有选择查询方式为空和查询的内容为空,输出错误提示: if empty(ccif) or empty(ctext) messagebox(请选择查询条件!,48,操作失败!) 此时查询失败,需要重新查询第二种情况为模糊查询,实现模糊查询在Microsoft Visual FoxPro 中显得比较容易,因为Visual FoxPro的语言代码中有一

27、个很特殊的符号,这个符号就是“%”。“%”在Microsoft Visual FoxPro 的数据库代码中叫做通配符,使用通配符可以连接任意数目的字符。因此要实现模糊查询,只需要先利用系统查出带有所输入字段的所有目标,而“%”在语句中则表示其他所有任意字段字符。先判断出所选的查询为模糊查询(like): if bo2.displayvalue=likethen然后找出所有与所写的字段相匹配的信息,其中非所写字段的信息就用通配符所代替: fff=alltrim(bo1.displayvalue)+alltrim(bo2.displayvalue) +alltrim(thisform.text1.

28、value)+% 这样,系统就可以找出所要查询的所有信息。 第三种情况为除去模糊查询的其它查询,包括小于,大于,等于查询,这三种查询与模糊查询相比,唯一的不同就是所给的字段微可比较的,而且不需要系统对不确定的信息进行搜索,也就是没有通配符。 fff=alltrim(bo1.displayvalue)+alltrim(bo2.displayvalue); + +alltrim(thisform.text1.value)+上面就是条件查询的几种方式。当然,除了条件查询的方式外,还可以按时间日期进行查询。如果是按照时间日期查询,与条件查询相似,时间查询可以分为查询失败和日期查询两个情况:sdate

29、与 edate 分别指向了时间查询的日期起止时间,若起止时间为空,则查询失败 if sdate=/ or edate=/ messagebox(请输入起始时间!,48,操作失败!) 如果日期均不为空,则系统将查找起止日期之间的信息,将信息存入临时表Lindeping以供使用。以销售登记查询为例,我们将销售登记表中的销售日期作为起止日期查询标准,将满足日期的所有数据信息装入Lindeping 。 fff=between(销售日期,sdate,edate) select * from tabxsdj where &fff.into cursor lindeping 有的模块使用查询功能的同时,希望

30、能够实现统计功能。我们可以通过查询语句将符合条件的记录存入临时表Lindeping中,在对临时表Lindeping 进行统计。计算方法为:统计品种数:品种数=临时表Lindeping中的记录总数 select lindeping creccount=recount( )统计数量:对符合条件的记录进行求和计算 sum 数量 to jhcount统计金额:对符合条件的记录进行求和计算 sum 金额 to jhje4.4.2 报表类模块 本系统中所实现的报表类模块功能大体一样,均包含打印,打印预览,以及使用查询罗列出所需的信息。 在系统中单单实现打印与打印预览是很容易的,只要在表单的相应位置写入简单

31、的语句即可实现。在“打印预览”按钮的Click事件中加入: report form reportxiaoshou to print preview &打印预览报表在“打印”按钮的Click事件中加入: report form reportxiaoshou to print &打印报表这样,利用上述的代码就可以实现将表单grid控件中所罗列的数据以表单的形式打印出来。在设计表单类模块的时候,关键是要能把所查询的数据能够罗列出来。为了实现该功能,我们首先应该将查询的数据输入到临时表中。以销售报表为例,我们需要将所输入的查询时间范围内的所有数据线找出来,以销售票号作为索引,将结果输入到临时表Lind

32、eping 中:select *; from medicamentmanage!tabxsdj; where between(出库日期,sdate,edate); order by tabxsdj.销售票号; into cursor lindeping &查询结果输出到临时表中然后我们需要实现将所找到的数据输入表单的到grid控件,也就是我们可以清楚看到的列表中:现将指针移动到临时表的顶端,如果没有我们要找的信息,指针移动到最后一条记录,然后显示出无记录的信息go top &指针移动到表顶端 if eof() &空信息 go bottom &记录指针移动到最后一条记录 messagebox(无

33、记录!,48,信息窗口)如果临时表中发现了由数据信息存在,则开始进行数据的录入: thisform.grid1.recordsource=lindeping mand1.enabled=.t. mand2.enabled=.t.如果上述语句=.f. 则表示不用输入,在前面无信息输入的时候,可以用此语句完成信息的不输入状态。 4.4.3 登记类模块登记类各个模块所实现的功能比较繁多,每个模块都比较大,但这些模块都有一些共同的功能,而这些功能在登记类模块是一些核心功能,这些功能包括登记,保存和自动生成各种票号。自动生成票号功能是随着登记功能的实行而启动实现的。当单击“登记”按钮时,将清空表单上相关

34、的内容,做好接受用户输入信息的准备。系统将自动生成票号,已入库登记为例,入库票号由系统日期,字母“rkd”,四位数字组成。首先判断入库登记表“Tabrkdj”中的入库票号是否为空,如果为空,则入库票号等于“系统日期+rkd+0001”,如果不为空,则入库票号等于“系统日期+rkd+四位数字编码加1”。先选定表,这里选择入库登记表,将月份与日期的信息先提出select tabrkdjlmonth=padl(alltrim(str(month(date(),2),2,0) &月份信息lday=padl(alltrim(str(day(date(),2),2,0) &日期信息在判断入库票号是否为空,

35、如果为空,则以0001结尾if empty(入库票号) set cent on thisform.text2.value=alltrim(str(year(date(),4)+-+lmonth+-+lday+rkd0001)如果入库票号不为空,则需要先找出表中最大的票号 select max (入库票号) from tabrkdj into array a 找到最大的票号后,需要在票号后面加1,形成所需的新票号。 cend=val(substr(a(1),14)+1 &票号尾数+1thisform.text2.value=alltrim(str(year(date(),4)+-+lmonth+

36、-+lday+rkd+padl(alltrim(str(cend,4),4,0) &形成新票号thisform.text3.value=date()在将所输入的信息进行登记,由于在登记的时候不允许同时保存,和退出,但可以取消,因此要设置保存csave 和退出功能cexit无效,而登记cadd 和取消cexit有效。mandgroup1.cadd.enabled=.f.mandgroup1.csave.enabled=.t.mandgroup1.ccancel.enabled=.t.mandgroup1.cexit.enabled=.f.以上代码可以实现登记按钮的功能当所填信息完成时,我们需要单

37、击“保存”按钮。仍以入库登记为例,当我们单击“保存”按钮时,将临时表中的入库信息保存到入库登记表“Tabrkdj”中,将临时表中的入库信息汇总后保存到入库票号“Tabrkph”表中,在库存信息表“Tabkc”查找该药品,如果找到,则修改库存数量,如果没找到,则在库存信息中添加该药品的信息,并清空临时表。首先完成临时表的信息保存到入库登记表中 thisform.grid1.recordsource=tabrkdj &赋数据源 select tabrkdj &选择Tabrkdj工作区为当前工作区 append from databaseltabrkdj &把数据表中的记录追加到当前数据库文件尾,其

38、中ltabrkdj为临时入库信息表在数据记录的加入后,我们需要对临时表中的信息进行汇总 select ltabrkdj &选择临时入库登记表为当前工作区 pzs=reccount() sum 数量 to ccount &对数量字段求和完成了数据信息的汇总后,我们要将信息保存到入库票号得表中,对数据的各种信息,先设定其信息来源,如入库票号从表单中的text2控件中获得: rkph=thisform.text2.value 其它的信息仿照上述格式写,最后将信息加入到入库票号表tabrkph中insert into databasetabrkph values(rkph,pzs,ccount,yf,

39、sf,wf,gysname,date1,jsfs,sfjq,manager,jsr)最后就要完成对库存信息的更新,首先要选择工作区:select ltabrkdj接着,对表中的每一条信息和库存信息表中的进行比较,找出相同的药品,在寻找信息的时候,以药品编号作为索引,检查药品编号与仓库名称相同的信息: go top &将指针移动到表的顶端 do while !eof() &用循环的方法来进行查找 select *; from medicamentmanage!tabkc;where 药品编号=ltabrkdj.药品编号 AND 仓库名称=ltabrkdj.仓库名称; order by tabkc

40、.药品编号; &索引为药品编号 into cursor lindeping &将信息存入临时表中 如果库存表中没有相同的药品,则直接将信息存入到库存表中 if reccount()1 & 没有找到一样的药品 insert into tabkc values(ltabrkdj.药品编号,ltabrkdj.仓库名称,ltabrkdj.药品名称,ltabrkdj.简称,ltabrkdj.剂型,ltabrkdj.货位,ltabrkdj.产地,ltabrkdj.规格,ltabrkdj.包装,ltabrkdj.单位,ltabrkdj.商标,ltabrkdj.批准文号,ltabrkdj.批号,ltabrkd

41、j.进价, ltabrkdj.数量,ltabrkdj.金额,ltabrkdj.保质期) &追加新记录 如果找到了一样的药品,则需要将原有的药品信息表更新,使用update 语句来实现。 update tabkc set 药品名称=ltabrkdj.药品名称,库存数量=库存数量+ltabrkdj.数量,单价=ltabrkdj.进价,库存金额=库存数量*单价 where 药品编号=ltabrkdj.药品编号 在执行完操作后需要将临时表清空 use databaseltabrkdj exclusive &以独占方式打开数据表 zap &清空数据表 上述三种功能是登记类模块的核心功能,只要实现了这三种

42、功能,登记类模块的其他功能也就容易实现。 4.4.4 结账类模块顾名思义,结账类模块所要实现的核心功能就是要结账,本系统主要实现日结账与月结账功能。在这类模块中,用到最多的是汇总数据如语句:sum 金额to xiaoshou 可以实现汇总入库金额 图6. 日结账界面图对于日结账,我们要实现的功能方法与罗列数据到表单中的方法相似,我们用循环的方法一次加入数据信息: select ltabrj &选择临时日结表作为当前工作区go topdo while !eof() &以循环方式进行数据追加insert into tabrj values(ltabrj.操作员,ltabrj.销售,ltabrj.销售退货,ltabrj.入库,ltabrj.入库退货,ltabrj.日期)skip &记录指针向下移动一条记录enddo在输入完数据后,我们依然要进行清空表的操作use databaseltabrj exclusivezap而对于月结账,在实现上述功能之前还需要对月份进行一次选择 图7. 月结账选择界面在系统中添加一个名为Yuejie1的表单,其中需要添加一个Combo控件,用于提供结账月份的列表,先要定义月结的开始和结束时间,分别以startdate和enddate 来表示 public star

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号