时间:2022-11-23 19:46:00
引言:寻求写作上的突破?我们特意为您精选了4篇库存管理系统范文,希望这些范文能够成为您写作时的参考,帮助您的文章更加丰富和深入。
同时,用户还可以方便地得到整理后的各种报表,包括仓库信息的报表、入库清单、出库清单和库存信息报表。通过这4个报表的自动生成和格式化,用户可以更为直观地得到库存部门日常所需的各种信息,做好整个企业的销售工作。
关键词:仓库管理 查询 VB SQLSERVER
绪论
1. 概述
库存管理系统是典型的信息管理系统(MIS),管理信息系统是在管理科学、系统科学、计算机科学等基础上发展起来的综合性边缘科学。在21世纪信息高速发展的时代中,管理信息系统具有很重要的作用,它的预测和辅助决策的功能,即利用现代管理的决策和支持。
2. 数据库应用系统开发简介
在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。
数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,然后把它们转变为有效的数据库设计,把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。
3. 库存管理系统
库存管理系统是一个企事业单位不可缺少的一部分,它的内容对于企业的决策者和管理者来说都是至关重要的,因此,库存管理系统应该能够为用户提供充足的信息和快捷的查询手段,但一直以来人们使用传统的人工方式管理库存,这种管理方式存在着许多缺点,诸如效率低、保密性差等,而且时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学不断发展,其强大的功能已经被人们深刻认识,它已经进入了人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对产品库存信息进行管理,具有人工管理无法比拟的优点;检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,可减少更多的人力物力,极大地提高货品库存的管理效率,也是企业库存管理科学化、正规化,与世界接轨的重要条件。因此,开发一个库存管理系统是很有必要的,具有其特有的技术意义和管理意义。
一、系统开发理论基础
1. 数据库系统设计
一个成功的信息管理系统,是建立在许多条件之上的,而数据库是其中一个非常重要的条件和关键技术。本管理系统所涉及的数据库设计了以下几个步骤:数据库需求分析、逻辑设计、物理设计与加载测试。
数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。
数据库设计的步骤主要是:
(1)数据库结构定义:目前的数据库管理系统(DBMS)有的是支持联机事务处理CLTP(负责对事务数据进行采集、处理、存储)的操作型DBMS,有的是可支持数据仓库、有联机分析处理CLAP(指为支持决策的制定对数据的一种加工操作)功能的大型DBMS,有的数据库是关系型的、有的可支持面向对象数据库。应针对选择的DBMS,进行数据库结构定义。
(2)数据表定义:数据表定义指定义数据库中数据表的结构,数据表的逻辑结构包括属性名称、类型、表示形式、缺省值、校验规则、是否关键字、可否为空等。关系型数据库要尽量按关系规范化要求进行数据库设计,但为使效率高,规范化程度应根据应用环境和条件来决定。数据表设计不仅要满足数据存储的要求,还要增加一些如反映有关信息、操作责任、中间数据的字段或临时数据表。
(3)存储设备和存储空间组织:确定数据的存放地点、存储路径、存储设备等,并保证数据的完整性。
二、库存管理系统分析
1. 需求分析
本套应用程序名称为“库存管理系统”,主要用于仓库货品信息的管理,系统由仓库管理、入库管理、出库管理、货号清单管理以及一些统计查询和报表等几部分组成。
库存管理系统需满足仓库管理员及工作人员的需求,他们具有登陆应用系统的权限,所以需要对工作人员的登陆模块进行更多的考虑,设计不同用户的操作权限和登陆方法。
对于一个仓库来说,最大的功能就是存储货品,所以仓库管理就是对货品信息、仓库信息的管理,用户可以根据实际情况对各种货品信息进行分类管理,包括添加、修改、删除更新数据库等。
当然,仓库中货品入库也是常有的事,入库管理操作就是对于货品入库情况的管理,用户可以方便地输入一些货品的信息。
有了货品的入库,自然也就有货品的出库,这部分提供的功能与入库操作流程差不多,有所区别的只是对一些出库货品的管理,也很方便数据的输入。
仓库货品的信息量大,数据安全性和保密性要求高。本系统实现了对货品信息的管理和总体的统计等。仓库管理人员可以通过浏览、查询、添加、修改、删除等功能来实现对货品的基本信息的管理以及统计,并可以对一些基本的信息生成报表形式,打印输出的。
报表是一个数据库中最重要的功能之一,有了报表才能清楚地知道货品的出入库情况,在数据报表功能中包括出库报表、库存报表等,以此来完成一些基本信息的打印,方便简洁。
本系统基本涵盖了库存管理的主要需求,具有完善细致的功能、友好的用户界面、强大的数据处理功能和完备的安全机制;随心所欲的查询和所见即所得的打印功能,并全面支持分析和决策的功能。
2. 模块划分
(1)用户管理
用户管理中包括添加用户、修改用户、删除用户。
(2)仓库管理
仓库信息的查询、仓库信息的录入、仓库信息的修改、仓库信息的删除。
(3)入库管理
添加入库信息。
(4)出库管理
对货品出库日期、出库类型以及对出库货物的数量、单价进行管理。
(5)库存管理
货物查询、库存转移。
(6)货号清单管理
通过货号清单信息的查询、添加、修改、删除等功能键实现对货号清单信息的管理工作。
(7)仓库信息查询
将根据仓库信息对仓库里的库位进行汇总。
(8)入库清单查询
通过入库日期和入库类型对所有入库的货物进行汇总。
(9)出库清单查询
通过出库日期和出库类型,对历史出库、历史出库情况进行管理。
(10)库存信息查询
管理库存的所有货物的数量、位置等。
3. 数据库设计
本库存管理系统是应用在单机系统上的,所以只需建立起一个数据库,在此数据库基础上建立起表格,现将部分数据结构表描述如下:
(1)货号清单信息表Item用来保存货号清单中的基本信息
Item表中包含的基本信息有:机型、货号、图号、名称、规格、颜色、单位、制购、说明、类型、状态、检验、能力、净重、毛重、包装单重、包装体积、包装类型、包装数量、数量下限、数量上限、有效期、警告期、备注。
(2)库位信息表StoreRoom用来保存库位信息
StoreRoom表中所包含的基本信息有:库位代号、仓库、位、库位描述。
(3)库存信息表Store用来保存成为库存信息表
Store表中所包含的基本信息有:存货货号、存货数量、仓库号、位置号。
(4)入库信息表StoreIn用来存储产品入库信息
StoreIn表中所包含的信息有:产品入库编号、入库类型、货号、单价、货币、入库数量、仓库、位置、经办人、入库时间。
(5)出库信息表Takeout用来保存产品出库信息
Takeout表中所包含的信息有:产品出库编号、出库类型、货号、单价、货币、出库数量、仓库、位置、经办人、出库时间。
(6)系统用户表Users用来保存用户登陆的基本信息
Users表中所包含的基本信息有:用户名和密码。
三、 应用程序设计
1. 模块的创建
模块是存放全局变量公共函数的申明、函数、自定义函数等,用户可以在模块所在的工程中调用该模块的全局变量、函数等,但是只能在同一个工程中调用它们。而类模块则可以跨工程调用,在实际应用的时候你可以将比如数据库连接的函数包括查询、更新、删除放到一个工程中编译完成生成一个dll文件,然后在另外一个工程中引用该dll文件,在使用之前先声明,这样在整个工程中就可以引用这个dll文件中的公共属性、函数、过程了。
(1)添加模块
Ⅰ.Const模块
该模块用来管理工程中的常量、变量和工程中调用的API函数,如SQL字符串常量、写入初始化ini文件的API函数、服务器参数变量、类模块变量。
Ⅱ.Ini模块
该模块用来设置应用程序的.ini文件。INI文件保存软件的各种初始化信息。
(2)添加类模块
Ⅰ.ClsDB类
用于封装涉及数据库操作的各种操作。
Ⅱ.ClsStoreRoom类
对应于StoreRoom表,主要是封装对StoreRoom表的各种操作。
Ⅲ.ClsStoreIn类
对应于StoreIn表和Store表,主要是封装对StoreIn表Store表的各种操作。
Ⅳ.ClsTakeOut类
对应于TakeOut表和Store表,主要是封装对TakeOut表和Store表的各种操作。
2. 程序结构
本应用程序由17个窗体组成,主要的分别是登陆窗体、主窗体、货号清单管理窗体、入库窗体、出库窗体、库存窗体等。
(1)登录模块的实现
运行程序,将显示登陆界面,只要输入正确的用户名和密码就可以进入系统,系统就将当前用户的信息保存在CurUser中,但是用户在登陆时只要用户名或者密码任何一个输入三次都错误的话,系统就会被关闭。
(2)系统主界面
运行本系统,将显示库存管理子系统的主界面,各个功能模块全部以按钮形式显示,用户直接单击即可进入相应的界面。
(3)用户管理相关界面
通过用户界面上的按钮功能,管理员可以添加、修改和删除用户,并在执行这些操作时,系统会给出相应的提示,这样就为系统的安全提供了一定的保证。
(4)货号清单管理相关界面
货号清单管理窗体可完成对货号清单信息的管理工作,包括浏览所有的货号清单信息。通过添加、修改、删除等功能键实现对货号清单信息的管理工作,以便管理部门的管理员能够具有一个管理货号清单信息的平台。
(5)仓库管理相关界面
在主界面上单击[仓库管理]按钮进入仓库管理界面。
(6)入库管理相关界面
入库管理可完成对入库信息的管理工作,包括浏览所有的入库信息。通过添加功能键实现对入库信息的管理工作,以便仓库管理部门的管理员能够具有一个管理入库信息的平台。
(7)出库管理相关界面
出库管理可进行对出库信息的管理工作,包括浏览所有的出库信息。通过添加功能键实现对出库信息的管理工作,以便仓库管理部门的管理员能够具有一个管理出库信息的平台。
(8)库存管理相关界面
库存管理可完成对库存信息的管理工作,包括浏览所有的库存信息。通过查找等功能实现对库存信息的管理工作,以便仓库管理部门的管理员能够具有一个管理库存信息的平台。
参考文献:
[1]林陈雪.Visual Basic 系统开发实例导航.北京:人民邮电出版社,2002:302-356.
[2]孙健鹏.VB数据库开发实例解析.南京:机械工业出版社,2004:102-188.
[3]王汉新.Visual Basic程序设计.江苏:科学出版社,2002:158-192.
[4]冯关源.数据库应用与开发.上海:上海财经大学出版社,2003:14-25.
本系统的前端开发工具,我选择了Visual Basic6.0,后台数据库采用Access2000。
5.1.1 VB简介
Visual意为“可视化的”,指的是一种开发图形用户界面的方法,所以Visual Basic是基于Basic的可视化的程序设计语言。在Visual Basic中,一方面继承了Basic所具有的程序设计语言简单易用的特点,另一方面在其编程系统中采用了面向对象、事件驱动的编程机制,用一种巧妙的方法把Windows的编程复杂性封装起来,提供了一种所见即所得的可视化程序设计方法。
5.1.2 VB功能特点
具有面向对象的可视化设计工具
在VB中,应用面向对象的程序设计方法(OOP),把程序和数据封装起来视为一 个对象,每个对象都是可视的。程序员在设计时只需用现有工具根据界面设计要求,直接在屏幕上“画”出窗口、菜单、按钮、滚动条等不同类型的对象,并为每个对象设置属性。程序员的编程工作仅限于编写相关对象要完成的功能程序,因而程序设计的效率可大大提高。
事件驱动的编程机制
事件驱动是非常适合图形用户界面的编程方式。在图形用户界面的应用程序中,是由用户的动作即事件掌握着程序运行的流向,每个事件都能驱动一段程序的运行。程序员只要编写响应用户动作的代码,而各个动作之间不一定有联系。
提供了易学易用的应用程序集成开发环境
在VB集成开发环境中,用户可设计界面、编写代码、调试程序,直至把应用程序编译成可执行文件在Windows中运行,使用户在友好的开发环境中工作。
结构化的程序设计语言
VB具有丰富的数据类型和结构化程序结构,作为一种程序设计语言,它还有如下一些特点:
强大的数值和字符串处理功能
丰富的图形指令,可方便地绘制各种图形
提供静态和动态数组,有利于简化内存的管理
过程可递归调用,使程序更为简练
支持随机文件和顺序文件的访问
提供了一个可供应用程序调用的包含多种类型的图标库
具有完善的运行出错处理
支持多种数据库系统的访问
利用数据控件可访问的数据库系统有:Microsoft Access、Btrieve、DBASE、Microsfot FoxPro和Paradox等,也可以访问Microsoft Excel、Lotus1-2-3等多种电子表格。
支持动态数据交换(DDE)、动态链接库(DLL)和对象的链接与嵌入(OLE)技术
完备的HELP联机帮助功能
与Windows环境下的软件一样,在VB中,利用帮助菜单和F1功能键,用户可以随时方便地得到所需要的帮助信息。VB帮助窗口中显示了有关的示例代码,通过复制、粘贴操作可获取大量的示例代码,为用户的学习和使用提供了极大的方便。
VB程序设计的概念就是面向对象的概念,对象就是数据(DATA)和代码(CODE)互相结合的综合体。Windows上面的每一个图标,包括窗口本身都是对象,如果没有任何事情发生,对象处于停顿状态。当存在外来事件时,程序段执行,它的执 行是由外来事件决定的。因此是“事件”驱动的。
编写VB程序较为简单,首先将各个对象放在空白窗体上,然后将程序代码分别添加给对象或图标,将它们组合起来就可以随意运行了。
在VB中,窗体实际上是一个对象,VB的窗体含有许多内嵌特性,这使得用户界面部分的建立像是从一个目录中挑选一个个合适的控件,而不是从零开始一步一步地建立控件。这种开发者能亲眼看到的程序设计过程就是“可视化程序设计”(Visual Programming)
5.1.3 VB中的基本概念
对象:面向对象编程(OOP)的提法大家一定也很耳熟,虽然Visual Basic并不是完全的面向对象编程,但也利用了对象编程技术。对象简单地说就是大家经常看到的各种窗口、按钮、文本框甚至打印机等。
属性:如同电视有黑白、彩色之分一样,作为对象的Windows中的窗口也是有大有小,文本框的位置不可能完全一样,菜单要显示出不同的功能,这些都是由对象的属性决定的。不同对象的属性可能不同。属性一般决定了对象的位置、大小、显示等情况。
方法:就是对象能够做的事,如打印机对象就有打印(Print)方法、窗口对象支持隐藏(Hide)方法、很多对象支持移动(Move)方法等。
事件:就是对象对用户各种操作的反映情况。如用户用鼠标按一下按钮,就会触发按钮的“按”(Click)事件。
控件:控件就是Visual Basic提供的编程用的模块,与对象有直接的联系,如同积木的木块,使用这样的控件,就可以像拼图或堆积木一样“搭”、“拼”你的程序界面。Visual Basic中使用控件,简化了Windows中的窗口、按钮等对象的编程设计。每个控件都有各自的属性、事件及方法。只需修改这些特征你就可以随心所欲地编程了。最重要的是,你可以利用成千上万的各种扩充的控件来快速构造几乎能满足你任何要求的程序。例如,如果你不满意Windows简陋的媒体播放器,你就可以使用VB的多媒体控件在1小时以内设计一个完全自己风格的能够播放CD、VCD的多媒体播放器,而功能完全与之相当。
5.1.4 Access2000数据库简介
作为Microsoft的office套件产品之一,access已经成为世界上最流行的桌面数据库系统。Access与许多优秀的关系数据库一样,可以让你很容易地连接相关的信息而且还对其他的数据库系统有所补充。它能操作其它来源的资料,包括许多流行的PC数据库程序(如dBASE,Paradox,Microsoft FoxPro)和服务器、小型机及大型机上的许多SQL数据库。Access还完全支持Microsoft的OLE技术。
Access还提供windows操作系统的高级应用程序开发系统。Access与其它数据库开发系统之间相当显著的区别就是:您不用写一行代码,就可以在很短的时间里开发出一个功能强大而且相当专业的数据库应用程序,并且这一愉快的过程是完全可视的!如果您能给它加上简短的VBA代码,那么您的程序决不比专业程序员潜心开发的程序差。
Access的总体结构
Access将所有有名字的东西都成为对象(object),在Access 2000中,最重要的对象有表,查询,窗体,报表,宏和模块。
表 用户定义的存储资料的对象。每一个表都包含有关某个主体的信息。表包括存储不同种类资料的字段(列),而记录(行)则收集特定主体实例的所有信息。
查询 为来自一个或多个表的资料提供定制视图的对象。在Access中,可以利用图形化的实例查询机制(QBE)或通过SQL语句来建立查询。你可以在查询中选择、更新、插入或删除资料,也可以用查询来建立新表。
窗体 窗体是主要的人机接口。大量的操作(几乎所有)都要通过窗体完成。窗体通过运行宏(macro)或Visual Basic for Applicatinns(VBA)过程,来响应大量的事件。Access 2000为我们提供了强大的(同时也是相当方便的向导)来建立标准的Windows窗体。
报表 为格式化、计算、打印选定资料而设计的对象。它是衡量一个优秀的数据库的重要标准(有时甚至是唯一的标准)。
宏 为了响应已定义的事件,需要让Access去执行一个或多个操作,而宏就是对这些操作的结构化的定义对象。它可以让你像堆积木一样建立一个功能强大的程序,而无须写大量的代码。
模块 包括用VBA编码的定制过程的一个对象。模块提供了独立的动作流以捕获错误,而宏做不到。模块能直接响应窗体或报表事件,也可以从应用程序的任何地方被调用。
Adodc1.RecordSource = frmLogin.Adodc1.RecordSource
Adodc1.Refresh
Set Text4.DataSource = Adodc1
Text4.DataField = "密码"
If Text1 = "" Then
MsgBox "请输入原密码!", , "修改密码"
Exit Sub
ElseIf Text1.Text Adodc1.Recordset.Fields("密码") Then
MsgBox "原密码错误!", , "修改密码"
Exit Sub
ElseIf Text2 = "" Or Text3 = "" Then
MsgBox "请输入新密码!!", , "修改密码"
Exit Sub
ElseIf Text2 Text3 Then
MsgBox "密码不一致!!", , "修改密码"
Exit Sub
Else
Text4.Text = Text2.Text
Adodc1.Recordset.MoveFirst
MsgBox "密码修改成功!!", , "修改密码"
Unload Me
End If
Dim I, J As Integer
Dim STR As String
If Text1.Text = "" Or Text2 = "" Or Combo1.Text = "" Or Text4 = "" Or Text5 = "" Or Text6 = "" Or Text7 = "" Then
MsgBox "请输入完整信息!"
Exit Sub
Else 将记录存入入库记录表
设备入库表.datPrimaryRS.Recordset.Fields("设备号") = Text1.Text
设备入库表.datPrimaryRS.Recordset.Fields("入库数量") = Text2.Text
设备入库表.datPrimaryRS.Recordset.Fields("入库时间") = Combo1.Text
设备入库表.datPrimaryRS.Recordset.Fields("供应商") = Text4.Text
设备入库表.datPrimaryRS.Recordset.Fields("供应商电话") = Text5.Text
设备入库表.datPrimaryRS.Recordset.Fields("价格") = Text6.Text
设备入库表.datPrimaryRS.Recordset.Fields("采购员") = Text7.Text
MsgBox "已经成功入库!"
End If
设备入库表.Adodc1.RecordSource = "select * from 现有库存表 where 设备号='" & Text1.Text & "'"
设备入库表.Adodc1.Refresh
设备入库表.DataGrid1.Refresh
If 设备入库表.Adodc1.Recordset.RecordCount > 0 Then
将记录加入现有库存表中
设备入库表.Text9.Text = CInt(设备入库表.Text9.Text) + CInt(Text2.Text)
设备入库表.Text9.Refresh
J = 设备入库表.Text9
设备入库表.Adodc1.Recordset.MoveFirst
设备入库表.Adodc1.Recordset.Fields.Refresh
设备入库表.DataGrid1.Refresh
MsgBox "现有库存量为:" & J
Else
STR = "现有库存表中无此设备!" & vbCrLf & "请在设备代码表和现有库存表中手动添加记录!!"
MsgBox STR
Load frm现有库存表
frm现有库存表.Show
Call frm现有库存表.Command1_Click
FrmAddNewEqu.Text1.Text = frmInput.Text1.Text
FrmAddNewEqu.Text2.Text = frmInput.Text2.Text
Load frm设备代码表
frm设备代码表.Show
End If
End Sub
Private Sub cmdDelete_Click( ) 删除入库表中记录
On Error GoTo DeleteErr
Dim YesNo As String
YesNo = MsgBox("删除", vbYesNo, "删除记录")
If YesNo = vbYes Then
With datPrimaryRS.Recordset
.Delete
.MoveNext
If .EOF Then .MoveLast
End With
Else
Exit Sub
End If
DeleteErr:
MsgBox Err.Description
End Sub
Private Sub cmdUpdate_Click( ) 更新纪录程序
On Error GoTo UpdateErr
datPrimaryRS.Recordset.UpdateBatch adAffectAll
Exit Sub
UpdateErr:
MsgBox Err.Description
Private Sub Command1_Click( )设备出库程序
Dim i, J, k As Integer
Dim STR As String
frm设备出库表.Adodc1.RecordSource = "select * from 现有库存表 where 设备号='" & Text1.Text & "'"
frm设备出库表.Adodc1.Refresh
frm设备出库表.DataGrid1.Refresh
If IsNumeric(Text2) = False Then
MsgBox "数量必须是数字!"
Exit Sub
End If
If Text1.Text = "" Or Text2 = "" Or Combo1.Text = "" Or Text4 = "" Or Text5 = "" Or Text6 = "" Or Text7 = "" Then
MsgBox "请输入完整信息!"
Exit Sub
ElseIf frm设备出库表.Adodc1.Recordset.RecordCount
STR = "现有库存表中无此设备!请检查输入是否正确!!"
MsgBox STR
Exit Sub
Else
frm设备出库表.datPrimaryRS.Recordset.Fields("设备号") = Text1.Text
frm设备出库表.datPrimaryRS.Recordset.Fields("出库数量") = Text2.Text
frm设备出库表.datPrimaryRS.Recordset.Fields("出库时间") = Combo1.Text
frm设备出库表.datPrimaryRS.Recordset.Fields("经手人") = Text4.Text
frm设备出库表.datPrimaryRS.Recordset.Fields("领取人") = Text5.Text
frm设备出库表.datPrimaryRS.Recordset.Fields("使用部门") = Text6.Text
frm设备出库表.datPrimaryRS.Recordset.Fields("用途") = Text7.Text
MsgBox "已经成功存入设备出库表库!"
End If
If frm设备出库表.Adodc1.Recordset.RecordCount > 0 Then
k = CInt(frm设备出库表.Text9.Text) - CInt(Text2.Text)
If k >= 0 Then
frm设备出库表.Text9.Text = CInt(frm设备出库表.Text9.Text) - CInt(Text2.Text)
frm设备出库表.Text9.Refresh
J = frm设备出库表.Text9
frm设备出库表.Adodc1.Recordset.MoveFirst
frm设备出库表.Adodc1.Recordset.Fields.Refresh
frm设备出库表.DataGrid1.Refresh
MsgBox "现有库存量为:" & J
Else
MsgBox "现有库存量不足!请输入合适数量!!"
Exit Sub
End If
Else
STR = "现有库存表中无此设备!请检查输入是否正确!!"
MsgBox STR
End If
End Sub
Private Sub cmdDelete_Click( )删除出库记录
On Error GoTo DeleteErr
Dim YesNo As String
YesNo = MsgBox("删除", vbYesNo, "删除记录")
If YesNo = vbYes Then
With datPrimaryRS.Recordset
.Delete
.MoveNext
If .EOF Then .MoveLast
End With
Else
Exit Sub
End If
DeleteErr:
MsgBox Err.Description
End Sub
更新记录程序同入库的更新程序相同,在此略
5.2.5设备采购模块实现,程序略
主要程序
Private Sub cmdAdd_Click( ) 添加设备
On Error GoTo AddErr
datPrimaryRS.Recordset.AddNew
Exit Sub
AddErr:
MsgBox Err.Description
End Sub
5.2.8 库存报警模块实现
主要程序
Private Sub Command1_Click() 显示高于最大警戒库存的设备
datPrimaryRS.RecordSource = "select * from 现有库存表 where 现有库存>最大库存"
datPrimaryRS.Refresh
grdDataGrid.Refresh
If datPrimaryRS.Recordset.RecordCount > 0 Then
Beep
MsgBox "表中设备已过量!"
Else
MsgBox "没有设备库存过量!"
End If
End Sub
Private Sub Command2_Click()显示低于于最小警戒库存的设备
datPrimaryRS.RecordSource = "select * from 现有库存表 where 现有库存
datPrimaryRS.Refresh
grdDataGrid.Refresh
If datPrimaryRS.Recordset.RecordCount > 0 Then
Beep
MsgBox "表中设备库存量已过警戒线!请采购!!"
Else
MsgBox "没有设备库存量过少!"
End If
End sub
Private Sub Timer1_Timer() 自动报警程序
frmAlarm.datPrimaryRS.RecordSource = "select * from 现有库存表 where 现有库存>最大库存"
frmAlarm.datPrimaryRS.Refresh
If frmAlarm.datPrimaryRS.Recordset.RecordCount > 0 Then
Beep
MsgBox "有设备库存超过警戒库存!" & vbCrLf & "请查看库存报警记录"
Timer1.Enabled = False
frmAlarm.Show
Exit Sub
End If
End Sub
Private Sub Timer2_Timer()
frmAlarm.datPrimaryRS.RecordSource = "select * from 现有库存表 where 现有库存
frmAlarm.datPrimaryRS.Refresh
If frmAlarm.datPrimaryRS.Recordset.RecordCount > 0 Then
Beep
MsgBox "有设备库存低于警戒库存!" & vbCrLf & "请查看库存报警记录"
Timer2.Enabled = False
frmAlarm.Show
Exit Sub
End If
主要程序
Private Sub Command2_Click( ) 填写日志记录
If Text1.Text = "" Or Combo1.Text = "" Or Combo2.Text = "" Then
MsgBox "请输入完整信息!"
Exit Sub
Else
frmLog.Adodc1.Recordset.Fields("操作员") = Text1.Text
frmLog.Adodc1.Recordset.Fields("操作内容") = Combo1.Text
frmLog.Adodc1.Recordset.Fields("操作时间") = Combo2.Text
frmLog.Adodc1.Recordset.MoveLast
End If
End Sub
Private Sub Form_Load() 设置填写时间
Dim STRtime As String
STRtime = Now()
Combo2.Text = STRtime
Combo2.AddItem (STRtime)
End Sub
5.2.10还库操模块实现
具体程序同其他查询相似,在此略
第六章 系统使用说明
本系统使用简单方便,各操作界面如第五章所示,在此不再累述。
系统经调试,可以安装使用。
主界面如下:
参考文献
1. 数据库系统原理教程 王珊 陈红 清华大学出版社
2. 管理信息系统 王虎 张俊 武汉理工大学出版社
3. Visual Basic 数据库开发 E.Winemiller,J.Roff B.Heyman,R.Groom 著 清华大学出版社
4. PowerBuilder 8.0数据库系统开发实例导航 何旭洪 余建英 人民邮电出版社
2库存管理系统设计与实现
2.1系统业务流程
在对制造企业、数字化生产车间等生产企业的仓库管理业务进行了详细地调研,确定了整个仓库管理业务过程,分过分析,企业库存管理的基本业务流程。为了提高系统的使用效率,系统能够根据出库情况和数据分析自动预警,提出计划需求,能够实现系统的报表生成,库存的盘点等基本库存业务管理。
2.2库存管理系统的设计
根据库存管理的基本业务流程,设计出该系统需要完成的功能主要包括:基本信息管理、基本业务管理,库存信息管理、统计分析和系统管理等基本模块,每个模块由具有相应的功能。
2.3库存管理系统的实现
为了充分发挥开发人员各自的特长,实现系统开发过程的分工协作有条不紊地进行,提高软件复用率与软件开发的灵活性,本系统采用MVC的分层开发框架结构对本系统进行开发,模型层、实现视图层和控制层的分离,而且在模型层中又将业务逻辑与数据访问分离为两层,经过分析,该存储管理系统的MVC框架结构。在库存管理系统中,model用来管理系统的业务管理及同数据访问业务,因此分为两部分,一部分是业务逻辑层,一部分是数据访问层,其中业务逻辑层又包括业务实体和业务处理风别是描述外界实体信息和对信息进行加工处理。一般情况下View是用HTML页面,但是本系统中使用VS2010开发工具中的MVC3.0中的razor视图引擎完成视图的显示。用户通过浏览器向Controller提出请求,Controller接收请求并根据要求获取浏览器中获取所需数据。最后Controller根据处理结果,选择相应的View对浏览器的请求进行相应。
中图分类号:F423 文献标识码:A 文章编号:1009-914X(2015)05-0228-01
1.引言
设计和实现商品库存管理系统,使库存管理的工作系统化、规范化和自动化,从而达到提高管理效率的目的。
1.研究意义
(1) 利用计算机系统实现商品库存管理;
(2) 流程符合商品库存要求;
(3) 查询方便,无论是按商品编号、名称、类别其中任一项都可以进行有效查询;
2.系统功能模块的分析
2.1 系统需求分析
该图反映了系统执行阶段的参与者与其所进行的活动。用户可以通过对此图的了解更加对使用本系统的流程和所需进行的目的操作有了系统的、全面的、直观的了解。
通过功能模块分析,对商品库存系统的实现进行有效的管理,使之形成完善的应用系统。数据库设计中要合理设置商品信息和库存信息等,用来实现商品信息的新增,修改、删除等功能,使得用户有较详细的数据统计与分析。
下面就介绍一些该商品库存管理系统的基本功能,该款管理软件的功能模块分为四个大的部分:
商品信息管理;(其中包括:①商品属性管理,②分类信息添加)
该功能模块主要是对仓库管理人员、用户日常使用信息比如商品名称、编号、类型等内容的添加、插入、删除、查询等操作。
商品库存管理(其中包括:①商品库存信息,②进货与销售详单)
该功能模块主要是实现管理员、用户通常管理仓库时所需要进行的各种操作功能,可以在库存单的列表中查看库存商品,可在进货销售详单的列表当中查看进货价格和销售的价格、入库单操作人员,销售支出和所得利润等基本功能。
三.日志(其中包括:①员工登录情况)
此模块是针对使用该款软件的用户或管理员登录情况的记录包括登录时间、登录的用户名或管理员名等,方便校对各种出错信息落实到人。
四.数据备份还原以及用户管理(其中包括:①用户密码修改,②备份数据库,③还原数据库,④退出系统)
用户密码修改是对用户密码修改功能的实现,备份数据库是可以将当前的数据库信息整体导出到储存器中,还原数据库是可以将以往保存的数据库的整体备份导入到库存管理系统中,由此可以方便在用户不小心对库存数据操作丢失时可以找回元数据,退出系统点击时即会弹出询问对话框询问是否要退出系统,若是则退出系统。
五.管理员权限(其中包括:①用户管理,②添加管理员,③管理员注销)
此模块只有在管理员登录时才会拥有权限操作,用户登录则不显示此功能模块,其中用户管理是管理员可以对已经注册的用户进行删除,添加管理员是指已有的管理员可以添加新的管理员,管理员注销是指当前管理员自己注销自己的信息,注销以后就不可以再用此管理员名来登录系统。
3 系统体系结构
下图清楚的对系统各部分功能模块的从属关系划分树状图进行展示,以使用户更加明了的了解系统软件各部分的主要功能和所属模块。其中管理员权限功能模块只有管理员登陆才会有此操作权限,普通用户登录不会显示此功能模块。
功能描述:
商品信息管理:登陆后可对商品信息包括分类,类别,插入删除修改等信息进行操作,也可以添加新的商品及分类和类别信息。
信息添加:可以添加新的商品及其生产日期,保质期等信息,还可以插入新的商品类别和分类。
商品库存信息:包括对库存信息的查看,入库、出库操作,对新商品的分类操作并可以打印库存商品清单。
进货与销售详单:用户和管理员可对进货单、销售单、每日利润查卡并打印。
员工登录情况:用户可以查看用户或管理员登录的信息但不能删除,而管理员可以查看此信息并可以逐条删除或者整体删除。
用户密码修改:可以对当前用户的密码进行修改。
备份数据库:可将当前数据信息备份到硬盘等存储器。
还原数据库:可将原有已经备份的数据库还原,也就是导入到当前系统。
系统信息:可以查看当前系统的版本信息。
用户管理:属于管理员权限,可以删除已有用户。
添加管理员:属于管理员权限,当前管理员可以添加新的管理员。
管理员注销:当前管理员可以注销自己的信息,注销后不可用此用户名登陆系统。
4 商品库存管理系统数据库设计
数据库的名称:supermarket;数据库类型:Sql Server 2000;
数据库逻辑结构设计:
概念结构设计是独立于实际数据模型的信息结构,必须将其转化为逻辑结构后才能进行数据库应用的设计。也就是要将概念上的结构转化为数据库系统所支持的实际数据模型。
首先商品信息表与类别和分类信息表相关联,因为商品入库后都要进行分类和类别划分商品信息表还与出库、入库信息表相关联因为每次出库入库后商品数量归类或者单价等可能会有变化因此在进行出入库操作时对商品信息的修改都会同时保存到商品信息表;用户表与出入库单表相关联,因为进行出入库操作生成出入库表单时要记录是哪个用户进行的操作;同样日期表与出入库单表相关联因为要记录生成表单的日期来生成表单号;另外商品编号和归类号类别号表是为了查询方便单独建立的一张表,其连接是通过各自所含有的外键进行关联的。
总结