小型企业进销存管理系统设计
进销存管理系统数据库设计

目录1.需求分析报告 (2)1。
1系统目的 (2)1。
2进销存系统的数据需求 (2)1.3组织结合结构图 (2)1。
4功能模块图 (3)1.5业务流程图 (3)1.6数据流程图 (3)1.6。
1数据流程图顶层图 (3)1。
6.2数据流程图第一层 (3)1。
6。
3数据流程图第二层 (3)1.7数据字典 (3)1。
7.1。
数据项定义 (3)1.7.2、数据流定义 (4)1。
7.3、数据存储定义 (5)1.7。
4、处理逻辑定义 (5)1。
7.5、外部实体定义 (6)2.概念结构设计 (6)2。
1初步E-R图 (6)2.1.1销售业务的局部E-R图 (6)2。
1.2采购业务的局部E—R图 (7)2。
1.3报损局部E—R图 (7)2。
2全局E-R图 (8)3将各分E-R图合并成全局E-R图所作的处理 (9)3。
1进行相关实体类型的合并,以减少实体类型的个数 (9)3。
2消除冗余 (9)4.逻辑结构设计 (9)4。
1逻辑设计概述 (9)4.2转换规则 (9)4。
3根据全局E—R图设计出系统的数据模型: (9)4。
4初步优化: (10)4。
4。
1部门与职工之间 (10)4.4。
2商品与供货商之间形成一个供应过程 (10)4。
4.3商品与客户之间形成一个购买过程 (10)4。
4.4职工与商品之间有职工对商品产生销售管理,采购管理,报损管理等信息。
所以形成一个管理过程 (10)4.4.5将销售人员、采购员关系模式合并为: (11)4。
4.6将存储部、销售部和采购部关系模式合并为: (11)4。
5最终优化: (11)5。
数据库完整性与安全性设计 (12)5。
1数据库完整性 (12)5.1。
1 约束 (12)5.1.2默认 (14)5.1。
3规则 (14)5.1。
4 存储过程 (15)5。
1.5 触发器 (16)5.2安全性设计 (16)1.需求分析报告1.1系统目的随着社会的进步和计算机的不断普及,各行各业的管理、控制都越来越离不开计算机的辅助。
进销存管理系统详细设计

进销存管理系统详细设计本系统的详细设计主要包括以下几个方面:1.系统架构设计:本系统采用B/S架构,即通过浏览器与系统进行交互。
该架构的优点是部署方便,用户可以在任何地方使用系统。
2.数据库设计:本系统采用关系型数据库来存储数据,使用MySQL作为数据库引擎。
数据库中的主要表包括商品信息表、进货单表、销售单表和库存表等。
3.功能设计:本系统主要包括以下功能模块:-商品管理:用于管理商品的基本信息,包括商品编号、名称、价格等。
-进货管理:用于管理商品的进货信息,包括供应商信息、进货数量、进货时间等。
-销售管理:用于管理商品的销售信息,包括客户信息、销售数量、销售时间等。
-库存管理:用于管理库存的相关信息,包括库存数量、库存上限、库存下限等。
-报表统计:用于生成各类报表,如进货报表、销售报表、库存报表等,帮助用户分析企业的经营情况。
4.用户界面设计:系统的用户界面应简洁直观,符合用户的使用习惯。
用户可以通过系统的菜单导航功能进入不同的模块,进行相关操作。
在每个模块中,用户可以选择相应的功能,并通过表单、列表等形式进行数据输入和查看。
5.安全性设计:为了保证系统的安全性,本系统采用用户身份验证和权限管理机制。
用户在登录系统之前需要输入正确的用户名和密码进行身份验证。
系统管理员可以根据用户的角色和权限设置不同的操作权限,以控制用户对系统的访问和操作。
6.系统性能设计:为了提高系统的性能,本系统采用了响应式设计和缓存技术。
通过响应式设计,系统可以根据用户的设备自动适应不同的屏幕大小和分辨率。
通过缓存技术,可以减轻服务器的负载,提高系统的响应速度。
7.系统测试设计:在系统实施之前,需要进行充分的系统测试。
测试内容主要包括功能测试、兼容性测试、性能测试和安全性测试等。
通过测试,可以发现系统中存在的问题并进行相应的修复,确保系统可以正常运行。
综上所述,通过本系统的详细设计,可以使企业更加高效地管理进货、销售和库存等业务,帮助企业实时了解商品的进销存情况,从而提高企业的管理水平和经营效益。
毕业设计之进销存管理系统——一步步搭建自己的框架及系统

毕业设计之进销存管理系统——⼀步步搭建⾃⼰的框架及系统⼤学四年,即将毕业!⼤学期间的最后⼀篇博客,总结分享下我做的毕业设计。
我选的论⽂命题为《燃⽓管⽹设备仪器进销存管理系统之后台设计》,由于我们专业只有我⼀个⾛技术路线,所以,我⼀个⼈完成了整个系统的设计及开发,总耗时近⼀个⽉,最终获得优的成绩。
这⾥不讨论论⽂,不写具体实现细节,主要讲如何⼀步步搭建⾃⼰的系统框架及系统实现,分享下⾃⼰的⼼得,新⼿可以互相学习,⼤⽜们就当看作本⼈抛砖引⽟啦!!博客最后会附上系统开发相关的所有⽂件但不包括毕业论⽂,本⽂已⼤体包含了论⽂的内容!⼀、系统展⽰1.登录页⾯2.admin登录后的主页3.菜单管理4.⾓⾊管理>新增⾓⾊5.⽤户管理6.添加商品7.仓库管理8.供应商管理9.采购订单管理10.采购订单导出11.库存查看12.采购统计⼆、系统需求分析 上⾯简单的展⽰了完成后的系统测试截图,你可以下载war包部署到⾃⼰的tomcat上看,下⾯开始进⼊正⽂。
开发⼀个(简单)系统,我想⾸要做的就是进⾏系统需求分析,弄清楚你为什么要做这个系统,这个系统有哪些功能模块,每个功能具体实现些什么功能。
当然,我这⾥的主要⽬的是完成毕业设计,交出毕业论⽂。
但我并没有简单的只是为了完成⼀个毕业设计⽽去开发这个系统。
主要想法是以开发这套进销存管理系统为例,详细说明⼀个系统从确认需求、技术选型、架构设计、系统实现到测试部署的整个开发过程。
综合运⽤⾃⼰平时所学的知识、技术,及实习获得的经验等,去完整且较好的实现⼀个系统。
搭建⼀个基础系统框架,形成⼀定规范,以后在此基础上做开发,可以省去很多诸如搭建框架、加⼊依赖、配置等⼯作。
这次开发所做的主要⼯作及意义如下: ①学会站在⽤户的⾓度分析⽤户需求,完成需求分析设计等。
②熟练使⽤各种类相关开发、设计⼯具,及开源软件。
③熟练掌握Spring+SpringMVC+Hibernate+ExtJs的开发技术。
进销存管理系统的设计报告

《进销存管理系统》项目设计报告设计书项目名称:进销存管理系统班级:2009级信息管理与信息系统1班设计人员:查君选指导老师:张继燕二〇一二年十二月十九日进销存管理系统的设计报告一、应用背景:现在的企业规模不断的在扩大,仓存进出货物繁多,工作量大,原有的手工操作耗时费力,又不能保证数据的正确性,用计算机信息化管理实现数据的录入,查询,打印等将是一个迫切的需求。
信息化管理将会减少企业的人力物力,能够极大地提高货品库存的管理效率,也是企业库存管理科学化、正规化,与世界接轨的重要条件。
因此,开发一个进销存管理系统是很有必要的,其具有特有的技术意义和管理意义。
二、需求分析:进销存管理系统主要包括进货管理、销售管理、基础数据管理,系统维护和辅助工具等几个方面的功能,以实现用户方便的输入、查询、修改信息的需求.通过本管理系统软件,能帮助工作人员利用计算机,快速方便的对企业商品的数据进行管理、输入、输出、查找的所需操作,使销售信息具体化、直观化、合理化从而帮助企业提高工作效率。
三、功能分析:进销存管理系统主要提供如下的功能:1。
进货管理:主要负责商品的进货数据录入,进货退货数据录入,进货分析,进货统计,与供应商往来对账。
2.销售管理:主要负责销售数据录入,销售退货数据录入,销售统计,销售分析,销售排行榜,与代理商往来对账。
3.库存管理:主要负责库存状况,库存商品数量上限报警,库存商品数量下限报警,商品进销存变动表,库存盘点。
4。
基础数据管理:主要负责库存商品,往来对账,内部职员。
5.系统维护:主要负责本单位信息,操作员设置,操作权限设置,数据备份,数据库恢复,数据清理。
6。
辅助工具:主要的功能是登录Internet,启动Word,启动Excel 和计算器。
四、进销存管理系统功能结构图分析:进销存管理系统业务流程图分析:五、系统数据库设计:进销存管理系统采用的是SQL Server2008数据库,主要用来存储商品的库存,进货,销售等信息。
进销存管理系统设计方案

可指定多种查询条件,查询进退货的详细信息
9、往来帐务:
1)供货商所有单据中显示的是所有的供货商或指定某个供货商的往来帐务单据
2)供货商商品销售情况显示某个供货商提供的商品的销售情况,在列表中可以清楚的看出供货商的商品销售的数量,金额和库存量.
3)供货商帐务显示的是所有供货商采购进货,采购退货,我方应付金额和我方实付金额。
这样的功能都是企业非常需要的,减轻了财务人员、销售人员、采购人员的工作量,提高了工作效率。数尖进销存具有这些功能特点.
3.6.
1. 支持智能查询、统计,可通过仸意模糊元素快速查询并关联出查询结果。
2。 多维数据分析系统可以仸意组合统计项目和内容,各种统计分析应有尽有.
3. 柱状图、折线图、饼图互相对应,自由转换.
4、添加、修改生产商:
根据公司以往的采购物品的质量,价格、交货及时和整体服务水平的好坏,公司可以自由选择采购商品的生产商。公司可以经过市场调查来添加生产商。以选择服务水平好,采购商品质量好,采购成本等方面来添加新的生产商。修改以前的商品生产商。
5、跟踪订单:
在采购部门发出采购单后,对采购单进行跟踪以保证商品交易可以顺利成功。在采购单发出后,公司对订单全面跟踪,在一定的时间内如,交易没能顺利完成。公司就会对谬该采购单进行处理.
4. 分析结果均支持表格和分析图表两种导出打印,统计结果直观明了。
3.7.
1、货物种类管理
可以添加一个新的货物种类,并对已存在的货物种类做修改操作,不能删除;
2、货物管理
可以添加一个新的货物,并对已存在的货物做修改操作,不能删除;
4、仓库管理
控制和管理各仓库产品进出明细(入库:根据采购部门下达的入库单验收,验收合格后分配货位、登帐;出库:根据销售部门下达的提货单,系统根据先入先出等原则生成建议提货单(可以修改),提货单中自动标出货物所在的货位,方便分拣,点交后登帐。),提供全部相关信息(可指定多种查询条件,查Байду номын сангаас某商品的库存数量等信息)
基于教学实验上中小型企业的进销存管理系统

基于教学实验上中小型企业的进销存管理系统◆董文禹本文介绍一个面向中小型企业的进销存管理系统,该系统按照国内中小型企业的经营规模、组织架构等方面的特点而设计。
通过该系统的设计,学生可以了解S QL Se rver 2000结合D el phi7.0设计管理系统的方法。
教学实验 中小企业进销存管理系统一、需求分析中小企业在我国国民经济中占据着重要地位,随着经济全球化以及中国经济改革的逐渐深化,企业都面临着日渐激烈的竞争,本系统结合中小企业的特点,为中小企业量身定做,不仅可以所见企业的运作成本,而且可以提高企业的快速反应能力,从而提高企业的综合竞争力。
同时,进销存系统在教学实验中也非常具有典型性。
二、系统的主要功能及特点进销存管理系统适合于中小企业,按照一般进销存流程进行设计。
满足大多数客户的需要,是一套专为中小型企业度身设计、功能强大、实施周期短、易学易用的管理系统。
软件主要由基本信息、采购管理、销售管理、财务管理、库存管理、系统管理和查询等系统构成。
本系统具有非常强大的数据处理功能,可以实现数据的查询、添加、修改、删除、汇总等功能,还可以实现报表打印,为企业领导的管理提供数据支持。
本系统主要包含基本信息、采购管理、销售管理、财务管理、库存管理和系统管理等主要模块。
1.基本信息基本信息又可以说是资料档案,它包括部门雇员的资料,客户资料,供应商资料,货品的资料,库位设置信息,结算方式,自定义单号等。
2.采购管理指对采购过程所发生的业务行为进行跟踪记录,包括采购订单管理,采购入库管理,采购退货管理,采购订单的跟踪,采购货品的分类统计,采购退货的统计以及采购的月报表、季报表、年报表等。
3.销售管理指对销售过程所发生的业务行为进行跟踪记录,包括销售订单管理,销售出库管理,前台POS 销售机,销售退货管理,销售订单的跟踪,销售货品的分类统计,销售退货的统计,销售利润分析,业务员的业绩表,销售的月报表、季度报表以及年报表等。
进销存系统《系统设计说明书》

进销存系统《系统设计说明书》1. 引言1.1 编写目的本文档主要描述了进销存系统的需求分析和系统设计,包括系统的功能模块、数据流程、接口设计等,以指导系统开发和测试工作。
1.2 项目背景随着市场经济的发展,企业对物流管理的需要越来越迫切,进销存系统作为一种有效的管理工具,能够帮助企业实现对商品的进货、销售和库存的实时监控和管理。
1.3 参考资料•《软件工程》清华大学出版社,张奠宙、孙茂松编著•《数据库系统原理》高等教育出版社,王珊、萨师煊编著2. 总体描述2.1 系统功能进销存系统主要包括以下功能模块:1.商品信息管理:对商品的基本信息进行管理,包括商品名称、规格、品牌、进价、售价等。
2.供应商管理:对供应商的基本信息进行管理,包括供应商名称、联系人、联系方式、地址等。
3.客户管理:对客户的基本信息进行管理,包括客户名称、联系人、联系方式、地址等。
4.采购管理:实现对商品的采购申请、采购订单、入库等操作。
5.销售管理:实现对商品的销售订单、销售出库、售后服务等操作。
6.库存管理:实现对商品的库存查询、库存预警、库存盘点等操作。
7.报表管理:提供各种报表,如商品销售报表、库存报表等,方便企业进行决策。
2.2 系统架构进销存系统采用B/S架构,前端使用HTML、CSS、JavaScript等技术实现用户界面,后端使用Java、Python等语言开发业务逻辑,数据库使用MySQL、Oracle 等。
2.3 系统工作流程系统工作流程主要包括以下步骤:1.登录系统:用户通过用户名和密码登录系统。
2.系统导航:用户进入系统后,可以选择不同的功能模块进行操作。
3.数据录入:用户在相应功能模块中录入数据,如商品信息、采购订单等。
4.数据查询:用户可以通过查询条件查询数据,如查询某个商品的销售记录。
5.数据统计:系统根据用户需求生成各种报表,如商品销售报表、库存报表等。
6.数据导出:用户可以将查询结果和报表导出为Excel、PDF等格式。
C#课程设计——企业进销存管理系统

目录摘要 (1)Abstract (2)1 背景 (3)2 需求分析及可行性研究 (4)2.1 需求分析 (4)2.2 系统的可行性研究 (4)2.2.1经济可行性 (4)2.2.2技术可行性 (5)2.2.3社会可行性 (5)3系统总体设计及设计目标 (6)3.1功能模块设计 (6)3.1.1 资料管理 (6)3.1.2 采购管理与销售管理 (7)3.1.3 库存管理 (8)3.1.4 应付款管理与应收款管理 (9)3.1.5 系统管理 (9)3.2 设计目标 (9)4数据库设计 (10)4.1数据库分析 (10)4.2系统的数据库表图 (10)5 功能模块设计 (15)5.1登陆界面设计 (15)5.2主窗体界面设计 (15)5.3其他窗体设计 (16)5.3.1资料管理之供货商资料管理窗体 (16)5.3.2采购管理之进货单管理窗体 (18)6系统测试 (20)6.1测试举例 (20)6.2测试项目 (21)7附录 (23)7.1数据库连接类部分代码 (23)7.2登录窗体部分代码 (24)7.3用户管理部分代码 (26)致谢 (31)参考文献 (32)摘要进销存数据的统计对公司的发展及决策起着重要的作用。
客户档案的管理,商品基础信息的管理,库存管理,销售管理,进货管理用手工进行效率很低,已不能适应公司发展的需求。
现有进销存系统已实现了商品销售,进货上柜,卖场库存数据等各种统计数据,从而大大减少了数据的流通环节,增强了数据的可靠性。
通过进销存管理系统,利用信息化的手段把先进的企业管理方法引入企业的实践,为企业的管理改革提供切实可行的途径。
更重要的是,进销存管理系统可以及时通过信息技术把企业数据转化为企业信息,进而为相关管理者提供决策依据。
系统的主要功能是对商品的进货、销售和库存进行监控、调配和管理,以实现公司商品进销存管理的信息化、自动化和科学化。
此系统是一个单机版的数据库管理系统。
前台应用程序界面采用Visual Studio 2008 开发,系统的后台数据库选用Access作为开发工具。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
小型企业进销存管理系统摘要:随着我国市场经济的蓬勃发展和人们对计算机的普遍应用,批发、零售行业正处在一个高速发展的时期。
行业的快速发展必然导致竞争的加剧,要想在激烈的市场竞争中谋求发展,客观上要求企业必须加强部管理,提高运营效率。
而我国大部分小型批发、零售企业在信息机制上还没有摆脱原有的手工模式,企业部没有形成完善的、有效的信息化管理机制,企业发展的动力不足,从而影响企业的持续、稳定、快速的发展。
本文介绍了笔者编写的一个用于小型企业进销存管理系统。
其中拥有功能比较全面的进销存管理系统。
该系统包括用户注册和登录、日常业务管理、库存管理、查询统计管理、应收应付管理、统计报表管理、基础信息管理和系统设置几个模块。
Abstract:关键字:进销存管理查询信息管理日常业务一、引言随着计算机的普遍应用,企业对部机制形成完善的、有效的信息化管理机制,是使企业的各项管理实现现代化,在确定了本系统的设计目标之后,特开发了本管理系统,来完善企业部的管理机制。
二、开发和运行的环境开发工具:Visual Basic 6.0中文版,后台所用数据库是SQL2000,同时建立ODBC数据库接口。
运行环境:1、运行 Intel 或兼容的 Pentium、Pentium Pro 或 Pentium II 处理器的计算机上运作。
处理器必须以最低 166 MHz 的速度运行。
存要求最低 64 MB。
2、SQL Server 2000,Visual Basic 6.0三、正文1、流程分析.. ..... . .... . ....2、数据库的设计(1)E-R图:商品出入库:商品销售、退货:... . .(2)关系模型(数据库的结构)本单位信息表:员工信息表:(员工编号为主键)权限设置信息表:供应商信息表:(供应商编号为主键)商品入库信息表:(商品编号为主键)供货退货信息表:(商品编号为主键)供应商账款往来信息表:(供应商全称为主键).. ..3、总体设计4、 主要功能模块分析一)、系统登录模块.F..T.Start选择用户名并输入密码符合条件吗?End进入系统在数据库中验证用户的密码。
功能:用户登录验证成功后进入进销存管理系统。
如是第一次直接进入系统设置操作员及密码。
说明:在窗体中需要Adodc和DataCombo控件,则需要加载“Microsoft ADO Data Control6.0(SP4)(OLEDB)”和“Microsoft DataList Control 6.0(SP3) (OLEDB)”部件,将控件添加到工具箱。
二)、日常业务管理(一)、商品入库、出库商品入库商品出库(二)、商品销售、退货商品销售销售退货 (一)、商品入库、出库流程图:.F..T..F..T.功能:完成商品入库工作,付供应商货款方式可采用现金和支票,并可挂帐。
说明:入库采用智能化表单录入,可一次录入多种商品,在“商品名称”栏输入商品名称或简称的前几个字或找〈PageDown 〉键,系统将自动利用表格显示相关商品信息。
使用方向键〈↑〉、〈↓〉 选择商品,按回车键,该商品信息将自动录入到表格中,Start 登记选择供应商,经手人,入库仓号,商品信息等 信息是否输入完整?End 是否保存?只需输入如哭数量(系统自动计算商品金额),回车后即可入库下一商品。
系统自动生成入库票号,可利用组合键选择供应商信息、经手人、仓库。
自动统计商品入库功能:完成退还给供应商货物的工作。
说明:同商品入库工作相似,同商品入库成正反关系。
(二)功能:完成商品销售工作,客户货款方式可采用现金和支票,并可挂帐。
说明:销售采用录入方式同商品入库录入方式,自动生成销售票号,自动统计商品销售品种、数量、金额、计算折扣、税率。
但如果销售商品数量大于库存商品数量时,此笔交易将被取消,所以在商品销售模中销售的商品数量一定要小于等于该商品的库存数量。
功能:完成客户退货的工作。
说明:退货采用录入方式同商品销售。
功能:四)、库存管理(一)、库存商品查询功能:查询商品库中所有商品的信息。
说明:可选择不同字段查询商品库存信息,并支持模糊查询和键盘操作。
(二)、库存盘点功能:查询各仓库中商品库存情况。
说明:选择仓库名称、查询该仓库中库存商品的情况。
五)、查询统计管理(一)、入库查询功能:查询商品入库信息。
说明:选择字段查询商品入库信息,支持模糊查询,按任意时间段查询商品入库信息,统计入库品种、入库数量、入库金额。
(二)、出库查询功能:查询退供应商货物信息。
说明:选择字段查询商品入库信息,支持模糊查询,按任意时间段查询商品入库信息,统计入库品种、入库数量、入库金额。
(三)、销售查询功能:查询商品销售信息。
说明:选择任意字段、不同条件查询商品销售信息,也可按任意时间段查询商品销售信息,支持模糊查询和精确查询,可统计销售品种、数量、金额。
(四)、销售退货功能:查询客户退货信息。
说明:选择任意字段、不同条件查询商品销售信息,也可按任意时间段查询商品销售信息,支持模糊查询和精确查询,可统计销售品种、数量、金额。
六)、应收应付管理(一)、付款单功能:实现向供应商付款的功能。
说明:可查询与供应商之间的往来帐款信息,提供供应商列表选择,并计算欠供应商的累计余额。
(二)、收款单功能:实现向客户收款的功能。
说明:可查询与客户之间的往来帐款信息,提供客户列表选择、并计算应收客户累计余额。
(三)、应收款查询功能:查询客户付款信息。
说明:查询任意时间段与客户往来帐款信息,输入或选择客户名称查询应收款,统计欠款金额,尚欠余额。
(四)、应付款查询功能:查询向供应商付款信息。
说明:查询任意时间段与供应商之间的往来帐款信息,提供供应商列表供用户选择、支持键盘操作,统计欠款余额,付款金额,尚欠余额。
七)、统计报表管理(一)、销售日报表功能:查询当天的商品销售日报,同时统计商品销售品种、销售数量、销售金额。
(二)、销售月报表功能:查询任意一个月或任意时间段的商品销售报表,统计销售品种、销售数量、销售余额。
(三)、客户销售报表功能:统计所有客户销售商品的情况。
说明:可以按商品名称、仓库、职员或任意时间段统计所有客户销售商品的情况,采用组合式查询方法。
(四)、职员销售报表功能:统计公司所有职员销售商品的情况。
说明:可以按商品名称、仓库或客户名称或任意时间段统计所有职员销售商品的情况。
八)、基础信息管理(一)、商品信息管理功能:完成商品基本信息的录入、保存、修改、删除,支持键盘操作,选择字段查询商品基本信息,并可列表浏览商品信息。
说明:录入时单击“登记”按钮,将自动生成8位商品编号,在处理数据时,列表浏览商品信息不可用。
(二)、职员信息管理功能:完成职员基本信息的录入、保存、修改、删除,可按任意字段查询职员基本情况,支持列表浏览职员信息。
说明:登记职员信息时自动生成职员编号。
(三)、仓库信息管理功能:完成仓库基本信息的录入、保存、修改、删除,可按列表方式查询仓库信息。
(四)、供应商信息管理功能:完成供应商基本信息的录入、保存、修改、删除,可以按任意字段查询供应商基本信息。
(五)、客户信息管理功能:完成客户基本信息的录入、保存、修改、删除,可以按任意字段查询客户基本信息。
九)、系统设置(一)、本单位定义功能:定义本单位的基本信息,可以修改。
(二)、操作员及密码功能:操作员信息的添加、修改、删除、密码的修改及操作员信息浏览。
(三)、权限设置功能:对操作员进行不同的权限设置。
(四)、系统初始化功能:对系统数据库进行清空记录说明:第一次进入系统时清空测试数据,可以选择初始化对象。
十)、帮助(一)、帮助功能:帮助提示信息。
(二)、关于功能:说明及查看计算机系统信息。
四、各个重要模块的程序简介1.公用模块Option ExplicitPublic Functionn() As Stringn = "Provider=MSDASQL.1;Persist Security Info=False;User ID=sa;Data Source=Gcgl;Initial Catalog=Gcgl"End FunctionPublic Sub Enter(KeyCode As Integer)If KeyCode = vbKeyReturn ThenSendKeys "{Tab}"End IfEnd Sub2.系统登录模块Dim TIM As Integer '声明一个整型变量Dim rs1 As New ADODB.Recordset 定义一个数据集对象Dim myval As StringPrivate Sub Form_Activate()'显示软件名称及版本信息Me.Caption = App.Title & "版本: V" & App.Major & "." & App.Minor & "." & App.Revision rs1.Open "select * from qxsz ",n, adOpenKeyset, adLockOptimistic '打开数据库If rs1.RecordCount = 0 Thenmyval = MsgBox("进入系统后先设置操作员和操作员权限!",0")Load frm_mainfrm_main.ShowUnload MeElseDataCombo1.SetFocusEnd Ifrs1.CloseEnd SubPrivate Sub DataCombo1_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Then Text2.SetFocusEnd SubPrivate Sub text2_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn ThenCmd1.Visible = TrueCmd1.SetFocusEnd IfEnd SubPrivate Sub cmd1_Click()rs1.Open "select * from qxsz where 操作员名称='" & DataCombo1.BoundText & "'",n, adOpenKeyset, adLockOptimisticIf rs1.RecordCount > 0 Thenfrm_main.rkd.Enabled = rs1.Fields("商品入库")frm_main.Toolbar1.Buttons(1).Enabled = rs1.Fields("商品入库")frm_main.spxs.Enabled = rs1.Fields("商品销售")frm_main.Toolbar1.Buttons(8).Enabled = rs1.Fields("商品销售")frm_main.rktd.Enabled = rs1.Fields("退货返厂")frm_main.xsth.Enabled = rs1.Fields("销售退货")frm_main.Toolbar1.Buttons(10).Enabled = rs1.Fields("销售退货")frm_main.kccx.Enabled = rs1.Fields("库存查询")frm_main.Toolbar1.Buttons(5).Enabled = rs1.Fields("库存查询")frm_main.kcpd.Enabled = rs1.Fields("库存盘点")frm_main.rkcx.Enabled = rs1.Fields("入库查询")frm_main.Toolbar1.Buttons(3).Enabled = rs1.Fields("入库查询")frm_main.ckcx.Enabled = rs1.Fields("退货返厂查询")frm_main.xscx.Enabled = rs1.Fields("销售查询")frm_main.Toolbar1.Buttons(12).Enabled = rs1.Fields("销售查询")frm_main.xsthcx.Enabled = rs1.Fields("销售退货查询")frm_main.fkd.Enabled = rs1.Fields("付款单")frm_main.Toolbar1.Buttons(15).Enabled = rs1.Fields("付款单")frm_main.skd.Enabled = rs1.Fields("收款单")frm_main.Toolbar1.Buttons(16).Enabled = rs1.Fields("收款单")frm_main.skcx.Enabled = rs1.Fields("应收款查询")frm_main.fkcx.Enabled = rs1.Fields("应付款查询")frm_main.xsrbb.Enabled = rs1.Fields("销售日报表")frm_main.xsybb.Enabled = rs1.Fields("销售月报表")frm_main.khxsbb.Enabled = rs1.Fields("客户销售报表")frm_main.zyxsbb.Enabled = rs1.Fields("职员销售报表")frm_main.spinf.Enabled = rs1.Fields("商品信息管理")frm_main.yginf.Enabled = rs1.Fields("员工信息管理")frm_main.ckinf.Enabled = rs1.Fields("仓库信息管理")frm_main.gysinf.Enabled = rs1.Fields("¹供应商信息管理")frm_main.Toolbar1.Buttons(21).Enabled = rs1.Fields("¹供应商信息管理")frm_main.khinf.Enabled = rs1.Fields("客户信息管理")frm_main.Toolbar1.Buttons(19).Enabled = rs1.Fields("客户信息管理")frm_main.bdwdy.Enabled = rs1.Fields("本单位定义")frm_main.czysz.Enabled = rs1.Fields("操作员及密码")frm_main.qxsz.Enabled = rs1.Fields("权限设置")frm_main.xtcsh.Enabled = rs1.Fields("系统初始化")Dim MESSAGE As StringTextime.Text = TIMAdodc1.RecordSource = "select * from qxsz where 操作员名称='" + DataCombo1.BoundText + "'"Adodc1.RefreshIf DataCombo1.BoundText <> "" And Text2.Text = Trim(Adodc1.Recordset.Fields("密码")) ThenLoad frm_mainfrm_main.Showfrm_main.St1.Panels(3).Text = Trim(DataCombo1.Text)Unload MeElseIf TIM = 3 ThenMESSAGE = MsgBox("密码输入错误,请向系统管理员查询!", 0, "")If MESSAGE = vbOK Then EndEnd IfIf DataCombo1.BoundText = "" ThenMsgBox ("请输入操作员!")DataCombo1.SetFocusElseIf Trim(DataCombo1.BoundText) <> Trim(Adodc1.Recordset.Fields("操作员名称")) ThenMsgBox ("查无此操作员,请重新输入操作员!")DataCombo1.SetFocusElseIf Text2.Text <> Adodc1.Recordset.Fields("密码") ThenMsgBox ("密码错误,请重新输入密码!")TIM = TIM + 1Text2.SetFocusEnd IfEnd IfEnd IfEnd IfEnd Ifrs1.CloseEnd SubPrivate Sub cmd2_Click()EndEnd Sub3.主程序模块Private Sub ckcx_Click()Load main_cxtj_ckcxmain_cxtj_ckcx.Showfrm_main.Enabled = FalseEnd SubPrivate Sub Form_Load()Me.Caption = App.Title & " 版本: V" & App.Major & "." & App.Minor & "." & App.RevisionDim i As IntegerFor i = 0 To 1Label1(i).Caption = App.TitleNext iLabel2.Caption = "版本: V" & App.Major & "." & App.Minor & "." & App.Revision End SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)Select Case Button.KeyCase Is = "rk"rkd_ClickCase Is = "kc"kccx_ClickCase Is = "xscx"xscx_ClickCase Is = "rkcx"rkcx_ClickCase Is = "fkd"fkd_ClickCase Is = "kh"khinf_ClickCase Is = "gys"gysinf_ClickCase Is = "bz"bz1_ClickCase Is = "xs"spxs_ClickCase Is = "xsth"xsth_ClickCase Is = "skd"skd_ClickCase Is = "tc"EndEnd SelectEnd SubPrivate Sub Timer1_Timer()St1.Panels(2).Text = Format(Date, "long date") & " " & Time End SubPrivate Sub rkd_Click()Load main_rcyw_rkmain_rcyw_rk.Showfrm_main.Enabled = FalseEnd SubPrivate Sub rktd_Click()Load main_rcyw_rktdmain_rcyw_rktd.Showfrm_main.Enabled = FalseEnd SubPrivate Sub kccx_Click()Load main_kcgl_kccxmain_kcgl_kccx.Showfrm_main.Enabled = FalseEnd SubPrivate Sub kcpd_Click()Load main_kcgl_kcpdmain_kcgl_kcpd.Showfrm_main.Enabled = FalseEnd SubPrivate Sub xscx_Click()Load main_cxtj_xscxmain_cxtj_xscx.Showfrm_main.Enabled = FalseEnd SubPrivate Sub rkcx_Click()Load main_cxtj_rkcxmain_cxtj_rkcx.Showfrm_main.Enabled = FalseEnd SubPrivate Sub fkd_Click()Load main_ysyf_fkdmain_ysyf_fkd.Showfrm_main.Enabled = FalseEnd SubPrivate Sub skcx_Click()Load main_ysyf_skcxmain_ysyf_skcx.Showfrm_main.Enabled = FalseEnd SubPrivate Sub fkcx_Click()Load main_ysyf_fkcxmain_ysyf_fkcx.Showfrm_main.Enabled = False End SubPrivate Sub xsrbb_Click() Load main_tjbb_xsrbbmain_tjbb_xsrbb.Showfrm_main.Enabled = False End SubPrivate Sub xsthcx_Click() Load main_cxtj_xsthcxmain_cxtj_xsthcx.ShowEnd SubPrivate Sub xsybb_Click() Load main_tjbb_xsybbmain_tjbb_xsybb.Showfrm_main.Enabled = False End SubPrivate Sub khxsbb_Click() Load main_tjbb_khxsbbmain_tjbb_khxsbb.Showfrm_main.Enabled = False End SubPrivate Sub zyxsbb_Click() Load main_tjbb_zyxsbbmain_tjbb_zyxsbb.Showfrm_main.Enabled = False End SubPrivate Sub spinf_Click() Load main_jbxx_spinfmain_jbxx_spinf.Showfrm_main.Enabled = False End SubPrivate Sub yginf_Click() Load main_jbxx_yginfmain_jbxx_yginf.Showfrm_main.Enabled = False End SubPrivate Sub ckinf_Click() Load main_jbxx_ckinfmain_jbxx_ckinf.Showfrm_main.Enabled = FalseEnd SubPrivate Sub gysinf_Click() Load main_jbxx_gysmain_jbxx_gys.Showfrm_main.Enabled = FalseEnd SubPrivate Sub khinf_Click() Load main_jbxx_khmain_jbxx_kh.Showfrm_main.Enabled = FalseEnd SubPrivate Sub bdwdy_Click() Load main_bdwdymain_bdwdy.Showfrm_main.Enabled = FalseEnd SubPrivate Sub czysz_Click() Load main_xtsz_czyszmain_xtsz_czysz.Showfrm_main.Enabled = FalseEnd SubPrivate Sub qxsz_Click() Load main_xtsz_qxszmain_xtsz_qxsz.Showfrm_main.Enabled = FalseEnd SubPrivate Sub xtcsh_Click() Load main_xtsz_xtcshmain_xtsz_xtcsh.Showfrm_main.Enabled = FalseEnd SubPrivate Sub bz1_Click()Load frmTipfrmTip.Showfrm_main.Enabled = FalseEnd SubPrivate Sub gy_Click()Load frmAboutfrmAbout.Showfrm_main.Enabled = FalseEnd SubPrivate Sub spxs_Click() Load main_rcyw_xsmain_rcyw_xs.Showfrm_main.Enabled = FalseEnd SubPrivate Sub xsth_Click()Load main_rcyw_xsthmain_rcyw_xsth.Showfrm_main.Enabled = FalseEnd SubPrivate Sub skd_Click()Load main_ysyf_skdmain_ysyf_skd.ShowEnd SubPrivate Sub exit_Click()EndEnd Sub4.商品入库模块'定义数据集对象Dim rs1 As New ADODB.RecordsetDim rs2 As New ADODB.RecordsetDim rs3 As New ADODB.RecordsetDim rs4 As New ADODB.RecordsetDim rs5 As New ADODB.RecordsetDim s, y, i, jPublic Sub yfje_exp()yfje.Text = Format((Val(hjje.Text) * (Val(zk.Text) / 10)) + (Val(yfje.Text) * (Val(sl.Text) / 100)), "0.00")End SubPrivate Sub Form_Activate()rq.Text = DateCombo1.AddItem ("现金"): Combo1.AddItem ("转帐支票")Combo1.AddItem ("汇票"): Combo1.ListIndex = 0Me.Caption = Me.Caption & "操作员: & frm_main.St1.Panels(3).TextEnd SubPrivate Sub Form_Load()MS1.Rows = 102: MS1.Cols = 9s = Array("300", "2100", "1200", "1800", "1500", "765", "1200", "1200", "1200") y = Array("xh", "商品名称", "商品编号", "规格", "产地", "单位", "进价", "数量", "金额")For i = 0 To 8MS1.ColWidth(i) = s(i): MS1.TextMatrix(0, i) = y(i)Next iMS1.FixedRows = 1: MS1.FixedCols = 1For i = 1 To 101MS1.TextMatrix(i, 0) = iNext irq.Text = DateEnd SubPrivate Sub Form_Unload(Cancel As Integer)frm_main.Enabled = TrueEnd SubPrivate Sub ck_Change()ck.Text = Trim(ck.BoundText)End SubPrivate Sub ck_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn ThenMS1.Row = 1: MS1.Col = 1Text1.Visible = TrueText1.SetFocusEnd IfEnd SubPrivate Sub gys_Change()DataList1.ReFillAdodc1.RecordSource = "select * from gys where 供应商全称 like '" + Trim(gys.Text) + "'+ '%'or 简称 like '" + Trim(gys.Text) + "'+ '%'"Adodc1.RefreshIf gys.Text <> "" And Adodc1.Recordset.RecordCount > 0 Then DataList1.Visible = TrueEnd SubPrivate Sub gys_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn ThenDataList1.Visible = Falsejsr.SetFocusEnd IfIf KeyCode = vbKeyPageDown ThenDataList1.ReFillDataList1.Visible = TrueDataList1.SetFocusEnd IfEnd SubPrivate Sub grid1_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn ThenWith Adodc2.RecordsetIf .RecordCount > 0 ThenIf .Fields("商品名称") <> "" ThenIf .Fields("商品名称") <> "" Then MS1.TextMatrix(MS1.Row, 1) = Trim(.Fields("商品名称"))If .Fields("商品编号") <> "" Then MS1.TextMatrix(MS1.Row, 2) = Trim(.Fields("商品编号"))If .Fields("规格") <> "" Then MS1.TextMatrix(MS1.Row, 3) = Trim(.Fields("规格"))If .Fields("产地") <> "" Then MS1.TextMatrix(MS1.Row, 4) = Trim(.Fields("产地"))If .Fields("单位") <> "" Then MS1.TextMatrix(MS1.Row, 5) = Trim(.Fields("单位"))If .Fields("进价") <> "" Then MS1.TextMatrix(MS1.Row, 6) = .Fields("进价") Text1.Text = MS1.TextText1.SetFocusMS1.Col = 6grid1.Visible = FalseElseMsgBox ("无数据选择!!!")grid1.Visible = FalseText1.SetFocusEnd IfEnd IfEnd WithText1.SetFocusEnd IfIf KeyCode = vbKeyEscape Thengrid1.Visible = FalseText1.SetFocusEnd IfEnd SubPrivate Sub DataList1_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Thengys.Text = Trim(DataList1.BoundText)DataList1.Visible = FalseEnd IfEnd SubPrivate Sub jsr_Change()jsr.Text = Trim(jsr.BoundText)End SubPrivate Sub jsr_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Then ck.SetFocusEnd SubPrivate Sub MS1_Click()If MS1.Row >= 1 And MS1.TextMatrix(MS1.Row - 1, 7) <> "" ThenText1.Visible = TrueText1.SetFocusEnd IfEnd SubPrivate Sub MS1_entercell()Dim X As String, y As String, p As StringIf MS1.CellWidth <= 0 Or MS1.CellHeight <= 0 Then Exit SubX = MS1.TextMatrix(MS1.FixedRows, MS1.Col): y = MS1.TextMatrix(MS1.Row, 0)If y <> "" ThenIf MS1.Col - MS1.LeftCol <= 3 Then MS1.LeftCol = MS1.LeftCol + 1If MS1.CellWidth > 0 And MS1.CellHeight > 0 ThenText1.Width = MS1.CellWidth: Text1.Height = MS1.CellHeightText1.Left = MS1.CellLeft + MS1.Left: Text1.Top = MS1.CellTop + MS1.TopEnd IfX = MS1.TextMatrix(MS1.FixedRows, MS1.Col): y = MS1.TextMatrix(MS1.Row, 0)p = MS1.TextMatrix(MS1.Row, MS1.Col)Text1.Text = MS1.TextText1.SelStart = 0Text1.SelLength = Len(Text1.Text)End IfEnd SubPrivate Sub MS1_RowColChange()For i = 1 To 101If MS1.TextMatrix(i, 1) <> "" ThenMS1.TextMatrix(MS1.Row, 6) = Format(MS1.TextMatrix(MS1.Row, 6), "#0.00")MS1.TextMatrix(MS1.Row, 8) = Val(MS1.TextMatrix(MS1.Row, 7)) * Val(MS1.TextMatrix(MS1.Row, 6))MS1.TextMatrix(MS1.Row, 8) = Format(MS1.TextMatrix(MS1.Row, 8), "#0.00")End IfNext iEnd SubPrivate Sub sf_Change()wf.Text = Format((Val(yfje.Text) - Val(sf.Text)), "0.00")End SubPrivate Sub sl_Change()Call yfje_expEnd SubPrivate Sub sl_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Then Combo1.SetFocusEnd SubPrivate Sub zk_Change()Call yfje_expEnd SubPrivate Sub zk_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Then sl.SetFocusEnd SubPrivate Sub hjje_Change()Call yfje_expwf.Text = Format((Val(yfje.Text) - Val(sf.Text)), "0.00")End SubPrivate Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Then sf.SetFocusEnd SubPrivate Sub sf_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Then Combc.SetFocusEnd SubPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn ThenIf MS1.Col = 1 ThenWith Adodc2.RecordsetIf Adodc2.Recordset.RecordCount > 0 ThenIf .Fields("商品名称") <> "" Then MS1.TextMatrix(MS1.Row, 1) = Trim(.Fields("商品名称"))If .Fields("商品编号") <> "" Then MS1.TextMatrix(MS1.Row, 2) = Trim(.Fields("商品编号"))If .Fields("¹规格") <> "" Then MS1.TextMatrix(MS1.Row, 3) = Trim(.Fields("规格"))If .Fields("产地") <> "" Then MS1.TextMatrix(MS1.Row, 4) = Trim(.Fields("产地"))If .Fields("单位") <> "" Then MS1.TextMatrix(MS1.Row, 5) = Trim(.Fields("单位"))If .Fields("进价") <> "" Then MS1.TextMatrix(MS1.Row, 6) = .Fields("进价") Text1.SetFocusText1.Text = MS1.Textgrid1.Visible = FalseMS1.Col = 5End IfEnd WithEnd IfIf MS1.Col = 8 ThenMS1.Row = MS1.Row + 1MS1.Col = 1ElseIf MS1.Col + 1 <= MS1.Cols - 1 ThenMS1.Col = MS1.Col + 1ElseIf MS1.Row + 1 <= MS1.Rows - 1 ThenMS1.Row = MS1.Row + 1MS1.Col = 1End IfEnd IfEnd IfEnd IfIf KeyCode = vbKeyUp ThenIf MS1.Row > 1 Then MS1.Row = MS1.Row - 1End IfIf KeyCode = vbKeyDown ThenIf MS1.Row < 99 Then MS1.Row = MS1.Row + 1 End IfIf KeyCode = vbKeyLeft ThenIf Text1.Text <> "" ThenText1.SelStart = 0Text1.SelLength = Len(Text1.Text)End IfIf MS1.Col - 8 <= MS1.Cols + 1 ThenMS1.Col = MS1.Col - 1If MS1.Col = 0 Then MS1.Col = 1ElseIf MS1.Row + 1 <= MS1.Row - 1 ThenMS1.Row = MS1.Row + 1MS1.Col = 1End IfEnd IfEnd IfIf KeyCode = vbKeyRight ThenIf Text1.Text <> "" ThenText1.SelStart = 0Text1.SelLength = Len(Text1.Text)End IfIf MS1.Col + 1 <= MS1.Cols - 1 ThenMS1.Col = MS1.Col + 1ElseIf MS1.Row + 1 <= MS1.Rows - 1 ThenMS1.Row = MS1.Row + 1MS1.Col = 1End IfEnd IfEnd IfIf KeyCode = vbKeyPageDown And MS1.Col = 1 Then Adodc2.RecordSource = "select * from spinf " Adodc2.Refreshgrid1.Visible = Truegrid1.SetFocusEnd IfEnd SubPrivate Sub Text1_Change()MS1.Text = Text1.TextIf MS1.Col = 1 ThenIf Text1.Text = "" Thengrid1.Visible = FalseElseAdodc2.RecordSource = "select * from spinf where (商品名称 like '" + Text1.Text + "'+ '%')or( 简称 like '" + Text1.Text + "'+'%')"Adodc2.RefreshIf Adodc2.Recordset.RecordCount > 0 Thengrid1.Visible = TrueText1.SetFocusEnd IfEnd IfEnd IfIf MS1.Col = 3 ThenIf MS1.TextMatrix(MS1.Row, 1) = "" ThenMsgBox ("无商品名称,请重新输入!!!")MS1.Col = 1End IfEnd IfIf MS1.Col = 6 Then MS1.TextMatrix(MS1.Row, 8) = Val(MS1.TextMatrix(MS1.Row, 7)) * Val(MS1.TextMatrix(MS1.Row, 6))If MS1.Col = 7 Then MS1.TextMatrix(MS1.Row, 8) = Val(MS1.TextMatrix(MS1.Row, 7)) * Val(MS1.TextMatrix(MS1.Row, 6))Dim a, b As SingleFor i = 1 To 101If MS1.TextMatrix(i, 1) <> "" And MS1.TextMatrix(i, 7) <> "" Thenpz.Text = ia = Val(MS1.TextMatrix(i, 8)) + ab = Val(MS1.TextMatrix(i, 7)) + bEnd IfNext ihjsl.Text = b: hjje.Text = Format(a, "0.00")End SubPrivate Sub Comdj_Click()Text1.Width = MS1.CellWidth: Text1.Height = MS1.CellHeightText1.Left = MS1.CellLeft + MS1.Left: Text1.Top = MS1.CellTop + MS1.TopMS1.Enabled = TrueDim lsph As Integerrs2.Open "select * from rkd order by 票号",n, adOpenKeyset, adLockOptimistic If rs2.RecordCount > 0 ThenIf Not rs2.EOF Then rs2.MoveLastIf rs2.Fields("票号") <> "" Thenlsph = Right(Trim(rs2.Fields("票号")), 4) + 1ph.Text = Date & "rk" & Format(lsph, "0000")End IfElseph.Text = Date & "rk" & "0001"End Ifrs2.Closegys.Enabled = True: sf.Enabled = True: Combc.Enabled = TrueComqx.Enabled = True: Comdj.Enabled = FalseText1.Enabled = True: sf.Enabled = TrueFor i = 1 To 100For j = 1 To 8MS1.TextMatrix(i, j) = ""Next jNext igys.Text = "": pz.Text = "0": hjsl.Text = "0"hjje.Text = "0": sf.Text = "0": wf.Text = "0"gys.SetFocusEnd SubPrivate Sub Combc_Click()rs3.Open "select * from rkd",n, adOpenKeyset, adLockOptimisticIf MS1.TextMatrix(1, 1) <> "" And MS1.TextMatrix(1, 7) <> "" ThenFor i = 1 To 100If MS1.TextMatrix(i, 1) <> "" And MS1.TextMatrix(i, 7) <> "" Thenrs3.AddNewIf MS1.TextMatrix(i, 1) <> "" Then rs3.Fields("商品名称") = Trim(MS1.TextMatrix(i, 1))If MS1.TextMatrix(i, 2) <> "" Then rs3.Fields("商品编号") = Trim(MS1.TextMatrix(i, 2))If MS1.TextMatrix(i, 3) <> "" Then rs3.Fields("规格") = Trim(MS1.TextMatrix(i, 3))If MS1.TextMatrix(i, 4) <> "" Then rs3.Fields("产地") = Trim(MS1.TextMatrix(i, 4))If MS1.TextMatrix(i, 5) <> "" Then rs3.Fields("单位") = Trim(MS1.TextMatrix(i, 5))If MS1.TextMatrix(i, 6) <> "" Then rs3.Fields("进价") = Val(MS1.TextMatrix(i, 6))If MS1.TextMatrix(i, 7) <> "" Then rs3.Fields("数量") = Val(MS1.TextMatrix(i, 7))If MS1.TextMatrix(i, 8) <> "" Then rs3.Fields("金额") = Val(MS1.TextMatrix(i, 8))If gys.Text <> "" Then rs3.Fields("供应商") = Trim(gys.Text)rs3.Fields("操作员") = frm_main.St1.Panels(3).TextIf jsr.Text <> "" Then rs3.Fields("经手人") = Trim(jsr.Text)If rq.Text <> "" Then rs3.Fields("日期") = Trim(rq.Text)If ph.Text <> "" Then rs3.Fields("票号") = Trim(ph.Text)If ck.Text <> "" Then rs3.Fields("仓库") = Trim(ck.Text)rs3.Updaters4.Open "select * from kc where 商品编号='" & Trim(MS1.TextMatrix(i, 2)) & "'and 仓库='" & Trim(ck.Text) & "'",n, adOpenKeyset, adLockOptimisticIf rs4.RecordCount > 0 ThenIf rs4.Fields("商品名称") <> "" Thenrs4.Fields("库存数量") = rs4.Fields("库存数量") + Trim(Val(MS1.TextMatrix(i, 7)))rs4.Fields("库存金额") = Val(rs4.Fields("库存数量")) * Val(rs4.Fields("进价"))rs4.UpdateEnd IfElsers4.AddNewIf MS1.TextMatrix(i, 1) <> "" Then rs4.Fields("商品名称") = MS1.TextMatrix(i, 1)If MS1.TextMatrix(i, 2) <> "" Then rs4.Fields("商品编号") = MS1.TextMatrix(i, 2)If MS1.TextMatrix(i, 3) <> "" Then rs4.Fields("¹规格") = MS1.TextMatrix(i, 3)If MS1.TextMatrix(i, 4) <> "" Then rs4.Fields("产地") = MS1.TextMatrix(i, 4)If MS1.TextMatrix(i, 5) <> "" Then rs4.Fields("单位") = MS1.TextMatrix(i, 5)If MS1.TextMatrix(i, 6) <> "" Then rs4.Fields("进价") = Val(MS1.TextMatrix(i, 6))If MS1.TextMatrix(i, 7) <> "" Then rs4.Fields("库存数量") = Val(MS1.TextMatrix(i, 7))If MS1.TextMatrix(i, 8) <> "" Then rs4.Fields("库存金额") = Val(MS1.TextMatrix(i, 8))If ck.Text <> "" Then rs4.Fields("仓库") = ck.Textrs4.UpdateEnd Ifrs4.Closers5.Open "select * from gysmx",n, adOpenKeyset, adLockOptimisticIf rs5.EOF = False Then rs5.MoveLastrs5.AddNewIf rq.Text <> "" Then rs5.Fields("日期") = rq.Textrs5.Fields("时间") = TimeIf ph.Text <> "" Then rs5.Fields("票号") = ph.TextIf MS1.TextMatrix(i, 7) <> "" Then rs5.Fields("数量") = MS1.TextMatrix(i, 7) If MS1.TextMatrix(i, 8) <> "" Then rs5.Fields("金额小计") = MS1.TextMatrix(i, 8)If MS1.TextMatrix(i, 6) <> "" Then rs5.Fields("单价") = MS1.TextMatrix(i, 6)If MS1.TextMatrix(i, 5) <> "" Then rs5.Fields("单位") = MS1.TextMatrix(i, 5) If gys.Text <> "" Then rs5.Fields("供应商") = gys.TextIf gys.Text <> "" Then rs5.Fields("摘要") = "进货:从[" & gys.Text & "]购进" & "[" & MS1.TextMatrix(i, 1) & "," & MS1.TextMatrix(i, 3) & "]等"rs5.Updaters5.CloseAdodc5.RefreshEnd IfNext iAdodc5.RecordSource = "select * from gysmx where 供应商全称='" + gys.Text + "'and 累计余额>0 order by 日期,时间"Adodc5.RefreshIf Adodc5.Recordset.EOF = False Then Adodc5.Recordset.MoveLastIf Adodc5.Recordset.RecordCount > 0 ThenIf Adodc5.Recordset.Fields("累计余额") <> "" Then gysye.Text = Adodc5.Recordset.Fields("累计余额")End IfAdodc5.RecordSource = "select * from gysmx where 供应商全称='" + gys.Text + "'order by日期,时间"Adodc5.RefreshIf Adodc5.Recordset.EOF = False Then Adodc5.Recordset.MoveLastIf Adodc5.Recordset.RecordCount > 0 ThenAdodc5.Recordset.Fields("欠款记账") = Val(wf.Text)Adodc5.Recordset.Fields("累计余额") = Val(gysye.Text) + Val(wf.Text)End IfAdodc5.Recordset.Update' Combc.Enabled = False: Comdj.Enabled = True: Comqx.Enabled = FalseMS1.Enabled = False: sf.Enabled = FalseText1.Visible = False: grid1.Visible = False: DataList1.Visible = FalseElseMsgBox ("填写数据不完整,请核实, 再保存")MS1.Col = 1: MS1.Row = 1grid1.Visible = FalseEnd Ifrs3.CloseEnd SubPrivate Sub Comqx_Click()For i = 1 To 101For j = 1 To 8MS1.TextMatrix(i, j) = ""Next jNext iMS1.Enabled = False: Comdj.Enabled = True: sf.Enabled = FalseText1.Visible = False: DataList1.Visible = False。