仓库管理系统课程设计_第1页
仓库管理系统课程设计_第2页
仓库管理系统课程设计_第3页
仓库管理系统课程设计_第4页
仓库管理系统课程设计_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、65/662012年度本科毕业生课程设计(报告)仓库管理系统学 院: 琼 州 学 院 专 业: 计算计科学与技术 班 级: 2011专升本 学生姓名: 张 坤 学 号: 11253030 教 师: 邱玉桥 2012年8月课程设计的内容1、学习与实践数据库应用程序开发流程。2、学习使用某一种数据库服务,学会数据库应用程序编程,安装配置系统开发环境。3、设计和实现仓库管理系统。4、撰写课程设计报告。课程设计的要求与数据系统应该实现以下功能:(1) 进、出库管理。对进、出库信息进行记录。(2) 查询功能。仓库管理对查询要求高,分为按日期查询,按人员查询和按物品查询。(3) 人员管理和库存报表生成。人

2、员管理包括了操作员设置管理,人员设置管理,以及数据整理。库存报表主要是月报表。(4) 交接班和临时离开。仓库管理系统设计了交接班管理,通过主菜单记录当前操作用户的用户编号与用户名,保证了对进、出库信息当前负责人的确认。临时离开设计保证了管理员临时离开时系统的安全。(5) 由于计算机能存贮大量的数据,而且数据只要一次存入,便可多次重复使用,所以管理数据达到完整,统一,原始记录能保证及时,准确。(6) 许多重复性的工作,都可由计算机去执行,从而使管理人员从事务性工作解脱出来,真正变为从事一些信息的分析,判断,决策等创造性的工作。课程设计应完成的工作该系统主要分为四大功能: 管理员功能、信息安全功能

3、、一般用户功能、报表生成。(1) 管理员功能:产品入库管理、产品出库管理、操作员设置、人员设置、库内信息整理、查询库内信息。(2) 信息安全功能:人员权限区分、临时离开密码管理、交接班管理。(3) 一般用户功能:查询入库信息、查询出库信息、查询库内信息、库存统计。(4) 报表生成:库存信息报表生成。主要参考文献1新编Visual Basic程序设计蔡树元编著2软件工程(第二版)李代平等编著 清华大学出版社 2008.13数据库系统概论(第四版)王珊 萨师煊 高等教育出版社 2006.54Access数据库技术与应用 谭浩强编著 清华大学出版社2009.8目录摘要第一章 系统设计1.1任务描述

4、11.2任务目标 3第二章 需求分析 2.1需求分析的任务 42.1.1功能需求 42.1.2用户需求 42.2数据流图 42.3数据字典 62.4数据库设计 82.4.1数据库的概念模型 8第三章 总体设计 3.1系统流程分析 103.2功能模块图 10第四章 详细设计 4.1程序流程图 124.2数据库的逻辑结构设计 12第五章 编码实现 5.1系统物理实施 145.2创建仓库管理信息系统各界面并编写代码 14第六章 软件测试 总 结 摘 要随着公司业务两的逐渐增长,业务范围的不断扩大,特别是中国进入WTO之后,时常竞争尤其是IT行业的竞争日趋激烈,公司需要更多的人力、物力、财力来稳固并拓

5、展公司商品在市场的销售额。如何更加有效地管理仓库存已成为公司领导的重要决策事项。到目前为止,公司还没有一套完整的、行之有效的管理系统,公司进行信息管理的主要方式是基于文本、表格等纸介质的手工处理,信息处理工作量大查询困难。为了使公司的管理工作科学话、规范化,为了降低管理成本,实现管理现代化,扩大市场的竞争优势,公司领导提出开发进销存管理信息系统,希望通过建立管理信息系统来提高企业现有资源的利用率,使企业管理工作规范化、制度化和程序化,避免业务管理的随意性,提高信息处理的速度和准确性,及时、准确地把握企业内部、市场和其他外部信息,以提高领导决策的水平。第一章 系统设计 1.1任务描述 通过与公司

6、管理层的沟通和对系统的初步调查,发现目前,公司还没有一套完整的、行之有效的管理系统,公司进行信息管理的主要方式是基于文本、表格等纸介质的手工处理,信息处理工作量大查询困难。由此明确了系统开发的目标为:按照管理信息系统的原理和方法,采用成熟、先进的信息技术和手段,支持仓库进、销、存管理工作的全过程,加强销售活动中的各种信息资源的管理和应用,实现销售管理现代化,及时、准确地提供各种信息报表辅助领导决策。 本系统初步调查采用的主要方式是系统分析人员与本公司各个主要管理人员进行交流,并到现场参观了解情况,主要参加人员是公司的销售部、采购部、库存部、MIS中心和行政部的员工代表。 由于近年来企业规模不断

7、的扩大,公司的整个业务数量也在不断扩大。然而在业务增加的同时也出现了一系列的问题:信息化不足,大量的日常工作皆是手工处理,因此造成工作效率低落、企业内部沟通不良等等,这样的直接后果就是信息传递、管理方式不仅效率低,可靠性、安全性和保密性都无法满足要求,而且数据统计时间严重滞后,往往是当领导了解到企业的“进、销、存”环节出现问题时,就已经远离了问题出现的时间和地点。 另外传统的手工方式的管理,也并不能及时地将决策信息传递给相关决策人,从而不能及时发现问题、解决问题,以致不能更好地把握机会。这一切都缺乏系统、规范的信息管理手段,严重阻碍了公司的健康发展,因此开发进销存管理系统非常有必要。 公司领导

8、希望通过建立管理信息系统,使企业管理工作规范化、制度化和程序化,促进企业管理的基础工作,避免随意性,提高信息处理的速度和准确性,及时、准确地把握企业内部、市场和其他外部信息,以提高领导决策的水平。 1.2任务目标 仓库管理信息系统主要是为公司的经营活动提供信息服务,它涵盖了仓库的各项管理工作,涉及多方面的职能。系统能够对客户信息管理、订单管理、报价单管理、供应商管理、出货管理等信息提供存储、更新、查询、统计的功能,使公司能够合理控制进销存的各个环节,提高资金的利用率和结算速度,实现管理的高效率、实时性、安全性、科学化、现代化和智能化。 按照管理信息系统的原理和方法,采用成熟的信息技术和手段,支

9、持公司管理工作的全过程,加强各种信息资源的管理与运用,提高企业管理工作的现代化水平,优化人、财、物和信息资源在供、销等各环节的运行机制。 管理信息系统应逐步覆盖公司内部的所有部门和一切经营活动,使所有业务部门的工作人员在信息系统的辅助下进行工作,提高管理的整体水平,同时企业领导可以通过系统及时了解各部门工作的进展情况。 第二章 需求分析 2.1需求分析的任务 2.1.1功能需求 该系统主要分为三大功能: 管理员功能、一般用户功能、信息安全功能。 管理员功能包括:产品入库管理、产品出库管理、操作员设置、人员设置、库内信息整理、查询库内信息。 一般用户功能包括:查询入库信息、查询出库信息、查询库内

10、信息、库存统计。 信息安全功能:人员权限区分、临时离开密码管理、交接班管理。2.1.2用户需求 根据用户需求,该系统应该实现以下功能: (1) 进、出库管理。对进、出库信息进行记录。(2) 查询功能。仓库管理对查询要求高,分为按日期查询,按人员查询和按物品查询。(3) 人员管理和库存报表生成。人员管理包括了操作员设置管理,人员设置管理,以及数据整理。库存报表主要是月报表。(4) 交接班和临时离开。仓库管理系统设计了交接班管理,通过主菜单记录当前操作用户的用户编号与用户名,保证了对进、出库信息当前负责人的确认。临时离开设计保证了管理员临时离开时系统的安全。(5) 由于计算机能存贮大量的数据,而且

11、数据只要一次存入,便可多次重复使用,所以管理数据达到完整,统一,原始记录能保证及时,准确。(6) 许多重复性的工作,都可由计算机去执行,从而使管理人员从事务性工作解脱出来,真正变为从事一些信息的分析,判断,决策等创造性的工作。2.2数据流图 当数据在软件系统中移动时,它将被一系列“变换”所修改。数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。数据流图是系统逻辑功能的图形表示,即使不是专业的计算机技术人员也容易理解它,因此是分析员与用户之间极好的通信工具。本系统的数据流图

12、如下所示: 图2.2.1 顶层数据流图 库存查询的数据流图如下图: 图2.2.2 库存查询的数据流图 入库出库数据流图:图2.2.3 入库数据流图 图2.2.4 出库数据流图 2.3数据字典 数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典在数据库设计中占有很重要的地位。 数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。 任何字典最主要的用途是供人查阅对不了解的条目的解释,数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。 数据流图和数据字典共同构成系统的逻辑模型,

13、没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。 名字:入库操作 定义:入库操作=产品基本信息+入库信息 名字:Stock 描述:目前库存产品的基本信息 定义:产品基本信息=产品基本信息+产品规格 名字:出库操作描述:库存产品出库多少的信息 名字:Person 描述:管理员编号与姓名名字:Operater 描述:仓库管理员权限与密码2.4数据库设计 2.4.1数据库的概念模型 用ER图表示当前的数据库概念模型 图2.4.1 简单整体E-R模型图2.4入库实体图2.5 出库实体图2.7总 E-

14、R图第三章 总体设计 3.1系统流程分析 有系统的工作流图分析,可以得出,该系统的业务流程主要有入库过程,出库过程和出入库信息查询三个部分,其业务流程图如下: 图3.1 系统流程图3.2功能模块图 库存管理人员可能对数据库的管理有不同的权限,根据要求赋予不同人员对数据库管理的权限 。图3.2.1 登陆对话框根据系统的业务流程和用户的需求分析可以得出,本系统应该包含产品基本信息管理、出入库管理、库存管理、系统管理、操作人员管理、查询、统计等几大功能,如下图所示: 图3.2.2 总体功能模块图其中入库管理包括新物品初次入库(包含基本信息的入库)和非新物品入库。 基本管理:具体用户是系统管理员,对于

15、出库进库成功时系统直接算出该产品的余料。2)进库管理:主要完成对产品品名,规格型号,数量,单价,入库日期,入库人编号,入库人(入库人和编号为统一的,一入库人编号对应于一个入库人),经手人出库管理主要完成产品品名,规格型号,数量,单价,出库日期,出库人编号,出库人。3)交接班是为了便于用户交接班时不用退出系统就可以进行数据库用户更换 4)修改密码必须先输入原始密码才让修改密码,防止用户离开时的疏忽而被其他人篡改用户信息和密码。图3.2.3 系统的基本功能模块图5)查询 按日期:查询某个时间段的出入库信息。 按人员:查询某个入料人或领料人的相关信息 按物品:查询某种商品的出入库信息和余料。 图3.

16、2.4 系统的查询模块图6)统计:提供一种统计方式,一般要求按月统计,可以查出该月内的出入库总次数,及相关详细信息。 图3.2.5 系统的按月统计图7)设置:该操作只允许数据库管理员进行设置,对于无该权限的数据库管理员进入系统后无该功能。 图3.2.6 系统的人员设置图第四章 详细设计 4.1程序流程图 详细设计的结果基本上决定了总终的程序代码的质量。结构程序设计技术是实现上述目标的关键技术,是详细设计的逻辑基础,用程序流程图来表示。 描述程序处理过程的工具称为过程设计的工具,它们可以分为图形,表格和语言三类。程序流程图又称为程序框图,一直是软件设计的主要工具,对控制流程的描绘很直观,便于掌握

17、,它是历史最悠久,使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法,上图为本系统的程序流程图,直观地描述了上机管理系统。 4.2数据库的逻辑结构设计 表4-1入库表(InStorehouse)表4-2出库表(OutStorehouse)表4-3库存表(Stock)表4-5系统管理员表(Operater)表4-6入库人、出库人、借出人表(Person )第五章 编码实现 5.1系统物理实施 (1)硬件选择。系统中计算机能够运行Windows XP以上操作系统即可。 (2)操作系统。Windows XP以上操作系统。 (3)开发工具。面向对象程序设计语言Visual Basic 6.

18、0。 (4)数据库管理系统。Microsoft Access数据库管理系统。 5.2创建仓库管理信息系统各界面并编写代码 打开Visual Basic 6.0后,单击FileNew Project菜单,在工程模板中选择“展示屏幕”将产生一个展示屏幕窗体。如下展示部分界面以及代码:图5.2.1仓库管理信息系统与该窗体相关的程序 Private Sub M_ChangePassword_Click() ChangePassword.ShowEnd SubPrivate Sub M_ClearData_Click() FrmClearData.ShowEnd SubPrivate Sub M_Dat

19、aBackup_Click()FrmDataBackup.ShowEnd SubPrivate Sub M_DataMake_Click() FrmDataMake.ShowEnd SubPrivate Sub M_Exchange_Click() Login1 = 1 Login.Caption = 交接班 Login.Show 1 Mainform.ShowEnd SubPrivate Sub M_Exit_Click() aa = MsgBox(退出前请确定数据是否保存!, 1 + 32) If aa = 1 Then EndEnd SubPrivate Sub M_FindArticl

20、e_Click() FrmFindArticle.ShowEnd SubPrivate Sub M_FindDate_Click() FrmFinddate.ShowEnd SubPrivate Sub M_FindPerson_Click() FrmFindperson.ShowEnd SubPrivate Sub M_InStorehouse_Click() FrmInstorehouse.ShowEnd SubPrivate Sub M_ManSetup_Click() frmPerson.ShowEnd SubPrivate Sub M_OperaterSetup_Click() fr

21、mOperater.ShowEnd SubPrivate Sub M_OutStorehouse_Click() FrmOutstorehouse.ShowEnd SubPrivate Sub M_PrintDay_Click() DataReport1.ShowEnd SubPrivate Sub M_Printjgj_Click() Frmprintgz.ShowEnd SubPrivate Sub M_Printmustbuy_Click()DataReport3.ShowEnd SubPrivate Sub M_ProducePlan_Click() FrmProduceplanMan

22、age1.ShowEnd SubPrivate Sub M_Sparelist_Click()FrmSpareList.ShowEnd SubPrivate Sub M_StorehouseManage_Click() FrmStorehousemanage.ShowEnd SubPrivate Sub M_StorehouseSetup_Click() frmStorehouse.ShowEnd SubPrivate Sub M_TEMP_Click() frmTEMP.Show 1End SubPrivate Sub M_TotalDay_Click() FrmTotalDay.ShowE

23、nd SubPrivate Sub M_TotalMonth_Click() FrmTotalmonth.ShowEnd SubPrivate Sub MDIForm_Load() Mainform.BackColor = &H80000003 Mainform.WindowState = 2 str1 = 日一二三四五六 StatusBar1.Panels.Item(4).Text = 星期 & Mid(str1, Weekday(Date), 1) StatusBar1.Panels.Item(3).Text = Date StatusBar1.Panels.Item(1).Text =

24、管理员: & Operater1End SubPrivate Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer) Cancel = MsgBox(退出前请确定数据是否保存!, 1 + 32) If Cancel = 1 Then EndEnd SubPrivate Sub MDIForm_Resize() Mainform.WindowState = 2End SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select

25、 Case Button.Key Case T_InStorehouse Call M_InStorehouse_Click Case T_Calc Shell (App.Path + calc.exe) Case T_Exchange Call M_Exchange_Click Case T_Temp Call M_TEMP_Click Case T_Exit Call M_Exit_Click Case T_OutStorehouse Call M_OutStorehouse_Click Case T_StorehouseManage Call M_StorehouseManage_Cli

26、ck Case T_FindPerson Call M_FindPerson_Click Case T_FindArticle Call M_FindArticle_Click Case T_ProducePlan Call M_ProducePlan_Click End SelectEnd Sub图5.2.2 入库录入界面与该窗体相关的程序 Public rk As String 入库的类型Public reccount As Integer 记录条数Public row1 As Integer 单击list2时返回的行数Private Sub Command1_Click() 补充数据 判

27、断输入的数据是否都为空 补充出库信息 If Trim(Text1(13) Or Trim(Text1(14) Or Trim(Text1(15) Or Trim(Text1(16) Then outstorehouse.RecordSource = select * from outstorehouse where 编号= + list2.TextMatrix(row1, 4) outstorehouse.Refresh With outstorehouse.Recordset .Fields(8) = Text1(13) .Fields(9) = Text1(14) .Fields(10)

28、= Text1(15) .Fields(11) = Text1(16) .Update End With Call Command2_Click Command1.Enabled = False Else MsgBox (请输入数据!) End If End SubPrivate Sub Command2_Click() 补充出库信息时的数据清零 For i = 13 To 16 Text1(i).Text = Next iEnd SubPrivate Sub Command3_Click() 按确定按钮 判断输入 If Option2.Value = False Then If Trim(T

29、ext1(0).Text) = Or Trim(Text1(1).Text) = Then 当不要补充出库的信息时 MsgBox (品名与规格不能为空!) Text1(0).SetFocus Exit Sub End If If Trim(Text1(8).Text) = Then MsgBox (请输入领料人!) Text1(7).SetFocus Exit Sub End If Else If Trim(Text1(0).Text) = Or Trim(Text1(1).Text) = Then 入库的关键信息 MsgBox (品名与规格不能为空!) Text1(0).SetFocus E

30、xit Sub End If If Trim(Text1(11).Text) = Or Trim(Text1(12).Text) = Then 当要补充出库的信息时 MsgBox (品名与规格不能为空!) Text1(11).SetFocus Exit Sub End If If Trim(Text1(8).Text) = Then MsgBox (请输入领料人!) Text1(7).SetFocus Exit Sub End If End If If IsNumeric(Text1(4) = False Then 判断数量是否为数值 MsgBox (你输入的数量有误,请输入数值!) Text

31、1(4).Text = Text1(4).SetFocus Exit Sub End If Text1(9).Text = Operater1 给进库表增加信息 instorehouse.RecordSource = select * from instorehouse instorehouse.Refresh With instorehouse.Recordset .AddNew .Fields(0) = Text1(0).Text .Fields(1) = Text1(1).Text .Fields(2) = Text1(2).Text .Fields(3) = Text1(3).Text

32、 .Fields(4) = Val(Text1(4).Text) .Fields(5) = Text1(5).Text .Fields(6) = Date .Fields(7) = Text1(7).Text .Fields(8) = Text1(8).Text .Fields(9) = Text1(9).Text .Fields(10) = Text1(10).Text .Fields(11) = rk .Update End With Call list1disp 给库存表增加信息 stock.RecordSource = select * from stock where 品名 = +

33、Trim(Text1(0) _ + and 规格 = + Trim(Text1(1).Text) + 查找库中是否有该物品 stock.Refresh If stock.Recordset.EOF = True Then With stock.Recordset .AddNew .Fields(0) = Text1(0).Text .Fields(1) = Text1(1).Text .Fields(2) = Text1(2).Text .Fields(3) = Text1(3).Text .Fields(4) = Val(Text1(4).Text) .Fields(5) = Text1(5

34、).Text .Update End With Else With stock.Recordset .Fields(4) = .Fields(4) + Text1(4) .Update End With End If 给出库表增加信息 outstorehouse.RecordSource = select * from stock where 品名 = + Trim(Text1(0) _ + and 规格 = + Trim(Text1(1).Text) + 查找库中是否有该物品 outstorehouse.Refresh Call clearzore Text1(6) = Date Text1

35、(9) = Operater1 Text1(0).SetFocusEnd SubPrivate Sub Command4_Click() 取消 Call clearzore Text1(0).SetFocusEnd SubPrivate Sub Command5_Click() 返回 Unload MeEnd SubPrivate Sub command6_Click() 出库材料的查询判断出库查询输入的数据 If Trim(Text1(11).Text) = Or Trim(Text1(12).Text) = Then 当要补充出库的信息时 MsgBox (品名与规格不能为空!) Text1

36、(11).SetFocus Exit Sub End If Call list2disp Command1.Enabled = FalseEnd SubPrivate Sub Form_Load() Me.Top = (Mainform.Height - Me.Height) / 2 - 800 Me.Left = (Mainform.Width - Me.Width) / 2 Me.Caption = 仓库管理系统 & 入库操作 instorehouse.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Store

37、house.mdb;Persist Security Info=False outstorehouse.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Storehouse.mdb;Persist Security Info=False person.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Storehouse.mdb;Persist Security Info=False stock.ConnectionString = Pr

38、ovider=Microsoft.Jet.OLEDB.4.0;Data Source=Storehouse.mdb;Persist Security Info=False Call clearzore Call option1def Call list2def Call list1def Call list1disp Text1(6).Text = Date Text1(9).Text = Operater1 Command1.Enabled = FalseEnd SubPrivate Sub list2_Click() row1 = list2.Row 返回单击的行值 If row1 0 T

39、hen Command1.Enabled = True End If outstorehouse.RecordSource = select * from outstorehouse where 编号= + list2.TextMatrix(row1, 4) outstorehouse.Refresh If outstorehouse.Recordset.EOF = False Then 此if 为了判断LIST1中是否有数据 Frame6.Enabled = True With outstorehouse.Recordset If IsNull(.Fields(8) = True Then

40、Text1(13).Text = Else Text1(13).Text = .Fields(8) End If If IsNull(.Fields(9) = True Then Text1(14).Text = Else Text1(14).Text = .Fields(9) End If If IsNull(.Fields(10) = True Then Text1(15).Text = Else Text1(15).Text = .Fields(10) End If If IsNull(.Fields(11) = True Then Text1(16).Text = Else Text1

41、(16).Text = .Fields(11) End If End With Else Frame6.Enabled = False End IfEnd SubPrivate Sub Option1_Click()rk = 初次入库Call option1defEnd SubPrivate Sub Option2_Click()rk = 余料入库Command1.Enabled = FalseCall option2deflist2.Enabled = False 一开始就屏蔽list2的单击事件End SubPrivate Sub Text1_GotFocus(Index As Integ

42、er)Text1(Index).BackColor = &HC0FFFFEnd SubPrivate Sub Text1_LostFocus(Index As Integer)Text1(Index).BackColor = &HFFC0C0If Index = 7 Then person.RecordSource = select * from person where 编号 = + Trim(Text1(7) + person.Refresh If person.Recordset.EOF Then MsgBox (库中无此人,请重新输入编号!) Text1(7).Text = Text1

43、(8).Text = Text1(7).SetFocus Else Text1(8).Text = person.Recordset.Fields(1) End If End IfEnd SubPrivate Sub list2def() 将list2的表头初始化 list2.TextMatrix(0, 0) = 品名 list2.TextMatrix(0, 1) = 规格 list2.TextMatrix(0, 2) = 入库人 list2.TextMatrix(0, 3) = 出库日期 list2.TextMatrix(0, 4) = 编号End SubPrivate Sub list1d

44、ef() 将list1的表头初始化 list1.TextMatrix(0, 0) = 品名 list1.TextMatrix(0, 1) = 规格 list1.TextMatrix(0, 2) = 产地 list1.TextMatrix(0, 3) = 材质 list1.TextMatrix(0, 4) = 数量 list1.TextMatrix(0, 5) = 单位 list1.TextMatrix(0, 6) = 入库人End SubPrivate Sub option1def() 按option1屏蔽补充出库信息项 list2.Enabled = False Frame6.Enabled

45、 = False Frame5.Enabled = FalseEnd SubPrivate Sub option2def() 按option2打开补充出库信息项 list2.Enabled = True Frame6.Enabled = True Frame5.Enabled = TrueEnd SubPrivate Sub clearzore() 将数据项初始化 For i = 0 To 16 Text1(i).Text = Text1(i).BackColor = &HFFC0C0 Next i Option1.Value = True rk = 初次入库End SubPrivate Su

46、b list2disp() Dim roww As Integer 行 list2.Clear Call list2def roww = 1 list2.rows = 1 outstorehouse.RecordSource = select * from outstorehouse where 品名 = + Trim(Text1(11).Text) + _ and 规格 = + Trim(Text1(12).Text) + outstorehouse.Refresh If outstorehouse.Recordset.EOF = True Then list2.Enabled = Fals

47、e 屏蔽list2的单击事件 Exit Sub Else list2.Enabled = True End If outstorehouse.Recordset.MoveFirst Do While outstorehouse.Recordset.EOF = False list2.rows = list2.rows + 1 list2.TextMatrix(roww, 0) = outstorehouse.Recordset.Fields(0) list2.TextMatrix(roww, 1) = outstorehouse.Recordset.Fields(1) list2.TextMa

48、trix(roww, 2) = outstorehouse.Recordset.Fields(14) list2.TextMatrix(roww, 3) = outstorehouse.Recordset.Fields(12) list2.TextMatrix(roww, 4) = Str(outstorehouse.Recordset.Fields(18) roww = roww + 1 outstorehouse.Recordset.MoveNext Loop reccount = outstorehouse.Recordset.RecordCountEnd SubPrivate Sub

49、list1disp() Dim roww As Integer 行 roww = 1 list1.Clear list1.rows = 1 Call list1def instorehouse.RecordSource = instorehouse instorehouse.Refresh If instorehouse.Recordset.EOF = False Then instorehouse.Recordset.MoveFirst End If Do While instorehouse.Recordset.EOF = False list1.rows = list1.rows + 1

50、 list1.TextMatrix(roww, 0) = instorehouse.Recordset.Fields(0) list1.TextMatrix(roww, 1) = instorehouse.Recordset.Fields(1) list1.TextMatrix(roww, 2) = instorehouse.Recordset.Fields(2) list1.TextMatrix(roww, 3) = instorehouse.Recordset.Fields(3) list1.TextMatrix(roww, 4) = instorehouse.Recordset.Fiel

51、ds(4) list1.TextMatrix(roww, 5) = instorehouse.Recordset.Fields(5) list1.TextMatrix(roww, 6) = instorehouse.Recordset.Fields(8) roww = roww + 1 instorehouse.Recordset.MoveNext LoopEnd Sub图5.2.3 登录窗口与该窗体相关的程序 Dim datacount As Integer 操作员个数Private Sub cmdCancel_Click() 取消 If Login1 = 1 Then Unload Log

52、in Else End End If operater.Recordset.CloseEnd SubPrivate Sub cmdDate_Click() DTPicker1.Visible = TrueEnd SubPrivate Sub CmdOK_Click() 登录 If txtPassword = Password And Trim(Password) Or datacount = 0 Then If Login1 = 1 Then Load Mainform Else Mainform.Show End If If Rights = 2 Then Mainform.M_Setup.

53、Visible = False Else Mainform.M_Setup.Visible = True End If Me.Hide If Login1 = 1 Then Mainform.StatusBar1.Panels.Item(1).Text = 管理员: & Operater1 If Rights = 1 Then Mainform.M_ChangePassword.Visible = True Else Mainform.M_ChangePassword.Visible = False End If Else MsgBox 输入的密码有误,请重新输入! txtPassword.S

54、etFocus End If txtPassword = End SubPrivate Sub Combo1_Click() 选择操作员 If Trim(Combo1.Text) And datacount 0 Then txtPassword.Enabled = True txtPassword.SetFocus operater.RecordSource = select * from operater where 姓名= & Trim(Combo1.Text) & operater.Refresh Operater1 = operater.Recordset.Fields(0) Pass

55、word = operater.Recordset.Fields(1) Rights = operater.Recordset.Fields(2) End IfEnd SubPrivate Sub DTPicker1_Change() 改变日期 Date = DTPicker1.Value DTPicker1.Visible = False txtDate = Year(Date) & 年 & Month(Date) & 月 & Day(Date) & 日 MsgBox (日期更改成功!) If Login1 = 1 Then Mainform.StatusBar1.Panels.Item(3

56、).Text = DateEnd SubPrivate Sub Form_Load() 初始化 Login.Caption = 登录 txtDate = Year(Date) & 年 & Month(Date) & 月 & Day(Date) & 日 DTPicker1.Value = Date Call pd If datacount = 0 Then Operater1 = 无 Combo1.Enabled = False txtPassword.Enabled = False cmdOK.Enabled = True Text1.Visible = True Else operater.

57、Recordset.MoveFirst Do While operater.Recordset.EOF = False Combo1.AddItem operater.Recordset.Fields(0) operater.Recordset.MoveNext Loop Text1.Visible = False End IfEnd SubPrivate Sub Text2_Change()End SubPrivate Sub Timer1_Timer() txtTime.Text = TimeEnd SubPrivate Sub pd() 判断是否存在操作员 operater.Connec

58、tionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Storehouse.mdb;Persist Security Info=False operater.CommandType = adCmdUnknown operater.RecordSource = select * from Operater operater.Refresh datacount = operater.Recordset.RecordCountEnd SubPrivate Sub txtPassword_Change() 判断是否输入密码 If Len(T

59、rim(txtPassword) = 0 Then cmdOK.Enabled = False Else cmdOK.Enabled = True End IfEnd SubPrivate Sub txtPassword_GotFocus() txtPassword.BackColor = &HC0FFFF txtPassword.SelStart = 0 txtPassword.SelLength = 12End SubPrivate Sub txtPassword_LostFocus() txtPassword.BackColor = &HFFC0C0End Sub图5.2.4 按日期查询窗口图5.2.5 出库登记窗口图5.2.6 员工管理窗

温馨提示

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

评论

0/150

提交评论