版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安财经学院《信息系统分析与设计》课程设计报告题目进销存管理系统姓名专业信息管理与信息系统班级XXXX学号XXXXXXXX一、系统概述 1(一)序言 1(二)系统任务 1(三)系统目标 2(四)人员分工 2二、系统需求分析 2(一)、需求分析 2(二)、可行性分析 31、技术方面的可行性 32、经济可行性研究 33、操作可行性研究 4三、系统分析 4(一)业务流程分析(销售部分) 4业务流程图图例说明: 4(二)数据流程分析 5(三)数据字典 7四、系统设计 11(一)系统总体设计 111、系统总体结构 12(二)系统的详细设计 151、代码设计 152.输入输出设计 15(三)数据库设计 171、概念结构设计 172、逻辑结构设计 183、物理结构设计 19五、系统实施 20(一)开发工具的选择 201、SQL介绍 202、Visualbasic编程语言简介 213、SQLServer数据库简介 21(二)源程序清单 211、VB源代码 222.数据库源代码 31供应商资料表 31(三)、数据库中部分表的关系及约束 33(四)运行界面 34连接数据库界面: 34(五)、系统调试、测试 401、测试的意义 402、测试原则 403、系统测试的方法 414、测试用例 41课程设计总结 42致谢 43参考文献 44一、系统概述(一)序言社会在不断进步,科学技术和管理也在迅速发展,这使得每个企业得到了前所未有的发展机遇,但同时也必须面临市场竞争的严重挑战,在日趋激烈的竞争环境下,企业要求生存、发展,就必须对企业进行科学的管理。而用计算机来处理企业内部信息间的流通和使用,既可以实现数据信息的共享,控制好数据的冗余度,并使企业有统一的管理,提高信息的利用率;又可以实现整体数据的结构化,这样就可以大大的提高企业决策的效率。中小企业在我国经济发展中具有重要地位,目前我国的中小企业数量多,地区分布广泛,行业分布跨度大。随着全球经济一体化的发展和电子商务的兴起,中小企业之间的竞争将越来越激烈。网络及电子商务的迅猛发展突破了时间、空间的局限性,给中小企业带来了更多的发展机会,同时也增大了企业之间的竞争强度。这就要求中小企业必须改变企业的经营管理模式,提高企业的运营效率。目前,我国中小企业的信息化水平还很低,相比国外企业,还只处于刚开始始用的阶段。随着技术发展,电脑操作及管理日趋简化,电脑知识日趋普及,同时市场经济快速多变,竞争激烈,企业采用电脑管理进货、库存、销售等诸多环节也已成为趋势及必然。物资、人才、资金并称为企业的三大资源,控制物流是每个企业都需要做好的事情。本次设计即是针对企业在进、销、存管理方面所做的分析,进销存管理就是要权衡库存费用(包括商品价值,订货费用,短缺等),使总费用最低。进销存管理系统的职能大体上包括采购管理、销售管理和库存管理。本软件是一款通用性极强企业进销存管理系统,软件囊括了企业进、销、存管理的全过程。(二)系统任务进销存管理系统是一个将资料管理、采购管理、销售管理和库存管理等业务融为一体的系统。一个完善的进销存管理系统的任务主要包括以下几项:1、资料管理,主要负责管理供应商资料、商品资料以及客户资料。2、采购管理,主要负责采购管理,包括采购单、采购入库和采购查询3、销售管理,主要负责进行销售管理,包括销售单、销售出库和销售查询4、库存管理,主要负责进行库存管理,包括库存维护、价格管理和库存盘点5、统计分析,主要负责统计企业的出入库情况以及成本收益。6、系统管理,主要负责管理用户信息和用户登录,以及初期建账。(三)系统目标进销存管理系统是一个现代化软件系统,通过集中式的信息数据库,将进、销、存等经营业务有机地结合起来,达到共享数据、降低成本、提高效率和改进服务等目的。一般而言,通过使用进销存管理系统,可以在以下几方面提高企业的管理水平:更好地了解供应商和客户信息,加强对商品资料的管理。降低采购成本,及时了解采购情况。准确了解销售动态,及时调整营销策略。了解库存情况,及时进行价格管理以及库存数量维护。减少储备资金占用,加速资金周转,提高资金利用率。提供商业数据智能分析,了解商业动态,为管理者提供决策依据。(四)人员分工本次系统开发由XX、XXX、XX三人一起完成。XX主要负责采购方面,XX负责销售方面,XX负责库存方面。后台数据库共同完成。二、系统需求分析(一)、需求分析通过调查,要求系统需要具有以下功能:=1\*GB3①.由于操作人员的计算机知识普遍较差,要求有良好的人机界面。=2\*GB3②.由于该系统的使用对象多,要求有较好的权限管理。=3\*GB3③.方便的数据查询,支持多条件查询。=4\*GB3④.基础信息管理与查询(包括商品信息、客户信息、供应商信息)。=5\*GB3⑤.通过计算机,能够直接“透视”仓库存储情况。=6\*GB3⑥.完善的商品采购信息、商品销售信息进行管理。=7\*GB3⑦.方便、健全的结账功能。=8\*GB3⑧.当外界环境(停电、网络病毒)干扰本系统时,系统可以自动保护原始数据的安全。=9\*GB3⑨.数据计算自动完成,尽量减少人工干预。 =10\*GB3⑩.系统退出。(二)、可行性分析1、技术方面的可行性将开发是进销存管理系统编程已经具备了完备、成熟的理论和体系结构,VisualBasic编程与数据库相结合进行开发的技术日趋成熟。=1\*GB3①与工程产品相关的关键技术概念本系统的关键技术在于VisualBasic编程的程序设计与数据库的结合,将所有的数据信息都放入数据库中进行存储,而这些数据信息的调用则完全由程序来完成,即“程序设计数据化,数据管理程序化”思想。=2\*GB3②关键技术的理论基础依据“程序设计数据化,数据管理程序化”的设计思想,将数据库文件与程序设计紧密地集合在一起。=3\*GB3③技术可行性结论本系统产品采用VisualBasic编程与数据库相结合的方法进行开发,而现存的进销存管理系统理论和技术有待进一步完善,因此进销存管理系统应用软件的开发手段是完全可行的。2、经济可行性研究全面企业的经营管理模式,能为企业带来更多的客户资源,提高企业的经济效益,方便管理者对企业进行管理,也方便客户对企业的了解,能及时的让企业管理者与客户进行沟通,以便满足客户的需要。进销存管理系统的开发不需要增加额外的费用,并且对员工进行培训的费用不多。在程序运行方面,由于系统比较小,没有必要进行太多的维护,而且进销存管理系统的投入,能够提高工作效率,减少工作人员,进而减少劳动资源的投入,也可以方便工作人员对货物的查询与管理,使企业的管理向高质量、现代化的方向发展。进销存管理系统是一个信息化、智能化和先进管理理念的集合体。而管理是一个动态过程,在其运行过程中要采取多项措施。所以在管理中获得经济效益是一个综合效益,要对它进行直接定量的分析是比较困难的。一般新系统带来的经济效益是可观的,其最主要的表现就是减少了企业管理费用和人力开支。而其它一些繁琐的事物都通过新系统来加以分析解决,不仅节省了大量的时间,还为企业的各项决策提供了宝贵的资料,为企业带来巨大的经济效益。3、操作可行性研究本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。而整个进销存管理系统采用最友好的交互介面,简介明了,不需要对数据库进行深入的了解。综合以上三方面,该系统具有很高的开发可行性,无论是从技术上或者经济上还是操作上。因此,可以设计该系统的业务流程图,数据流程图,并建立数据字典。三、系统分析(一)业务流程分析(销售部分)销售人员根据销售计划和销售情况生成取货单向库存管人员取货,库管员将生成的出货单给销售人员,销售人员根据销售情况生成销售报表进行存储,同时向客户开销售单。业务流程图图例说明:业务处理单位业务流单据、文档存储处理过程(二)数据流程分析数据流程图图例说明:数据流外部实体处理存储顶层数据流分析:基于本系统为单机开发,数据由用户录入采购信息、销售信息、库存信息等到进销存管理系统中,系统将反馈出用户所需的统计信息,库存信息等。顶层数据流程图第一层数据流分析:采购部门将采购的数据传递给库存部门和财务部门,销售部同理。库存部则只需通过库存管理来生成库存表。第一层数据流程图销售管理数据流分析:销售人员根据销售计划或销售情况开销售单给客户同时增加销售明细给财务,销售人员根据已确定的销售数据填写取货单,向库存部取货。销售管理业务流程图数据元素条目编号:E1名称:供应商数据元素条目编号:E1名称:供应商编号说明:企业供应商的编码数据值类型:离散类型:字符型长度:4有关数据结构:供应商资料,采购资料数据元素条目数据元素条目编号:E2名称:商品编号说明:企业销售的商品的编号数据值类型:离散类型:字符型长度:6有关数据结构:商品资料,采购资料,销售资料,库存资料数据元素条目数据元素条目编号:E3名称:客户编号说明:企业销售客户的编码数据值类型:离散类型:字符型长度:4有关数据结构:客户资料,销售资料数据元素条目数据元素条目编号:E4名称:销售单号说明:销售人员编辑销售单时的代码数据值类型:离散类型:字符型长度:6有关数据结构:销售资料数据数据结构条目编号:F1名称:供货商资料说明:采购时收集的供应商信息结构:供应商编号供应商名称地址电话传真信誉等级提供商品数据数据结构条目编号:F2名称:采购资料说明:收集有关采购的信息结构:采购单号供应商编号采购日期采购员商品编号采购数量采购单价是否核销数据数据结构条目编号:F3名称:销售资料说明:销售时收集的客户信息、商品信息结构:销售单号客户编号销售日期商品编号销售数量销售员是否核销数据数据结构条目编号:F4名称:库存资料说明:收集有关库存的信息结构:商品编号商品状态库存数量最低储备正常储备最高储备数据数据结构条目编号:F5名称:客户资料说明:收集有关客户的信息结构:库户编号客户名称地址电话传真信誉等级所需资料数据数据结构条目编号:F6名称:商品资料说明:有关商品的信息结构:商品编号商品名称条形码计量单位供应商编号供应商地址商品说明数据数据流条目编号:G1名称:销售单说明:销售商品时,销售人员填写简单的销售信息数据来源:销售员数据流向:P3.1、P3.2包含的数据结构:客户编号销售员总共金额是否核销不含税价税额数据数据流条目编号:G2名称:销售明细说明:销售商品时,销售人员填写的具体的销售信息数据来源:销售员数据流向:D3包含的数据结构:商品编号销售数量成本单价销售单价总共金额是否核销不含税价税额数据数据存储条目编号:D2名称:销售单表说明:销售商品一定时期时销售人员填写的汇总的销售信息有关的数据流:P3.1→D2D2→P3.2结构:客户编号销售员总共金额是否核销不含税价税额数据数据存储条目编号:D3名称:销售单明细表说明:销售商品一定时期时销售人员填写的汇总的销售明细信息有关的数据流:P3.2→D3结构:商品编号销售数量成本单价销售单价总共金额是否核销不含税价税额处理功能处理功能条目编号:P3.2名称:添加销售明细表说明:填写具体的销售单价、成本等信息输入:D2→P3.2输出:P3.2→D3处理:销售人员根据具体的销售情况,登记销售明细,一定时间内进行销售明细整理,生成销售明细报表处理功能处理功能条目编号:P3.1名称:添加销售单表说明:填写一些供客户查看的销售基本信息输入:销售员→P3.1输出:P3.1→D2处理:销售人员根据供客户的销售情况,登记销售明细,一定时间内进行销售明细整理,生成销售明细报表处理功能处理功能条目编号:P3.3名称:销售出库说明:将取货单递给有关库存人员,以便库存管理输入:D2→P3.3输出:P3.3→D4处理:将客户已买下的商品进行出库处理,为库存提供取货单外部实体外部实体条目编号:1名称:销售员说明:销售部门工作人员输入数据流:输出数据流:销售员→P3.1、销售员→P3.2、销售员→P3.3个数:(根据企业情况而定)外部实体外部实体条目编号:2名称:客户说明:企业的销售对象输入数据流:P3.1→客户输出数据流:个数:(根据企业情况而定)外部实体外部实体条目编号:3名称:库存管理员说明:企业库存的管理人员输入数据流:P3.3→库存管理员输出数据流:个数:(根据企业情况而定)四、系统设计(一)系统总体设计1、系统总体结构(1)结构设计系统采用了3层结构设计。首先是界面层,包括用户操作,如资料管理、采购管理、销售管理、系统管理等。其次业务逻辑层,包括系统基础类、商品信息类等等,提供界面层调用的方法和类。最后是数据库,为整个系统提供数据服务。系统采用的层次结构关系如图:(2)系统功能模块图根据系统所要实现的功能,按照结构化程序设计的原则,可以将整个系统划分为若干个功能模块。根据以上对进销存管理系统的任务和目标的分析,一个标准的进销存管理系统应该包含如图所示的一些功能。每个功能模块又包含一系列的子模块。功能模块细分:=1\*GB2⑴资料管理“资料管理”模块用来管理供应商资料、商品资料以及客户资料,其功能模块如图所示。=1\*GB3①“供应商资料”模块“供应商资料”模块负责维护供应商的基本信息。供应商资料对于采购而言非常重要,是进销存管理系统的重要资料。供应商资料主要包括供应商编号、供应商名称、地址、电话、传真、信誉等级、提供商品和简介等。良好的供应商资料管理有助于企业对采购进行管理和控制,从而降低企业的采购成本。=2\*GB3②“商品资料”模块“商品资料”模块负责维护商品的基本信息,基本信息一般变动较小。商品资料主要包括商品编号、商品名称、条形码、计量单位、供应商编号、供应商地址和商品说明等。不同的行业、不同的企业所需的商品资料差别较大。=3\*GB3③“客户资料”模块“客户资料”模块负责维护企业客户的基本信息。客户是企业生存的根本,可以是个人或者企业。客户信息是企业需要重点维护的资料。客户资料主要包括客户编号、客户名称、地址、电话、传真、信誉等级、所需商品和简介等。客户资料变动较大,开发系统时应该注意系统的可扩展性和可维护性。(2)销售管理“销售管理”模块主要负责进行销售管理,包括销售单、销售出库和销售查询。销售管理是企业的重要活动,直接面向客户和市场。其功能模块如图所示。=1\*GB3①“销售单”模块“销售单”模块负责录入销售单和销售明细单。销售单主要包括销售单号、客户编号、销售日期、销售员、是否核销、操作人员、总共金额、不含税价和税额等项。销售单明细主要包括编号ID、销售单号、商品编号、销售数量、成本单价、销售单价、总共金额、不含税价和税额等项。=2\*GB3②“销售出库”模块“销售出库”模块负责管理商品的销售出库情况。销售出库时需要将商品库存数量减去销售单明细中的销售数量。最后,销售单的“是否核销”标志变为“已核销”=3\*GB3③“销售查询”模块“销售查询”模块负责查询销售单信息以及销售单核销情况。具体模块说明:本次系统的实践中,我主要负责资料管理模块和销售模块,每个模块中设计有3个窗体。下面我说一下具体每个窗体可以实现的功能:(1)供应商资料=1\*GB3①可根据已存在系统中的供应商的资料进行供应商编号或供应商名称来进行显示查询=2\*GB3②添加新的供应商资料=3\*GB3③修改已存在的供应商的资料=3\*GB3③删除供应商资料(2)商品资料(具体功能同供应商资料)(3)客户资料(具体功能同供应商资料)(4)销售单销售单中包含了两个窗体,一个是粗略的销售单,另一个是销售明细单。两个界面的具体功能基本一样。=1\*GB3①根据销售单号或客户编号来查询销售信息=2\*GB3②在窗体中以表的形式显示出销售信息=3\*GB3③添加销售单=4\*GB3④修改销售单(5)销售出库=1\*GB3①根据销售单号或客户编号来查询销售信息=2\*GB3②在窗体中以表的形式显示出销售信息=3\*GB3③将将要出库的销售信息进行出库处理(6)销售查询=1\*GB3①根据销售单号或客户编号来查询销售信息=2\*GB3②自定义一段想要查的时间段可以在窗体中显示出该段时间段内的销售信息(二)系统的详细设计1、代码设计代码是以适当的符号来表达客观实体的属性及特征。有标识、分类统计检索、排序、对象描述的作用,一般根据唯一性原则、合理性原则、适用性原则、规范性原则、可扩充性原则和简明性原则来进行设计,本系统中该系统采用层次代码设计方法。编码名称前2、3位后2、3位长度供应商编号GY(汉字拼音缩写)自由数字4客户编号KH(汉字拼音缩写)自由数字4商品编号SP(汉字拼音缩写)自由数字6销售单号XS(汉字拼音缩写)自由数字62.输入输出设计输入设计:输入界面的设计我们不仅考虑到数据输入窗口的屏幕格式,而且考虑到如何使输入数据的错误率尽可能的减小。输入的数据量越小,出错的几率越小,所以,在保证输入数据完整的同时,我们尽量把界面设置的简单大方。输出设计:在输出设计上,主要采用日常通用格式输出,这样方便管理,查阅。输出设计的内容:a确定输出内容;b选择输出设备与介质;c确定输出格式。输出界面设计如图:例:供应商资料管理(三)数据库设计1、概念结构设计概念结构设计就是整个数据库设计的关键,它是将分析得到的用户需求抽象为信息结构即概念模型的过程。我们采用了自底向上的策略进行了概念结构的设计,即先定义各局部应用的概念模型,然后把它们集合起来,形成全局的概念结构。E-R图实体及其属性图实体及其联系图完整的实体联系图2、逻辑结构设计所谓的逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与信息系统所支持的数据模型相符合的逻辑结构。而E-R图向关系模型的转化要解决的问题是如何将实体和实体间的联系转换为关系模式,如何确定这些关系模式的属性和码。一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则分不同的情况讨论:若实体间联系为1:1,可转换为一个独立的关系模式,也可与任意一端对应的关系模式合并。若实体间联系为1:n,则在n端实体转换成的关系中加入1端实体转换成的关系码。若实体间联系为n:m,则将联系转换为关系,关系的属性为诸个实体的码加上联系具有的属性,而关系的码则为诸实体的码的组合。基于以上原则,可将上图转换为关系模型。每个关系的码用下划线表示。供应商资料表(供应商编号,供应商名称,地址,电话,传真,信誉等级,提供商品);商品资料表(商品编号,条形码,商品名称,计量单位,供应商编号,供应商地址,商品说明);客户资料表(客户编号,客户名称,地址,电话,传真,信誉等级,所需商品,简介);销售单表(销售单号,客户编号,销售日期,销售员,是否核销,操作人员,总共金额,不含税价,税额);销售明细表(编号ID,销售单号,商品编号,销售数量,成本单价,销售单价,总共金额,不含税价,税额);3、物理结构设计基于以上三条设计原则,本系统中关于数据库表结构设计如下:供应商资料表字段名称数据类型可否为空说明供应商编号Char(4)主键供应商编号为4位,以GY开头供应商名称Nvarchar(50)Notnull供应商名称地址Nvarchar(50)Null供应商地址电话Nvarchar(50)Null供应商电话传真Nvarchar(50)Null供应商传真信誉等级Char(2)Null信誉等级:优、良、差提供商品Text(16)Null供应商提供的商品简介Text(16)Null供应商简介商品资料表字段名称数据类型可否为空说明商品编号Char(6)主键商品编号为6位,以SP开头商品名称Nvarchar(50)Notnull商品名称条形码Char(10)Null商品条形码为10位计量单位Char(10)NotNull计量商品的单位供应商编号Char(4)外键父表为供应商资料表供应商地址Nvarchar(50)Null供应商地址商品说明Text(16)Null商品说明客户资料表字段名称数据类型可否为空说明客户编号Char(4)主键客户编号为4位,以KH开头客户名称Nvarchar(50)Notnull客户名称地址Nvarchar(50)Null客户地址电话Nvarchar(50)Null客户电话传真Nvarchar(50)Null客户传真信誉等级CharNull信誉等级:优、良、差所需商品Text(16)Null客户要求的商品简介Text(16)Null客户简介销售单表字段名称数据类型可否为空说明销售单号Char(6)主键销售单号为6,以XS开头客户编号Char(4)外键父表为客户资料表销售日期Datetime(8)Null销售日期销售员Nvarchar(50)Null销售员是否核销Char(6)NotNull是否核销:未核销、已核销操作人员Char(4)NotNull操作人员总共金额Float(8)Null销售单的总金额不含税价Float(8)Null不含税价税价Float(8)Null税额销售单明细表字段名称数据类型可否为空说明编号IDNumeric主键标识种子1、自增1销售编号Char(6)外键父表为销售单表商品编号Char(6)外键父表为商品资料表销售数量Float(8)NotNull商品的销售数量成本单价Float(8)NotNull商品的成本单价销售单价Float(8)NotNull商品的销售单价总共金额Float(8)NotNull销售单明细的总金额不含税价Float(8)NotNull不含税价=总共金额-税额税额Float(8)NotNull税额=总共金额*税率五、系统实施(一)开发工具的选择1、SQL介绍SQL全称是“结构化查询语言(StructuredQueryLanguage)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle、Sybase、Informix、SQLserver这些大型的数据库管理系统,还是像VisualFoxporo、PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。2、Visualbasic编程语言简介VisualBasic简称VB,是微软公司推出的一种可视化编程工具,是当今世界上应用最广泛的编程语言之一,它也被公认为是编程效率最高的一种编程方法。它开发速度快捷,具有语法简单易学的开发环境,是初学者的首选。VB提供可视化的开发环境,使用者可以像搭积木一样构建出程序的界面,而且它提供丰富的控件组,省去了自己编写代码的实现这些效果的麻烦,这样就可以把更多的精力放在程序功能方面的实现上。本系统中使用的是MicrosoftVisualBasic6.0中文企业版。3、SQLServer数据库简介MicrosoftSQLServer2000是新一代大型电子商务、数据仓库和数据库解决方案。SQLServer2000在分析服务、数据转换服务、数据仓库等方面引入了大量新特性。它为Web标准提供了强劲的支持,并为系统管理和调整提供了许多有力的工具。SQLServer2000在SQLServer7.0基础上对以下两个方面进行了极大的增强:(1)数据仓库分析服务。使用联机分析处理和数据开采工具满足了用户所有的商业分析需求。索引化视图。通过把查询结果存储在数据库中,以减少查询响应时间,大大改善了系统的性能。(2)电子商务对XML支持的增强。使用XML简化了对后端系统和数据转换的整合。Web数据访问。通过使用Web,而不需要额外的编程工作就可以建立SQLServer2000数据库和OLAP立方体的连接。分布式分区视图。将用户的数据存储在多个服务器上,从而增大了数据库的规模。安全性。SQLServer2000为你的应用提供了更高的安全策略。简化数据库管理。SQLServer2000提供了大量的监视和管理工具,从而大大减少了管理员的工作量。数据库复制。使用SQLServer2000可以在不同的系统之间进行合并、事务和快照复制。(二)源程序清单1、VB源代码供应商资料模块:OptionExplicitDimrsAsADODB.RecordsetDimSQLAsStringDimmsgAsStringDimIndexAsIntegerDimflagAsString'判断是新增记录还是修改记录PrivateSubCommand1_Click()CallLoadData'装载数据CallShowDataEndSubPrivateSubForm_Load()'初始化查询条件ComboBoxcboquery.AddItem("供应商编号")cboquery.AddItem("供应商名称")cboquery.ListIndex=0'默认查询条件为供应商编号'初始化信誉等级ComboBoxcboxy.AddItem("优")cboxy.AddItem("良")cboxy.AddItem("差")cboxy.ListIndex=0'默认信誉等级为优CallLoadData'装载数据CallShowData'显示数据EndSubPrivateSubLoadData()'装载数据DimcolNameAsString'保存所选择的查询条件DimcolValueAsString'保存所要查询具体的值DimstrWhereAsString'得到查询条件colName=cboquery.Text'取出条件的值colValue=txtquery.Text'取出所要查询的值'构建条件strWhere="where"&colName&"like'%"&colValue&"%'"Setrs=Nothing'查询供应商资料SQL="SELECT*FROM供应商资料表"&strWhere&"ORDERBY供应商编号"Setrs=SelectSQL(SQL,msg)SetMe.DataGrid1.DataSource=rsDataGrid1.RefreshIfrs.RecordCount=0Then'如果不存在记录'编辑控件可用性cmdadd.Enabled=True:cmdmodify.Enabled=False:cmddelete.Enabled=Falsecmdcancel.Enabled=False:cmdsave.Enabled=False'移动控件不可用ForIndex=0To3cmdmove(Index).Enabled=FalseNextIndexElse'编辑控件可用性cmdadd.Enabled=True:cmdmodify.Enabled=True:cmddelete.Enabled=Truecmdcancel.Enabled=False:cmdsave.Enabled=False'移动控件可用ForIndex=0To3cmdmove(Index).Enabled=TrueNextIndexEndIf'设置控件Enable值CallControlEnable(False)EndSubPrivateSubControlEnable(flagAsBoolean)'设置控件的Enable值ForIndex=0To6Me.txt(Index).Enabled=flagNextIndexMe.cboxy.Enabled=flagEndSubPrivateSubShowData()'在控件中显示数据Ifrs.RecordCount<>0Then'如果存在记录'为控件赋值ForIndex=0To4Me.txt(Index)=rs.Fields(Index)NextIndexMe.cboxy.Text=rs.Fields("信誉等级")Me.txt(5).Text=rs.Fields("提供商品")Me.txt(6).Text=rs.Fields("简介")EndIfEndSubPrivateSubCmdMove_Click(IndexAsInteger)'移动记录操作SelectCaseIndexCaseIs=0'移到第一条记录IfNotrs.BOFThenrs.MoveFirstCaseIs=1'移到上一条记录Ifrs.RecordCount<>0ThenIfrs.BOF=FalseThenrs.MovePreviousIfrs.BOF=TrueThenrs.MoveFirstEndIfCaseIs=2'移到下一条记录Ifrs.RecordCount<>0ThenIfrs.EOF=FalseThenrs.MoveNextIfrs.EOF=TrueThenrs.MoveLastEndIfCaseIs=3'移到最后一条记录Ifrs.RecordCount<>0ThenIfNotrs.EOF=TrueThenrs.MoveLastEndIfEndSelectCallShowDataEndSubPrivateSubCmdAdd_Click()'添加操作'所有控件重置CallControlClear'设置控件Enable值为可用CallControlEnable(True)'设置标志flag,表示所进行的操作为添加flag="Add"'所有移动按钮不可用ForIndex=0To3cmdmove(Index).Enabled=FalseNextIndex'添加、修改、删除按钮不可用,取消、保存按钮可用cmdadd.Enabled=False:cmdmodify.Enabled=False:cmddelete.Enabled=Falsecmdcancel.Enabled=True:cmdsave.Enabled=TrueEndSubPrivateSubControlClear()'重置控件ForIndex=0To6Me.txt(Index).Text=""NextIndexMe.cboxy.ListIndex=0EndSubPrivateSubCmdModify_Click()'修改操作Ifrs.RecordCount>0Then'如果存在记录'供应商编号不可以修改,其他控件可用txt(0).Enabled=False'设置控件Enable值CallControlEnable(True)'设置标志flag,表示所进行的操作为修改flag="Modify"'移动控件不可用ForIndex=0To3cmdmove(Index).Enabled=FalseNextIndex'添加、修改、删除按钮不可用,取消、保存按钮可用cmdadd.Enabled=False:cmdmodify.Enabled=False:cmddelete.Enabled=Falsecmdcancel.Enabled=True:cmdsave.Enabled=TrueElseMsgBox("没有可以修改的数据!")EndIfEndSubPrivateSubCmdDelete_Click()'删除操作OnErrorGoToErrMsg'错误处理Ifrs.RecordCount>0Thenmsg=MsgBox("删除该条记录吗?",vbYesNo)Ifmsg=vbYesThenrs.Delete'删除数据CallLoadData'重新装载数据'清空控件CallControlClear'设置控件Enable值为不可用CallControlEnable(False)Ifrs.RecordCount=0Then'所有移动控件不可用ForIndex=0To3cmdmove(Index).Enabled=FalseNextIndexEndIf'添加、删除按钮可用,修改、取消、保存按钮不可用cmdadd.Enabled=True:cmdmodify.Enabled=False:cmddelete.Enabled=Truecmdsave.Enabled=False:cmdcancel.Enabled=FalseMsgBox("成功删除的数据!")EndIfElseMsgBox("没有可删除的数据!")EndIfExitSubErrMsg:'报告出错信息MsgBoxErr.Description,vbExclamation,"出错"EndSubPrivateSubCmdSave_Click()'保存操作OnErrorGoToErrMsgIfNotCheckDataThenExitSub'如果数据不合法就退出Ifflag="Modify"Then'如果是修改数据msg=MsgBox("您确实要修改这条数据吗?",vbYesNo)Ifmsg=vbYesThenCallsetData'设置数据ElseExitSubEndIfElseIfflag="Add"Then'如果是添加新数据rs.AddNewCallsetData'设置数据EndIfrs.Update'更新数据'移动控件可用ForIndex=0To3cmdmove(Index).Enabled=TrueNextIndexcmdmodify.Enabled=True:cmddelete.Enabled=True:cmdadd.Enabled=Truecmdsave.Enabled=False:cmdcancel.Enabled=FalseIfflag="Add"ThenMsgBox("成功添加数据!")ElseMsgBox("成功更新数据!")EndIfCallLoadData'重新装载数据'定位到添加或修改记录Ifrs.RecordCount>0Thenrs.MoveFirstrs.Find("供应商编号='"&Trim(Me.txt(0).Text)&"'")IfNotrs.EOFThenCallShowData'重新显示数据EndIfExitSubErrMsg:MsgBoxErr.Description,vbExclamation,"出错"EndSubPrivateFunctionCheckData()AsBoolean'检查数据的合法性DimrstAsADODB.RecordsetDimmsgtAsStringmsgt=""'检查数据IfTrim(txt(0).Text)=""Then'检查供应商编号是否为空msgt="供应商编号为空;"'光标定位txt(0).SetFocustxt(0).SelStart=0txt(0).SelLength=Len(txt(0).Text)ElseIfNotLen(Trim(txt(0).Text))=4Then'检查供应商编号是否为4位msgt=msgt&"供应商编号不是4位;"'光标定位txt(0).SetFocustxt(0).SelStart=0txt(0).SelLength=Len(txt(0).Text)ElseIfTrim(txt(1).Text)=""Then'检查供应商名称是否为空msgt="供应商名称为空;"'光标定位txt(1).SetFocustxt(1).SelStart=0txt(1).SelLength=Len(txt(1).Text)EndIfIfNotmsgt=""Then'如果不为空,给出错误提示MsgBox(msgt)CheckData=False'返回FalseExitFunctionEndIf'检查唯一性SQL="select*from供应商资料表where供应商编号='"&Trim(txt(0).Text)&"'"Setrst=SelectSQL(SQL,msg)'如果是进行添加操作且已经存在该记录,提示重复添加Ifflag="Add"Andrst.RecordCount>0ThenMsgBox("该信息已经存在,重复添加!")'光标定位txt(0).SetFocustxt(0).SelStart=0txt(0).SelLength=Len(txt(0).Text)rst.CloseCheckData=False'返回FalseExitFunctionEndIfCheckData=True'合法返回TrueEndFunctionPrivateSubsetData()'为字段设置数据rs.Fields("供应商编号")=Me.txt(0).Textrs.Fields("供应商名称")=Me.txt(1).TextForIndex=2To4rs.Fields(Index)=Me.txt(Index).TextNextIndexrs.Fields("信誉等级")=Trim(Me.cboxy.Text)ForIndex=5To6rs.Fields(Index+1)=Me.txt(Index).TextNextIndexEndSubPrivateSubcmdCancel_Click()'取消操作CallShowData'重新在控件中显示信息Ifrs.RecordCount>0Then'所有移动控件可用ForIndex=0To3cmdmove(Index).Enabled=TrueNextIndexEndIf'设置控件Enable值为不可用CallControlEnable(False)'修改、删除、添加按钮可用,保存和取消按钮不可用cmdadd.Enabled=True:cmdmodify.Enabled=True:cmddelete.Enabled=Truecmdsave.Enabled=False:cmdcancel.Enabled=FalseEndSubPrivateSubCmdQuery_Click()'查询操作CallLoadData'装载数据CallShowData'显示数据EndSubPrivateSubCmdExit_Click()'退出操作进销存管理系统.Enabled=TrueUnloadMeEndSubPrivateSubForm_Unload(CancelAsInteger)'退出操作进销存管理系统.Enabled=Truers.CloseUnloadMeEndSub2.数据库源代码供应商资料表CREATETABLE供应商资料表( 供应商编号char(4)Primarykey,供应商名称varchar(50)NOTNULL, 地址varchar(50)NULL, 电话varchar(50)NULL, 传真varchar(50)NULL, 信誉等级char(4)NULL,提供商品textNULL,简介textNULL,)商品资料表:CREATETABLE供应商资料表(商品编号char(6)Primarykey,商品名称varchar(50)NOTNULL,条形码char(10)NULL,计量单位char(10)NOTNULL,供应商编号char(4)NOTNULL,供应商地址textNULL,商品说明textNULL,)客户资料表:CREATETABLE客户资料表(客户编号char(4)Primarykey,客户名称varchar(50)NOTNULL,地址varchar(50)NULL,电话varchar(50)NULL,传真varchar(50)NULL,信誉等级char(4)NULL,提供商品textNULL,简介textNULL,)销售单表:CREATETABLE销售单表(销售单编号char(6)Primarykey,客户编号char(4)NOTNULL,销售日期Datetime(8)NULL,销售员Nvarchar(50)NOTNULL,是否核销char(6)NOTNULL,操作人员char(6)NULL,总共金额float(8)NULL,不含税价float(8)NULL,税额float(8)NULL,)销售明细:CREATETABLE销售单明细表(编号IDNumeric(9)Primarykey销售单编号char(6)NOTNULL,商品编号char(6)NOTNULL,销售数量float(8)NOTNULL,成本单价float(8)NOTNULL,销售单价float(8)NOTNULL,总共金额float(8)NOTNULL,不含税价float(8)NOTNULL,税额float(8)NOTNULL,)(三)、数据库中部分表的关系及约束(四)运行界面连接数据库界面:用户登录:成功登陆后主界面:销售查询(按时间段查询结果如下):销售查询(按销售单号查询结果如下):删除操作:修改操作:修改成功:添加数据:出库处理:(五)、系统调试、测试1、测试的意义在开发软件系统的过程中,面对错综复杂的问题,人的主观认识不可能完全符合客观现象,与工程密切相关的各类人员之间的通讯和配合也不可能完美无缺,因此,在软件生命周期的每个阶段都不可避免地会产生错误。在每个阶段结束之前通严格的技术审查,尽可能早的发现所有差错。此外,在编码过程中还会不可避免地引入新的错误。测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。系统测试是将经过测试的子系统装配成一个完整系统来测试。为了发现缺陷并度量产品质量,按照系统的功能和性能需求进行的测试。系统测试的对象是整个应用软件系统,包括需求分析、系统总体设计、详细设计各阶段的文档以及源程序。系统测试的目的是精心选取那些易于发生错误的测试数据,以十分挑剔的态度,找出软件中的错误,并改正错误。系统测试是管理信息系统开发周期中一个十分重要而漫长的阶段,是保证系统质量与可靠性的最后关口,是对整个系统开
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 泉州经贸职业技术学院《保险法》2025-2026学年期末试卷
- 阳泉职业技术学院《经济应用文写作》2025-2026学年期末试卷
- 南昌理工学院《健康管理学》2025-2026学年期末试卷
- 渔业船员岗前理论实操考核试卷含答案
- 合成氨净化工操作安全知识考核试卷含答案
- 润滑油调合操作工安全综合评优考核试卷含答案
- 高压熔断器装配工安全意识模拟考核试卷含答案
- 液体二氧化硫工冲突管理评优考核试卷含答案
- 电化学反应工安全专项知识考核试卷含答案
- 电焊工岗前工作考核试卷含答案
- DB11-T 693-2024 施工现场临建房屋应用技术标准
- 评审咨询方案模板怎么写
- 2025河北雄安容港农业科技有限公司招聘工作人员30名笔试参考题库附带答案详解
- IP形象设计课件
- 足球无人机课件
- 建筑工程项目质量追溯与问题整改方案
- 人民城市人民建-人民城市为人民主题课件(含文字稿)
- 2025年社保业务考试试题及答案
- 大学食堂自营管理办法
- 银行网点装修施工难点及安全防盗措施
- 缅怀革命先烈-感恩幸福生活主题班会教案
评论
0/150
提交评论