仓库管理系统的设计与实现概要.doc
《仓库管理系统的设计与实现概要.doc》由会员分享,可在线阅读,更多相关《仓库管理系统的设计与实现概要.doc(21页珍藏版)》请在咨信网上搜索。
本科毕业设计说明书(论文) 第 21 页 共 21 页 1 绪论 随着社会经济的不断发展,各个企业也面临着各种机遇和挑战.为了能够在这个信息化的时代继续发展下去,就必须紧跟上时代的脚步。随着网络技术的不断发展,现代物流技术也在不断的更新换代。传统的人工记载的办公方法已经无法满足很多企业的需要,因此,每个企业都需要一个自动化的仓库管理系统.仓库是每个企业都必须谨慎管理的地方,因为货物是企业最基本的本钱,只有很好地管理好自己企业的货物,才能在竞争如此激烈的社会中谋得一片天地。本课题正是根据这一理念,开发了一个功能比较完善,基本能满足企业要求的仓库管理系统。 1。1 系统开发背景 随着计算机技术的发展,一个崭新的信息化的世界已经展现在我们眼前。如今,你可以随处看到很多不同种类的信息管理系统。 商品是企业的根本,仓库是企业用来保存商品的地方。因此,仓库对于企业十分重要。所以说一个成功的企业必定会有一个好的仓库,而一个好的仓库就肯定会有一个先进的仓库管理系统作为支撑。但是,传统简单、静态的仓库管理系统,因为其不具备信息共享功能,且无法保证货物的正确的进库、库存控制和发货等问题,已经无法确保企业资源的高效利用;而且,传统的仓库管理系统存在维护困难、开发复杂等缺点,极大的浪费企业的人力、物力,因此已经跟不上时代的步伐。所以说,一个成功的企业需要一个现代的仓库管理系统来保证企业产品的精细化管理,保证最大化利用企业资源。 1。2 系统开发目的 仓库是所有企业都不可缺少的部分,因此,一个企业想要蓬勃发展,管理好自己的仓库就显得十分重要。但是仓库中的货物总是不断变动的,因此,就需要有人将仓库中货物的增减情况进行记录.但是传统的人工记录的方法存在着许多问题,比如信息安全行性低、查询效率低等。因此,对于一个想要不断发展的企业来说,这种人工记录的方式必须淘汰. 随着计算机技术的不断发展,计算机的使用已经十分普遍,每个企业都拥有计算机。使用计算机对库存信息进行管理有着很多人工记录所无法比拟的优点,比如查询快捷、信息安全性高、添加删除方便等。 基于以上这些原因,我开发了一个仓库管理系统。本系统能够保证货物的正确的进库、库存控制和发货.并且,系统维护简单,不需要动用太多的人力、物力,可以有效的帮助企业管理好仓库。 1.3 系统开发平台 本系统采用B/S的三层架构,系统使用MyEclipse开发工具,基于J2EE平台,采用MVC开发模式,JSP、Struts技术,选用SQL Server 2000作为系统的数据库平台。 1。3。1 MyEclipse 全名MyEclipse Enterprise Workbench ,简称MyEclipse 。MyEclipse企业级工作平台是对Eclipse IDE的扩展,利用它我们可以极大的提高在数据库和J2EE的开发、发布,以及应用程序服务器整合方面的工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码功能、调试功能、测试功能、发布功能等,完整支持HTML、 Struts、JSP、CSS、Javascript、SQL、Hibernate等框架。 1。3。2 JSP技术 JSP技术是主流Web开发技术中使用最为广泛的一种,它是由Sun公司推出的一款基于Java语言的Web开发技术.在Sun公司的倡导下,许多公司都参与到了JSP的开发之中,使得JSP成为了动态网页技术的标准.JSP技术不仅继承了Java语言的强大功能,可以方便的开发出先进、安全和跨平台的电子商务系统,而且还拥有Java Servlet的稳定性,并可以使用Servlet提供API。JSP是目前比较热门的一款Web网页开发技术,由它开发出的系统具有良好的扩充性,实用性较高。 JSP技术使用Java编程语言编写类XML的tags和scriptlets来封装动态网页产生的处理逻辑.JSP技术将网页的设计和显示与网页逻辑分离开来,并且设计成支持可重用的基于组件,这些功能极大的提高了基于Web的应用程序的开发效率。当有访问JSP页面的请求发送到Web服务器时,首先将其中的程序段进行执行,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以用来进行数据库、重新定向网页等操作,以实现建立动态网页所需要的功能。 JSP与Java Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。[2] 1。3。3 Struts2 Struts2框架是在Struts1和WebWork框架的基础上开发出来的,它吸收了2个框架的优点.Struts1框架和WebWork框架是2个完全不同的框架。因此,虽然Struts2感觉上好像是Struts1的升级版,但是却和Struts1相比,在设计理念上有着本质的不同。在体系结构和运行流程上Struts2和WebWork非常相似,因此,可以将Struts2理解成是继承了WebWork的血统。 Struts2框架大致是由核心控制器、业务控制器和用户实现的业务逻辑组件3个部分组成.其中,FilterDispatcher充当着核心控制器,该控制器作为一个Filter运行在Web应用中,并负责拦截用户的所有请求。用户使用软件时,如果请求最后是以“。action"结尾,那么,该请求就将转入到Struts2框架中进行处理。用户自己实现的Action类的实例其实就是业务控制器,在这些Action类中,一般都包含一个execute()方法,该方法的返回值一般都是一个字符串,就是一般我们所说的逻辑视图名,并且,总有一个实际要转到的视图资源和这些逻辑视图名相对应。虽然Struts2在核心控制器和业务控制器方面为用户提供了很多帮助,但是在业务逻辑组件方面,它确没有提供太多的帮助。业务逻辑组件其实只是一个表现层的框架,因此在实际开发过程中,当控制器需要获取业务逻辑组件时,通常都要通过Factory模式来获取所需的业务逻辑组件实例。[3] 1。3.4 Microsoft SQL Server2000 Microsoft SQL Server 2000是一款由微软公司开发的数据库产品.它拥有很多的分类,但基本都是产品规格上的改变,内部包含的服务不同.一般有企业版,各人版,移动版以及搜索引擎类等版本.其中,企业版相对与其它几个版本来说,功能比较齐全,但是确不能在WindowXP下安装,这点比较遗憾。Microsoft SQL Server 2000的主要作用是对程序所需要的数据进行存储、分析、查询、修改等操作。 Microsoft SQL Server 2000简化了之前版本数据库中的管理和优化功能,并且极大的提高了在线商务应用程序成功部署所需的可靠性和伸缩性。其中,日志传送、在线备份和故障切换群集等功能用以提高可靠性的特性。并且,对32颗CPU和64 GB RAM的支持也在很大程度上改进在伸缩性方面。通过对数据文件尺寸的自动管理、基于向导的数据库拷贝、自动内存管理和简化的故障切换群集安装与管理等一系列的自动优化和改进后的管理特性,使得用户能够迅速部署并有效管理在线商务应用程序。 Microsoft SQL Server还提供了数据库完整性保护。在SQL Server中,为了对实现数据库完整性的约束,则通过检查(Check)约束、默认值(Default)约束、用户定义的数据类型、规则(Rule)、存储过程(Stored procedure)、触发器(Trigger)等技术来实现,从而使数据库中的数据达到一致、正确,以提高数据库系统的性能。 2 系统需求分析 需求分析是系统开发的首要步骤,也是直接影响系统整体性能和功能的关键步骤。系统的需求分析主要是对系统的可行性、性能和功能进行具体地分析.不合理的需求分析,会使系统的开发环节出现许多错误和走许多弯路,导致系统开发时间长,效率低,系统质量受到影响。 2。1 运行环境分析 硬件需求 CPU:1G以上 内存:512M以上 硬盘:1G以上 系统环境 操作系统:Window XP/Window2000 数据库:SQL Server 2000 开发工具:MyEclipse 开发语言:Java 2。2 功能模块分析 (1)功能分析 系统具有仓库管理系统的基本功能。 系统分为两个部分,一个是用户部分:用户可以使用用户名和密码登录系统进行操作.一个是系统部分:这部分包括对商品的入库、出库操作,在库货物查询等功能。 (2)模块分析 登录模块:仓库管理人员进入系统必须经过登录。 添加商品信息模块:新入库的商品,在进入仓库之前,必须经过仓库管理人员的进行添加. 入库模块:仓库中已有的商品才能进行的操作,主要是入库数量上的变化. 商品类别管理模块:商品类别来区分各种商品,将商品分类管理. 2。3 系统目的分析 仓储物流在企业的整个供应链中起到一个至关重要的作用,如果不能正确的保证货物的入库,库存货物的发货,将导致企业管理费用的增加。并且,仓库管理人员的工作时间会延长,工作的效率不高。 开发这个系统,主要的目的就是帮助仓库管理人员提高工作效率,降低工作时间,实现仓库货物在管理上的系统化,规范化和自动化。 2。4 性能分析 本系统操作简单,界面美观,使用本系统的仓库管理人员不需要掌握太多的专业知识便可熟练使用。 系统能够迅速的将仓库管理人员对商品信息的操作(包括商品的入库、出库,商品信息的修改和删除,商品类别的添加和删除等)显示在对应的页面中,达到“即时操作,即时显示"的效果。 系统功能完善,包括了一般仓库管理系统的所有功能,完全能够满足用户的需要. 3 系统设计 系统的设计是系统开发中的一个重要环节。本章将主要介绍一个基于B/S架构的仓库管理系统的总体结构、系统架构和数据库设计。总体结构主要介绍了各个模块之间的关系,数据库设计主要说明了表的建立和数据之间的关系. 3。1 总体结构 本系统包含了仓库管理系统所需要的基本功能,能够满足一般用户对于仓库管理的需要,能有效的提高仓库管理人员的工作效率。根据系统的需求分析,系统大体分为以下几个模块:登录模块、添加商品信息模块、出库模块、入库模块、商品类别管理模块.其中,各个模块又有不同的子模块。总体结构如图3。1所示。 仓库管理系统 登入 商品信息查询 商品入库 新入库商品管理 商品类别管理 出库商品信息查询 删除信息 商品出库 添加 删除 图3。1 总体结构图 3.2 系统架构 系统是基于B/S结构开发的,B/S结构分为表示层、业务层、数据层三层。其中: (1) 表示层:作为用户的接口层,负责用户与整个系统交互,利用JSP技术来实现。 (2) 业务层:作为业务逻辑的封装层,采用Struts2框架,页面接受到用户请求后,将数据层取到的数据进行处理,最后把处理结果在表示层中显示出来。 (3) 数据层:作为数据的存储层,采用SQL Server 2000数据库进行数据的管理. 3.3 数据库设计 3。3。1 概念结构设计 概念设计从系统的需求出发,用数据流的形式将设计对象表达成完整的抽象实体.但不涉及模块内部的细节。它的描述工具是E—R图,如图3.2所示。管理人员 货物 用户名 密 码 商品名称 商品号码 商品类别 商品数量 生产厂家 入库 出库 M N 修改 删除 管理 添加 图3。2 系统E—R图 3。3.2 逻辑结构设计 逻辑结构的描述方法是基本表,它反映了系统中所涉及数据的逻辑结构。根据系统中数据信息的特点,将数据的概念模型转换为关系模型. (1) 用户信息关系模式,其中用户名为关系主键。 用户(用户ID、用户名、密码) (2) 商品信息关系模式,其中商品号码为关系主键。 商品(商品号码、商品名、生产产地、商品数量、类别ID) (3) 商品类别信息关系模式,其中类别ID为关系主键。 商品类别(类别ID、类别名) (4) 出库商品信息关系模式,其中商品号码为关系主键. 出库商品(商品号码、商品名、生产产地、出库数量、类别ID) 表3.1 商品信息表(kehu) 列名 数据类型 可否为空 说明 comID Varchar(50) NOT NULL 商品ID comname Varchar(50) NULL 商品名称 comfrom Varchar(50) NULL 生产厂家 comnumber Char(10) NULL 商品数量 sortID int(4) NULL 商品类别ID 表3.2 商品出库信息表(outkehu) 列名 数据类型 可否为空 说明 comID Varchar(50) NOT NULL 商品ID comname Varchar(50) NULL 商品名称 comfrom Varchar(50) NULL 生产厂家 comnumber Char(10) NULL 商品数量 sortID int(4) NULL 商品类别ID 表3.3 仓库管理员信息表(abc) 列名 数据类型 可否为空 说明 userID char(10) NOT NULL 管理员ID username char(10) NULL 管理员姓名 password char(10) NULL 密码 表3。4 商品类别管理信息表(sort) 列名 数据类型 可否为空 说明 sortID Int(4) NOT NULL 商品类别ID sortName Char(10) NULL 商品类别名称 3.3。3 物理结构设计 本系统采用Microsoft SQL Server 2000数据库系统,系统提供了良好的数据库管理功能来管理商品数据。 数据库名为fmw,表名分别为kehu、abc、outkehu、sort。数据的备份和恢复采用数据库系统本身提供的数据导入/导出工具来完成,形成相应的数据文件。其中数据文件名为fmw_Data。MDF;日志文件名为fmw_Log.LDF。 4 系统实现 该系统实现了仓库管理系统的基本功能,包括商品的入库、出库,商品信息的修改和删除,商品类别的添加、删除。用户(即仓库管理人员)登录后可以进入系统使用主界面,在主界面上,仓库管理人员可以对本系统的各个界面进行操作。 4.1 数据库连接和页面显示 4。1.1 数据库连接 本系统与数据库的连接方式,包括对数据库中的信息进行添加、删除、修改,都封装在一个名为DBOper。java的文件中,以便仓库管理人员在计算机上运行本系统时,对数据库进行必要的操作。具体代码如下。 import java.sql.*; public class DBOper { public DBOper() { try{ Class.forName(”com。microsoft。jdbc.sqlserver。SQLServerDriver”); }catch(ClassNotFoundException e){ } } private Connection getConnection(){ Connection conn = null; try{ conn=DriverManager.getConnection(”jdbc:sqlserver://localhost:1433;DatabaseName=fmw", ”sa", "sa"); //填写相关的数据库名和数据库用户名和密码 Statement stmt=conn.createStatement(); }catch(SQLException e){ System.out。println(e.getMessage()); } return conn; } public ResultSet executeQuery(String sql) { ResultSet rs=null; try{ Connection conn=this.getConnection(); Statement stmt=conn。createStatement(); rs=stmt。executeQuery(sql); }catch(SQLException e){ System。out。println(e。getMessage()); } return rs; } //用于执行Insert、Update、Delete语句以及SQL DDL语句 public int executeUpdate(String sql){ int num = 0; try{ Connection conn=this.getConnection(); //初始化数据库的连接 Statement stmt=conn。createStatement(); //执行一个连接 num =stmt。executeUpdate(sql); //执行sql的操作 }catch(SQLException e){ System.out.println(e.getMessage()); } return num; } //关闭一个连接 private void closeConn(Connection conn){ if(null != conn){ try { conn。close(); } catch (SQLException e) { e.printStackTrace(); } } } //关闭一个连接 private void closeStam(Statement stmt){ if(null != stmt){ try { stmt.close(); } catch (SQLException e) { e。printStackTrace(); } } } } 4.1.2 页面显示 本系统的页面显示很多都是采用的分页显示.因为,在一般的情况下,仓库中的商品补可能只有一种,因此,要将商品的信息分开显示出来就需要用到分页查询的功能.具体代码如下. public List〈Kehu〉 queryByPage (int pageSize, int pageNow) { List〈Kehu> list = new ArrayList〈Kehu〉 () ; try { if (this.getConnection()!=null && pageSize>0 && pageNow>0) { pstmt = this。getConnection()。prepareStatement( "select * from kehu order by comID limit ”+(pageNow*pageSize-pageSize)+”,"+pageSize ); //以商品ID为标准查询数据表kehu中的商品信息 rs = pstmt。executeQuery () ; while (rs.next()) { kehu = new Kehu () ; kehu.setComID (rs。getInt(1)) ; kehu.setComname (rs。getString(2)) ; kehu。setComfrom (rs。getString(3)) ; kehu。setComnumber (rs。getString(4)) ; kehu.setSortID (rs.getString(5)) ; list。add (kehu) ; } } } catch(SQLException e) { e。printStackTrace() ; } return list ; } 4.2 登录模块 本系统是一个单用户系统。仓库管理人员使用用户名和密码登入系统之后,可进入主界面对系统进行操作.登录界面设计,如图4。1所示. 图4。1 用户登录界面 当仓库管理人员登录系统,必须输入正确的用户名和密码,当输入的用户名或者密码错误时,就会出现登录失败的情况。实现判断登录人员用户名和密码是否错误功能的主要代码如下。 public String execute() throws Exception{ DBOper dbOper=new DBOper(); String sql="select * from abc where username='”+username+"' and password='”+password+"'”; //查询数据表abc中是否有这个用户名和密码 ResultSet rs=dbOper。executeQuery(sql); System.out.println(sql); if(rs.next()){ return ”main"; } else return "error”; //查询结果如果有则返回到main,没有,则返回error,这两个返回值对应两个JSP页面 } 4。3 主界面模块 当仓库管理人员用正确的用户名和密码登录进系统之后,即可直接进入到主界面。 在主界面上,有各个子功能界面的超链接选项,包括商品信息查询、商品入库、新商品入库管理、商品类别管理、商品出库信息查询。当仓库管理人员完成工作后,即可选择退出。主界面如图4。2所示。 图4.2 应用界面 4.4 商品信息查询模块 本模块主要功能为商品信息查询。仓库管理人员进入该页面后,可以在本模块的界面中查询到所有商品的信息,并且还有关于商品出库和修改商品信息操作的超链接选项.界面如图4.3所示。 图4。3 商品信息界面 从图中可以看到,仓库管理人员可以看到所有商品的信息。这个主要由action包中的ShowGoodsAction.java类来实现的。ShowGoodsAction。java类的作用是创建一个链表,将要显示的商品信息放入这个链表中。具体代码为: ShowGoodsAciton。java: public class ShowGoodsAction { public String execute() throws Exception{ DBOper db = new DBOper(); ResultSet rs = db.executeQuery("select * from kehu ”); //查询kehu这个表 ArrayList listGoods = new ArrayList(); //创建一个名为listGoods的链表 while (rs.next()){ Goods goods = new Goods(); goods.setComID(rs。getString(1)); goods。setComname(rs。getString(2)); goods.setComnumber(rs.getString(4)); goods。setSortID(rs。getString(5)); goods.setComfrom(rs。getString(3)); listGoods。add(goods); //将取出的商品信息放到listGoods这个链表中 } ActionContext actionContext = ActionContext。getContext(); Map map = actionContext.getApplication(); map.put(”listGoods", listGoods); //将链表里的内容放到map对象里 return "success"; } 4.4.1 商品出库 当仓库管理人员需要对在库商品进行出库操作时,只需在商品查询界面的相应的商品信息后点击出库操作的选项。点击出库选项之后,便进入到商品出库操作界面,界面如图4。4所示. 图4.4 商品出库界面 当仓库管理人员点击确定之后,页面会根据仓库管理人员输入的数量,对数据库中该商品的数量进行删减。完成该功能所需的代码如下. public class DeleteWaresAction { private String comID; private String comnumber1; public String execute() throws Exception{ DBOper dbOper=new DBOper(); String sql="update kehu set comnumber=comnumber — '”+comnumber1+”’ where comID='”+comID+"' "; //以商品ID为条件,将该商品在原有数量的基础上,减去输入的数量 int num=dbOper。executeUpdate(sql); System.out。println(sql); if(num!=0){ return "success”; } else return "error"; } public String getComID() { return comID; } public void setComID(String comID) { this。comID = comID; } … … } 4。4。2 商品信息修改 当仓库管理人员需要对现在仓库中的商品信息进行修改时,只需在商品信息查询界面的相应的商品信息后点击修改操作的选项。修改选项是一个超链接,它触发了一个action,将仓库管理人员所选的这一行商品信息显示出来.如图4。5所示。 图4.5 商品信息修改界面 从图中可以看到,页面上显示了将要修改的某一行商品的所有信息,并且可以直接在方框内进行修改。完成这个功能的代码如下。 public class Modify2Action { private String comID; private String comname1; private String comfrom1; private String comnumber1; public String execute() throws Exception{ DBOper dbOper=new DBOper(); String sql="update kehu set comname='"+comname1+"', comfrom='”+comfrom1+"’, comnumber=’”+comnumber1+”'where comID=’”+comID+"' ”; //以商品ID为标记,替换商品的信息,因为商品ID为主键,不能替换 int num=dbOper.executeUpdate(sql); System.out.println(sql); if(num!=0){ return ”success”; } else return "error"; } public String getComID() { return comID; } public void setComID(String comID) { ID = comID; } … … } 4.5 商品入库模块 当有仓库中已有的货物进入仓库时,仓库管理人员可以使用主界面上的“商品入库”操作选项进入商品入库界面。在这个界面中,仓库管理人员可以看到现有商品的所有信息,并且可以在相应的商品信息后面点击入库操作选项进行商品的入库操作。该界面如图4。6所示。 图4。6 商品入库界面 图中的商品信息的显示的方法和代码,参照4。4商品信息查询界面。 4.5.1 商品入库 当点击了上图中的“入库"操作选项之后,就进入了商品入库操作的界面,在这个界面,仓库管理人员只需输入新入库的该商品的数量即可。该界面如图4。7所示。 图4。7 商品入库操作界面 当仓库管理人员输入数量后,点击确定,即完成了对商品的入库操作。完成该功能的代码可参照完成图4。3功能所用的代码.之前很多次提到点击操作选项显示某一个商品的全部信息的操作功能,实现这个功能的代码如下。 public class ModifyAction { String comID; public String execute() throws Exception{ Goods goods=new Goods(); DBOper db = new DBOper(); String sql=”select * from kehu where comID=’”+comID+"’"; //从数据库中查询所选商品ID的商品的信息 System.out。println(sql); ResultSet rs = db。executeQuery(sql); ArrayList listGoods1 = new ArrayList(); //创建一个链表 while (rs.next()){ goods。setComID(rs。getString(1)); goods。setComname(rs.getString(2)); goods.setComnumber(rs.getString(4)); goods.setSortID(rs。getString(5)); goods.setComfrom(rs.getString(3)); listGoods1。add(goods); } Map request = (Map)ActionContext.getContext().get(”request”); request。put(”listGoods1”, listGoods1); //将链表里的内容放到request对象里,使网页能够取出 return ”success”; } public String getComID() { return comID; } public void setComID(String comID) { ID = comID; } } 4。6 新商品入库管理模块 当有新的商品进入仓库中时,仓库管理人员需点击主界面的“新商品入库管理”选项。在进行添加商品信息的操作过程中,商品的类别选择是根据一个连接着“sort"数据表的下拉框来选择的。当将新入库的商品的信息填写完毕之后,点击确定将新入库的商品的信息添加到管理商品信息的数据表“kehu”中。界面如图4。8所示. 图4.8 新商品入库操作界面 当点击“确定"之后,就将仓库管理人员输入的新入库商品的信息保存到了数据库中,功能实现的具体代码如下。 import java.sql。ResultSet; import java。util.Map; import ado。DBOper; import com。opensymphony.xwork2。*; public class AddAction { private String comID=null; private String comname=null; private String comfrom=null; private String comnumber=null; private int sortID;//初始化商品的信息 public String execute() throws Exception{ DBOper dbOper=new DBOper();//实例化一个DBOper String sql=”insert into kehu (comID,comname,comfrom,comnumber,sortID) values ('"+comID+"’ ,”+" '"+comname+”',”+” '”+comfrom+”',"+” ’”+comnumber+”',”+” ’"+sortID+"’)”; //将填写的信息保存到kehu数据表中 int num=dbOper.executeUpdate(sql); if(num!=0){ return "success2"; } else return "error”; } public String getComID() { return comID; } public void setComID(String comID) { ID = comID; } … … } 4.7 商品类别管理模块 在本文4.6章新商品入库管理模块中,我已经提到商品的类别选择是由一个连接着“sort” 数据表的下拉框来选择的。因此,必定有一个管理着商品类别的界面.界面如图4。9所示。 图4。9 商品类别管理界面 如图可见,商品类别的管理有添加和删除两个方面。点击上图的“增加商品类别”选项可进行商品类别的添加操作,操作的实现界面可参照本文4。5章的图4。6新商品入库管理;点击“删除商品类别”选项可进行商品类别的删除操作,在这个界面中,仓库管理人员可以看到现有的所有的商品类别的ID和名称,并点击相应商品类别后的删除选项进行商品类别的删除。界面如图4.10所示。 图4。10 删除商品类别界面 实现删除操作的代码和本文4.8章中图4。10删除商品出库信息的相似,可参照此代码。上文提到添加新的商品信息时,商品类别是以下拉框的形式来选择的,下拉框的代码如下. <select name=”sortID”〉 <% DBOper db=new DBOper(); ResultSet rs=db。executeQuery(”select sortID,sortName from sort”); //调用在DBOper里封装好的类,从sort表中查询sortID和sortName while(rs.next()) { %> 〈option value=〈%=rs。get- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 仓库 管理 系统 设计 实现 概要
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文