APP下载

多功能进销存管理系统

2014-10-21查全有王鹏飞覃章健

电子世界 2014年23期
关键词:数据库

查全有 王鹏飞 覃章健

【摘要】结合进销存管理系统的实际需求,利用Java Swing技术和Microsoft SQL Server 2005数据库开发,实现了进货、销售、库存等各项业务的动态管理过程,功能上充分体现系统的完整性,极大地提高了管理水平和工作效率,本文主要介绍了多功能进销存管理系统的设计过程和实现方法。

【關键词】Java;进销存管理;数据库

Abstract:Combined with the actual demand of Invoicing management system,using Java Swing technology and the Microsoft SQL Server 2005 database development,achieved the dynamic management process of purchase,sales,inventory and other business,fully embodied the integrity of the system function,greatly improved the management level and work efficiency,this article mainly introduced the multi-functional Invoicing management system of the design process and implementation method.

Key words:Java;invoicing management;database

1.引言

随着社会经济和科技的不断发展,各种经营模式层出不穷,销售的渠道、方式也愈趋于多样化,企业之间的竞争激烈。为提高企业自身的竞争力,满足其对于商品管理上多样化的需求,多功能进销存管理系统正是在这样的背景下而开发的管理软件。本文针对于一个实体兼虚拟销售模式的商店的实际需求,实现了其进货管理、销售管理、库存管理、查询统计、系统管理等方面的功能。管理系统是一个信息化、智能化和先进管理理念的集合体,带来的经济效益是简捷的,其最主要的表现就是减少了管理费用和人力的开支,节省了大量的时间,为管理者的各项决策提供了宝贵的资料,带来巨大的经济效益。

2.系统设计

本系统对商品的采购、销售、库存等运作流程实现了动态的管理,使得管理员能够及时的掌握公司的时机运作状况、合理做出战略决策,提高了公司的工作效率。

系统要求实现:基本信息管理、进货管理、销售管理、库存管理、查询统计、系统管理、数据库管理、数据库备份、恢复等管理功能。支持如下要求:

进货管理:将到货商品录入到该模块,可根据商品资料中设置的最高库存、最低库存及当前库存情况和销售情况,制定进货计划,可以避免盲目进货造成的商品积压,按计划单有选择的进行入库登记。综合查询打印计划进货与入库记录及金额。

销售管理:将销售信息录入到该模块,实现商品出库。商品正常销售、促销与限量、限期及禁止销售控制。综合查询各种销售明细记录、交结账情况,按照多种方式统计生成销售排行榜。

库存管理:综合查询库存明细记录,库存情况汇总,库存状态自动告警提示。如库存过剩、少货、缺货等。系统为您预警,避免库存商品积压损失和缺货。库存自动盘点计算。

基本信息管理:是系统运行的基础,需要实现供销商、客户、商品的基本信息的动态管理,包括信息的添加、修改与删除等功能。这些信息要先于其他数据录入系统,系统才能正常的运行。

统计查询模块:需要实现客户查询、商品库存查询、供应商查询、销售情况查询、价格查询、退货查询等功能。

系统功能结构如图1所示。

图1 多功能进销存管理系统功能结构

3.数据库设计

进销存管理系统的开发需要考虑所需要的数据,以及如何对这些数据进行操作。这就是数据库的设计问题,是进销存管理系统设计的一个核心。设计数据库系统是应该首先充分了解用户各个方面的要求,包括现有的及将来可能增加的要求。对于一个确定的环境,进行符合应用语义的逻辑设计,以及提供一个确定的存贮结构和物理设计,建立实现系统目标,并能有效存取数据和数据模型。

我们根据系统功能结构分析构建系统的数据库,使用PowerDesigner建模,依次创建本系统中的数据表,并通过主外键引用工具建立各表间的依赖关系。创建完成的模型如图所示。再设置导出的脚本文件的名称及保存路径,在指定的路径中生成数据库脚本文件。在导出数据库脚本文件后,就可以在SQL server2005中执行该脚本来创建数据库及数据表。

数据库名称为db_JXC。包含表:tb_gysinfo、tb_khinfo、tb_kucun、tb_rkth_detail、tb_rkth_main、tb_ruku_detail、tb_ruku_main、tb_sell_detail、tb_sell_main、tb_spinfo、tb_userlist、tb_xsth_detail、tb_xsth_main。

4.系统实现

本系统是典型的数据库应用程序,由登录模块、主界面、基础信息管理、进货管理、销售管理、库存管理、查询统计、系统管理等部分组成。

4.1 系统登录功能实现

管理员用户与操作员用户通过相同的登录入口进入系统,系统对用户输入的用户名和密码进行验证,通过身份验证的用户将进入管理系统操作桌面,执行系统各项管理功能,而未通过身份验证的用户将无法使用该系统,登录流程如图2所示:

4.2 主窗体设计

主窗体界面是系统的欢迎界面,应用程序的主窗体要设计层次清晰的系统菜单和工具栏,其中系统菜单要包含系统中所有功能的菜单项,工具栏主要提供常用功能的快捷访问按钮。

创建Main类,编写initialize()方法,在该方法中创建窗体、桌面面板、背景标签、菜单栏、工具栏对象。在类中声明这些对象并调用initialize()方法初始化之。

编写主窗体的main()入口方法,在该方法中创建登录窗体对象,登录窗体会验证登录信息,并显示主窗体界面。

图2 用户登录流程图

编写getIFrame()方法,该方法负责创建指定名称的窗体对象,在方法中使用了Java的反射技术,调用Class.forName()方法根据制定的窗体类名称到internalFrame包路径中装载指定的窗体类,并反射该类的构造方法去创建新的窗体对象并添加到主界面中。

编写内部类openFrameAction,它必须继承AbstractAction类实现Action接口。该类用于创建按钮的Action对象,并为每个按钮定义创建并显示不同窗体对象的动作监听器,当这个监听器按钮被按下时,调用getIFrame()方法获取相应的窗体对象,并显示在主界面中。

编写addFrameAction()方法,该方法负责创建Action对象,该对象用于创建并显示窗体对象,将其添加到系统菜单栏或工具栏中,会直接创建相应的菜单栏和工具按钮,而且这些菜单项和工具按钮将显示Action对象中的文本和图标属性。

编写内部类ExitAction()同样继承自AbstractAction类实现Action接口,实现系统的退出动作。

在类的静态代码段中设置进销存管理系统的外观样式。Swing支持跨平台特性,可以在不同的操作系统中保持一致的风格,但是本系統UIManager类的setLookAndFeel()方法设置程序界面使用本地外观,这样可以使程序更像本地应用程序。

4.3 公共模块设计

系统的项目空间中,有部分模块是公用的,或者是多个模块甚至整个系统的配置信息,他们被多个模块重复调用完成指定的业务逻辑。

Dao类主要负责有关数据库的操作,该类在静态代码段中驱动并连接数据库,然后将所有的数据库访问方法定义为静态的编写Item类,这是系统的公共类之一,主要用于封装和传递参数信息,是典型命令模式的实现。在Dao类中经常使用该类作为方法参数;在各个窗体界面中也经常使用该类作组件数据,其toString()方法将返回name属性值,所以显示到各个组件上的内容就是Item类的对象所代表的商品、供应商或客户等信息的名称。

4.4 基础信息模块设计

基础信息模块用于管理进销存系统中的客户、商品和供应商信息,其功能主要是对这些基础信息进行添加、修改和删除。系统中使用了Java Swing的JPanel选项卡面板组件分别为客户信息管理、商品信息管理和供应商信息管理提供了多个操作界面,例如商品信息管理中分别存在商品信息添加和商品信息修改与删除界面,而这两个界面都存在于一个窗体中,可以通过选择顶部的两个选项卡,在不同的界面中来回切换。由于实现的方法基本类似,以商品信息管理部分为例介绍基础信息模块实现的业务逻辑。

创建ShangPinTianJiaPanel类,用于实现本系统的商品添加功能。该类将在界面中显示多个用于输入商品信息的文本框。创建tjButton按钮并设置该“添加”按钮的事件监听器,必须实现ActionListener接口,并在actionPerformed()方法中实现用户输入的验证和商品信息的保存。创建resetButton按钮并设置该“重置”按钮的事件监听器,同样要实现ActionListener接口,并在actionPerformed()方法中清除界面中的所有文本框内容。

4.5 查询统计模块设计

查询统计模块主要包括客户查询、商品查询、供应商查询、销售查询、入库查询等功能。查询统计模块主要以丰富的查询条件为主要技术,当查询某个商品的信息时需要提供按商品名称、指定日期等多种查询条件和查询对象,进行普通查询或者模糊查询。对于普通查询条件可以简单地使用SQL语句的“=”进行判断,模糊查询需要使用SQL语句中的LIKE关键字。LIKE关键字需要使用通配符在字符串内查找指定的模式。

4.6 进货管理模块设计

进货管理模块主要包括进货单和进货退货两个部分,进货单功能主要负责记录商品的进货信息,单击“添加”按钮,在商品表中添加进货的商品信息,相应的进货商品会添加到库存管理中。进货退货功能主要负责记录进货管理中的退货信息,在选择了退货的商品之后,点击“退货”按钮,将把表格中的商品退货信息更新到数据库中。进货管理模块使用JDBC实现事务操作,因为进货和退货的业务逻辑涉及到3个数据表,为保证数据的完整性,将3个数据表的操作放在事务中实现,如果对任何一个数据表的操作出现错误或是不可执行的操作,那么整个事务中的所有操作都将取消,并恢复到事务执行之前的数据状态;否则3个数据表的操作全部执行。

4.7 库存管理模块设计

库存管理模块包括库存盘点和价格调整两个功能,其中库存盘点主要是将库存信息显示在表格中,有操作员输入盘点的商品数量,然后程序自动计算损益值。价格调整功能主要用于调整库存中指定商品的单价,当用户选择了指定的商品,价格调整功能的界面会显示该商品在库存只能怪的单价、库存数量等信息。用户可以通过单击“确定”按钮调整该商品在库存中的单价。价格调整功能涉及下拉列表框的选择事件监听和事件处理技术,为防止用户的错误输入,程序界面经常需要将可枚举的输入内容封装在下拉列表框中,限制用户输入。但是,要知道下拉列表框的改变,还需要为下拉列表框添加相应的时间监听器。

addItemListener()方法可以为下拉列表框添加ItemListener监听器。当更改下拉列表框中的选项时将产生相应的事件,这个事件会被添加的ItemListener监听器捕获,并处理相应的业务逻辑。

5.总结

该系统使用的是MDI窗体模式开发的界面程序,一个主窗体包含多个子窗体,由主窗体上的按钮调用,给按钮添加事件监听器,在单击该按钮时,由事件监听器创建并初始化相应的子窗体,然后显示该子窗体。利用Java的反射功能使用同一个时间监听器类,完成所有子窗体的初始化工作,实现代码重用,提高程序的开发速度。

本系统的实现完成了系统开发前提出的要求,实现了进货管理、销售管理、库存管理、查询统计、系统管理等方面的功能,能够满足对于进销存管理方面的需求,提高企业自身的竞争力,提升管理水平,从而提高其经济效益和社会效益,具有广阔的市场效益,但是此系统依然存在这样或那样的问题,展望在以后的开发中能够使系统中的功能更人性化,更符合要求。

参考文献

[1]吕静骅,史进.SQL Server 2000基础教程[M].北京:清华大学出版社,2004.

[2]李路路,刘一松,蒋丽.基于Ajax与J2 EE的进销存管理系统的设计与实现[J].计算机与现代化,2013(4):134-137.

[3]李奎成.企业进销存管理系统的设计与实现[D].大连理工大学,2005.

[4]邢俊凤,唐思源,苗玥.进销存管理系统的设计与实现[J].科技创业家,2014(3):182.

基金项目:四川省大学生创新创业训练计划项目(编号:201310616043)“多功能进销存管理系统”。

猜你喜欢

数据库
数据库
数据库
数据库
数据库
数据库
数据库