资源描述
安徽工业大学工商学院 毕业设计(论文)说明书装订线摘要随着时代的进步,计算机技术的发展,单纯的财务软件已经无法满足企业日益增长经营管理的需要了,业务的增长,企业规模的扩大,对企业的经营管理提出了更高的要求,能否把企业的财务管理做得井井有条,把企业的业务管理做得步步到位,把企业的货品管理做得实时准确,都影响着企业发展的步伐,只有让企业的综合管理水平得到一个质的提高,才能让企业登上一个新的档次,进入到新的运行轨道中。企业进销存管理系统由基础信息管理、库存管理、商品销售、查询统计、往来管理、系统设置 6 个模块组成。每个功能模块又由不同的子模块组成。本系统采用 B/S 结构,运用面向对象设计方法,使用 JSP 编程技术在 Eclipse 集成开发环境下开发的企业进销存管理系统。本系统的特点是整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成进货、销售、库存管理的全过程。在图型化的人机界面中完成日常的进销存管理工作。一方面摆脱了时间和空间的限制,另一方面有效的解决的数据共享的问题。关键词:企业进销存 面向对象 JAVA JSP安徽工业大学工商学院 毕业设计(论文)说明书I装订线AbstractWith the era of progress and the development of computer technology, a simple financial software enterprises have been unable to meet the growing needs of the operation and management. Business growth, expand the scale of the enterprise, the enterprises management has put forward higher requirements。Whether the financial management of the enterprise well-done, the enterprise business management has done step by step in place, the enterprises management has done for real-time accurate, are affecting the pace of development of enterprises. Only by allowing the integrated management of the enterprise level of a qualitative increase in order for a new enterprise boarded the grade, to enter into a new running track.Enterprise Invoicing management system based on information from management, inventory management, marketing, for statistics, demand management, system settings six modules. Each module is different from the sub-module.The system uses B / S structure, the use of object-oriented design methods, the use of JSP programming in Eclipse integrated development environment development of the enterprise Invoicing management system.The system is characterized by the system as a whole from the simple, user-friendly, flexible, practical and security requirements of the completed purchase, sales, inventory management of the entire process.In the pattern of human-computer interface in the completion of day-to-day management of the Invoicing. On the one hand, emerging from the constraints of time and, on the other hand an effective solution of the problem of data sharing.Keywords: : Inventory management Object-Oriented JAVA JSP安徽工业大学工商学院 毕业设计(论文)说明书II装订线安徽工业大学工商学院 毕业设计(论文)说明书III装订线目录摘要.IABSTRACT.II目录.III1 绪论.11.1 编写目的.11.2 背景.11.3 使用的技术.12 可行性研究分析.32.1 可行性研究的前提.32.2 对本系统的分析.42.3 系统可行性分析.53 系统需求分析.63.1 系统的功能要求.63.2 系统的性能要求.63.3 系统的数据要求.73.4 系统的运行要求.73.5 建立系统约束.74 功能模块分析.84.1 系统功能模块.84.2 功能模块分析.95 系统设计.105.1 系统设计思想.105.2 系统功能模块图.105.3 系统各模块执行流程.116 数据库设计.146.1 数据库技术.14安徽工业大学工商学院 毕业设计(论文)说明书IV装订线6.2 数据库表结构设计.146.3 数据库的完整性和范式介绍.237 部分模块详细设计及部分代码.247.1 数据库连接操作.247.2 用户登录设计.267.3 基础信息管理.287.4 库存管理.327.5 商品销售.347.6 查询统计.357.7 系统设置.368 系统运行测试.388.1 软件测试的重要性.388.2 软件测试的基本方法.398.3 测试结论.39结束语.40致谢.41主要参考文献.42附录 程序源代码.43安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 1 页装订线1 绪论1.1 编写目的本研究报告主要面对企业的决策者,论证通过计算机网络管理系统对企业进行全面的管理,是否满足了企业现代化管理要求。1.2 背景随着时代的进步,计算机技术的发展,单纯的财务软件已经无法满足企业日益增长经营管理的需要了,业务的增长,企业规模的扩大,对企业的经营管理提出了更高的要求,能否把企业的财务管理做得井井有条,把企业的业务管理做得步步到位,把企业的货品管理做得实时准确,都影响着企业发展的步伐,只有让企业的综合管理水平得到一个质的提高,才能让企业登上一个新的档次,进入到新的运行轨道中。 企业经营管理水平的提高,需要对企业的采购状况,销售状况,进货状况,出货状况,产品库存,财务收支,业务收款,成本控制等方方面面有一个整体的统计,进销存软件的应用目的就是帮助客户让企业的重要经营数据跃然纸上,对企业的运营状况取得一个整体的把握。1.3 使用的技术1.3.1 JAVA 技术Java 语言是一个支持网络计算的面向对象程序设计语言,吸收了 Smalltalk 语言和 C+语言的优点,并增加了其它特性,如支持并发程序设计、网络通信和多媒体数据控制等。主要特性如下:(1)、面向对象性:Java 语言是一个纯的面向对象程序设计语言。(2)、健壮性:Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证。Java 的安全检查机制使得 Java 更具健壮性。(3)、安全性: Java 提供了一个安全机制以防恶意代码的攻击。(4)、体系结构中立:Java 程序在 Java 平台上被编译为体系结构中立的字节码格式, 然后可以在实现这个 Java 平台的任何系统中运行。(5)、可移植:这种可移植性来源于体系结构中立性,Java 系统本身具有很强的可移植性。(6)、解释型语言:Java 程序在 Java 平台上被编译为字节码格式, Java 解释器对这些字节码进行解释执行。(7)、多线程:Java 语言支持多线程,并提供多线程之间的同步机制。 本系统采用 Java 作为开发语言,来实现安全的、多线程的、可移植性很强的优点,并且降低开发难度。1.3.2 JSP 技术JSP(Java Server Pages)是基于 Java Servlet 以及整个 Java 体系的 Web 开发技术,利用安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 2 页装订线这一技术可以建立安全、跨平台的先进动态网站。与 ASP 相比,JSP 以 Java 为技术为基础,又在许多方面做了改进,具有动态页面与静态页面分离,能够脱离硬件平台的束缚,以及编译后运行等优点,克服了 ASP 的脚本级执行的缺点。安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 3 页装订线2 可行性研究分析可行性分析(Feasibility Analysis)也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。2.1 可行性研究的前提2.1.1 系统要求(1) 功能:基础信息管理、库存管理、商品销售、查询统计、往来管理和系统设置。(2) 输出:可以查询商品信息、客户信息、供应商信息、商品销售信息、商品销售排行等。(3) 输入:客户信息、商品信息、供应商信息、商品入库记录、商品销售记录等。(4) 在安全与保密方面的要求:采用用户登陆模式,密码身份认证。要求数据库中的用户口令信息为保密信息,采用一定的数据加密措施。(5) 完成期限:14 周。2.1.2 目标本系统是针对企业进销存管理现状设计开发的,总体目标是通过网络建立一个能够对企业内商品流动进行监控,即在商品采购、 销售、 库存等过程中进行监督与控制的进销存管理系统。本系统主要实现如下目标:1)系统采用人机对话方式,界面美观友好,信息查询灵活、方便、快捷、准确,数据存储安全可靠。2)实现企业内一些基础信息的设置及查询。3)商品的入库、入库退货、销售、销售退货流程清晰。4)数据计算自动完成,提高工作效率。5)与供应商和客户之间的账目清晰。6)以图表形式对年销售额进行分析。7)实现多条件查询。8)可方便快捷地查询库存信息,并可对商品价格进行调整。9)对某一时间段内的某种商品按照销售数量或销售金额进行销售升序排行或降序排行。10)操作员可以随时修改自己的口令。11)对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。12)系统最大限度地实现了易维护性和易操作性。安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 4 页装订线13) 系统运行稳定、安全可靠。2.1.3 条件、假定和限制(1)系统的运行寿命的最小值:3 年;(2)由系统的使用者出资;(3)不违反国家相关法规;(4)开发环境:CPU:C4 1.7G; 内存:256M; 操作系统:WindowsXP; 工具:Eclipse(MyEclipse);Apache-Tomcat6.0; 数据库:SQL Server 2000; 运行环境:服务器端:CPU:P4 1G 以上;内存:256M 以上;操作系统:WindowsXP、Windows 2000;硬盘空间:5G 以上剩余空间;安装有 SQL Server 2000。 客户机端:CPU:P3 700M 以上;内存:128M 以上;操作系统:Windows 2000 或 Windows XP;硬盘空间:1G 以上剩余空间。2.1.4 进行可行性研究的方法调查现在常用的进销存管理系统及企业业务流程。收集相关数据,如,功能,使用难易度等属性,对各种管理系统进行综合比较,从技术,经济,管理和操作四个方面出发,评价出最优的系统。2.2 对本系统的分析2.2.1 对本系统的说明本系统使企业的财务管理,销售管理,采购管理,货品管理,仓库管理有机地结合起来,形成了企业的进销存管理系统,并且提供导航式的功能指引图,智能地引导用户开展各种功能的操作和使用。在满足了财务管理和进销存管理有机组合的前提下,本系统还提供了客户信息管理和供应商信息管理功能,不仅形成了客户资源的记录,统计了客户的业务状况,欠款数目,还具有客户销售对帐功能,只要轻轻一点,即可马上将该客户在指定时段内的交易记录清清楚楚地列举出来,并对客户进货总额,退货总额,付款总额,欠款总额进行分类统计与核算,既能整体把握客户的业务状况又能快速地显示客户的交易明细记录。安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 5 页装订线2.2.2 影响本系统的开发能够提高工作效率、扩大服务范围、增加经营者的利润、及时获取信息、减少决策失误、减少库存积压及提高资金周转率。该系统还能及时提供市场基本信息、供货商信息、库存信息、销售信息、消费者反馈信息及市场需求信息,提高决策正确率。并在此基础上通过对各种信息的综合分析,以改进企业物品种类、提高服务质量、满足不同消费者的购买要求,使企业的管理向高质量、现代化的方向发展。2.2.3 局限性本系统仅限于内部联网,如果发生被盗、缺货等事故处理麻烦,需修改多个文件。2.3 可行性分析2.3.1 技术可行性企业进销存管理系统的软硬件要求都是能容易达到的,其配置要求如下:软件配置: (1) 数据库服务器: 操作系统: Microsoft Windows XP 或 Unix、Linux; 数据库系统: SQL Server 2000 数据库 (2) 客户端 : 使用版本为 5.0 以上的浏览器即可。 (3) 硬件配置: 使用中档的 PC Server本系统对服务器的要求并不高,在当前的技术条件下,该系统的功能目标可达到;本系统的开发可以在规定期限内完成。2.3.2 经济可行性企业进销存管理系统开发需要投资费用和未来的运行维护费用,其中投资费用主要包括设备费用、人员费用及其他费用,如由于工作方式改变需要增加的其他开支,通常为了保证新系统运行的可靠性,要求手工和计算机处理在长时间并存。系统的收益主要通过新系统提高工作效率,指导经营策略来实现,还有其他难以计算的指标,比如:1降低了成本及其他费用。 2改进薄弱环节,提高的工作效率。3提高数据处理的及时性和准确性。2.3.3 管理可行性主要是管理人员是否支持,现有的管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等。规章制度和管理方法为系统的建设提供了制度保障。2.3.4 操作可行性本系统基于 B/S 模式,系统的界面友好,操作简单,具有基本计算机知识的人员均能使用系统的各项功能。通过以上的分析,系统的解决方案得到初步确定。安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 6 页装订线3 系统需求分析3.1 系统的功能要求根据对部分企业管理日常工作的调研结果及其管理的总体需求的分析,系统应具备以下功能:(1) 由于操作人员的计算机知识水平有限,因此要求系统具有良好的人机界面。(2) 如果系统的使用对象较多,则要求有较好的权限管理。(3) 方便的数据查询功能,并支持多条件查询。(4) 在各种单据中根据输入的基础数据自动计算金额,尽量减少人工干预。(5) 对客户或供应商的往来账目进行有效管理,绝不存在假账、漏账、差账等情况。(6) 通过计算机,能够直接“透视”仓库存储情况。(7) 对某一时间段内的某种商品的销售情况按数量或金额进行升序或降序排行。(8) 图表分析年销售额。3.2 系统的性能要求为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求:3.2.1 系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量。3.2.2 系统的开放性和系统的可扩充性系统在开发过程中,应该充分考虑以后的可扩充性。例如业务扩大和经营方式的改变,用户查询的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。3.2.3 系统的易用性和易维护性系统是直接面对使用人员的,而使用人员往往对计算机并不是非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对可能出现的使用问题,要提供足够的帮助,缩短用户对系统熟悉的过程。安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 7 页装订线系统中涉及到的数据是系统使用者相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作。3.2.4 系统的先进性目前计算系统的技术发展相当快,作为企业综合信息管理系统工程,应该保证系统在 2 年内是先进的,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后。这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并且先进有良好发展前途的产品。3.3 系统的数据要求3.3.1 数据录入和处理的准确性系统应具有一定的数据录入准确性的验证功能,在通过验证后才能成功录入数据库中,同时应对录入人员进行系统的培训,保证其操作规范性。3.3.2 数据的完整性为确保录入数据的有效性,应对录入的数据进行完整性检验,如果不能符合完整性约束,系统应该拒绝该数据,否则提示操作成功。3.3.3 数据提交的并发控制应考虑到系统多个客户端对系统数据同时修改的可能性,例如销售处理,应采用一定的手段有效的对其操作进行并发控制,确保各个客户端操作的有效性和不冲突性。3.4 系统的运行要求企业综合信息管理系统中服务器的硬件和软件的配置如下:操作系统: Windows XP、Windows 2000;数据库管理系统:SQL Server 2000;硬件要求:Pentium 4 1G 以上, 256M RAM, 5G 硬盘剩余空间。客户端的硬件和软件的配置如下:操作系统:Windows 2000 或 Windows XP;软件要求:安装有企业进销存管理系统软件;硬件要求:P3 700M 以上,128M RAM,, 1G 以上硬盘剩余空间。3.5 建立系统约束3.5.1 人力、资金、时间的约束开发企业进销存管理系统的目标就是要带给企业看得见的效益,其开发过程中也要考虑到人力、资金和时间的约束。因此,在设计中,重点是管理系统中的方便快捷,能提供给住户以优质高效的服务,并提高管理的效率和便捷,为企业带来良好的效益。3.5.2 技术发展规律的约束计算机技术和产品的发展日新月异,将会给信息处理带来更多的手段,同时也安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 8 页装订线会带来更加丰富的信息表达形式。例如图像和语音技术的进步,多媒体技术的发展,这些都要求系统在设计时考虑技术变化的可能性,为可能的变化预留一定的系统处理能力。安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 9 页装订线4 功能模块分析本文的企业进销存管理系统是一套比较复杂的软件,它是依据大中型企业的营业点,结合计算机信息管理的特点,利用计算机网络及其它通讯工具设施对企业业务信息进行及时有效管理的一个应用软件。该系统全面、正确、完整、及时地收集、加工、整理在整个企业交易业务流程中所发生的各类有关信息。4.1 系统功能模块企业进销存管理系统由基础信息管理、库存管理、商品销售、查询统计、往来管理、系统设置 6 个模块组成。各功能模块下又包含了各自的子模块。(1)基础信息管理主要包括:客户信息管理、商品信息管理、供应商信息管理、商品信息查询、客户信息查询和供应商信息查询 6 个子模块。(2) 库存管理主要包括:商品入库、商品入库退货、库存查询和价格调整 4个管理模块。(3) 商品销售主要包括:商品销售和销售退货 2 个子模块。(4) 查询统计主要包括:销售信息查询、商品入库查询、商品销售排行、年销售分析 4 个子模块。(5) 往来管理主要包括:商品销售结账、入库退货结账、销售结账查询、商品入库结账、销售退货结账、入库结账查询 6 个子模块。(6) 系统设置主要包括操作员管理和个人密码修改 2 个子模块。整个系统的功能用例图如图 4-1 所示:个 个个 个 个 个 个 个个 个 个 个个 个 个 个 个 个个 个 个 个个 个 个 个个 个 个个 个 个 个个 个 个 个 个 个个 个 个 个 个 个个 个 个 个 个 个 个个 个 个 个 个 个个 个 个 个 个 个 个个 个 个 个 个 个个 个 个 个个 个 个 个个 个 个 个个 个 个 个 个 个个 个 个 个个 个 个 个个 个 个 个 个个 个 个 个 个 个个 个 个 个 个 个个 个 个 个 个 个个 个 个 个 个 个个 个 个 个 个 个个 个 个 个 个 个个 个 个 个 个 个个 个 个 个 个 个个 个 个 个 个 个个 个 个 个 个 个个 个 个 个 个 个图 4-1 系统功能模块用例图安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 10 页装订线4.2 功能模块分析(1)基础信息管理模块主要是对企业的客户信息、商品信息、供应商信息进行有效管理,并可实现按不同条件对这些数据进行查询。(2)库存管理该模块主要是对商品的入库及入库退货信息进行有效管理,对商品的价格进行调整,同时可按不同条件查询库存商品。(3)商品销售该模块主要是对商品的销售及销售退货信息进行有效管理。(4)查询统计该模块主要实现按不同条件查询商品的入库信息及销售信息,并可对某一时间段内某种商品的销售情况按数量或金额进行升序或降序排行,同时可对某一年度的销售额进行图表分析。(5)往来管理该模块主要实现对商品的入库结账、入库退货结账、销售结账、销售退货结账信息进行有效管理,同时可实现销售结账信息及入库结账信息的查询操作。(6)系统设置该模块主要实现对操作员及操作员密码进行有效管理。安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 11 页装订线5 系统设计5.1 系统设计思想5.1.1 面向对象设计在系统中用 JavaBean 将用户、商品、供应商等都封装成相应的类,同时每个类都有自己对应的操作类,从而再次提高了对数据库操作的安全性和程序的可扩展性。5.1.2 三层结构设计系统采用三层结构设计,即表现层、业务层、数据访问层。三层在实际的物理结构上也是独立的,业务层采用 JavaBean 实现,表现层与业务层分离,系统的安全性、可维护性、重用性和可扩展性都大大提高。表现层通过统一的接口向业务层发送请示,业务层按自己的逻辑规则将请示处理之后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给表现层。这样表现层甚至可以不知道数据库的结构,它只要维护与业务层之间的接口即可。这种方式在一定程度上增加了数据库的安全性,同时也降低了对用户界面层开发人员的要求,因为它根本上不需要进行任何数据库操作。 上面的 JavaBean 通过返回对象的形式来返回来返回数据库,在类的内部可以规定哪些数据可访问,哪些数据是只读的等,从而通过封装数据达到再一次提高数据安全性的目的。5.2 系统功能模块图安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 12 页装订线图 5-1 系统功能模块图5.3 系统各模块执行流程整个系统运行流程(图 5-2):安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 13 页装订线个 个 个 个 个 个 个 个 个 个个 个 个 个 个 个 个 个 个 个个 个个 个 个 个个 个个 个 个 个个 个 个 个个 个 个 个个 个 个 个个 个 个 个图 5-2 系统执行流程图5.3.1 用户登录/退出系统的时序图(图 5-3):安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 14 页装订线系统管理员注册用户登录页面登录验证用户信息管理发送登录请求发送登录请求获取用户登录信息发送用户信息获取用户的真实信息验证登录信息发送验证结果显示验证结果图 5-3 用户登录退出流程5.3.2 管理员添加商品信息流程(图 5-4):安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 15 页装订线系统管理员商品信息管理页面产品信息管理商品信息发送请求获取商品信息发送商品信息返回操作状态显示操作状态添加商品信息图 5-4 商品信息添加流程图安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 16 页装订线6 数据库设计6.1 数据库技术数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。本系统采用 SQL Server 2000 数据库。6.2 数据库表结构设计 设计数据表结构,数据库包含如下表:表 6-1 数据库结构表序号表名备注1tb_brand商品信息表2tb_customer 客户信息表3tb_kucun库存信息表4tb_rkjz入库结账表5tb_rkph入库票号表6tb_ruku入库表7Tab_rukuth入库退货表8tb_sell销售表9tb_selljz销售结账表10Tab_sellph销售票号表11Tab_sellth销售退货表12Tab_supplier供应商信息表13Tab_thjz_rk入库退货结账表14Tab_thjz_xs销售退货结账表15Tab_thph_rk入库退货票号表16Tab_thph_xs销售退货票号表17tb_user操作员信息表下面是各个表的详细结构:(1)tb_brand(商品信息表)商品信息表用来存储商品的基本信息。表 tb_brand 的结构如表 6-2 所示。表 6-2 tb_brand 的结构表字段名数据类型长度是否主键描述IDvarchar50是ID 号spnamevarchar50商品名称jcvarchar50简称安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 17 页装订线cdvarchar100产地dwvarchar10单位ggvarchar50规格bzvarchar50包装phvarchar50批号pzwhvarchar50批准文号gysnamevarchar100供应商全称memovarchar255备注(2)tb_customer(客户信息表)客户信息表用来存储客户的基本信息。表 Tab_customer 的结构如表 6-3 所示。表 6-3 tb_customer 的结构表字段名数据类型长度是否主键描述IDint4ID 号khnamevarchar100客户全称khjcvarchar50简称addressvarchar100地址postcodevarchar50邮政编码telvarchar50电话faxvarchar50传真lxrvarchar50联系人lxrtelchar30联系人电话Emailchar50电子信箱khyhchar50开户银行yhzhchar50银行账号(3)tb_kucun(库存信息表)库存信息表用来存储库存信息。表 tb_kucun 的结构如表 6-4 所示。 表 6-4 tb_kucun 的结构表字段名数据类型长度是否主键描述IDchar20是商品编号安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 18 页装订线spnamechar50商品名称jcchar20简称cdchar30产地ggchar20规格bzchar30包装dwchar10单位djchar8单价kcslfloat8库存数量kcjemoney8库存金额(4)tb_rkjz(入库结账表)入库结账表用来存储商品的入库结账信息。表 tb_rkjz 的结构如表 6-5 所示。 表 6-5 tb_rkjz 的结构表字段名数据类型长度是否主键描述IDchar15是结款票号rkidchar15入库票号gysnamechar100供应商全称bcjkmoney8本次结款yemoney8余额jkdatedatetime8结款日期czychar10操作员Jsrchar10经手人(5)tb_rkph(入库票号表)入库票号表用来存储商品入库的单据信息。表 Tab_rkph 的结构如表 6-6 所示。 表 6-6 tb_rkph 的结构表字段名数据类型长度是否主键描述Rkphchar15入库票号Slfloat8数量Yfmoney8应付Sfmoney8实付安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 19 页装订线Wfmoney8未付gysnamechar50供应商名称rkdatedatetime8入库日期czychar10操作员jsrchar10经手人jsfschar30结算方式whetherchar2是否结清(6)tb_ruku(入库表)入库表用来存储商品入库的详细信息。表 tb_ruku 的结构如表 6-7 所示。表 6-7 tb_ruku 的结构表字段名数据类型长度是否主键描述IDchar15是入库票号spidchar7商品编号spnamechar50商品名称jcchar20简称cdchar100产地ggchar50规格bzchar50包装dwchar10单位djmoney8单价slfloat8数量jemoney8金额gysnamechar50供应商全称rkdatedatetime8入库日期czychar10操作员jsrchar10经手人jsfschar20结算方式(7)Tab_rukuth(入库退货表)入库退货表用来存储商品入库退货的详细信息。表 Tab_rukuth 的结构如表 6-8安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 20 页装订线所示。 表 6-8Tab_rukuth 的结构表字段名数据类型长度是否主键描述IDchar15入库退货票号spidchar7商品编号spnamechar50商品名称jcchar20简称cdchar100产地ggchar50规格bzchar50包装dwchar10单位djmoney8单价slfloat8数量jemoney8金额gysnamechar50供应商全称thdatedatetime8退货日期czychar10操作员jsrchar10经手人续表 6-8jsfschar20结算方式(8)tb_sell(销售表)销售表用来存储商品销售的详细信息。表 tb_sell 的结构如表 6-9 所示。 表 6-9 tb_sell 的结构表字段名数据类型长度是否主键描述IDchar15是销售票号spidchar7商品编号spnamechar50商品名称jcchar20简称cdchar30产地ggchar20规格bzchar30包装dwchar10单位djmoney8单价安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 21 页装订线slfloat8数量jemoney8金额khnamechar100客户全称xsdatedatetime8销售日期czychar10操作员jsrchar10经手人jsfschar20结算方式(9)tb_selljz(销售结账表)销售结账表用来存储商品的销售结账信息。表 tb_selljz 的结构如表 6-10 所示。 表 6-10 tb_selljz 的结构表字段名数据类型长度是否主键描述IDchar15是结款票号xsidchar15销售票号khnamechar100客户全称bcjkmoney8本次结款yemoney8余额jkdatedatetime8结款日期czychar10操作员jsrchar10经手人(10)Tab_sellph(销售票号表)销售票号表用来存储商品销售的单据信息。表 Tab_sellph 的结构如表 6-11 所示。 表 6-11Tab_sellph 的结构表字段名数据类型长度是否主键描述xsphchar15销售票号slfloat8数量ysmoney8应收ssmoney8实收wsmoney8未收khnamechar100客户全称xsdatedatetime8销售日期czychar10操作员安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 22 页装订线Jsrchar10经手人jsfschar30结算方式whetherchar2是否结清(11)Tab_sellth(销售退货表)销售退货表用来存储商品销售退货的详细信息。表 Tab_sellth 的结构如表 6-12所示。 表 6-12Tab_sellth 的结构表字段名数据类型长度是否主键描述IDchar15退货票号spidchar7商品编号spnamechar50商品名称jcchar20简称cdchar30产地ggchar20规格bzchar30包装dwchar10单位djmoney8单价slfloat8数量jemoney8金额khnamechar100客户名称thdatedatetime8退货日期czychar10操作员jsrchar10经手人jsfschar20结算方式(12)Tab_supplier(供应商信息表)供应商信息表用来存储供应商的基本信息。表 Tab_supplier 的结构如表 6-13 所示。 表 6-13Tab_supplier 的结构表字段名数据类型长度是否主键描述IDint4供应商编号gysnamevarchar50供应商全称jcvarchar50简称addressvarchar100地址postcodevarchar50邮政编码telvarchar50电话faxvarchar50传真安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 23 页装订线lxrvarchar50联系人lxrtelvarchar50联系人电话khyhvarchar50开户银行emailvarchar50电子信箱(13)Tab_thjz_rk(入库退货结账表)入库退货结账表用来存储入库退货结账信息。表 Tab_thjz_rk 的结构如表 6-14 所示。 表 6-14Tab_thjz_rk 的结构表字段名数据类型长度是否主键描述IDchar15结款票号thidchar15退货票号gysnamechar100供应商全称bcjkmoney8本次结款yemoney8余额jkdatedatetime8结款日期czychar10操作员jsrchar10经手人(14)Tab_thjz_xs(销售退货结账表)销售退货结账表用来存储销售退货结账信息。表 Tab_thjz_xs 的结构如表 6-15 所示。 表 6-15Tab_thjz_xs 的结构表字段名数据类型长度是否主键描述IDchar15结款票号thidchar15退货票号khnamechar100客户全称bcjkmoney8本次结款yemoney8余额jkdatedatetime8结款日期czychar10操作员jsrchar10经手人(15)Tab_thph_rk(入库退货票号表)入库退货票号表用来存储商品入库退货的单据信息。表 Tab_thph_rk 的结构如表 6-16 所示。 表 6-16 Tab_thph_rk 的结构表字段名数据类型长度是否主键描述安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 24 页装订线thphchar15退货票号slfloat8数量ysmoney8应收ssmoney8实收wsmoney8未收gysnamechar50供应商全称thdatedatetime8退货日期czychar10操作员Jsrchar10经手人Jsfschar30结算方式whetherchar2是否结清(16)Tab_thph_xs(销售退货票号表)销售退货票号表用来存储商品销售退货的单据信息。表 Tab_thph_xs 的结构如表 6-17 所示。表 6-17 Tab_thph_xs 的结构表字段名数据类型长度是否主键描述thphchar15退货票号slfloat8数量yfmoney8应付sfmoney8实付wfmoney8未付khnamechar100客户全称thdatedatetime8退货日期czychar10操作员jsrchar10经手人jsfschar30结算方式whetherchar2是否结清(17)tb_user(操作员信息表)操作员信息表用来存储操作员信息表。表 tb_user 的结构如表 6-18 所示。 表 6-18 tb_user 的结构表字段名数据类型长度是否主键描述IDint4操作员 IDUsernamevarchar40操作员名passwordvarchar40密码userLastLogTimevarchar40操作员上次登录时间安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 25 页装订线6.3 数据库的完整性和范式介绍数据库完整性是指数据库中数据的正确性和相容性。数据库完整性对于数据库应用系统非常关键,其作用主要体现在以下几个方面: (1)数据库完整性约束能够防止合法用户使用数据库时向数据库中添加不合语义的数据。 (2)利用基于 DBMS 的完整性控制机制来实现业务规则,易于定义,容易理解,而且可以降低应用程序的复杂性,提高应用程序的运行效率。同时,基于 DBMS 的完整性控制机制是集中管理的,因此比应用程序更容易实现数据库的完整性。(3)合理的数据库完整性设计,能够同时兼顾数据库的完整性和系统的效能。比如装载大量数据时,只要在装载之前临时使基于 DBMS 的数据库完整性约束失效,此后再使其生效,就能保证既不影响数据装载的效率又能保证数据库的完整性。(4)在应用软件的功能测试中,完善的数据库完整性有助于尽早发现应用软件的错误。本系统数据库设计定义了各个表的主外键以及约束,保证了数据的实体完整性和引用完整性。另外本系统数据库表非主属性之间不存在依赖关系,满足数据库设计的第三范式,较好的避免的数据冗余。安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 26 页装订线7 部分模块详细设计及部分代码7.1 数据库连接操作数据库连接的 JavaBean 的编写代码如下:package com.mingri.dbconn;import java.sql.*;import javax.naming.*;import javax.sql.DataSource;public class DBConn public static synchronized Connection getConnection() throws Exception try Context initCtx=new javax.naming.InitialContext(); /获得JNDI初始上下文对象/在JNDI命名空间java:comp/env段里获得上下文对象 Context envCtx=(Context)initCtx.lookup(java:comp/env); DataSource ds=(DataSource)envCtx.lookup(jdbc/mingri); /通过JNDI名获得数据源对象 return ds.getConnection(); catch(SQLException e) throw e; catch(NamingException e) throw e; 数据库操作的 JavaBean 的编写代码如下:package com.mingri.dbconn;import java.sql.*;import com.mingri.dbconn.DBConn;public class DBResult private Connection con; public DBResult() this.con=DBConn.getConnection();安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 27 页装订线 /* * 用于获得执行SQL语句的ResultSet对象 */ public ResultSet getResult(String sql) try Statement stmt=con.createStatement(); ResultSet rs=stmt.executeQuery(sql); return rs; catch(Exception e) return null; /* * 用于执行SQL语句没有返回值 */ public void doExecute(String sql) try Statement stmt=con.createStatement(); stmt.executeQuery(sql); catch(Exception e) /* * 用于获得执行SQL语句的PreparedStatement(预处理)对象 */ public PreparedStatement getPreparedStatement(String sql) try PreparedStatement pstmt=con.prepareStatement(sql); return pstmt; catch(Exception e) return null; /* * 关闭连接 */ public void closeCon() try安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 28 页装订线 this.con.close(); catch(Exception e) e.printStackTrace(); 7.2 用户登录设计在企业进销存管理系统的登录界面,输入用户名:admin 密码:admin 单击【登录】按钮,进入如图 7-2 所示的企业进销存管理系统的主界面。图 7-1 企业进销存管理系统图 7-2 企业进销存管理系统登录界面在登录页面中利用 JavaScript 脚本语言编写检测用户输入信息是否合法的函数,并通过单击【登录】按钮调用该函数,判断用户名或密码是否为空,如果为空,系统将给予提示。当用户输入合法信息后,提交该表单。用户登录页面中验证用户输入合法性的主要 JavaScript 代码如下:/省略部分代码安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 29 页装订线 function check() if(form1.username.value=0) alert(请输入用户名);form1.username.focus();return; if(form1.password.value=0) alert(请输入密码);form1.password.focus();return; form1.submit(); 当用户输入合法信息后,就由表单属性 action 所指定的 JSP 文件来对这些信息进行验证。当验证通过后,进入到系统的主页面进行操作;否则给予信息提示,并返回到登录页面重新登录。关键代码如下:% request.setCharacterEncoding(gb2312); /对请求进行统一编码,能正常接受到中文 String username=request.getParameter(username); /接收表单中的username 属性 String password=request.getParameter(password); /接收表单中的password 属性 String str=select * from tb_user where + username=+username+ and password=+password+; ResultSet rs=rst.getResult(str); /执行 SQL 语句获得结果集对象 /判断用户是否登录,当 isLog 的属性为 0 时,说明用户并没有登录 session.setAttribute(isLog,new String(0); if(!rs.next() /结果集没有找到所要查找的行 out.println(alert(用户名或密码错误);+ parent.location.href=login.html;); else session.setAttribute(username,rs.getString(username); /保存登录信息到 session 对象中 session.setAttribute(password,rs.getString(password); session.setAttribute(isLog,new String(1); /将 isLog 属性设置为 1安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 30 页装订线 rst.getResult(strUpdate); /执行 SQL 语句 response.sendRedirect(chat.jsp); /登录成功后转到系统主页面 %7.3 基础信息管理基础信息管理主要包括:客户信息管理、商品信息管理、供应商信息管理、商品信息查询、客户信息查询和供应商信息查询 6 个子模块。7.3.1 客户信息管理单击【客户信息管理】按钮,界面右侧弹出如图 7-3 所示的基础信息管理模块。图 7-3 客户信息管理单击“客户全称” 、 “客户简称” 、 “地址” 、 “邮政编码” 、 “电话” 、 “传真” 、 “联系人” 、 “联系人电话” 、 “Email” 、 “开户银行”和“银行账号”的文本框,输入相应的内容,最后单击【保存信息】按钮,系统弹出“登记成功”的提示信息即客户信息添加成功。利用 JavaScript 编写检测用户录入数据合法性的函数,并通过单击【保存信息】提交表单。客户信息添加时的数据处理页主要是将用户提交的表单保存到数据库中。由于已经将客户的基本信息封装在 JavaBean 中和定义了提交客户信息的 JavaBean,这样就可以通过和标签来实现将表单提交过来的数据对Bean 的中的各个属性赋值,并通过这两个 JavaBean 来完成从接收用户提交的信息到向数据库中插入客户基本信息的全部工作。具体代码如下:安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 31 页装订线% regist.setKhinfo(khinfo); regist.regist(); /调用 regist()方法来对数据库操作 out.println(alert(登记成功);+ window.location.href=khinfo.html;);%7.3.2 商品信息管理单击【商品信息管理】按钮,界面右侧弹出如图 7-4 所示的基础信息管理模块。图 7-4 商品信息管理单击“商品名称” 、 “简称” 、 “产地” 、 “批号” 、 “规格” 、 “包装” 、 “计量单位” 、“批准文号”和“备注”的文本框,输入相应的内容,单击“供应商全称”的下拉按钮,选择相应的选项,最后单击【保存信息】按钮,系统弹出的提示信息进行确认后即添加成功。7.3.3 供应商信息管理单击【供应商信息管理】按钮,界面右侧弹出如图 7-5 所示的基础信息管理模块。图 7-5 供应商信息管理安徽工业大学工商学院 毕业设计(论文)说明书共 45 页 第 32 页装订线单击“
展开阅读全文