进销存信息管理系统报告.docx_第1页
进销存信息管理系统报告.docx_第2页
进销存信息管理系统报告.docx_第3页
进销存信息管理系统报告.docx_第4页
进销存信息管理系统报告.docx_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

进销存管理信息系统设计报告 目录1.绪论31.1 系统开发背景31.1.1 社会背景31.1.2 课程背景31.2需求分析31.3可行性分析32.系统设计42.1 系统功能结构42.1.1基本资料42.1.2进货管理52.1.3销售管理52.1.4 库存管理52.1.5系统设置52.2系统业务流程52.3系统数据模型72.3.1数据字典72.3.2数据表结构93系统功能实现113.1 开发工具的选择113.2 系统库存管理的实现123.2.1公共模块设计123.2.2系统启动设计133.2.3系统登录设计:133.2.4入库管理143.2.5出库管理193.2.6库存盘点213.2.7库存上下限预警254小结281.绪论1.1 系统开发背景1.1.1 社会背景在信息技术的催化之下,世界经济的变革已经进入了加速状态。世界经济一体化,企业经营全球化,以及高度竞争造成的高度个性化与迅速改变的客户需求,令企业与顾客、企业与供方的关系变得更加密切和复杂。强化管理,规范业务流程,提高透明度,加快商品资金周转,以及为流通领域信息管理全面网络化打下基础,是商品销售公司乃至众多商业企业梦寐以求的愿望。随着技术发展,电脑操作及管理日趋简化,电脑知识日趋普及,同时市场经济快速多变,竞争激烈,因此企业采用电脑管理进货、库存等诸多环节也已成为趋势及必然。1.1.2 课程背景由于课程的需要,也基于大社会背景下的对于进货存储系统的需要,管理者和销售人员对这样类似系统的需求,我们小组决定设计一个进销存管理系统。1.2需求分析通过实际调查,要求本系统具有以下功能:q 由于操作人员的计算机知识普遍偏低,因此要求系统具有良好的人机界面。q 如果系统的使用对象较多,则要求有较好的权限管理。q 方便的数据查询,支持多条件查询。q 批量填写进货单及销售单。q 与代理商和供应商往来账本明细,绝不存在假账、漏账、差账等情况。q 报表打印功能。1.3可行性分析经济上可行性分析现在,计算机的价格已经十分低廉,性能却有了长足的进步。而本系统的开发,为企业的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:第一,本系统的运行可以代替人工进行许多繁杂的劳动;第二,本系统的运行可以节省许多资源;第三,本系统的运行可以大大的提高企业的工作效率;第四,本系统可以使敏感文档更加安全,等等。本系统所需的设备在现有条件下,只需要少量的投入资金就可以实现。因此在经济上是可行的。技术上可行性分析软件可行性VB具有丰富的数据库功能,可以直接建立和编辑数据库,使用结构化查询语言直接访问数据库,并提供简单的面向对象的库操作命令、多用户数据库的加锁机制和网络数据库的编程技术。ACCESS是由微软公司推出的,一定的数据库服务,并对数据库提供全面的保护,具有防止问题发生的安全措施,它是一个简易的关系型数据库管理系统。作管理上可行性分析课设指导老师给与了精心的讲解和大力的支持。综上所述,系统在技术上、经济上、管理上都是可行的。2.系统设计2.1 系统功能结构我们设计的系统是进销存管理系统,其实现的主要功能是对企业的进销存活动进行集中化以及电子化的信息处理。系统的功能结构如下图2.1所示进销存管理系统基本资料进货管理库存管理销售管理系统设置产品资料供应商资料客户资料产品进货产品退货销售统计销售排行入库管理出库管理库存盘点上下限预警数据备份与恢复数据清理图基本资料对产品资料、供应商资料和客户资料进行记录2.1.2进货管理这一部分的功能是为了实现对进货源、进货渠道和进货商品的管理。供应商供货信息管理以购货价格为中心,完善地记录、控制并管理供应商的供货业务资料,包括对不同供应商、不同物料、不同数量段、不同币别的价格和折扣信息的详细记录,以及业务传递、自动更新及数据分析。同时进行采购最高限价的控制和预警管理,是整个管理系统,乃至整个供应链体系中重要的综合数据处理中心之一。其中包括“计划管理”和“订单处理”。计划管理下分为“需求计划管理”、“生成采购计划”、“计划完成情况分析”,是对采购活动前期的一个预处理过程,在计划完善的前提再进行采购活动可以提高效率,并且减少损失。订单处理下分为“生成采购订单”、“订单完成”、“订单终止或取消”,旨在为采购订单做详细的管理,包括前期的生成和填写订单,完成订单和后期的有可能出现的订单终止服务或者取消订单服务。2.1.3销售管理主要实现销售的管理,记录商品销售的总体情况,并将信息反馈给库存数据库。2.1.4 库存管理这一部分的功能是为了实现对存货的分类管理,存放货物的地点、货物的分类、货物量等都需要纳入考虑范围,更可以帮助我们方便地查找库存资源。其中包括“收获处理”,收获处理下又分为“订单收获处理”、“入库处理”、“支付订单”、“退货处理”。2.1.5系统设置实现系统的其他功能如数据备份与恢复,数据清理。2.2系统业务流程企业在商品的进销存上其职能机构有采购部门、销售部门和仓储部门,其职能分别是对商品进行进货管理、销售管理和仓储管理。商品及其信息流通的过程如下图2.2所示系统业务流程图:销售部门生成采购订单采购合同进货单库存管理库存信息更新出库单仓储部门入库单采购部门供应商采购单存底销售订单客户提交订单商品销售单存底客户信息存底库存数据库图2.2从上述的系统业务流程图中,我们可以得出系统总体的E-R图,图2-3系统总体E-R图:2.3系统数据模型2.3.1数据字典重要数据及其简要描述如下所示:(1)数据元素:表21 商品编号名称:商品编号 总编号:1-001说明:唯一标识商品 编号:001数据值:(连续/离散)离散 有关编码说明:类型:(字符/数字)数字长度:4有关数据结构:商品卡片 表2.2 销售单编号名称:销售编号 总编号:1-002说明:唯一标识每次销售登记 编号:002数据值:(连续/离散)连续 有关编码说明:类型:(字符/数字)数字长度:17有关数据结构:销售登记卡表2.3 入库票号名称:入库票号 总编号:1-003说明:记录一次入库信息并唯一标识 编号:003数据值:(连续/离散)离散 有关编码说明:类型:(字符/数字)数字长度:17有关数据结构:入库一览表 库存信息表(2)数据结构:表2.4 商品卡片名称:商品登记卡 总编号:2-001说明:商品信息卡片 编号:001结构: 有关数据流,数据存储: 编号 商品信息表 名称 商品创建时间 销售单价 商品备注 (3)数据存储:表2.5 入库一览表名称:进货文件 总编号:3-01说明:一段时间内所入库信息的存储 编号:D1结构: 入库时间 入库编号 入库数量 商品编号 表2.6 出库一览表名称:出货文件 总编号:3-01说明:一段时间内所有出库信息的存储 编号:D2结构: 出库时间 出库编号 出库数量 商品编号 表2.7 销售一览表名称:销售文件 总编号:4-03说明:一段时间内所有销售信息的存储 编号:D3结构: 销售编号 销售时间 商品编号 销售数量 销售单价 销售备注表2.8 库存一览表名称:库存文件 总编号:4-04说明:一段时间内所有库存信息的存储 编号:D4结构: 更新日期 库存编号 库存数量 商品编号 (4)数据流:表2.9 销售信息单数据流名称:销售信息单 总编号:4-001说明:记录所销售商品的详细信息 编号:P1来源:顾客去向:P2D3数据流组成:销售单号+商品名称+商品编号+型号+供应商+单价+数量+销售时间表2.10 进货信息单名称:进货信息单 总编号:4-002说明:所进商品的详细信息 编号:P2来源:销售部门去向:P2D2,D4数据流组成:出库单号+商品名称+商品编号+型号+供应商+单价+数量+销售时间表.2.11 入库信息单名称:入库信息单 总编号:4-003说明:商品存储的详细信息 编号:P3来源:采购部门去向:P3D3,D4 数据流组成:出库单号+商品名称+商品编号+型号+供应商+单价+数量+销售时间2.3.2数据表结构(本小组只实现了进销存系统的库存功能,只列出相应的表单)表2.12 库存商品信息表(tbS_Stock)字段名数据类型长度描述商品编号Varchar4商品编号商品名称Varchar20商品全称库存数量Float8库存数量商品价格Float8价格存货报警上限Int4存货报警上限存货报警下限Int4存货报警下限表2.13 入库表(tbS_warehouse_main)字段名数据类型长度描述入库日期Datetime8录单日期入库单号Varchar20单据编号供应商Varchar20供货单位商品型号Varchar10商品型号单价Float10单价数量Int8商品数量表2.13 出库表(tbS_warehouse_main)字段名数据类型长度描述出库日期Datetime8录单日期出库单号Varchar20单据编号供应商Varchar20供货单位商品型号Varchar10商品型号单价Float10单价数量Int8商品数量表2.14 入库一览表(tbS_warehouse_main)字段名数据类型长度描述入库日期Datetime8录单日期入库单号Varchar20单据编号供应商Varchar20供货单位商品型号Varchar10商品型号单价Float10单价数量Int8商品数量表2.15 出库一览表(tbS_warehouse_main)字段名数据类型长度描述出库日期Datetime8录单日期出库单号Varchar20单据编号供应商Varchar20供货单位商品型号Varchar10商品型号单价Float10单价数量Int8商品数量3系统功能实现 3.1 开发工具的选择VisualBasic60(以下简称VB)是美国著名软件公司Microsoft推出的成功产品,具有简单易学、功能强大、可扩充性好等特点。VB是一个可视亿的集成开发环境,使用VB编写应用程序,不需要编写大量的代码去描述界面元索的外观和位置,而只要把预先建立的对象添加到屏幕上即可。VB是完全按照面向对象的程序设计思想研制,采用图形化的应用界面,集应用程序开发、测试、查错功能于一体的集成开发环境。VB的数据库系统由三部分组成:用户界面、数据引擎和数据仓库。其中数据库引擎存在于用户界面和数据仓库之间,起着中介作用,用户通过它与要访问的特定数据库相连。用户界面是进行人机交互的界面,用于察看、显示数据或更新数据。驱动用户界面窗体的是VB编写的代码,这些代码使得用户的操作能作用到数据库上,如添加或删除记录、执行查询等。VB缺省的数据引擎是Microsoft Jet数据库,它包含在一组动态链接库(DLL)中,运行时这些动态链接库被锻接到VB程序。数据库引擎的作用是把应用程序的请求翻译成对数据库的物理操作。VB支持多种数据库默认的数据库是Microsoft Access数据库。3.2 系统库存管理的实现3.2.1公共模块设计获得拼音简码商品进货或销售时,可以直接输入商品名称或拼音简码来完成商品检索,这样为以后的数据录入工作带来极大的方便。例如,手机的拼音简码是SH。Public Function py(mystr As String) As String 获得汉字的拼音简码On Error Resume Next 会使程序从产生错误的语句之后的语句继续执行If Asc(mystr) 0 Then If Asc(Left(mystr, 1) = Asc(啊) And Asc(Left(mystr, 1) = Asc(芭) And Asc(Left(mystr, 1) = Asc(擦) And Asc(Left(mystr, 1) = Asc(搭) And Asc(Left(mystr, 1) = Asc(蛾) And Asc(Left(mystr, 1) = Asc(发) And Asc(Left(mystr, 1) Asc(噶) Then py = F Exit Function End If Else If UCase(mystr) = A Then py = UCase(Left(mystr, 1) Else py = mystr End IfEnd IfEnd Function3.2.2系统启动设计系统启动主要用于检测用户是否为已注册用户,并在没有创建数据库的情况下将其自动创建到Access中。图系统登录设计:系统登录主要用于对进入进销存管理系统的用户进行安全性检查,以防止非法用户进入该系统。只有合法的用户,才可以进入该系统,同时根据管理员分配的权限,给予操作员相应的操作权限。验证操作员及其密码,主要通过记录集结果(RecordSet)并结合If语句,判断用户选定的操作员及其输入的密码是否符合数据库中的操作员和密码,如果符合则允许登录,并给予相应的权限,否则提示用户非法登录。系统登录窗体运行结果如图3.2所示。图3.2窗体设计步骤:(1)新建一个窗体,将窗体的名称设置为“frm_login”,BorderStyle属性设置为“0-None”,设置Picture属性,为窗体添加图片。(2)在窗体上添加Adodc控件,由于该控件属于ActiveX控件,在使用之前必须从“部件”对话框将其添加到工具箱中。添加方法为:在“部件”对话框中选择“Microsoft Ado Data Controls 6.0(SP4)”列表项。(3)在窗体中添加两个文本框,分别设置名称(Name属性)为“txtName”和“txtPassword”,设置“BorderStyle”属性为“0-None”、“Text”属性分别为“mingrisoft”和“”。(4)在窗体中添加两个Label控件,使用默认名称、设置“BackStyle”属性为“0-Transparent”,设置Label3和Label4的“Caption”属性为“Sign In”和“Lost Yours Passport?”。3.2.4入库管理在商品进货过程中,如果进货的商品品种较多、数量也很大,那么使用文本框一条一条的录入数据,效率将会很低。VB提供的DataGrid控件,处理数据比较灵活,可以通过Adodc控件连接数据库,将入库信息及时的更新到数据库的表中。入库一览功能:(1)新建1个窗体,将窗体的“名称”属性设置为frm_rkgl,Caption属性设置为“入库管理”、其余为默认设置。(2)在窗体上添加Adodc控件和DataGrid控件,由于这两个控件属于ActiveX控件,在使用前必须从“部件”对话框(如图3.3所示)将其添加到工具箱中,添加方法为:在“工程”/“部件”对话框中勾选“Microsoft Ado Data Controls 6.0(SP4)”列表项(Adodc控件)和勾选“Microsoft DataGrid Controls 6.0(SP5)”列表项(DataGrid控件)。1图3.3 添加ActiveX控件(3)在窗体中添加1个DataGrid控件,使用默认名称,分别设置控件的选取框样式,在DataGrid控件上单击鼠标右键,选择“属性”菜单,弹出“属性页”,选择“拆分”选项卡,将DataGrid控件的选取边框样式设置为6-dbgHighlightRowRaise,如图3.4所示。图3.4 设置边框样式(4)在窗体中添加1个ADO控件,名称为Adodc1Visible属性均设置为False。(5)入库管理窗体的设计结果如图3.5所示。图3.5 进货单窗体的设计结果(6)窗体的装载过程中,主要实现以下功能:(7) 建立数据库的连接,初始化ADO数据源。图3.6将已有的部分入库单内容通过Select语句绑定到相应的DataGrid表格中。图3.7b最终效果图3.8入库登记功能(1)新建1个窗体,将窗体的“名称”属性设置为frm_rkd,Caption属性设置为“入库单”、其余为默认设置。然后,在窗体上添加Adodc控件和DataGrid控件(2)在窗体中添加1个DataGrid控件,使用默认名称,分别设置控件的选取框样式,在DataGrid控件上单击鼠标右键,选择“属性”菜单,弹出“属性页”,选择“拆分”选项卡,将DataGrid控件的选取边框样式设置为6-dbgHighlightRowRaise,如图3.9所示。图3.9 设置边框样式(3)在窗体中添加1个ADO控件,名称为Adodc1Visible属性均设置为False。入库单窗体的设计结果如图3.10所示。图3.10 进货单窗体的设计结果(4) 窗体的装载过程中,主要实现以下功能:(5) a建立数据库的连接,初始化ADO数据源。图3.11b将已有的部分入库单内容通过Select语句绑定到相应的DataGrid表格中。图3.12c并在入库单窗口中用过按钮实现数据的添加删除和数据库的更新。图3.13(6) 最终效果图出库管理出库一览功能新建1个窗体,将窗体的“名称”属性设置为frm_sale,Caption属性设置为“出库管理”、其余为默认设置。图3.15 添加ActiveX控件在窗体中添加1个DataGrid控件,使用默认名称,分别设置控件的选取框样式,在DataGrid控件上单击鼠标右键,选择“属性”菜单,弹出“属性页”,选择“拆分”选项卡,将DataGrid控件的选取边框样式设置为6-dbgHighlightRowRaise,如图3.16所示。图3.16 设置边框样式在窗体中添加1个ADO控件,名称为Adodc1Visible属性均设置为False。出库管理窗体的设计结果如图3.17所示。图3.17 出货一览窗体的设计结果窗体的装载过程中,主要实现以下功能:(1) 建立数据库的连接,初始化ADO数据源。图3.18(2) 将已有的部分出库单内容通过Select语句绑定到相应的DataGrid表格中。图3.19(3) 通过按钮实现出库信息的修改最终效果图库存盘点库存盘点主要对库存商品数量进行核实,并计算盘点盈亏数量和盈亏金额及对查询盘点商品、对盘点商品进行数据打印。库存盘点模块的运行结果如图图3.211窗体设计(1)新建1个窗体,将窗体的“名称”属性设置为“frm_checkStock”,Caption属性设置为“库存盘点(自动盘盈盘亏)”、MaxButton属性为False。(2)在窗体上添加Adodc控件和MSFlexGrid控件,设置MSFlexGrid控件名称为MS1,其他属性均为默认设置。(3)添加Textbox控件、Label控件、CommandButton控件。库存盘点窗体设计结果如图3.22图3.222代码设计当库存中含有大量商品时,需将指定的商品查询结果筛选出来并通过MSFlexGrid表格显示。【查询】按钮Click事件的代码如下:Private Sub cmdFind_Click() MS1.Clear ADO控件的RecordSource执行SQL语句 Adodc1.RecordSource = SELECT tradecode, fullname, type, standard, produce, unit, qty, stockcheck FROM tbS_stock WHERE (tradecode LIKE % & txtTradecode & %) AND (fullname LIKE % + txtFullname + %) AND (type LIKE % + txtType + %) AND (standard LIKE % + txtStandard + %) AND (produce LIKE % + txtProduce + %) Adodc1.Refresh Call MSF1 调用过程,初始化MSFlexGrid控件 If Adodc1.Recordset.RecordCount 0 Then MS1.Rows = Adodc1.Recordset.RecordCount For i = 1 To Adodc1.Recordset.RecordCount 将控件 MS1.TextMatrix(i, 1) = Adodc1.Recordset.Fields(0) MS1.TextMatrix(i, 2) = Adodc1.Recordset.Fields(1) MS1.TextMatrix(i, 3) = Adodc1.Recordset.Fields(2) MS1.TextMatrix(i, 4) = Adodc1.Recordset.Fields(3) MS1.TextMatrix(i, 5) = Adodc1.Recordset.Fields(4) MS1.TextMatrix(i, 6) = Adodc1.Recordset.Fields(5) MS1.TextMatrix(i, 7) = Adodc1.Recordset.Fields(6) On Error Resume Next 可以赋值空 MS1.TextMatrix(i, 8) = Adodc1.Recordset.Fields(7) Adodc1.Recordset.MoveNext 将记录移动到下一条 Next i 定义MS1表的列序号 For i = 1 To MS1.Rows MS1.TextMatrix(i, 0) = i Next i Else MsgBox 无此商品 End IfEnd Sub窗体的Load事件主要用于初始化数据库连接和设置MSFlexGrid表格相关属性。Private Sub Form_Load() Adodc1.ConnectionString = PublicStr ADO控件的RecordSource执行SQL语句 Adodc1.RecordSource = SELECT tradecode, fullname, type, standard, produce, unit, qty, stockcheck FROM tbS_stock Adodc1.Refresh Call MSF1 调用过程,初始化MSFlexGrid控件 If Adodc1.Recordset.RecordCount 0 Then MS1.Rows = Adodc1.Recordset.RecordCount For i = 1 To Adodc1.Recordset.RecordCount MS1.TextMatrix(i, 1) = Adodc1.Recordset.Fields(0) MS1.TextMatrix(i, 2) = Adodc1.Recordset.Fields(1) MS1.TextMatrix(i, 3) = Adodc1.Recordset.Fields(2) MS1.TextMatrix(i, 4) = Adodc1.Recordset.Fields(3) MS1.TextMatrix(i, 5) = Adodc1.Recordset.Fields(4) MS1.TextMatrix(i, 6) = Adodc1.Recordset.Fields(5) MS1.TextMatrix(i, 7) = Adodc1.Recordset.Fields(6) On Error Resume Next 可以赋值空 MS1.TextMatrix(i, 8) = Adodc1.Recordset.Fields(7) Adodc1.Recordset.MoveNext 将记录移动到下一条 Next i 定义MS1表的列序号 For i = 1 To MS1.Rows MS1.TextMatrix(i, 0) = i Next i Else MsgBox 仓库没有商品 End IfEnd Sub自定义过程MSF1,主要用于初始化MSFlexGrid表格的总列数、总行数和列标题等。Sub MSF1() MS1.Cols = 11 定义MS1控总列数。 定义MS1表的宽度 MS1.ColWidth(0) = 12 * 25 * 1 MS1.ColWidth(1) = 12 * 25 * 3 MS1.ColWidth(2) = 12 * 25 * 6 MS1.ColWidth(3) = 12 * 25 * 3 MS1.ColWidth(4) = 12 * 25 * 3 MS1.ColWidth(5) = 12 * 25 * 5 MS1.ColWidth(6) = 12 * 25 * 3 MS1.ColWidth(7) = 12 * 25 * 3 MS1.ColWidth(8) = 12 * 25 * 3 MS1.ColWidth(9) = 12 * 25 * 4 MS1.ColWidth(10) = 12 * 25 * 4 设置固定行、列 MS1.FixedRows = 1: MS1.FixedCols = 1 定义MS1表的表头 MS1.TextMatrix(0, 0) = NO。 MS1.TextMatrix(0, 1) = 商品编号 MS1.TextMatrix(0, 2) = 商品名称 MS1.TextMatrix(0, 3) = 商品型号 MS1.TextMatrix(0, 4) = 商品规格 MS1.TextMatrix(0, 5) = 商品产地 MS1.TextMatrix(0, 6) = 商品单位 MS1.TextMatrix(0, 7) = 库存数量 MS1.TextMatrix(0, 8) = 盘点数量 MS1.TextMatrix(0, 9) = 盘点盈亏数量 MS1.TextMatrix(0, 10) = 盘点盈亏金额 Text1.Text = Text1.Width = MS1.CellWidth: Text1.Height = MS1.CellHeight Text1.Left = MS1.CellLeft + MS1.Left Text1.Top = MS1.CellTop + MS1.Top MS1.Col = 8End Sub单击MSFlexGrid控件选中的单元格,将选中单元格中的数据赋给Text1,如果选中的列为盘点数量列,则Text1控件可用,否则Text1控件不可用。Private Sub MS1_Click() MS1.Text = Text1.Text Text1.Text = MS1.Text If MS1.Col = 8 Then Text1.Visible = True 设置text3可见 Text1.SetFocus 使控件获得焦点 text3获得焦点 Text1.Locked = False 解除控件锁定 Else Text1.Locked = True 锁定控件 End IfEnd Sub确定Text1控件大小与MSFlexGrid控件的单元格大小。在MSFlexGrid的EnterCell事件添加如下代码:Private Sub MS1_EnterCell() Dim X As String, y As String, p As String If MS1.CellWidth = 0 Or MS1.CellHeight = 0 Then Exit Sub X = MS1.TextMatrix(MS1.FixedRows, MS1.Col) y = MS1.TextMatrix(MS1.Row, 0) If y Then If MS1.Col - MS1.LeftCol 0 And MS1.CellHeight 0 Then Text1.Width = MS1.CellWidth Text1.Height = MS1.CellHeight Text1.Left = MS1.CellLeft + MS1.Left Text1.Top = MS1.CellTop + MS1.Top End If X = MS1.TextMatrix(MS1.FixedRows, MS1.Col) y = MS1.TextMatrix(MS1.Row, 0) p = MS1.TextMatrix(MS1.Row, MS1.Col) Text1.Text = MS1.Text 赋值给text1.text End IfEnd Sub当Text1控件中位于MSFlexGrid控件的第8列时,在Text1中按Enter键后将盘点的数量、盘点盈亏数量和盘点盈亏金额添加到数据表中。Private Sub Text1_KeyPress(KeyAscii As Integer) On Error Resume Next VbKeyReturn常数为键盘上的回车键 If KeyAscii = vbKeyReturn Then 按Enter键,text3向右移动 If MS1.Col = 8 Then: MS1.Text = Text1.Text: Text1.Text = MS1.Text If MS1.Col = 8 Then ADO控件的RecordSource执行SQL语句 Adodc1.RecordSource = select * from tbS_stock where tradecode= + MS1.TextMatrix(MS1.Row, 1) + Adodc1.Refresh If Adodc1.Recordset.RecordCount 0 Then 计算盘点盈亏数量和金额 MS1.TextMatrix(MS1.Row, 9) = Val(MS1.TextMatrix(MS1.Row, 8) - Val(MS1.TextMatrix(MS1.Row, 7) If Adodc1.Recordset.Fields(averageprice).Value = 0 Then MS1.TextMatrix(MS1.Row, 10) = Val(MS1.TextMatrix(MS1.Row, 9) * Adodc1.Recordset.Fields(price).Value Else MS1.TextMatrix(MS1.Row, 10) = Val(MS1.TextMatrix(MS1.Row, 9) * Adodc1.Recordset.Fields(averageprice).Value End If Adodc1.Recordset.Fields(stockcheck) = Val(MS1.TextMatrix(MS1.Row, 8) Adodc1.Recordset.Update End If MS1.Row = MS1.Row + 1 MS1.Col = 8 End If End IfEnd Sub3.2.7库存上下限预警主要功能为查看库存商品数量、商品均价、库存商品总价及库存上下限设置,以及调用子窗体库存明细账本。运行结果如图3.23所示。图3.231窗体设计(1)新建1个窗体,将窗体的“名称”属性设置为frm_Stock,Caption属性设置为“库存状况”、MaxButton属性为False。(2)在窗体上添加2个Adodc控件和DataGrid控件,由于二者属于ActiveX控件(添加方法前面已经讲解过了),在此其属性均为默认设置。(3)在窗体上添加ToolBar控件和ImageList控件(4)添加DataCombo控件,该控件属于ActiveX控件,在使用之前必须从“部件”对话框中添加到工具箱,添加方法为:在“工程”/“部件”对话框中勾选“Microsoft DataList Controls 6.0(SP5)”列表项。其属性均为默认设置。(5)添加Label控件、TextBox控件、CommandButton控件。(6)在窗体上添加StatusBar控件,该控件属于ActiveX控件,添加Toobar控件时已经将StatusBar控件添加到工具箱中了,设置StatusBar控件。本名称属性为默认值,添加3个窗格,第一个窗格文本设置为“时间”,其他属性均为默认设置。2程序代码设计保存库存上下限报警设置。在【确定】按钮的Click事件下添加代码如下:Private Sub cmdsave_Click() ADO控件的RecordSource执行SQL语句 On Error Resume Next Adodc2.RecordSource = select * from tbS_stock where tradecode= + Adodc1.Recordset.Fields(0) + Adodc2.Refresh If Err.Number 0 Then If MsgBox(出现“数据库中无有效数据”错误,是否继续?, vbQuestion + vbYesNo, 系统提示) = vbNo Then Frame2.Visible = False Exit Sub End If End If If Adodc2.Recordset.RecordCount 0 Then Adodc2.Recordset.Fields(upperlimit).Value = Val(Text1.Text) Adodc2.Recordset.Fields(lowerlimit).Value = Val(Text2.Text) Adodc

温馨提示

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

评论

0/150

提交评论