进销存管理系统软件设计

上传人:细水****9 文档编号:65654888 上传时间:2022-03-24 格式:DOC 页数:37 大小:1.12MB
收藏 版权申诉 举报 下载
进销存管理系统软件设计_第1页
第1页 / 共37页
进销存管理系统软件设计_第2页
第2页 / 共37页
进销存管理系统软件设计_第3页
第3页 / 共37页
资源描述:

《进销存管理系统软件设计》由会员分享,可在线阅读,更多相关《进销存管理系统软件设计(37页珍藏版)》请在装配图网上搜索。

1、天津工业大学毕业设计 进销存管理系统的设计与实现 姓 名 刘鸽 学 院 计算机科学与软件学院 专 业 软件技术 指导教师 王鹤 职 称 讲师 2012 年 5 月 19 日天津工业大学毕业设计(论文)任务书 题目进销存管理系统学生姓名刘鸽学院名称计算机科学与软件专业班级软件技术0912课题类型开发设计类课题意义为了对企业大量复杂的货品信息进行信息化管理,尽力降低企业成本,加快企业发展,增加企业投资回报,我们虚拟的为某公司开发一款跨平台的信息化软件。从企业的需求出发,定制出更适合该企业的进销存软件。于此同时,开发本课题的目的更是为了将自己学过的知识进行综合应用,提高自身的实践能力和动手能力,真正

2、的做到学以致用。并从中吸取经验教训,对软件的开发过程做进一步和更深刻的了解。任务与进度要求2012年3月第三周:搜集资料,确定题目。第四周:通过各个方面,获取收集需求。2012年4月第一周:进行系统设计和数据库设计。第二周:对进货管理模块进行详细设计。第三周:对库存管理模块进行详细设计。第四周:对销售管理模块进行详细设计。2012年5月第一周:用代码实现各个模块。第二周:进行系统测试,编写毕业设计论文第三周:对论文进行修改,最终定稿。主要参考文献1.唐大仕,Java程序设计.北京:清华大学出版社;北京交通大学出版社,2007.5.2.张思民,Java语言程序设计.北京:清华大学出版社,2012

3、.1.3宋昆、李严等SQL Server 数据库开发实例解析北京:机械工业出版社,2006.4.苗春义等,Java项目开发全程实录.北京:清华大学出版社,2008.6.5.美肯德尔等,系统分析与设计.北京:机械工业出版社,2010.4.6.史济民等,软件工程.北京:高等教育出版社,2002.12.起止日期2012年3月12日-2012年5月19日备注院长 教研室主任 指导教师 毕业设计(论文)开题报告表 2012年3月12日姓名刘鸽学院计算机科学与软件专业软件技术班级软件专0912题目进销存管理系统指导教师王鹤一、与本课题有关的国内外研究情况、课题研究的主要内容、目的和意义:本课题国内外研究情

4、况: 中小企业在我国经济发展中具有重要地位,目前中小企业数量多,分布广泛,行业分布跨度大。随着全球经济一体化的发展和电子商务的兴起,中小企业之间的竞争将越来越激烈。课题研究的目的和意义:为了对企业大量复杂的货品信息进行信息化管理,尽力降低企业成本,加快企业发展,增加企业投资回报,我们虚拟的为某公司开发一款跨平台的信息化软件。从企业的需求出发,定制出更适合该企业的进销存软件。于此同时,开发本课题的目的更是为了将自己学过的知识进行综合应用,提高自身的实践能力和动手能力,真正的做到学以致用。并从中吸取经验教训,对软件的开发过程做进一步和更深刻的了解。本课题研究的内容:进销存管理系统是完成企业进、销、

5、存一体化的信息化管理软件。它主要包括六个基本模块:基础信息管理、进货管理、销售管理、查询统计、库存管理、系统管理。二、进度及预期结果:起止日期主要内容预期结果2012年3月第三周:搜集资料,确定题目。确定题目和开发语言、开发工具等。第四周:通过各个方面,获取收集需求。确定功能需求,明确系统要做什么。2012年4月第一周:进行系统设计和数据库设计。分析设计系统的实现,创建数据库。第二周:对进货管理模块进行详细设计。设计该模块实现算法和局部结构。第三周:对库存管理模块进行详细设计。设计该模块实现算法和局部结构。第四周:对销售管理模块进行详细设计。设计该模块实现算法和局部结构。2012年5月第一周:

6、用代码实现各个模块。完成各个模块的实现。第二周:进行系统测试,编写毕业设计论文。测试并修改系统,使系统能达到预期功能,完成毕业设计初稿的编写。第三周:对论文进行修改,最终定稿。完成毕业设计。完成课题的现有条件计算机设备、SQL Server 2005、java、Eclipse审查意见指导教师: 年 月 日学院意见主管领导: 年 月 日目 录前 言1第一章 进销存管理系统开发综述2 1.1 选题背景21.2 课题的目的及意义2第二章 系统开发相关技术32.1 软硬件工作环境32.2 系统开发相关技术简介3第三章 系统分析53.1 系统分析概述53.2 可行性分析53.3 系统功能模块划分53.4

7、 需求分析分析6第四章 数据库设计74.1 数据库概念结构设计74.2 数据库逻辑设计74.3 E-R图74.4 数据库物理设计8第五章 详细设计95.1 设计主要内容95.2 进货管理模块设计105.3 库存管理模块设计12第六章 界面及代码设计146.1 进货管理模块的实现146.2 库存管理模块的实现19第七章 系统测试247.1 系统测试的概念及方针247.2 单元测试247.3 测试结果27结 论28参考文献29谢 辞30摘 要据国家对重点企业的调查分析,我国企业普遍存在信息化程度低,信息机构不健全,信息化建设投入不足与建设成本过高,经营管理中协作不充分的问题。从总体上看,存在地区不

8、平衡,还较多停留在表面应用层次上,没有深入到企业的运行、管理各个环节。经济大环境的变化使得规模经济的优势不再突出。固定的硬设备、人员数量、大量资金等资源投入占企业效益的比重变少,而软投入如管理、人力资源价值、服务、品牌附加值、渠道等要素资源的投入却能增加企业的效益。“速度冲击规模”的速度经济概念已经向企业提出。 那么对于日益发展壮大的企业集团,怎样才能找到一套功能强大可任意拓展、低运行成本、安全可靠的管理解决方案,来跟上企业的发展,跟上时代的发展呢? 对于大型企业来说,成长到一定规模实现信息化是自然的需求,而对于多数的中小企业来说,他们会在解决具体难题的过程中感受到信息化给企业带来的改变,渐渐

9、领悟到信息化可以帮助企业突破发展的瓶颈。但是无论是中小企业领导信息化意识的提高,IT人才的充实,还是信息系统带来的企业效益的显露,往往需要一个过程。 我们认为最好的办法是利用Internet这个工具,架构自己的供需链管理平台,使无处不在的互联网为你所用,实现无处不在的管理目标。让Internet像电一样融入到企业的管理之中,提高企业在新经济时代的核心竞争力,通过对Internet的高效率使用,在激烈的市场竞争中,首先打赢第一仗“信息战”。正是基于对Internet的这种深刻认识,针对中国企业特点提出了基于Internet的网络商务管理解决方案企业进销存管理系统。关键字:企业进销存管理系统;信息

10、化建设;管理平台;经济时代前 言经济大环境的变化使得规模经济的优势不再突出。固定的硬设备、人员数量、大量资金等资源投入占企业效益的比重变少,而软投入如管理、人力资源价值、服务、品牌附加值、渠道等要素资源的投入却能增加企业的效益。“速度冲击规模”的速度经济概念已经向企业提出。 加入WTO 之后,随着国内经济的高速发展,中小型的商品流通企业越来越多,其所经营的商品种类繁多,难以管理,而进存销管理系统逐渐成为企业经营和管理的核心环节,也是企业获得效益的关键。 而且随着信息时代的到来,企业的生存和竞争环境发生了根本性的变化。随着经济全球化步伐的加快,面对国内外众多企业的各种竞争,企业需要尽快与国际接轨

11、,尤其是实力不强的中小企业更需要运用先进的管理手段,提升企业的核心竞争能力。对于中小企业而言,信息化无论是作为战略手段还是战术手段,在企业经营中发挥着举足轻重的作用。为了完善管理制度增强企业竞争力,公司决定开发进存销管理系统,以实现商品管理的信息化。本课题是以中小企业为背景来研究中小企业进销存管理系统,首先,简述了中小企业的发展现状及信息化的必要性;其次介绍了实现本系统时所用到的相关技术;然后提出了该进销存管理系统的业务和数据流程及各个功能模块的组成;最后指出系统的具体设计和实现过程。第一章 进销存管理系统开发综述1.1 选题背景中小企业在我国经济发展中具有重要地位,目前中小企业数量多,分布广

12、泛,行业分布跨度大。随着全球经济一体化的发展和电子商务的兴起,中小企业之间的竞争将越来越激烈。网络及电子商务的迅猛发展突破了时间、空间的局限性,给中小企业带来了更多的发展机会,同时也增大了企业之间的竞争强度。这就要求中小企业必须改变企业的经营管理模式,提高企业的运营效率。目前,我国中小企业的信息化水平还很低,相比国外企业,还只处于刚开始始用的阶段。随着技术发展,电脑操作及管理日趋简化,电脑知识日趋普及,同时市场经济快速多变,竞争激烈,企业采用电脑管理进货、库存、销售等诸多环节也已成为趋势及必然。1.2 选题的目的及意义进销存管理系统是一个基于Internet的应用系统,它是一个面对当前的进销存

13、管理工作基本还处于手工和半信息自动化处理状态而应运而生的一个基于Internet的一个完全信息自动化的系统,整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成进货、销售、库存管理的全过程。企业单位只需具备访问Internet的条件即可在系统发布的站点上进行进销存的管理。在图型化的人机界面中完成日常的进销存管理工作.一方面摆脱了时间和空间的限制,另一方面有效的解决的数据共享的问题。经过实际使用证明,本文所设计的企业进销存管理系统可以满足企业进货、销售管理方面的需要。第二章 系统开发相关技术2.1 系统软件及开发平台硬件平台:CPU : P4 3.2GHz。内存 : 512MB以上

14、。硬盘空间:80GB。软件平台:操作系统: Windows XP。数据库:SQL Server 2005。开发工具包:JDK 1.6、eclipse2.2 应用技术简介1. java简介Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业

15、环境下,Java更具备了显著优势和广阔前景。Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。但在 J2SE 1.4.2 发布后,Java 的执行速度有了大幅提升。 2 java swing简介Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing

16、开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。工具包中所有的包都是以swing作为名称,例如javax.swing,javax.swing.event用Swing创建图形界面步骤: (1) 导入Swing包 (2) 选择界面风格(3) 设置顶层容器 (4) 设置按钮和标签(5) 将组件放到容器上 (6) 为组件增加边框(7) 处理事件 (8) 辅助技术支持3. SQL Server 2005简介SQL Server 2005是数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了

17、第一个OS/2 版本。Microsoft SQL Server是一种基于客户机/服务器的关系型数据库管理系统,用来对存放在计算机中的数据库进行组织、管理和检索,它使用Transact-SQL语言在服务器和客户之间传送请求。SQL Server 2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,可以构建和管理用于业务的高可用和高性能的数据库应用程序。此外,应用SQL Server 2005可通过记分卡、Dashboard、Web services和移动设备将数据应用推向业务的各个领域。4. Eclipse简介Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用

18、java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C+和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PD

19、E用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发环境的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。第三章 需求分析3.1系统分析概述系统分析的主要任务是将在系统详细调查中所得到的文档资料集中到一起,对组织内部整体管理状况和信息处理过程经性分析。它侧重于从业务全过程的角度进行分析。分析的主要内容是:业务和数据的流程是否流畅,热否合理;数据、业务过程和实现管理功能之间的关系;老系统管理模式改革和新系统管

20、理方法的实现是否具有可行性等等。系统分析的目的是将用户的需求及其解决方法确定下来,这些需要确定的结果包括:开发者关于现有组织管理状况的了解;用户对信息系统功能的需求;数据和业务流程;管理功能和管理数据指标体系;新系统拟改动和新增的管理模式等等。系统分析所确定的内容是今后系统设计、系统实现的基础。3.2 可行性分析通过计算机网络系统对企业进行全面的管理,满足了企业的现代化管理的要求。1. 经济可行性企业营运过程中信息的系统化管理,权威的数据统计,为企业的经营决策提供了大量的、权威的科学依据(数据);强大的账单结功能,简化了员工的日常工作,提高了工作效率,避免了人工管理过程中数据易错所带来的一系列

21、的连锁反映,提高企业的经济效益。2. 技术可行性实际情况下,在高系统配置、高网络带宽服务,各个级别管理员很容易通过网站对其操作范围内的系统内容信息进行操作管理,完全满足日常经营、管理的要求。3. 社会可行性该系统符合现有法律、法规和政策方面的限制,没违背当今社会的道德标准,社会可行性通过。4. 结论综上所述,通过技术可行性,经济可行性,社会可行性分析,本系统的开发是可行的。3.3 需求分析进销存管理系统是基于先进的软件和高速、大容量的硬件基础上的新型进销存管理模式,通过集中式的信息数据库,将企业的进、销、调、存、转、赚等企业的经营业务有同地结合起来,达到数据共享、降低成本、提高效率、改进服务等

22、目的。一般来说,进销存管理系统需要有如下要求:系统操作简单,界面友好。规范、完善的基础信息设置。支持多人操作,要求有权限分配功能。为了方便用户,要求系统支持多条件查询。对销售信息提供销售排行。支持销售退货和入库退货功能。批量填写进货单及销售单。支持库存价格调整功能。当外界环境干扰本系统时,系统可以自动保护原始数据的安全。3.4 系统功能模块划分根据以上对进销存管理系统的分析,并且通过与公司的沟通与需求分析,一个标准的进销存管理系统应该包括如下图3-1企业进销存管理系统功能结构图所示的几大功能。图3-1 企业进销存管理系统功能结构图第四章 数据库设计4.1 数据库分析本系统是一个桌面应用程序,它

23、可以直接在本地计算机运行,而不需要像web应用那样部署到指定的服务器中,所以这个进销存管理系统在本地计算机安装了SQL Server 2005数据服务器,将数据库和应用程序放在同一个计算机中,可以节省开销、提升系统安全性。4.2 数据库逻辑设计逻辑设计:设计数据库的逻辑结构,与具体的数据库管理系统(Database Management System, DBMS)DBMS无关,主要反映业务逻辑。在我实现模块中主要用到了以下几个表:1. 入库商品信息主表(入库编号,品种数,验收结论,供应商名称,入库日期,操作员,经手人,交易方式)2. 入库商品信息详细表(编号,入库编号,商品编号,单价,数量)3

24、. 库存表(编号,商品名称,简称,产地,规格,包装,单位,库存数量,单价)4.3 E-R图NNN11供应商商品库存客户入库主表入库详细表销售主表销售详细表提供进货销售1N1N1 图4-1 库存管理E-R图4.4 数据库物理设计表4-2 入库商品信息主表字段名称数据类型主键允许为空描述rkIDVarchar(30)是否入库编号pzsint否否品种数ysjlVarchar(50)否否验收结论gysnamevarchar(100)否否供应商名称rkdatedatetime否否入库日期czyvarchar(30)否否操作员jsrvarchar(30)否否经手人jsfsvarchar(30)否否交易方式

25、表4-3 入库商品信息详细表字段名称数据类型主键允许为空描述idint是否编号rkIDVarchar(30)否是入库编号spidVarchar(50)否是商品编号djmoney否是单价slint否是数量表4-4 库存表字段名称数据类型主键允许为空描述idVarchar(30)是否编号spnameVarchar(50)否是商品名称jcVarchar(25)否是简称cdvarchar(50)否是产地ggvarchar(50)否是规格bzvarchar(50)否是包装dwvarchar(10)否是单位kcslint否是库存数量djmoney否是单价第五章 详细设计5.1 设计主要内容进销存管理系统由

26、基础信息模块、进货管理模块、库存管理模块、销售管理模块、查询统计模块、系统管理模块等部分组成,规划系统功能模块如下:1. 基础信息模块该模块主要包括商品信息管理、客户信息管理、供应商信息管理。它们分别维护(添加、修改、删除)商品信息、客户信息、供应商信息。商品信息维护内容包括商品名称、简称、产地、单位、包装、批准文号、供应商全称和备注。客户信息维护内容主要包括客户全称、客户地址、客户简称、邮政编码、电话、开户银行、联系电话等。供应商信息维护内容主要包括供应商全称、简称、地址、电话、联系人、开户银行等。2. 进货管理模块该模块主要实现进货信息的录入和退货信息保存的流程。这里记录了经手人和验收结论

27、之后,就能在和本企业有联系的供应商那里进货和退货,进货时自己填写进货的单价和数量,系统自动会计算商品的总金额,完成商品的入库过程。3. 库存管理模块该模块可以盘点库存商品信息,和调整库存商品的价格。4. 销售管理模块该模块主要记录商品的销售和退货过程。记录了经手人和验收结论之后,就可以将商品销售给其他公司,而且如果由于某些原因如果其他企业需要对商品进行退货的话,这一步操作也是必不可少的。5. 查询统计模块该模块可以对客户信息、商品信息和供应商的信息进行查询,而且可以对记录的销售及销售退货情况、进货及进货退货情况和销售量进行查询。6. 系统管理模块该模块中一般操作员可以修改自己的密码。对于管理员

28、,既可以修改自己的密码,又可以对操作员用户进行修改、删除、添加和权限的管理。为了使人能更清楚系统的流程,便于交流,特别绘制了系统业务流程图。如下图5-1所示图5-1 系统流程图5.2进货管理模块设计 进货管理模块式进销存管理系统中不可缺少的重要组成部分,它主要负责系统记录单及其退货信息,相应的进货商品会添加到库存管理中。5.2.1 进货管理模块概述 企业进销存管理系统中的进货管理模块主要包括进货单和进货退货两个部分。由于它们的实现方法基本相似,本节将以进货单功能为主,介绍进货管理模块对本系统的意义和实现的业务逻辑。1. 进货单进货单功能主要负责记录企业的商品进货信息,可以单击“添加”按钮,在商

29、品表中添加进货的商品信息。在“供应商”下拉列表中选择不同的供应商,将会改变商品表中可以添加的商品。进货单的程序界面如图5-2 所示。图5-2 进货单2. 进货退货进货退货功能主要负责记录进货管理中的退货信息,界面效果如图 5-3 所示。在选择了退货的商品之后,单击“退货”按钮,将表格中的商品退货信息更新到数据库中。图5-3 进货退货5.2.2 进货管理模块技术分析 进货管理模块使用JDBC 实现事务操作,因为进货和退货的业务逻辑涉及到3个数据表,tb_ruku_main、tb_ruku_detail、tb_kucum。为保证数据的完整性,将3个数据表的操作放在事务中实现,如果对任何一个数据表的

30、操作出现错误或是不可执行的操作,那么整个事务中的所有操作都将取消,并恢复到事务执行之前的数据状态;否则3个数据表的操作全部执行。下面介绍使用JDBC实现事务操作的关键方法。1. setAutoCommit()方法该方法用于设置连接对象的自动提交模式。如果连接处对象的自动提交模式为 True,则它的所有SQL 语句将被执行并作为单个事务提交; 否则,该连接对象的SQL语句将聚集到事务中,直到调用commit()方法或rollback()方法为止。默认情况下,新连接的自动提交模式为True。语法:Void setAutoCommit(boolean autoCommit)autoCommit: 该

31、参数为True 表示启用连接对象的自动提交模式;为False表示禁用连接对象的自动提交模式。2. getAutoCommit()方法判断此连接对象是否启用了自动提交模式。语法:Boolean getAutoCommit()3. commit()方法该方法将执行提交SQL语句执行数据库操作,并释放此连接对象当前持有的所有数据库锁。此方法只在禁用自动提交模式情况下使用。语法:Void commit()4. Rollback() 方法该方法将取消在当前事务中进行的所有更改,并释放此连接对象当前持有的所有数据库锁。此方法只在禁用自动提交模式情况下使用。Void rollback()5.3库存管理模块设

32、计5.3.1 库存管理模块概述企业进销存管理系统中的库存管理模块包括库存盘点和价格调整两个功能。本节将以价格调整功能为主,介绍库存管理模块对本系统的意义和实现的业务逻辑。1. 库存盘点库存盘点功能主要用于显示现有库存情况。程序界面如图5-4所示。图5-4 库存盘点2. 价格调整价格调整功能主要用于调整库存中指定商品的单价,当用户选择了指定的商品,价格调整功能的界面会显示该商品在库存中的单价、库存数量、库存金额、单位、产地等信息。程序界面如图5-5所示。用户可以修改商品价格并单击“确定”按钮,调整商品在库存中的单价。图5-5 价格调整5.3.2 库存管理模块技术分析企业进销存管理系统中的库存管理

33、模块包括库存盘点和价格调整两个功能,其中库存盘点涉及的技术比较简单,它将库存信息显示在表格中,由操作员输入盘点的商品数量,最后程序自动计算损益值。价格调整功能涉及下拉列表矿的选择事件监听和事件处理技术,这在使用Java Swing 技术进行程序开发的过程中,非常重要。为防止用户的错误输入,程序界面经常需要将可枚举的输入内容封装在下拉列表框中,限制用户的输入。但是,要知晓下拉列表框的改变,还需要为下拉列表框添加相应的事件监听器。价格调整使用的数据表为tb_kucun。下面就来介绍一下相关的语法。addItemListener()方法可以为下拉列表框添加ItemListener 监听器。当更改下拉

34、列表框中的选项时,将产生相应的事件,这个事件会被添加的ItemListener 监听器捕获,并处理相应的业务逻辑。语法:Pubic void addItemListener(ItemListener aListener)参数:aListener : 要通知的 ItemListener 监听器第六章 界面及代码设计6.1 进货管理模块实现企业进货管理模块是进销存系统中不可缺少的重要组成部分,它主要负责为系统记录进货单及其退货信息,相应的进货商品会添加到库存管理中。1. 进货单功能的实现图6-1 进货单private void initTable() / 初始化表格String columnNam

35、es = 商品名称, 商品编号, 产地, 单位, 规格, 包装, 单价,数量, 批号, 批准文号;(DefaultTableModel)table.getModel().setColumnIdentifiers(columnNames);TableColumn column = table.getColumnModel().getColumn(0);final DefaultCellEditor editor = new DefaultCellEditor(sp);editor.setClickCountToStart(2);column.setCellEditor(editor);priva

36、te void initspBox() / 初始化商品下拉选择框List list = new ArrayList();ResultSet set = Dao.query(select * from tb_spinfo where gysName=+ gys.getSelectedItem() + );sp.removeAllItems();sp.addItem(new TbSpinfo();for (int i = 0; table != null & i table.getRowCount(); i+) TbSpinfo tmpInfo = (TbSpinfo) table.getValu

37、eAt(i, 0);if (tmpInfo != null & tmpInfo.getId() != null)list.add(tmpInfo.getId();try while (set.next() TbSpinfo spinfo = new TbSpinfo();spinfo.setId(set.getString(id).trim();/ 如果表格中以存在同样商品,商品下拉框中就不再包含该商品if (list.contains(spinfo.getId()continue;spinfo.setSpname(set.getString(spname).trim();spinfo.set

38、Cd(set.getString(cd).trim();spinfo.setJc(set.getString(jc).trim();spinfo.setDw(set.getString(dw).trim();spinfo.setGg(set.getString(gg).trim();spinfo.setBz(set.getString(bz).trim();spinfo.setPh(set.getString(ph).trim();spinfo.setPzwh(set.getString(pzwh).trim();spinfo.setMemo(set.getString(memo).trim(

39、);spinfo.setGysname(set.getString(gysname).trim();sp.addItem(spinfo); catch (SQLException e) e.printStackTrace();class RkActionListener implements ActionListener / 入库按钮的事件监听器public void actionPerformed(ActionEvent e) / 结束表格中没有编写的单元stopTableCellEditing();clearEmptyRow();/ 清除空行String hpzsStr = hpzs.ge

40、tText(); / 货品总数String pzsStr = pzs.getText(); / 品种数String jeStr = hjje.getText(); / 合计金额String jsfsStr = jsfs.getSelectedItem().toString(); / 结算方式String jsrStr = jsr.getText().trim(); / 经手人String czyStr = czy.getText(); / 操作员String rkDate = jhsjDate.toLocaleString(); / 入库时间String ysjlStr = ysjl.getT

41、ext().trim(); / 验收结论String id = piaoHao.getText(); / 票号String gysName = gys.getSelectedItem().toString();/ 供应商名字if (jsrStr = null | jsrStr.isEmpty() JOptionPane.showMessageDialog(JinHuoDan.this, 请填写经手人);return;if (ysjlStr = null | ysjlStr.isEmpty() JOptionPane.showMessageDialog(JinHuoDan.this, 填写验收结

42、论);return;if (table.getRowCount() = 0) JOptionPane.showMessageDialog(JinHuoDan.this, 填加入库商品);return;TbRukuMain ruMain = new TbRukuMain(id, pzsStr, jeStr, ysjlStr,gysName, rkDate, czyStr, jsrStr, jsfsStr);Set set = ruMain.getTabRukuDetails();int rows = table.getRowCount();for (int i = 0; i rows; i+)

43、TbSpinfo spinfo = (TbSpinfo) table.getValueAt(i, 0);String djStr = (String) table.getValueAt(i, 6);String slStr = (String) table.getValueAt(i, 7);Double dj = Double.valueOf(djStr);Integer sl = Integer.valueOf(slStr);TbRukuDetail detail = new TbRukuDetail();detail.setTabSpinfo(spinfo.getId();detail.s

44、etTabRukuMain(ruMain.getRkId();detail.setDj(dj);detail.setSl(sl);set.add(detail);boolean rs = Dao.insertRukuInfo(ruMain);if (rs) JOptionPane.showMessageDialog(JinHuoDan.this, 入库完成);DefaultTableModel dftm = new DefaultTableModel();table.setModel(dftm);initTable();pzs.setText(0);hpzs.setText(0);hjje.s

45、etText(0);2. 进货退货功能的实现图6-2 进货退货gys.addActionListener(new ActionListener() / 供应商下拉选择框的选择事件public void actionPerformed(ActionEvent e) doGysSelectAction();private void doGysSelectAction() / 供应商选择时更新联系人字段Item item = (Item) gys.getSelectItem();TbGysinfo gysInfo = Dao.getGysInfo(item);lian.setText(gysInfo

46、.getLian();JButton rkButton = new JButton(退货);/ 单击退货按钮保存退货信息rkButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) stopTableCellEditing();/ 结束表格中没有编写的单元clearEmptyRow();/ 清除空行String hpzsStr = hpzs.getText(); / 货品总数String pzsStr = pzs.getText(); / 品种数String jeStr =

47、hjje.getText(); / 合计金额String jsfsStr = jsfs.getSelectedItem().toString(); / 结算方式String jsrStr = jsr.getText().trim(); / 经手人String czyStr = czy.getText(); / 操作员String rkDate = jhsjDate.toLocaleString(); / 入库时间String ysjlStr = ysjl.getText().trim(); / 验收结论String id = piaoHao.getText(); / 票号String gysN

48、ame = gys.getSelectedItem().toString();/ 供应商名字if (jsrStr = null | jsrStr.isEmpty() JOptionPane.showMessageDialog(JinHuoTuiHuo.this, 请填写经手人);return;if (ysjlStr = null | ysjlStr.isEmpty() JOptionPane.showMessageDialog(JinHuoTuiHuo.this, 填写验收结论);return;if (table.getRowCount() = 0) JOptionPane.showMessa

49、geDialog(JinHuoTuiHuo.this, 填加退货商品);return;TbRkthMain rkthMain = new TbRkthMain(id, pzsStr, jeStr, ysjlStr,gysName, rkDate, czyStr, jsrStr, jsfsStr);Set set = rkthMain.getTbRkthDetails();int rows = table.getRowCount();for (int i = 0; i rows; i+) TbKucun kucun = (TbKucun) table.getValueAt(i, 0);Strin

50、g djStr = (String) table.getValueAt(i, 6);String slStr = (String) table.getValueAt(i, 7);Double dj = Double.valueOf(djStr);Integer sl = Integer.valueOf(slStr);TbRkthDetail detail = new TbRkthDetail();detail.setSpid(kucun.getId();detail.setTbRkthMain(rkthMain.getRkthId();detail.setDj(dj);detail.setSl

51、(sl);set.add(detail);boolean rs = Dao.insertRkthInfo(rkthMain);if (rs) JOptionPane.showMessageDialog(JinHuoTuiHuo.this, 退货完成);DefaultTableModel dftm = new DefaultTableModel();table.setModel(dftm);initTable();pzs.setText(0);hpzs.setText(0);hjje.setText(0);6.2 库存管理模块实现1.库存盘点功能的实现图6-3 库存盘点private void

52、initTable() / 初始化表格String columnNames = 商品名称, 商品编号, 供应商, 产地, 单位, 规格, 单价,数量, 包装, 盘点数量, 损益数量;DefaultTableModel tableModel = (DefaultTableModel) table.getModel();tableModel.setColumnIdentifiers(columnNames);final JTextField pdField = new JTextField(0); / 设置盘点字段只接收数字输入pdField.setEditable(false);pdField.

53、addKeyListener(new KeyAdapter() public void keyTyped(KeyEvent e) if ( + (char) 8).indexOf(e.getKeyChar() + ) = 0) kcStr = (String) table.getValueAt(row, 7);try int pdNum = Integer.parseInt(pdStr);int kcNum = Integer.parseInt(kcStr);if (row = 0) table.setValueAt(kcNum - pdNum, row, 10);if (e.getKeyCh

54、ar() != 8)pdField.setEditable(false); catch (NumberFormatException e1) pdField.setText(0););JTextField readOnlyField = new JTextField(0);readOnlyField.setEditable(false);DefaultCellEditor pdEditor = new DefaultCellEditor(pdField);DefaultCellEditor readOnlyEditor = new DefaultCellEditor(readOnlyField

55、);List kcInfos = Dao.getKucunInfos();/ 初始化表格内容for (int i = 0; i kcInfos.size(); i+) List info = (List) kcInfos.get(i);Item item = new Item();item.setId(String) info.get(0);item.setName(String) info.get(1);TbSpinfo spinfo = Dao.getSpInfo(item);Object row = new ObjectcolumnNames.length;if (spinfo.getI

56、d() != null & !spinfo.getId().isEmpty() row0 = spinfo.getSpname();row1 = spinfo.getId();row2 = spinfo.getGysname();row3 = spinfo.getCd();row4 = spinfo.getDw();row5 = spinfo.getGg();row6 = info.get(2).toString();row7 = info.get(3).toString();row8 = spinfo.getBz();row9 = 0;row10 = 0;tableModel.addRow(row);String pzsStr = pzs.getText()

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!