您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 公司仓库管理系统(doc22)(1)
1公司仓库管理系统第一章公司介绍与系统的需求分析1.1公司简介佳雪公司是一个专销电动机的公司,主要业务是进行电动机的进货与分销,作为一个销售的中介公司,其要求有入库与出库的主要数据库,可以简单的记录数据,并且可以进行多方面的查询,使得公司有较详细的数据统计与分析。其主要业务如以下图所示:1.厂商仓库顾客图1.1.12.查询功能1)按型号查询有两个结果:A生成入库量、出库量、节余量B生成两个数据来源表,包括出库来源与入库来源;2)按单位查询结果:生成型号、产品名称、时间(入/出库)、单价再生成出入库的两个基本情况表,包括供应商和顾客的基本情况,如型号、出/入库时间,单价,发票编号、结帐情况;3.本系统主要运用VisualBasic的内嵌数据库Access来记录数据;4.产品信息:序号(自动生成)、型号(文本)、入库时间(日期)、出库时间(日期)、数量(数字)、发票编号(文本)、单价(货币)、厂商名称(文本)、供应商2名称(文本)、厂商与供应商的电话(数字)、结帐情况(是/否)[是为0,否为-1]1.2分析与描述一.根据1.1章节的具体要求,总结出以下的数据流程:图1.2.1数据流程二.根据以上情况,按要求设计了几个相关的数据库表:出库、入库查询:查询结余、出库查询、入库查询、型号出库查询、型号入库查询主要的出库表属性如以下表所示:字段名属性字段大小序号自动生成长整型型号文本50产品名称文本50出库数量数字长整型单价货币自动小数出库时间日期年-月-日发票编号文本50顾客电话文本50结帐情况是/否2表1.2.1输入数据入库出库查询增加修改删除增加修改删除单位型号供应商顾客入库出库3由于入库表与出库想类似,所以在此不做详细介绍。为了方便查询,因此在出库与入库的基础上增加了几个查询表,具体字段如下:1.查询结余:型号、产品名称、出库数量、入库数量2.出库查询:顾客名称、型号、出库时间、单价、出库数量OFSUM、发票编号、结帐情况3.入库查询:供应商名称、型号、入库时间、单价、入库数量OFSUM、发票编号、结帐情况4.出库型号查询:型号、产品名称、顾客名称、单价、发票编号、结帐情况5.入库型号查询:型号、产品名称、供应商名称、单价、发票编号、结帐情况1.3数据库的主要特点数据库中的每一个表都必须符合下面几个特征:*表中的每一个单元的内容只有一个值*所有字段的名称都不相同*记录的前后次序和字段的左右次序可以变化,不受限制*数据库中的表的上下次序不受限制*表中不应有内容完全相同的记录*表中的每一个字段都必须有相同的数据类型使用VisualBasic开发应用程序的两个主要思想:*可视设计*事件驱动编程4VisualBasic应用程序不同于其他语言开发的单一性程序。使用VisualBasic编程时,必须首先确定应用程序如何与用户交互,如鼠标单击,用户必须编写代码控制这些事件的响应方法。使用VisualBasic开发数据库应用程序的一般步骤如下所示:(1)建立数据库(2)建立用户界面(3)编写代码(4)调试运行(5)编译应用程序(6)发布应用程序界面设计(1)控件的位置(2)界面元素的一致性(3)保持界面的简明(4)使用颜色和图象:增加视觉的感染力(5)图象和图标:增加应用程序的视觉上的趣味(6)选取字体VisualBasic应用程序的结构:由于VisualBasic应用程序是基于对象的,所以应用程序的代码结构就是该程序在屏幕上物理表示的模型。根据定义,对象包含数据和代码。在屏幕上看到的窗体代表属性,这些属性定义了窗体的外观和内在特性。本设计主要是运用Data控件。Data控件主要是打开、访问并操作已有的数据库,它是VisualBasic访问数据5库的最常用的工具之一。由于Data控件使用Microsoft的Jet引擎来实现数据访问(与MicrosoftAccess所用的数据库引擎相同),使用户可以无缝地访问很多标准的数据库格式,而且无需编写任何代码就可以创建数据应用程序,因此这种VisualBasic内部的Data控件最合适小的(桌面)数据库,诸如Access和ISAM数据库等。由于Data控件是VisualBasic的内部控件,因此可以直接在标准工具箱中找到该控件。在程序运行过程中,只要用鼠标单击控件上的箭头按钮,系统将自动修改Data控件指向的记录和显示在约束控件中的数据,而不需要编写任何代码。可以将多个Data控件同时添加到一个工程甚至是同一个窗体中。另外,每个控件可以连接到不同的数据库或同一个数据库的不同表上,还可以和代码一起查询满足的语句的表的记录集。使用Data控件可以显示、编辑和更新来字各种已有的数据库信息。此外,还可以访问和操作远程的开放式数据库连接。除了使用Data控件之外,还运用的VisualBasic6.0的新增控件功能,Dblistbox它不象标准的列表框或组合框那样需要使用AddItem方法添加列表项。另外,它们还可以有选择地把某个选定的字段传递给另一个Data控件,使得它对于“查找表”应用程序很理想。与其他的约束控件不同,这些控件可以同时显示多个记录。约束数据列表控件类似于普通的列表框控件,可以显示记录集中的数据,网格中的每一行代表记录集中的一个记录。第二章管理系统的设计与分析2.1进入界面6由于系统的的界面比较单一,因此在设计过程中运用了许多网上下载的图片来增添界面的可观性。在考虑到操作员的技术水平有限,因此在控件方面只运用了COMMAND,这样不仅能是界面清楚,更能是操作者很快学会,简单易懂。图2.1.1是进入本系统的状态图,单击“确定”可以进入界面,如按“系统信息”的话,将显示本系统的具体软硬件情况。图2.1.1当图2.1.1中的“确定”按钮被激活时,将进入图2.1.3的屏幕,界面的图片是图片引入的,接着将进入正式的编辑或查询状态。具体的系统情况如图2.1.2所示:7图2.1.2图2.1.382.2入库界面当激活入库按钮时将出现以下的界面(图2.2.1)图2.2.1入库窗体(图2.2.1)及其各个控件的主要属性控件类型控件名主要属性FormFrmrsg1Caption=“入库情况”DataData1Databasename=“A\db2.mdb”Recordsettype=1’DynasetCaption=“入库情况”CommandDialogCommand1Caption=“上一个”Command2Caption=“下一个”Command3Caption=“确定”Command4Caption=“取消”Command5Caption=“退出”Command6Caption=“增加”Command7Caption=“修改”Command8Caption=“删除”LableLable1Caption=“序号”Lable2Caption=“型号”Lable3Caption=“产品名称”Lable4Caption=“数量”Lable5Caption=“单价”9Lable6Caption=“入库时间”Lable7Caption=“发票名称”Lable8Caption=“供应商名称”Lable9Caption=“电话”Lable10Caption=“结帐情况”TextText1Caption=“序号”Datasource=“data1”Text2Caption=“型号”Datasource=“data1”Text3Caption=“产品名称”Datasource=“data1”Text4Caption=“数量”Datasource=“data1”Text5Caption=“单价”Datasource=“data1”Text6Caption=“入库时间”Datasource=“data1”Text7Caption=“发票名称”Datasource=“data1”Text8Caption=“供应商名称”Datasource=“data1”Text9Caption=“电话”Datasource=“data1”Text10Caption=“结帐情况”Datasource=“data1”表2.2.1控件说明增加新记录当单击“确定”按钮后,“确定”和“取消”两个按钮显示,同时使其他的按钮不可见,这样做是为了防止用户的误操作。其主要程序如下:PrivateSubCommand5_Click()xg=True'显示“确定”和“取消”两个按钮Command3.Visible=TrueCommand4.Visible=True'取消其他按钮功能Command5.Enabled=FalseCommand6.Enabled=FalseCommand7.Enabled=FalseCommand8.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseData1.Recordset.AddNew'添加一个新记录Text1.SetFocus'光标在TEXT1处10endsub修改记录在调用EDIT方法之前,约束控件中的数据是只读的,用户无法对其进行修改。调用了EDIT方法后,用户可以在约束控件中修改记录的值。如果在对当前记录进行修改之前修改,未使用EDIT方法,将发生运行时错误。其主要程序如下:PrivateSubCommand6_Click()xg=TrueCommand3.Enabled=TrueCommand4.Enabled=True'取消其他按钮功能Command5.Enabled=FalseCommand6.Enabled=FalseCommand7.Enabled=FalseCommand8.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=False'对记录进行编辑Data1.Recordset.EditText1.SetFocusEndSub删除记录当用户单击“删除”命令按钮时,为了防止用户误删除数据,程序将调用Msgbox()函数以弹出对话框,询问用户是否真的要删除该记录。如果用户单击对话框上的“确定”按钮,程序调用记录集的Delete方法,将记录集的当前记录设置为空,并从原始的表中删掉当前记录。但是删除的记录仍然是当前记录,只是将其变为了无效的记录,任何对其的引用都会产生错误。其主要程序如下:PrivateSubCommand6_Click()xg=True11Command3.Enabled=TrueCommand4.Enabled=True'取消其他按钮功能Command5.Enabled=FalseCommand6.Enabled=FalseCommand7.Enabled=FalseCommand8.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=False'对记录进行编辑Data1.Recordset.EditText1.SetFocusEndSubPrivateSubCommand7_Click()ss=MsgBox(真的要删除吗?,vbYesNo+vbInformation,删除记录)'如果要删除If(ss=vbYes)ThenData1.Recordset.DeleteData1.Recordset.MoveNextIfData1.Recordset.EOFThenData1.Recordset.MoveLastCommand2.Enabled=FalseEndIfEndIfEndSub移动数据当用户单击“上一个”和“下一个”按钮是,系统将自动转换数据,但注意,当移至第一个记录时,“下一个”按钮将失效;移至最后一个记录是,“上一个”按钮也将失效。其中在设计程序时,为了防止“NOCurrentRecord”这样的错误,在移动记录指针时测试记录集的BOF和EOF属性。如果单击“上一个”和“下一个”命令按钮将导致记录指针指向空指针,则分别调用Movefirst和Movelast方法,这是防止“NOCurren
本文标题:公司仓库管理系统(doc22)(1)
链接地址:https://www.777doc.com/doc-567591 .html