1、第1章 系统概述1.1 背景在现代社会中管理的作用越来越显得重要和突出。一般来讲,管理通过计划、组织、指导与领导、控制等手段,为组织制定目标,应用组织的各种要素,以实现组织的目标。对企业来说,人们按照一定的营销计划、人力、物力资源,对人员、物质、资金等加以计划和协调,以达到预期的目的,即称为企业管理。传统的企业管理活动中,把人、才、物作为企业的主要资源。但是随着社会化大生产的不断扩大和社会对产品多样化的需求,人们越来越重视信息在生产经营及企业管理中的作用,并把它当作企业的一种极其重要的资源,人们称之为“信息资源”,信息资源的处理已经成为当今世界上一项主要的社会活动。社会的信息化,亦既是信息社会
2、。信息化是人类社会进步发展到一定阶段所产生的一个新阶段。信息化是在计算机技术、数字化技术和生物工程技术等先进技术基础上产生的。信息化使人类以更快更便捷的方式获得并传递人类创造的一切文明成果,它将提供给人类非常有效的交往手段,促进全球各国人们之间的密切交往和对话,增进相互理解,有利于人类的共同繁荣。信息化是人类社会从工业化阶段发展到一个以信息为标志的新阶段。信息化是一场革命,信息化开启了一个新的时代。在这种背景下,企业再用原来的手工方式处理各种信息己不能适应时代的发展,必将被历史淘汰。在计算机技术飞速发展的今天,将计算机这一信息处理利器应用于日常进销存管理己是势必所然,而且这也将为企业管理带来前
3、所未有的改变,它可以带来意想不到的效益,同时也会为企业的飞速发展提供无限潜力。采用计算机管理信息系统已成为企业管理科学化和现代化的重要标志。1.2 目的传统的进销存管理中,企业领导者往往由于收集不到底层的数据而不能进行科学决策,盲目的销售网络,导致企业资源的浪费,造成企业的运营成本居高不下。面对现代的市场环境,要求建立企业与进销存网络的快速互动响应机制。加强对异地业务信息流、物流、资金流进行有效的管理。企业必须借助新型技术解决传统销售管理中可能出现的问题。企业除了提升管理水平和加强对销售管理的力度之外,还要充分利用网络技术。互联网为网络化、统一化的管理带来可能。网络给企业带来的是新一轮的竟争模
4、式,网络化为企业销售管理带来了前所未有的技术和手段,企业需要随时随地、无所不及,高效运营、节约成本的销售管理。从用户利益之上的角度出发,帮助用户分析现有的进销存体系和进销存业务流程,实现业务流程重组并以此为基础建立符合企业特定管理需要的进销存管理系统,并为用户提供长期、持续的系统售后服务。在商品销售企业中,对商品销售信息的有效管理是提高企业效益的一个重要途径。商品进销存管理是商品流通领域一个重要的基础性工作。在管理中计算机和进销存管理信息系统的引入已经得到各商业业主的认识,并将逐渐成为一种管理手段。改善管理手段,提高管理效率,是提高企业效率的主要任务。它使各级管理人员在面对日益繁多、日益复杂的
5、问题和业务时,能够充分认识问题,及时准确地把握、分析问题,进行有效地组织和管理,以达到最高的经济效益。对我国的珠宝市场来说,它正经历着一个从传统的规模效益型向品牌效益型的转变。要使自己的商品拥有一定的市场占有率,实现珠宝行业的个性化、高品位化,要求珠宝经营需由传统的经营管理方式进入到网络营销及信息管理的时代。珠宝信息管理系统的开发应用,不仅有利于珠宝企业对物流、信息流、资金流的集中高效管理,提高供应链效率,而且为企业实行连锁经营、品牌战略和网络化营销奠定了坚实的信息基础。第2章 系统需求分析2.1 需求分析与国外企业相比,国内进销存财务管理起步较晚。采购管理方面,目前我国企业在这方面尚未引起足
6、够的重视。在与供应商打交道的过程中,不少企业缺乏严格的比价系统,也没有进行招标,采购过程存在很大的随意性。更有甚者,某些主管采购的人员在采购的过程中有严重的吃回扣等现象。如此的采购过程最终导致企业的成本增加。销售管理方面,我国企业的营销管理大多还停留在“推销管理”的观念上,重视产品的销售,而忽视销售业务数据的实时收集和分析,竞争对手情况的跟踪分析,忽视市场的预测和分析、客户的管理以及销售战略的动态调整。除此之外,信息化程度低也是进销存管理中存在的一个突出问题。进销存管理的信息系统功能不完善,远程通信能力差,甚至出现数据失真的现象,系统无法履行必要的决策功能。加之,采购、销售、库存管理三者之间缺
7、乏信息联系和数据集成,无法实现信息共享,造成企业内部的进、销、存信息脱节,企业最高决策者难以及时准确全面了解掌握经营全过程的有关信息。因此,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。软件作为一项有力的工具,只能当此种工具,与我们的实践相结合起来的时候,才具有重大的社会价值及使用价值。因此根据企业目前实际的进销存管理情况开发一套电脑进销存管理系统是十分必要的。2.2 系统可行性研究 系统的可行性分析包括两个详细的部分:分析开发新的系统的必要性和可行性。必要性在前面系统初步调查中已经作了详细的分析,在这里就不再赘述;可行性主要包括经济可行性、技术可行性和运行可行性三个方面。经
8、济可行性研究是对组织的经济现状和投资能力进行分析,对系统建设运行和维护费用进行估算,对系统建成后可能取得的社会和经济效益进行估计。由于公司进销存管理系统是作为毕业设计由我们学生自己开发的,在经济上的投入甚微,系统建成之后将为今后实现公司进销存、财务管理提供很大的方便,因此在经济上是可行的。技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置 是否满足开发的需求等。公司进销存管理系统用的是开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前网络模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高,完全
9、能满足系统的需求。第3章 总体设计3.1 系统目标 (1)、在财务方面,实现财务管理规范化、改善应收账款和资金管理; (2)、在销售方面,加强和改善营销管理,减少财务坏帐、呆帐金额等; (3)、在库存管理方面,随时掌握存货信息,降低库存量,提高资金利用率和控制经营风险;3.2 系统设计思想我们认为,要让用户用好我们的软件,第一重要的是让用户了解设计者在设计软件时候的想法,了解这个软件是怎么考虑设计的,从软件的最本质最基础的地方入手才能真正用好一个软件。我们把进销存简化为“进”和“出”业务,也就是说,任何的进销存(仓库管理、销售、采购、领料等等、调拨)业务都可以看成是货品(数量或“金额”)的“进
10、”和“出”。采购可以看做“进”,销售可以看成“出”,调拨其实是“先出后进”,也就是说站在某个仓库的“仓管”的角度来看,他看到的就是货品的“进出”。只要能把握住所有的“进出”,很自然就能准确掌握库存情况,而反映这些“进出”的“证据”就是业务单据:如销售单、采购单等等。管理好了这些业务单据就管理好了进销存。这是进销存最简单最核心的“本质”,然而市面上大家看到的用过的进销存软件(包括绝大部分ERP软件)都没有从这个“本质”来考虑软件的设计,他们虽然也重视业务单据,但是他们更多的是考虑所谓的业务流程,他们强调,业务流程非常重要,其结果是:他们试图是迎合企业的业务流程,但是软件是“死”的,最终反过来要求
11、企业迎合他们所谓的“先进”流程。可想而知,这样的合作是多么难,也为软件应用失败埋下伏笔。我们设计这个进销存软件的时候花了很长一段时间来设计业务单据,最终使得用户可以分解他们的业务,再通过定义我们的进销存里面的业务单据来实现复杂的业务逻辑。因此本使用帮助的核心也是讲解如何按需定义自己的业务单据。通过自定义单据,企业可以按需设计“流程”(其实,在我们看来,流程是“不存在”的)通过自定义单据,企业可以准确实时对货品库存进行掌控。通过对单据输入的汇总,企业就可以获得任何格式的报表:单据报表进销存就是这么简单!当然,我们的进销存里面的报表可能有很多需要补充的,企业可以按自己的需要进行二次开发,也可以把报
12、表需求告知我们,我们也会随时按需增加各种报表。3.3 系统功能本系统分为9大部分,41个完整的功能模块。系统结构图如图2.1所示。 图2.1 进销存管理系统结构图3.4 数据库设计3.4.1 数据库介绍数据库是指自描述的完整记录的集合川。数据库是自描述的:它除了包含用户的源数据外,还包含关于它本身结构的描述。数据库的自描述特点,它提高了程序/数据独立性,它使得检查数据库本身就确定数据库的结构和内容成为可能。数据库包含用户数据文件和其他内容,数据库在元数据中包含关于自身的描述。另外,数据库还包含用来表示数据之间的关系和提高数据库应用的性能的索引。最后,数据库还包含关于使用数据库的应用程序的数据。
13、数据库基本的功能,主要有三个方面:(l)信息浏览和查询;(2)信息的修改、添加和删除;(3)信息的统计、汇总等。设计一个数据库需要我们耐心收集和分析数据,仔细理清数据间的关系,消除对数据库应用不利的隐患等等。在整个设计过程中,我们必须按步骤认真完成。一个数据库的设计好坏将直接影响将来基于该数据库的应用。另外,数据库也不是独立存在的,它总是与具体的应用相关的,为具体的应用而建立的。因此在设计数据库之前我们必须明确应用的目的,在设计数据库的时候也应时刻考虑用户需求,数据库与具体应用之间是相辅相成的关系。数据库的设计过程一般包括以下几个步骤:(1)确定建立数据库的目的和收集数据数据库设计过程的第一个
14、阶段是确定建立数据库的目的和收集数据。通常,我们也把确定建立数据库的目的称为需求分析。需求分析的任务就是通过详细调查要处理的对象来明确用户的各种需求。并且通过调查、收集和分析信息,以了解在数据库中需要存储哪些数据,要完成什么样的数据处理功能。这一过程是数据库设计的起点,它将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。确定目的之后就需要根据目的收集有用的数据。在着手收集数据之前最重要的就是要调查用户的实际需求,然后分析与表达这些需求。调查用户需求的方法有很多,如查阅记录、访谈、开调查会、设计调查表请用户填写或回答相关问题等。其中比较有效的方法是访谈,我们可以借助一些设计合理的调
15、查表来与用户直接交流。通过充分交流,可以了解他们平时是如何使用数据库的,以及对当前信息的要求,进而设计满足用户需求的字段,并根据设计的字段收集数据。(2)建立概念模型确定建立数据库的目的以及完成数据收集后,就进入数据库设计过程的第二阶段建立概念模型。概念模型,也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。这一阶段是整个数据库设计的关键。设计时,一般先根据应用的需求,画出能反映每个应用需求的E一R图,其中包括确定实体、属性和联系的类型。然后优化初始的E一R图,消除冗余和可能存在的矛盾。概念模型是对用户需求的客观反映,并不涉及具体的计算机软、硬件环境。因此,在这一阶段中我们
16、必须将注意力集中在怎样表达出用户对信息的需求,而不考虑具体实现问题。(3)建立数据模型完成上一阶段后,我们得到了一个与具体计算机软、硬件无关的概念模型。接着我们就可以着手建立数据库模型了,这是数据库设计过程的第三个阶段。在这一阶段中我们要将概念模型中得到的E一R图转换成具体的数据模型。数据模型是表示实体与实体间的联系的模型。数据模型一般分为层次、网状、关系和面向对象模型等,主要是用于DBMS的实现。目前比较常用的是关系数据模型,我们通常将E一R图转换成关系数据模型,实际上就是要将实体、实体的属性和实体之间的联系转换为关系模式。相比于层次、网状模式和面向对象模型,关系模式具有更为显著的优点:(a
17、)坚实的理论基础,是唯一可数学化的模型;(b)二维表能更方便的表示实体间的关系;(c)二维表的数据表示方法统一、简单,便于在计算机中实现。(d)数据独立性高,建立、扩充、调整都易实现。鉴于提高本系统的使用查询效率考虑,本系统采用关系模型。(4)实施与维护数据库最后一个阶段是实施与维护数据库。完成数据模型的建立后,我们就必须对字段进行命名,确定字段的类型和宽度,并利用数据库管理系统或数据库语言创建数据库结构、输入数据和运行等,因此数据库的实施是数据库设计过程的“最终实现”。如果数据库运行很成功,则表明数据库设计任务基本结束,以后的重点就是数据库的维护工作,包括做好备份工作、数据库的安全性和完整性
18、调整、改善数据库性能等。数据库的设计在数据库应用系统的开发中占有很重要的地位。只有设计出合理的数据库,才能为建立在数据库上的应用提供方便。不过数据库的设计过程从来都不会有真正的结束,因为随着用户需求和具体应用的变化和扩大,数据库的结构也可能会随之变化。3.4.2 据库逻辑结构表数据库是某个企业、组织或部门所涉及的数据的综合,它不但反映数据本身的内容,而且反映数据之间的联系。在数据库中,是用数据模型来抽象、表示、处理现实世界中的数据和信息的。根据模型应用的不同目的,通常将数据模型分成两个层次:概念模型和关系数据模型。概念模型是用户和数据库设计人员之间进行交流的工具,关系数据库模型是由概念模型转化
19、而来的,是按照计算机系统的观点来对数据建模。从关系模型产生的数据库设计即为逻辑设计。通过上面的E一R图以及实体联系图,确定了实体与实体之间的关系后,就可以建立数据库的逻辑结构,以下这些表格表示了本系统数据库中的各个表,体现了数据库的逻辑结构关系。(1) 操作员信息表操作员信息表用来保存操作员的基本信息,其表结构如表3.1所示。表3.1 操作员信息表字段名数据类型字段大小索引编号字符型7升序用户名字符型20密码字符型12头像整型4员工编号字符型7备注备注型4(2)供应商信息表供应商信息表用来保存供应商的基本信息,其表的结构如表3.2所示。表3.2 供应商信息表字段名数据类型字段大小升序编号字符型
20、7全称字符型30简称字符型15地址字符型40所属地区字符型20邮编字符型7电话字符型13传真字符型13联系人字符型8联系人电话字符型13开户银行字符型20银行账户字符型20纳税人字符型8电子邮箱字符型30备注备注型4(3)客户信息表客户信息表用来保存客户有关详细信息,其表的结构如表3.3所示。表3.3 客户信息表字段名数据类型字段大小升序编号字符型7全称字符型30简称字符型15地址字符型40所属地区字符型20邮编字符型7电话字符型13传真字符型13联系人字符型8联系人电话字符型13开户银行字符型20银行账户字符型20纳税人字符型8电子邮箱字符型30备注备注型4(4)库存信息表库存信息表用来保存
21、存储商品库存数量及相关信息,其表的结构如表3.4所示。表3.4 库存信息表字段名数据类型字段大小索引商品编号字符型7升序库存数量数值型15库存上限数值型12库存下限数值型12备注逻辑型1(5)入库信息表入库信息表用来记录商品入库的相关信息,其表的结构如表3.5所示。表3.5 入库信息表字段名数据类型字段大小索引编号字符型7升序入库时间日期时间型8供应商编号字符型7结款方式字符型4合计总类整型4合计金额数值型12操作员字符型10预付金额数值型12未付金额数值型12实付金额数值型12(6)商品信息表商品信息表用来记录商品的基本信息,其表的结构如表3.6所示。表3.6 商品信息表字段名数据类型字段大
22、小索引编号字符型7升序名称字符型30简称字符型15规格字符型10产地字符型40计量单位字符型8出厂日期日期型8保质期日期型8进价数值型12批发价数值型12零售价数值型12供应商编号字符型7备注备注型4(7)销售信息表销售信息表用来记录每位客户购买商品的信息,其表的结构如表3.7所示。表3.7 销售信息表字段名数据类型字段大小索引编号字符型7升序时间日期时间型8销售类型字符型4订单号字符型7合计品种整型4合计金额数值型12付款方式字符型4折扣数值型3应付金额数值型12实付金额数值型12未付金额数值型12操作员字符型10(8)员工信息表员工信息表用来记录每位员工的基本信息,其表结构如表3.8所示。
23、表3.8 员工信息表字段名数据类型字段大小索引编号字符型7升序姓名字符型10性别字符型2出生日期日期型8文化程度字符型10所属部门字符型10职务字符型10身份证号字符型18电话字符型13地址字符型40邮编字符型7聘用日期日期型8薪金数值型10备注备注型4第4章 详细设计本章将展示各种界面,比如:登录表单、主程序、浏览、维护、查询、排序、打印、系统简介、版权、留言等。由于文件太多,所以每种文件都找具有代表性的展示。4.1 程序主页面设计程序主界面的设计的好坏往往影响到软件的整体形象,因此首先要处理好程序主界面的设计问题。同时,程序主界面的设计也是程序控制的核心,操作权限、程序功能调用等都要通过主
24、程序调用实现。珠宝进销存管理系统程序主界面设计的运行结果如图3.1所示。图3.1 珠宝进销存管理系统主界面4.2 商品信息管理模块商品信息管理模块主要用于进行商品基础信息的管理,通过此模块可以对商品进行添加、修改、删除、保存等相关功能的操作。商品信息模块运行结果如图3.3所示。图3.3 商品信息管理模块设计图4.3 库存盘点模块库存盘点模块主要用于对库存信息进行盘点,并且同时也可以通过选择查询字段进行库存信息进行盘点。库存盘点模块运行结果。如图3.4所示。图3.4 库存盘点模块设计图4.4 利润分析模块利润分析功能模块主要功能是通过对商品销售信息的统计,计算出每种商品在某一段时间的利润情况。“
25、利润分析”模块运行结果如图3.5所示。图3.5 利润分析模块设计图第5章 系统主要功能模块设计3.3.1 程序主界面的设计程序主界面的设计的好坏往往影响到软件的整体形象,因此首先要处理好程序主界面的设计问题。同时,程序主界面的设计也是程序控制的核心,操作权限、程序功能调用等都要通过主程序调用实现。珠宝进销存管理系统程序主界面设计的运行结果如图3.1所示。图3.1 珠宝进销存管理系统主界面1创建程序主界面(1)新建一个项目,命名为“通用进销存管理系统”,在该项目中添加一个新表单,命名为“frmmain”,并设置表单的Caption属性为“通用进销存管理系统 v2.0版”,设置Icon属性为“sy
26、s(5)+sys(2003)+graphicsproICO.ico”,设置KeyPreview属性为.T.,作用是截获表单内控件的KeyPress事件;设置ShowWindow属性为“2-作为顶层表单”;设置WindowState属性为“2-最大化”。(2)在表单的Unload事件下添加如下代码:_screen.visible=.t. &恢复Visual FoxPro主窗体的位置,退出Visual FoxPro_screen.top=0QUIT在表单的QueryUnload事件下添加如下代码:this.Lockdatebase1.lock(sys(5)+sys(2003)+dataDataBa
27、se.dbc,;正在加密,请稍后.) &数据库加密IF file(sys(5)+sys(2003)+Setup.tmp)=.t.DELE FILE sys(5)+sys(2003)+Setup.tmpENDIF2创建程序菜单“通用进销存管理系统”的菜单是通过10个快捷菜单拼成的,并且具有彩色背景、动态增减菜单项的功能。(1)在表单中增加ToolBar控件,命名为“ToolBarMenu”,ImageList控件,命名为“ImageMenu”,将制作完成的图片添加到ImageMenu中。(2)更改ToolBarMenu控件的属性,如表3.9所示。 表3.9 ToolBarMenu控件属性对象属性
28、值ToolBarMenuAppearance0-FlatToolBarMenuBorderStyle0-NoneToolBarMenuStyle0-standard(3)将ToolBarMenu控件与ImageMenu控件联系起来,在ToolBarMenu控件中添加10个按钮,并将ImageMenu控件中的图片与按钮相对应。在ToolBarMenu控件的Init事件下添加如下代码:this.imagelist=thisform.imagemenuthis.disabledimagelist=thisform.imagemenuthis.hotimagelist=thisform.imageme
29、nuFOR m=1 TO 10mnuname=mnu+alltrim(str(m)this.buttons.add(,mnuname,0,m)ENDFOR(4)在ToolBarMenu控件的ButtonClick事件下添加如下代码:* ActiveX 控件事件 *LPARAMETERS buttonDO CASE CASE button.index=1DO mnus系统管理.mpr.CASE button.index=8DO mnus报表管理.mprCASE button.index=9DO mnus决策管理.mprCASE button.index=10DO mnus维护管理.mprENDC
30、ASE3创建工具栏本程序的工具栏中共有12个按钮,分别是订单管理、销售管理、配送申请、配送开票、配送结款、入库管理、库存查询、商品信息管理、商品销售查询、商品销售排行、日销售报表、数据备份。创建工具栏的方法与创建程序菜单类似,也是通过ToolBar控件与ImageList控件来完成的。(1) 在表单中添加一个ToolBar控件,更改其重要属性如表3.10所示。表3.10 ToolBar控件属性对象属性值ToolBarAppearance0-FlatToolBarBorderStyle0-NoneToolBarStyle0-standard(2)将ToolBar控件与ImageList控件联系起
31、来,在ToolBar控件中添加12个按钮,并将ImageMenu控件中的图片与按钮相对应。代码如下:*增加快捷工具栏按钮thisform.toolbar.imagelist=thisform.imagelistthisform.toolbar.disabledimagelist=thisform.imagelistthisform.toolbar.buttons.add(,bar1,3,0)thisform.toolbar.buttons.add(,DD,1)thisform.toolbar.buttons.add(,xs,2).thisform.toolbar.buttons.add(,bf
32、,12)thisform.toolbar.buttons.add(,bar7,3,0)thisform.toolbar.buttons(2).tooltiptext=订单管理thisform.toolbar.buttons(3).tooltiptext=销售管理.thisform.toolbar.buttons(16).tooltiptext=日销售报表thisform.toolbar.buttons(18).tooltiptext=数据备份FOR m=1 TO 18IF empty(thisform.toolbar.buttons(m).tooltiptext)=.f.blName=this
33、form.rainfunction1.htop(;alltrim(thisform.toolbar.buttons(m).tooltiptext)IF &blname. =.f.thisform.toolbar.buttons(m).enabled=.f.ENDIFENDIFENDFOR(3)调整ToolBar控件的位置,在ToolBar控件下方添加一张图片,作为工具按钮的显示区域。(4)添加一个Container控件,作为设置“超期应收应付款预警功能”的复选按钮区域。在此容器控件中添加一个Shape控件,更改其属性,如表3.11所示。 表3.11 Shape控件属性对象属性值Containe
34、r.Shape1BorderStyle0-透明Container.Shape1Curvature90(5)在Container容器中添加一个Label控件和一个Check控件,将Check控件的Caption属性更改为“超期应收应付款预警”。(6)在ToolBar控件的ButtonClick事件下添加如下代码:* ActiveX 控件事件 *LPARAMETERS buttonDO CASECASE button.index=2DO FROM formsfrm订单CASE button.index=3DO FROM formsfrm销售管理.CASE button.index=16DO FRO
35、M formsfrm日报表CASE button.index=18DO FROM formsfrm数据备份ENDCASE4创建状态栏(1)在表单中添加一个StatusBar控件,并在该控件上单击鼠标右键,在弹出的快捷菜单中选择“SBarCtrl properties”菜单项,将打开“SBarCtrl属性”对话框。(2)选择“Panels”页,单击“Insert Panel”按钮,向StatusBar控件中添加一个Panels对象,设置此Panels对象的宽度为“180”,如图3.2所示。(3)按照上面的方法,再为StatusBar控件添加4个Panels对象,它们的宽度分别为320、100、1
36、00、100。图3.2 SBarCtrl属性对话框3.3.2 商品信息管理模块商品信息管理模块主要用于进行商品基础信息的管理,通过此模块可以对商品进行添加、修改、删除、保存等相关功能的操作。商品信息模块运行结果如图3.3所示。图3.3 商品信息管理模块设计图1表单设计(1)在“通用进销存管理系统”项目文件中添加一个表单,命名为Frm商品信息。(2)向表单内添加自制类控件Back、Line控件、Label控件、Picture控件、Container控件、Combo控件、OptionGroup控件、Text控件、Spinner控件、LocateButton控件、Grid控件和OftenButton
37、类控件。(3)重要控件的属性设置如表3.12所示。表3.12 重要控件及属性对象属性值Form1AutoCenter.T.Form1ShowWindows2-作为顶层表单OftenButtons1RecordSource商品信息表LocateButtons1RecordSource商品信息表Grid1RecordSource商品信息表Spinner1SpecialEffect1-平面OptionGroup1.Option1Style1-图形Form1AutoCenter.T.2代码设计在表单的Resee方法程序下添加如下代码:SELE 商品信息表.bo1.displayvalue=thisfo
38、rm.rainfunction1.;numbertoname(供应商信息表,全称,商品信息表.供应商编号,1) &取出供应商名称SELE 商品信息表thisform.label24.caption=padl(alltrim(str(reccount(),5,0)thisform.spinner1.Spinnerhighvalue=reccount()thisform.spinner1.value=recno()SELE 商品信息表在表单的Init事件中添加如下代码:SET DELE ONthisform.resee在表单的Unload事件中添加如下代码:CLOSE ALL databaseUS
39、E data商品信息表 EXCLPACKUSEUSE data库存信息表 EXCLPACKUSE在“名称”文本框的InterActiveChange事件下添加如下代码:thisform.text3.value=lower(thisform.rainfunction1.htop(this.value)在“名称”文本框的Click事件下添加如下代码:thisform.text3.value=thisform.rainfunction1.htop(this.value)在Locatebuttons1控件的_FirstButtonClick方法程序下添加如下代码:SELE 商品信息表thisform.
40、resee在Locatebuttons1控件的 _LastButtonClick 方法程序下添加如下代码:SELE 商品信息表thisform.resee在Locatebuttons1控件的_NextButtonClick方法程序下添加如下代码:SELE 商品信息表thisform.resee在Locatebuttons1控件的_PreviousButtonClick方法程序下添加如下代码:SELE 商品信息表thisform.resee在Oftenbuttons1控件的_SaveButtonClick方法程序下添加如下代码:DIME txt(13),get(9)*存入信息SELE 商品信息表
41、thisrecno=recno()FOR m=1 TO 6txtname=text+alltrim(str(m) txt(m)=alltrim(thisform.&txtname.value) &将字符型数据存入数组ENDFORFOR m=7 TO 11txtname=text+alltrim(str(m)txt(m)=thisform.&txtname.value &将数值及日期型数据存入数组ENDFORtxt(12)=alltrim(thisform.text12.value)txt(13)=thisform.rainfunction1.numbertoname(供应商信息表,全称,;.t
42、hisform.grid1.readonly=.t.thisform.grid1.enabled=.t.thisform.locatebuttons1.enabled=.t.在Oftenbuttons1控件的_DeleteButtonClick方法程序下添加如下代码:DELETE FROM 库存信息表 WHERE 商品编号=alltrim(thisform.text1.value)SELE 库存信息表USE USE data库存信息表 EXCL &以独占方式打开库存信息表PACKUSEUSE data库存信息表thisform.grid1.initmand2.clickthisform.res
43、ee在Oftenbuttons1控件的_UndoButtonClick方法程序下添加如下代码:SELE 商品信息表FOR m=2 TO 12 &使文本框失效.thisform.grid1.enabled=.t.thisform.locatebuttons1.enabled=.t.在Oftenbuttons1控件的_AddButtonClick方法程序下添加如下代码:PRIVATE bhFOR m=1 TO 6 &清空文本框textname=text+alltrim(str(m)thisform.&textname.value=ENDFORthisform.text7.value=SELECT max(编号) AS 编号 FROM 商品信息表 INTO CURSOR ls1SELE ls1IF reccount()=0bh=SP00001ELSEibh=val(right(ls1.编号,len(ls1.编号)-2) &取出编号bh=SP+padl(alltrim(str(ibh+1),5,0)ENDIFthisform.text1.value=bhFOR m=2 TO 12textname=text+alltrim(str(m
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100