进销存系统论文_第1页
进销存系统论文_第2页
进销存系统论文_第3页
进销存系统论文_第4页
进销存系统论文_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录摘要 4ABSTRACT 5第1章绪论 11.1课题来源 11.2课题背景 11.3国内外在该方向的研究现状及分析 11.3.1应用对象方面 11.3.2社会方面 2第2章系统的技术实现 32.1采用java平台 32.2采用NavicatforMySQL 32.3运行环境...…………...….42.4开发环境的配置…………42.5测试环境的配置…………4第3章系统的分析与设计 53.1需求分析 53.1.1功能性需求……………………….53.1.2非功能性需求…………………….53.2总体设计 63.2.1设计约定 63.2.2系统E-R图 63.2.3系统总体结构 7第4章系统实现 14.1功能描述 14.1.1用户登录………….14.1.2系统管理………….14.1.3商品信息管理…………………….54.1.4供应商信息管理………………...114.1.5客户信息管理………………..….134.1.6进货信息管理…………………...154.1.7销售信息管理…………………...164.2数据库实现……………..214.2.1供应商信息表…………………...234.2.2进货信息表……………………...244.2.3顾客信息表……………………...254.2.4销售信息表……………………...264.2.5商品信息表……………………...274.2.6用户信息表……………………...274.2.7商品供应商信息表……………...28第5章系统测试………………...305.1单元测试………………..305.2集成测试………………..30结论 32参考文献 33河南大学本科毕业生学士学位论文第Ⅰ页摘要近年来,为了满足顾客的消费需求,各类小型超市越来越多,商品也趋于多样化。如果能够实时监控商品的销售情况货存情况,就能有效地提高商品的周转率,更好地为顾客服务。进销存管理系统是市场上非常常用的系统,因其完善的功能被各种零售业接受。我设计的这款系统功能并不完善,它主要侧重于各类信息的管理,通过监控各类信息的变化,来达到有效管理商品的目的。本文系统的分析了软件开发的背景以及过程;首先介绍了软件的开发环境,其次介绍了本软件的详细设计过程:数据库的设计、各个模块的设计和实现,以及具体界面的设计和功能。关键词进销存;小型超市;商品;信息;第Ⅱ页ABSTRACTInrecentyears,inordertomeettheconsumerdemandofcustomers,moreandmoretypesofsmallsupermarkets,thediversificationofproduct.Ifreal-timemonitoringofthesaleofgoodsforstock,wecaneffectivelyimproveproductturnover,andbettercustomerservice.Theinventorymanagementsystemisaverycommonlyusedsysteminthemarket,becauseofitscomprehensivefeaturesvariousretail.Idesignedthissystemisnotperfect,itismainlyfocusedonthemanagementofalltypesofinformation,bymonitoringchangesinthekindsofinformationtoachievethepurposeofeffectivemanagementofgoods.Thesystematicanalysisofthebackgroundandprocessofsoftwaredevelopment;firstintroducedthesoftwaredevelopmentenvironment,followedbydetailsofthesoftwaredesignprocess:thedesignofthedatabase,thedesignandimplementationofeachmodule,aswellasspecificinterfacedesignandfunctionality.Keywords:Invoicing;smallsupermarket;goods;Information;第7页第1章绪论本文讲述了关于进销存管理系统的一系列分析设计等1.1课题来源自定。1.2课题背景这个系统的使用范围是一些小型的超市,让商品从进货到售出都实现数字化的管理,给使用者带来方便。由于水平有限,我仅能实现一般的功能。数据库也不是很强大,但是我觉得这个系统有很强的实用性,并且操作非常简单,容易上手。根据商品流程,分为供应商部分、商品部分、销售部分及整个的系统管理。1.3国内外在该方向的研究现状及分析现在这类软件的功能大体类似,区别仅在于一些小功能上的创新。1.3.1应用对象方面本系统的应用范围是一些小型超市。在我国超市形成在20世纪90年代初期,现在已经成为我国零售业的一种重要形态,为国民经济的发展发挥了重要的作用。随着超市高速的发展,其经营管理也变得愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售也的发展,这样就迫切地需要引入新的管理技术。对于小型超市来讲,它具有种种优点,但在目前状况下,仍存在零售业企业所共有的落后的一面,如:不能有效地管理每种商品,收款结算速度慢,容易出现营业差错,不宜进行商品调价,盘点效率低等,而且在超市日常管理中,商品的进、销、存等决策以经验为主,缺乏实时分析功能,管理人员对及时传递资料的要求始终得不到满足。为此,在选题过程中,我选择了进销存管理系统设计题目,依靠现代化的计算机信息处理技术来管理超市,从而节省了大量的人力、物力,改善了员工的工作条件,减轻了劳动强度,并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。1.3.2社会方面随着现代科学技术的迅猛发展,计算机技术已经渗透到各个领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对数据库的进一步开发和利用显得尤为迫切。作为国内市场的一些小型超市,它们对于这些企业的资源管理,信息的存储和处理显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快小型超市的信息化进程是必可少的。实习期间,我通过对市场的调查,针对现在各小型超市对经营业务和人事管理的实际需要,开发了这套进销存管理系统。在开发过程中,我针对当前各超市管理的特点和员工的实际水平,采用基于Windows图形用户界面这一易学易用的操作环境,在系统设计过程中,尽量采用易懂易读的人机界面,使用户可以在短期内完全掌握。同事力求数据的完整和处理的正确性。在此基础上优化程序代码,加速系统运行和减少对系统资源的占用。第2章系统的技术实现本章主要介绍开发此系统所需要的工具及配置。2.1采用java平台Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是有sun公式于1995年5月推出的Java程序设计语言和Java平台(即JavaSE和JavaEE.JavaME)的总称,Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群,在全球云计算和移动互联网产业环境下,Java更具备了显著优势和广阔前景。在开发工具方面,IBM,Borland,Sun,BEA等软件巨头在其应用服务器的基础上,都推出开发JavaWeb应用程序的开发工具。这些IDE大多都兼顾了各种类别的Java应用程序的开发,需要较大空间进行安装,启动过程相对较慢。故我选择了Eclipse开发工具。Eclipse标准软件包中只提供了Java应用程序的开发和调试,而没有提供JSP开发环境。不过有众多的插件支持在Eclipse上进行JSP的开发。在开发JSP的插件中,最强大的非MyEclipse莫属。MyEclipse具备了众多令人欣喜的特色,贴心的Wizard、图形化的配置管理、JSP错误跟踪、代码跳转等,都可以令J2EE开发飞速运转起来。2.2采用NivacatforMySQLMySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能有限等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。(以上引自百度百科)NavicatforMySQL是一个强大的MySQL数据库服务器管理和开发工具。支持大部分的MySQL最新功能,包括触发器、存储过程、函数、事件、视图、管理用户,等等。它不仅对专业开发人员来说是非常尖端的技术,而且对于新手来说也易学易用。其精心设计的图形用户界面(GUI),NavicatforMySQL可以让你用一种安全简便的方式快速并容易地创建,组织,访问和共享信息。2.3运行环境能在普通PC机、windows操作系统上运行。2.4开发环境的配置开发时具体环境配置。如表2-1所示。表2-1环境配置表类别标准配置硬件CPU:Intel酷睿i3硬盘:320G内存:4G软件开发环境:MyEclipse8.5数据库:MySQL2.5测试环境的配置(1)单元测试、集成测试环境与开发环境相同。(2)系统测试、验收测试环境与运行环境相同或相似。第3章系统的分析与设计进销存管理系统是适用于小型超市对货物信息,顾客信息,进货信息和销售信息进行管理的系统。本系统采用C/S体系结构,有系统管理,供应商信息管理,客户信息管理,商品信息管理和进货信息管理的功能的系统,是高效率、低成本的管理进销存信息的解决方案。3.1需求分析从两部分来分析,如下详细说明。3.1.1功能性需求(1)该管理软件将对库存商品进行资料管理和统计,对商品的进货单和商品的销售单进行录入管理和统计。(2)该管理软件将根据用户的需要对顾客、供应商、商品的信息进行查询和修改。(3)该管理软件将为用户提供账号管理工具,以便用户对账号进行管理,具体为添加用户、删除用户、修改用户密码、修改用户名。(4)该管理软件将根据用户的需要对商品的销售情况、进货情况进行查询和统计。3.1.2非功能性需求(1)稳定性:保证数据存取和逻辑处理等不出现异常错误,确保系统能正常处理数据,在运行中出现的错误可以更改。(2)灵活性:对所有数据要实现“增、删、改、查”,可以方便管理者对系统数据的操作。(3)可恢复性:可以通过对数据库进行备份,来确保系统的可恢复性。(4)简易操作性:根据界面的提示会正确的对数据进行操作。(5)数据校验:数据校验是增强系统可用性和可靠性的重要手段,系统要求对输入的数据进行有效性、合法性校验,数据校验可以排除许多数据不一致的现象,从逻辑上、数据完整性上保证数据的质量,做到“正确的输入有正确的结果,错误的输入有响应”。3.2总体设计分别从以下三个方面说明。3.2.1设计约定(1)所有的数据库命名都是以模块的缩写加上具体表的英文词汇组成,这样能够统一数据库表的命名,也能够更好的规范数据库表命名。(2)所有数据库的设计,都采用NavicatforMySQL进行,并且采用面向对象的设计方法,首先进行对象实体的设计,最后将对象持久化到数据库中,所有的表和表之间的关联(E-R图)都采用标准的NavicatforMySQL设计工具进行,这样能够将整个系统的设计和数据库设计有机的结合起来。(3)界面风格:管理界面做到美观大方、风格统一,并有一些提示信息指导用户操作使用。尽量使用选择框、下拉框等选择操作界面,方便用户的使用。(4)消息提示:中文提示,言简意赅。3.2.2系统E-R图各实体之间的联系:供应商和进货信息之间多对多;进货信息和商品之间多对多;商品和销售之间多对多;顾客和销售之间多对多。如图3-1所示。图3-1系统E-R图3.2.3系统总体结构首先,管理者要管理所有商品,需要了解商品详细信息,这时需要设计一个商品管理模块;根据商品信息表中的商品数量,管理者制定进货单,交给进货员,进货员根据进货单向供货商进货,这时需要一个供货商管理模块;在进货入库时,管理员根据进货信息,录入表单,这时需要制定进货管理模块;在商品采购入库之后,就要在前台销售商品,收银员通过销售模块进行商品的销售,并可在此模块中查询销售信息。对上述各项功能进行集中,分块,按照结构化程序设计的要求,得到系统功能模块图,如图3-2所示。进销存管理系统进销存管理系统系统管理客户信息管理商品信息管理营销信息管理用户管理密码管理供应商信息管理顾客信息管理添加商品信息修改商品信息进货信息管理销售信息管理删除商品信息图3-2系统结构图第1页第4章系统实现从三个层面完成整个设计。4.1功能描述主要分为以下几部分模块,详细说明如下。4.1.1用户登录用户登录实体类。(1)对象属性,如表4-1所示。表4-1login1属性数据类型描述_userString登陆用户名_passwordstring登陆密码(2)对象行为,如表4-2所示。表4-2login2方法描述publiccreatLoginUI()用户登陆界面PublicLoginManage()把用户输入的数据与数据库对比(2)页面设计,如图4-1所示。图4-1登录界面第32页4.1.2系统管理系统管理分为三部分:用户添加、密码修改、用户名修改。部分实现代码如下所示。用户添加部分:publicbooleanuserManage(Stringnewuser,Stringnewpassword){ ConnMySQLcm=newConnMySQL(); Connectionconn=cm.getConn(); Stringsql="insertintouser(username,password)values(?,?)"; try{ ps=conn.prepareStatement(sql); ps.setString(1,newuser); ps.setString(2,newpassword); intresult=ps.executeUpdate(); if(result==1){ returntrue; } }catch(SQLExceptione){ JOptionPane.showMessageDialog(null,"用户名已存在","提示",0); }finally{ try{ ps.close(); conn.close(); }catch(SQLExceptione){ e.printStackTrace(); } } returnfalse; }密码修改部分:publicbooleanpasswordManage(Stringoldpassword,Stringnewpassword){ ConnMySQLcm=newConnMySQL(); Connectionconn=cm.getConn(); Statementst1=null; ResultSetrs2=null; Stringsql1="selectpasswordfromuserwhereusername='" +nowusername+"'"; try{ st1=conn.createStatement(); rs2=st1.executeQuery(sql1); if(rs2.next()){ Stringpassword=rs2.getString("password"); if(password.equals(oldpassword)){ Stringsql="updateusersetpassword='"+newpassword +"'whereusername='"+nowusername+"'"; intresult=st1.executeUpdate(sql); if(result==1){ returntrue; } } } }catch(SQLExceptione1){ e1.printStackTrace(); }finally{ try{ rs2.close(); st1.close(); conn.close(); }catch(SQLExceptione){ e.printStackTrace(); } } returnfalse; }用户名修改部分:publicbooleanalterUsername(StringoldUsername,Stringusername){ ConnMySQLcm=newConnMySQL(); Connectionconn=cm.getConn(); Statementst=null; Stringsql="updateusersetusername='"+username +"'whereusername='"+oldUsername+"'"; try{ st=conn.createStatement(); intresult=st.executeUpdate(sql); if(result==1){ nowusername=username; returntrue; } }catch(SQLExceptione){ JOptionPane.showMessageDialog(null,"用户名已存在","提示",0); }finally{ try{ st.close(); conn.close(); }catch(SQLExceptione){ e.printStackTrace(); } } returnfalse; }(1)对象行为,如表4-3所示。表4-3system2方法描述PubliccreatMainUI()系统主界面(2)页面设计,如图4-2所示。图2-1系统管理4.1.3商品信息管理商品信息管理模块实现用户对商品信息的管理,包括新商品信息的增加,已有商品信息的查询、修改和删除。(1)ProductManage.java:实现商品的增删改查。部分代码如下所示。对象行为,如表4-4所示。表4-4productM2方法描述PubliccreateProductManageUI()商品管理窗口PublicgetProductByPage()查询数据库中所有商品的信息PublicgetTotalPages()计算商品信息的多少PublicproductDelete()删除商品信息(2)productInfoAdd.java:商品信息的添加。部分实现代码如下所示。publicbooleanproductAdd(StringproductName,doubleproductPrice, StringproductStandard,StringproductUnit,intproductAmount, Stringremarks){ ConnMySQLcm=newConnMySQL(); Connectionconn=cm.getConn(); Stringsql="insertintoproduct(productName,productPrice,productStandard,productUnit,productAmount,remarks,date,sign)values(?,?,?,?,?,?,?,?)"; try{ ps=conn.prepareStatement(sql); ps.setString(1,productName); ps.setDouble(2,productPrice); ps.setString(3,productStandard); ps.setString(4,productUnit); ps.setInt(5,productAmount); ps.setString(6,remarks); ps.setString(7,newProductManageService().getNowTime()); ps.setInt(8,1); intresult=ps.executeUpdate(); if(result==1){ returntrue; } }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ try{ ps.close(); conn.close(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } returnfalse; }对象属性,如表4-5所示。表4-5productI1属性数据类型描述productIdInt自增IdproductNameString商品名productPriceDouble商品价格productStanderString商品规格productUnitString商品计量单位productAmountString商品的库存数量remarksString备注信息signint标记对象行为,如表4-6所示。表4-6productI2方法描述PubliccreateProductInfoAddUI()新商品信息增加窗口PublicproductAdd()把新商品的信息放到数据库PublichasProductName判断新加的商品是不是已有记录页面设计,如图4-3所示。图4-3商品添加(3)ProductInfoAlter.java:商品信息的修改。部分实现代码如下所示。publicbooleanproductAlter(StringproductID,StringproductName, DoubleproductPrice,StringproductStandard,StringproductUnit, StringproductAmount,Stringremarks){ ConnMySQLcm=newConnMySQL(); Connectionconn=cm.getConn(); Statementst=null; Stringsql="updateproductsetproductName='"+productName +"',productPrice="+productPrice+",productStandard='" +productStandard+"',productUnit='"+productUnit +"',productAmount='"+productAmount+"',remarks='"+remarks +"'whereproductId='"+productID+"'"; try{ st=conn.createStatement(); intresult=st.executeUpdate(sql); if(result==1){ returntrue; } }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ try{ st.close(); conn.close(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } returnfalse; }对象属性,如表4-7所示。表4-7productA1属性数据类型描述productNameString商品名productPriceDouble商品价格productStanderString商品规格productUnitString商品计量单位productAmountString商品的库存数量remarksString备注信息对象行为,如表4-8所示。表4-8productA2方法描述PublicproductAlter()修改商品信息(4)ProductProvider.java:建立商品与供应商的关系。主要是用来将商品与供应商对应起来,为以后查询信息,作出计划做好准备,其部分实现代码如下。publicbooleanrelation(Stringa,Stringb){ ConnMySQLcm=newConnMySQL(); Connectionconn=cm.getConn(); ResultSetrs=null; intresult=0; PreparedStatementps=null; IntegerproductId=1; IntegerproviderId=1; try{ //获取选中商品的productId Stringsql2="ductIductName='" +a+"'"; ps=conn.prepareStatement(sql2); rs=ps.executeQuery(sql2); if(rs.next()){ productId=rs.getInt("productId"); } //获取选中供应商的providerId Stringsql3="viderIviderCompany='" +b+"'"; ps=conn.prepareStatement(sql3); rs=ps.executeQuery(sql3); if(rs.next()){ providerId=rs.getInt("providerId"); } Stringsql1="insertintoproductprovider(productId,providerId)values(?,?)"; ps=conn.prepareStatement(sql1); ps.setInt(1,productId); ps.setInt(2,providerId); //向数据库中插入一条记录,执行成功result=1,失败的话result=0 result=ps.executeUpdate(); if(result==1){ returntrue; } }catch(SQLExceptione){ JOptionPane.showMessageDialog(null,"您之前已经设定了","提示",1); }finally{ try{ rs.close(); ps.close(); conn.close(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } returnfalse; }对象属性,如表4-9所示。表4-9productP1属性数据类型描述productIdint商品IdproviderIdint供应商Id对象行为,如表4-10所示。表4-10productP2方法描述PubliccreatUI()建立商品与供应商关系Publicrelation()把商品与供应商关系放到数据库里页面设计,如图4-4所示。图4-4商品添加4.1.4供应商信息管理供应商信息管理模块主要实现对供应商信息的管理,包括新供应商信息的增加,已有供应商信息的查询,修改和删除。(1)ProviderInfoManage.java:实现供应商信息的管理对象属性,如表4-11所示。表4-11provider1属性数据类型描述providerIdint供应商IdproviderCompanystring供应商公司名providerAddressString供应商地址providerNameString联系人providerTelInt联系电话providerPostalcodeInt邮政编码providerFaxString传真providerCityNameString供应商城市providerAreaString供应商地区providerHomePageString公司主页RemarksString备注Signint标记对象行为,如表4-12所示。表4-12povider2方法描述PubliccreatUI()供应商管理窗口PubliccreatUI1()添加新供应商窗口PubliccreatUIOfAlter()修改供应商窗口PublicaddProvider()添加新供应商到数据库PublicsetJtable()按条件查询供应商PublicsetJtable1()查询全部供应商信息PublicdeleteProvider()删除供应商信息PublicupdateProvider()修改供应商信息PublichasProviderCompany()判断新添加供应商是够重复PublicgetProviderByPage()计算供应商的总记录数页面设计,如图4-5所示。图4-5供应商4.1.5客户信息管理顾客信息管理模块主要实现对顾客信息的管理,包括新顾客信息的增加,已有顾客信息的查询,修改和删除。(1)customerInfoManage.java:客户信息管理对象属性,如表4-13所示。表4-13customer1属性数据类型描述customerIdint顾客IdcustomerCompanystring顾客公司名customerAddressString顾客地址customerNameString联系人customerTelInt联系电话customerPostalcodeInt邮政编码customerFaxString传真customerCityNameString顾客城市customerAreaString顾客地区customerHomePageString公司主页RemarksString备注Signint标记对象行为,如表4-14所示。表4-14customer2方法描述PubliccreatUI()顾客管理窗口PublicdeleteCustom()从数据库中删除顾客PublicsetJtable()查询顾客信息PublicgetTotalPages()计算数据库中顾客总记录数(2)CustomerInfoAdd.java:客户信息的添加。对象行为,如表4-15所示。表4-15customerA2方法描述PubliccreatUI()顾客信息添加窗口PublicaddCustomer()在数据库中添加新顾客PublichasCompanyName()判断先添加的顾客是不是已有顾客页面设计,如图4-6所示。图4-6顾客信息添加(3)CustomerManageEdit.java:修改客户信息。对象行为,如表4-16所示。表4-16customerE2方法描述PubliccreatUI()顾客信息修改窗口PubliceditCustomer()在数据库中添加新顾客4.1.6进货信息管理进货信息管理模块主要实现对进货信息的管理,包括新进货信息的增加,已有进货信息的查询,修改和删除。(1)ImportsInfoManage.java:实现进货信息的增加、删除、修改和查询。对象属性,如表4-17所示。表4-17import1属性数据类型描述importsIdInt自增IdproviderCompanyString供应商productNameString商品名productPriceDouble进货单价importsAmountsInt进货数量DateString进货日期RemarksString备注对象行为,如表4-18所示。表4-18povider2方法描述PubliccreatUI2()进货信息管理窗口PubliccreateAlterUI()修改进货信息窗口PubliccteateAddUI()添加进货信息窗口PublicexecuteAddImportsInfo()在数据库中添加进货信息PublicdeleteImportsProduct()删除进货信息PublicexecuteQueryAllImportsInfo()查询全部进货信息PublicgetTotalPage()获取全部进货记录数PublicexecuteImportsInfo()修改进货信息PublicgetNowTime()获取当前时间4.1.7销售信息管理销售信息管理模块主要实现对销售信息的管理,包括新销售信息的增加,已有销售信息的查询,修改和删除。(1)SellInfoManage.java:销售信息管理。其界面部分实现代码如下所示。publicclassSellInfoManageextendsJFrameimplementsActionListener{ staticJFramejf=newJFrame("销售信息管理"); JComboBoxjcb_customerName; JComboBoxjcb_productName; JButtonjb_add; JButtonjb_alter; JButtonjb_delete; JButtonjb_query; JButtonjb_allquery; publicstaticJTabletable; publicstaticDefaultTableModeldtm; JButtonjb_prev; JTextFieldjtf_di; JButtonjb_next; JButtonjb_jump; JTextFieldjtf_jump; DateChooserdc1; DateChooserdc2; publicstaticintchoose=0; Sellsie=newSell(); SellInfoServiceQuerysisq=newSellInfoServiceQuery(); SellInfoServiceDeletesisd=newSellInfoServiceDelete(); //当前页 publicstaticintnowPage=1; //每页记录数 publicstaticfinalintcountPage=20; //全部查询的总页数 privateinttotalPages=0; //条件查询的总页数 privateintconditionPages=0; //获取时间控件1的值 publicstaticStringsellFromDate=null; //获取时间控件2的值 publicstaticStringtoDate=null; publicvoidcreateUI(){ jf.getContentPane().setLayout(null); JLabeljl_productName=newJLabel("选择商品"); jl_productName.setBounds(30,10,60,20); jf.add(jl_productName); jcb_productName=newJComboBox(); jcb_productName.setBounds(85,10,150,20); jf.add(jcb_productName); JLabeljl_customerName=newJLabel("选择客户"); jl_customerName.setBounds(365,10,60,20); jf.add(jl_customerName); jcb_customerName=newJComboBox(); jcb_customerName.setBounds(420,10,150,20); jf.add(jcb_customerName); JLabeljl_fromdate=newJLabel("日期从"); jl_fromdate.setBounds(30,50,50,20); jf.add(jl_fromdate); dc1=newDateChooser(jf); dc1.setBounds(85,50,160,20); jf.getContentPane().add(dc1); JLabeljl_todate=newJLabel("至"); jl_todate.setBounds(365,50,50,20); jf.add(jl_todate); dc2=newDateChooser(jf); dc2.setBounds(420,50,160,20); jf.getContentPane().add(dc2); JPaneljp_north=newJPanel(); jp_north.setLayout(newGridLayout(1,5)); jb_add=newJButton("添加"); jb_alter=newJButton("修改"); jb_delete=newJButton("删除"); jb_query=newJButton("查询"); jb_allquery=newJButton("全部查询"); jp_north.add(jb_add); jp_north.add(jb_alter); jp_north.add(jb_delete); jp_north.add(jb_query); jp_north.add(jb_allquery); jp_north.setBounds(30,100,540,20); jf.add(jp_north); //为"添加","修改","删除","查询","全部查询"按钮添加事件 jb_add.addActionListener(this); jb_alter.addActionListener(this); jb_delete.addActionListener(this); jb_query.addActionListener(this); jb_allquery.addActionListener(this); table=newJTable(); Object[][]data=newObject[20][8]; Object[]columnNames={"销售编号","客户名称","商品名称","单价","数量","折扣", "销售日期","备注"}; dtm=newDefaultTableModel(data,columnNames); //List<SellInfoEntity>list=sisq.executeAllQuerySell(nowPage, //countPage); //sisq.setAllJtable(list,dtm); table.setModel(dtm); JScrollPanejsp=newJScrollPane(table); jsp.setBounds(0,130,640,340); jf.add(jsp); JPaneljp_south=newJPanel(); jb_prev=newJButton("上一页"); JLabeljl_di=newJLabel("第"); jtf_di=newJTextField(4); //jtf_di.setText(String.valueOf(nowPage)); jtf_di.setEditable(false); JLabeljl_ye=newJLabel("页"); jb_next=newJButton("下一页"); jb_jump=newJButton("跳转到"); jtf_jump=newJTextField(4); jp_south.add(jb_prev); jp_south.add(jl_di); jp_south.add(jtf_di); jp_south.add(jl_ye); jp_south.add(jb_next); jp_south.add(jb_jump); jp_south.add(jtf_jump); jp_south.setBounds(30,490,540,30); jf.add(jp_south); //为"上一页","下一页","跳转到"按钮添加事件 jb_prev.addActionListener(this); jb_next.addActionListener(this); jb_jump.addActionListener(this); jf.setBounds(300,200,650,600); jf.setVisible(true); //调用SellInfoServiceAdd类的initJComboBox()函数 SellInfoServiceQuerysisq=newSellInfoServiceQuery(); sisq.initJComboBox(jcb_productName,jcb_customerName); }对象属性,如表4-19所示。表4-19sell1属性数据类型描述sellIdInt自增IdcustomerNameString顾客productNameString商品名sellPriceDouble销售单价sellAmountsInt销售数量DateString销售日期RemarksString备注对象行为,如表4-20所示。表4-20sell2方法描述PubliccreatUI()销售信息管理窗口PublicexecuteAllQuerySell()销售信息的查询PublicgetTotalPages()查询销售的总记录数PublicexecuteDelSell()删除销售信息(2)SellInfoViewAdd.java:添加销售信息。对象行为,如表4-21所示。表4-21sellA2方法描述PubliccreatUI()添加销售信息窗口PublicexecuteExportProduct()在数据库中添加销售信息PublicgetNowTime()获取当前的销售时间页面设计,如图4-7所示。图4-7销售信息添加(3)SellInfoViewUpdate.java:修改销售信息。对象属性,如表4-22所示。表4-22sellU1属性数据类型描述对象行为,如表4-23所示。表4-23sellU2方法描述PubliccreatUI()修改销售信息窗口PublicexecuteExportProduct()在数据库中添加销售信息PublicexecuteUpdateSell()修改数据库中的销售信息4.2数据库实现数据库软件的名称:Navicat8.0MySQL数据库的名称为:wml数据库连接部分实现代码如下所示。publicclassConnMySQL{ Connectionconn; ResultSetrs; Statementst; //获取一个数据库连接 publicConnectiongetConn(){ try{ //加载驱动 Class.forName("com.mysql.jdbc.Driver"); //获取连接urlusernamepassword conn=DriverManager .getConnection( "jdbc:mysql://localhost:3306/wml?useUnicode=true&characterEncoding=utf-8", "root","ROOT"); }catch(Exceptione){ } returnconn; } //关闭数据库连接 publicvoidclose(){ //关闭数据库连接 try{ rs.close(); st.close(); conn.close(); System.out.println("连接已关闭!"); }catch(Exceptione){ e.printStackTrace(); } }4.2.1供应商信息表(Provider)如表4-24所示。表4-24provider字段名数据类型长度主键非空描述providerIdint20是是供货商编号,自增idproviderCompanyvchar50公司名称providerAddressvchar50联系地址providerNamevchar50联系人姓名providerTelvchar20联系电话providerPostalcodeint20邮政编码providerFaxvchar50传真号码providerCityNamevchar50城市名称providerAreavchar50地区名称providerHomePagevchar50公司主页remarksvchar50备注信息4.2.2进货信息表(Stock)实体类部分实现代码如下。privateintimportsId; privateStringproviderCompany; privateStringproductName; privatedoubleproductPrice; privateintimportsAmount; privateStringdate; privateStringremarks; publicImports(){ } publicImports(intimportsId,StringproductName,StringproviderCompany, doubleproductPrice,intimportsAmount,Stringdate,Stringremarks){ this.importsId=importsId; viderCompany=providerCompany; ductName=productName; ductPrice=productPrice; this.importsAmount=importsAmount; this.date=date; this.remarks=remarks; }如表4-25所示。表4-25stockimportsIdint20是是进货编号,自增idproviderIdint20供应商编号productIdint20商品编号importsAmountint20数量importsDatevchar50订单日期remarksvchar50备注信息4.2.3顾客信息表(Customer)实体类部分实现代码如下。publicCustom(intcustomerId,StringcustomerCompany,StringcustomerAddress, StringcustomerName,StringcustomerTel,intcustomerPostalcode,StringcustomerFax,StringcustomerCity, StringcustomerArea,StringcustomerHomePage,Stringremarks,Datedate){ this.customerId=customerId; this.customerCompany=customerCompany; this.customerAddress=customerAddress; this.customerName=customerName; this.customerTel=customerTel; this.customerPostalcode=customerPostalcode; this.customerFax=customerFax; this.customerCity=customerCity; this.customerArea=customerArea; this.customerHomePage=customerHomePage; this.remarks=remarks; this.date=date; }如表4-26所示。表4-26customercustomerIdint20是是顾客编号,自增idcustomerCompanyvchar50公司名称customerAddressvchar50联系地址customerNamevchar50联系人姓名customerTelvachar50联系电话customerPostalcodeint20邮政编码customerFaxvchar50传真号码customerCityvchar50城市名称customerAreavchar50地区名称customerHomePagevchar50公司主页remarksvchar50备注信息4.2.4销售信息表(Sell)实体类部分实现代码如下。privateintsellId; privateStringcustomerName; privateStringproductName; privatedoublesellPrice; privateintsellAmount; privatedoublesellDiscount; privateStringdate; privateStringremarks; publicSell(){ } publicSell(intsellId,StringcustomerName,StringproductName, doublesellPrice,intsellAmount,doublesellDiscount,Stringdate, Stringremarks){ super(); this.sellId=sellId; this.customerName=customerName; ductName=productName; this.sellPrice=sellPrice; this.sellAmount=sellAmount; this.sellDiscount=sellDiscount; this.date=date; this.remarks=remarks; }如表4-27所示。表4-27sell字段名数据类型长度主键非空描述sellIdint20是是销售编号,自增idcustomerIdint20顾客编号productIdint20商品编号sellAmountint20数量sellPricedouble20销售价格sellDiscountdouble20折扣remarksvchar50备注信息4.2.5商品信息表(Product)如表4-28所示。表4-28

温馨提示

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

评论

0/150

提交评论