何金-物流管理系统的开发和实现毕业设计_第1页
何金-物流管理系统的开发和实现毕业设计_第2页
何金-物流管理系统的开发和实现毕业设计_第3页
何金-物流管理系统的开发和实现毕业设计_第4页
何金-物流管理系统的开发和实现毕业设计_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

四川理工学院毕业设计 物流管理系统的设计和实现 学 生 何 金 学 号 专 业 通信工程 班 级 通信工程 2007 3 指导教师 潘少静 李朝晖 四川理工学院自动化与电子信息工程系 二 O 一一年六月 何金 物流管理系统的设计和实现 I 摘 要 进入二十一世纪的今天 物流管理被越来越多的人所接受 物流管理必须 有合理的仓储和运输 一个合理的仓储可以为企业减少不必要的浪费 运输车 辆的合理分配也会为企业带来可观的利润 大型的仓储和运输管理系统软件 费用较高 普通中小型企业根本无法承担其费用 因此 研制一个基于仓储和 运输管理系统是十分必要的 本系统正是基于以上的考虑 以 VB 语言为开发 工具 ACCESS 2000 为数据库平台进行开发 形成了一套适合中小企业使用的 仓储和运输系统软件 为企业和用户带来一定的社会效益和经济效益 关键词关键词 物流管理 仓储 运输 何金 物流管理系统的设计和实现 II ABSTRACT Into the 21ST century logistics management to be more and more people are acceptable Logistics management must be reasonable storage and transport storage can be a reasonable for companies to reduce unnecessary waste transport vehicles for a reasonable distribution of business will generate substantial profits The large scale storage and transportation management system software High cost As a result based on the development of warehousing and transportation management system is essential the system is based on the above considerations In order to VB language development tools Access 2000 database platform for the development The formation of a set of small and medium enterprises foe the use and storage of transport system software For corporate users and a certain degree of social and economic benefits Keywords storage and transportation logistics management 何金 物流管理系统的设计和实现 目录 摘 要 I ABSTRACT II 第 1 章 引 言 1 1 1 绪 论 1 1 2 课题背景 2 1 3 课题的任务 4 第 2 章 项目可行性分析 5 2 1 具体要求 5 2 2 开发周期可行性 5 2 3 开放环境及开发平台可行性 6 2 3 1 项目开发环境及开发平台 6 2 3 2 程序概念 7 2 4 事件驱动编程 7 第 3 章 项目总体设计 9 3 1 程序模型结构图 9 3 2 程序设计 10 3 2 1 数据库设计 10 3 2 2 ADO 程序接口设计 12 3 2 3 VB 程序设计 17 第 4 章 模块详细设计 19 4 1 货品添加窗体 FrmBaleAdd frm 19 4 2 货品删除窗体 FrmBaleDel frm 21 4 3 货品盘点窗体 FrmBaleUpdate frm 23 4 4 主 MDI 窗体 MDIFrmMain frm 26 4 5 登录窗体 FrmLogin frm 31 4 6 进货管理窗体 FrmBaleIn frm 38 4 7 出货管理模块 FrmBaleOut bas 46 第 5 章 结束语 50 何金 物流管理系统的设计和实现 4 致谢 51 参考文献 52 四川理工学院毕业 设计 论文 1 第 1 章 引 言 1 1 绪 论 物流概念的提出是人的能力增强所导致的必然结果 过去在工业化过程中 由于能力所限 人们的注意力放在厂区范围内 至于原料和产品在厂外怎样流 动 考虑的相对少一些 只要成本低就好 随着人的能力的增强和社会化 专 业化大生产体系的建立 人们开始将一个区域 甚至整个世界 整个地球看做 一个大工厂 一个整体来研究产品生产流程的合理性和优化问题 从过去把重 点放在生产工厂的合理建设转移到把重点放在物资流通全过程的合理设计上 仅把工厂看做物资流动过程中的一个驻留点 狭义地讲 如果认为运输组织意味着运输过程优化 侧重于合理使用运输 工具 那么物流组织则意味着流动过程的优化 侧重于物资流动方式的合理性 由运输向物流的转变相当于把运输工具与运输对象的位置做了对调 再进一步 讲 这种转变把生产与流通运输这一对对立统一的事物的位置也做了调整 过 去以研究生产为主 运输流动为辅 现在以流通运输为主 生产为辅 这就是 物流概念的新意所在 位置的调换会使人产生不同的感觉 这样做有时有利于启发新思路 有利 于解决问题和提高管理水平 这也说明并非只有新的事物 新的技术能给人们 带来效益 一个理念 观念或思路的改变也会给人们带来新意和效益 它遵循 的基本规律是 理念改变 概念改变 业务改变 效果改变 抓住物流概念的实质才能纲举目张 有的放矢 做到转变服务意识 从坐 等客户上门到主动上门为客户服务 并提供多样化的 使客户满意的服务 也 正因为服务质量的改善 扩大了服务范围 使许多物流经营者获得显著效益 与过去的运输过剩和不景气相比 运输市场出现了蓬勃发展的势头 何金 物流管理系统的设计和实现 2 1 2 课题背景 国家对企业信息化的重视 电子政务的推广 海关的改革 物流业务自身 的迅速发展 都充当了物流信息化进程中强有力的助推器 而 IT 业对于物流的 关注则成为了直接的动力 整个物流产业对于信息技术的需求分为三类 应该 提倡效益为本 需求为先 循序渐进的信息化实施之路 基础信息化需求仍是主流 第一类是基础信息化 由于信息技术的发展和普及 特别是近几年 互联 网技术已经在解决信息共享 信息传输 信息标准和信息成本等问题上 有了 长足的进步 使得信息可以广泛地成为调控和决策的基础 因此 信息化最大 的作用就是使企业顺利实现信息的采集 传输 加工和共享 最后在决策过程 中有效地利用各种信息 从而提高经济效益 这之中有很多的难点 比如说信息的采集 如果企业的信息系统和业务系 统是两套 就不容易实现实时的信息采集 所以 必须要使业务系统和信息系 统合一 或者说必须用信息系统来做业务 只有这样 才能够真正解决好信息 的采集问题 而信息的共享 会涉及到很多机制问题 目前 大量的企业还不 能够做到信息共享 因此 信息用于决策的部分还不多 所以 在这样一个情 况下 完善基础信息化建设是首先要做的事 优化带来管理效益的提高 在基础信息化实现以后 就会有第二层的需求 一些条件比较好的企业经 过一段时间运行以后 将会开始寻求改进 利用积累下来的数据 进行优化 优化主要是在两个层面上 一个是流程的优化 会涉及到整个的流程再造 这就需要用数据来分析 所以一定要有第一阶段的基础 第二个方面的优化是 日常操作的优化 比如说每天都有的库存的改变 运输的调度 同样也需要信 息系统的支持 做好优化的工作 将能够大大提高物流管理的效率 流程的改造 日常操 作的优化都会带来看得见的效益 所以 这就比仅仅依赖于获得信息 还是人 四川理工学院毕业 设计 论文 3 工决策 要上一个层次 等于是机器用数据来进行优化的决策 当然 这个要求相对要高一些 因为这要求在相应的信息系统中必须有一 个优化的模块 换句话说 要有一个实现优化的模型和算法 而在实际操作中 这样的模型是很难概括的 如果不对业务进行深入地了解 绝对不能形成这样 的优化模型 同时还要保证实时 高效 才有可能满足业务的需要 目前 这一层次的信息系统建设进行得还很不完备 据估计 在收集到的 案例中 明显含有这块功能的信息系统仅占 15 左右 供应链管理打造共赢模式 第三层次 也是最高层次的需求 就是供应链管理的工具 供应链这个概 念包含的内容很多 不仅仅是物流 还包括其他方面的内容 供应链是用来调 节企业和企业之间的协作关系 在市场经济成熟到一定程度之后出现的一种概 念 在市场经济发展初期 企业和企业之间是完全竞争的 只有到了成熟的产 品链 价值链 服务链形成以后 企业和企业之间才有一种依存和战略合作的 关系 它们在业务上才会产生协同的要求 一旦建立这种要求 企业之间就需 要用一套信息系统把这一要求固定下来 来执行业务上的协同操作 例如 在 上下游的企业之间 库存信息对彼此是公开的 采购不再是由一次次的招标来 完成 而是变成自动补货 这种情况是建立在企业经营链基础之上的一种新的 业务模式 而供应链管理的软件 正是用来解决这些问题的有效工具 立足实际力争三步并作一步走 我国物流信息化目前的需求仍是以底层的基础信息化为主 现有的物流管 理软件大多仅仅是反映信息 只有少数很成熟的软件对流程和操作的优化具备 很强的功能 将物流信息化的需求分为三层 有助于了解发展的趋势 了解自己的目标 尽管供应链管理在我国现在还没有太多成功案例 但是并不代表没有这方面的 发展条件 只要企业之间不断加强合作 建立战略合作伙伴关系 进行业务上 的协同 必将促进供应链 价值链的形成 所以 只要充分利用资源 我国的物流信息化实现三步并作一步走 是完 何金 物流管理系统的设计和实现 4 全有可能的 但是 实现这一目标 就要求企业必须给自己定好位 绝对不能 从观念出发 不能脱离实际 每一层的需求都需要一定的基础 一定的管理水 准 一定的物质和技术条件 从这个意义上讲 只有最合适企业的系统才可能 取得成功 1 3 课题的任务 利用可视化编程语言 Microsoft Visual Basic 和数据库编程语言 SQL 完成 整个物流管理系统的设计 掌握科技文献检索的方法 完成论文的撰写 在此次要物流管理系统中 我的工作包括 1 制订可行性分析报告 进行项目需求分析 完成 E R 模型设计 2 功能及模块的初步设计 3 数据库设计与实现 四川理工学院毕业 设计 论文 5 第 2 章 项目可行性分析 2 1 具体要求 本次开发任务所要完成的是面向中小型企业及单一仓库管理的物流管理系 统软件 以实现物流智能化管理 按照具体环境设定对其提出如下具体要求 1 分级的数据库和用户管理 要求具有可靠的数据库连接 用户必须通过 密码才能登陆功能使用环境 并且根据不同用户提供不同的权限 2 实现货品资料的管理 添加 删除 修改等操作 3 实现仓库资料的管理 添加 删除 修改等操作 4 实现物流的管理 进货 出货 货品流动等操作 5 实现报表浏览打印等功能 6 帮助功能 7 可移植可扩充性 2 2 开发周期可行性 1 可行性研究及需求分析 一周时间 2 程序概要设计 两周时间 3 程序详细设计 三周时间 4 系统测试及试运行 修改 一周时间 何金 物流管理系统的设计和实现 6 2 3 开放环境及开发平台可行性 2 3 1 项目开发环境及开发平台 系统设计平台 Microsoft Windows 2000 SP2 数据库设计工具 Microsoft Access 2000 程序设计工具 Microsoft Visual Basic 6 0 何为 Visual Basic Basic 到 Visual Basic 的发展 BASIC 是 Beginner s All purpose Symbolic Instruction Code 初学者通用符 号指令代码 的缩写 是国际上广泛使用的一种计算机高级语言 BASIC 简单 易学 目前仍是计算机入门的主要学习语言之一 BASIC 语言的问世及发展 BASIC 语言自其问世经历了以下四个阶段 第一阶段 1964 年 70 年代初 1964 年 BASIC 语言问世 第二阶段 1975 年 80 年代中 微机上固化的 BASIC 第三阶段 80 年代中 90 年代初 结构化 BASIC 语言 第四阶段 1991 年以来 Visual BASIC 1991 年 微软推出了 Visual Basic1 0 版 这在当时引起了很大的轰动 许 多专家把 VB 的出现当作是软件开发史上的一个具有划时代意义的事件 其实 以我们现在的目光来看 VB10 的功能实在是太弱了 但在当时 它是第一个 可视 的编程软件 这使得程序员欣喜之极 都尝试在 VB 的平台上进行软 件创作 微软也不失时机地在四年内接连推出 VB20 VB30 VB40 三个版本 并且从 VB3 开始 微软将 ACCESS 的数据库驱动集成到了 VB 中 这使得 VB 的数据库编程能力大大提高 从 VB4 开始 VB 也引入了面向对象的程序设计 思想 VB 功能强大 学习简单 而且 VB 还引入了 控件 的概念 使得大 量已经编好的 VB 程序可以被我们直接拿来使用 如今 VB 已经有了 6 0 版 四川理工学院毕业 设计 论文 7 通过几年的发展 它已成为一种真真专业化的开发语言和环境 用户认为 可用 Visual Basic 快速创建 Windows 程序 在现在还可以编写企业水平的客户 服务器程序及强大的数据库应用程序 Visual Basic 新版中还有更多可用功能 2 3 2 程序概念 首先需要知道下面这个问题的答案 程序到底是什么 计算机程序是 指令集 它告诉计算机如何执行特殊的任务 读者也许对许多种指令熟悉 如 按菜谱烹调特殊的食物或按指定的方向到达不熟悉的目的地 没有这些特殊的 指令 就不能执行预期的任务 计算机也是一样 只是它们需要为执行的每一个任务提供指令 甚至对最 简单的任务也需要指令 例如如何取得击键 怎样在屏幕上放一个字母 怎样 在磁盘中保存讯息 幸运的是 许多这样的指令包含在处理器芯片中或内置于 操作系统中 因此用户不必担心它们 相反 应集中于为任务提供指令 如计 算雇员工资 创建邻居邮件列表 或设置格式化文本以显示最近的年度报表信 息 虽然我们用自然语言读这些指令 但计算机指令必须是二进制代码 即一 系列在计算机内存和处理器中的开或关的状态 有些语言 如汇编程序 可以 允许直接写这种类型的代码 但是 以这种方法编程十分困难 因此 VisualBasic 和其他编程语言使程序员可以用与自然语言有点相近的方式编写指 令 然而 即使是这些指令仍有限 并要遵循高度定义的结构 2 4 事件驱动编程 Visual Basic 允许创建反映用户动作和系统事件的程序 这种编程叫事件驱 动编程 要了解事件驱动程序是怎样工作的 先要了解过去的程序怎样运行及 在 Windows 环境中有何不同 在 Windows 之前 程序以顺序方式运行 也就是说 一旦程序启动 它就 一条指令一条指令的向前执行 直到程序结束或出现致命错误 何金 物流管理系统的设计和实现 8 面向对象编程 使创建 Windows 程序较为容易的关键技术是面向对象编程 或 OOP 这 种技术可以创建可重用组建 它是程序的组成模块 在讨论 Visual Basic 时 经常可以听到这些术语 因此对这些术语的基本 理解十分有帮助 控件提供程序可见界面的可重用对象 控件的示例有文本框 标签和命令按钮 事件 由用户或操作系统引发的动作 事件的示例有击键 单击鼠标 一 段时间的限制 或从端口接收数据 方法 嵌入在对象定义中的程序代码 它定义对象怎样处理信息并响应某 事件 例如 数据库对象有打开纪录集并从一个记录移动到另一个记录的方法 对象 程序的基本元素 它含有定义其特征的属性 定义其任务和识别它 可以响应的事件的方法 控件和窗体是 Visual Basic 中所有对象的示例 过程 为完成任务而编写的代码段 过程通常用于响应特定的事件 属性 对象的特征 如尺寸 位置 颜色或文本 属性决定对象的外观 有时也决定对象的行为 属性也用于为对象提供数据和从对象取回信息 四川理工学院毕业 设计 论文 9 第 3 章 项目总体设计 3 1 程序模型结构图 图 3 1 程序结构图 主界面 帮助 货品管理 仓库管理 物流管理 添加 删除 修改 添加 删除 修改 添加 删除 修改 登陆 何金 物流管理系统的设计和实现 10 3 2 程序设计 3 2 1 数据库设计 数据库类型 Microsoft Access2000 数据库 数据库连接 ADO ActiveX Data Object 数据库连接控件 数据库名称 lms mdb 表 3 1 到表 3 6 是该程序各模块关键字段名及字段类型 用以定义各个模 块所决定的功能 bale 表 用于保存货品信息 表 3 1 货品信息保存 字段名字段名字段类型字段类型关键字关键字说明说明 BaleIDCHAR Yes 货品 ID BaleNameCHAR货品名称 BaleFromCHAR货品产地 BaleSpecCHAR货品规格 BalePriceCURRENCY货品价格 BaleMemoMEMO货品备注 config 表 系统设置表 表 3 2 系统设置 字段名字段名字段类型字段类型关键字关键字说明说明 SetupTimeDATETIME程序启用时间 AdminPswCHAR管理员密码 GuestEnabledBOOLEAN是否支持匿名访问 四川理工学院毕业 设计 论文 11 depot 表 仓库资料表 表 3 3 仓库资料 字段名字段名字段类型字段类型关键字关键字说明说明 DepotIDCHARYes仓库 ID DepotNameCHAR仓库名称 DepotLocalCHAR仓库地址 DepotMemoMEMO仓库注释 operator 表 管理员信息表 表 3 4 管理员信息 字段名字段名字段类型字段类型关键字关键字说明说明 OpIDCHARYes 管理员 ID OpLoginCHAR 管理员用户名 OpPswCHAR 管理员密码 OpEnabledCHAR 管理员是否可用 OpMemoMEMO 管理员备注 storage 表 存储信息表 表 3 5 储存信息 字段名字段名字段类型字段类型关键字关键字说明说明 OpIDCHARYes 管理员 ID OpLoginCHAR 管理员用户名 OpPswCHAR 管理员密码 OpEnabledCHAR 管理员是否可用 OpMemoMEMO 管理员备注 何金 物流管理系统的设计和实现 12 Storage 货物库存表 表 3 6 货物库存 字段名字段名字段类型字段类型关键字关键字说明说明 SIDCHARYes存储记录 SbBaleIDCHAR存储货品编号 SDepotIDCHAR存储仓库编号 STotalCHAR存储数量 3 2 2 ADO 程序接口设计 数据库的访问控制方法 目前在 VB 中可以通过三种方式访问数据库 1 IDC Internet Database Connector 方式 IDC 是一个传统的数据库查询工具 用来定义和执行数据库查询的 SQL 命令 并向浏览器返回一个指定数据格式的页面 使用 IDC 访问数据库最大的 特点是简单 几乎不需要编程就能实现对数据库的访问 2 ADO ActiveX Data Objects 方式 ADO 访问数据库 更像编写数据库应用程序 它把绝大部分的数据库操 作封装在七个对象中 在编程调用这些对象执行相应的数据库操作 ADO 是 ASP 技术的核心之一 它集中体现了 ASP 技术丰富而灵活的数据 库访问功能 ADO 建立了基于 Web 方式访问数据库的脚本编写模型 不仅支 持任何大型数据库的核心功能 而且支持许多数据库所专有的特性 一般使用 ADO 访问数据库的程序应该使用 Connection 对象建立并管理与 远程数据库的连接 用 Command 对象提供灵活的查询 用 Recordset 对象访问 数据库查询所返回的结果 这三者是 ADO 的最核心的对象 这种方式将是我 的设计中用到的主要数据库访问方式 四川理工学院毕业 设计 论文 13 3 RDS Remote Data Service 方式 RDS 提供访问远程数据库的功能 ADO 虽然能够提供非常强大的数据库 访问功能 但是它不支持数据远程操作 Data Remoting 而 RDS 支持数据远 程操作 它不仅能执行查询并返回数据库查询结果 而且可以把服务器端的数 据 搬到 用户端修改 并调用一个数据库更新命令 将用户端修改的数据写 回数据库 象使用本地数据库一样 ADO 定义编程模型 即访问和更新数据源所必需的活动顺序 编程模型 概括了 ADO 的全部功能 编程模型意味着对象模型 即响应并执行编程模型的 对象 组 对象拥 有 方法 方法执行对数据进行的操作 对象拥有 属性 属性指示数据的 某些特性或控制某些对象方法的行为 与对象关联的是 事件 事件是某些操作已经发生或将要发生的通知 ADO 提供执行以下操作的方式 1 连接到数据源 同时 可确定对数据源的所有更改是否已成功或没有发 生 2 指定访问数据源的命令 同时可带变量参数 或优化执行 3 执行命令 4 如果这个命令使数据按表中的行的形式返回 则将这些行存储在易于检 查 操作或更改的缓存中 5 适当情况下 可使用缓存行的更改内容来更新数据源 6 提供常规方法检测错误 通常由建立连接或执行命令造成 在典型情况下 需要在编程模型中采用所有这些步骤 但是 由于 ADO 有很强的灵活性 所以最后只需执行部分模块就能做一些有用的工作 例如 将数据从文件直接存储到缓存行 然后仅用 ADO 资源对数据进行检查 ADO 编程模型 何金 物流管理系统的设计和实现 14 1 连接 通过 连接 可从应用程序访问数据源 连接是交换数据所必需的环境 通过如 Microsoft Internet Information Server 作为媒介 应用程序可直接 有 时称为双层系统 或间接 有时称为三层系统 访问数据源 对象模型使用 Connection 对象使连接概念得以具体化 事务 用于界定在连接过程中发生的一系列数据访问操作的开始和结束 ADO 可明确事务中的操作造成的对数据源的更改或者成功发生 或者根本没 有发生 如果取消事务或它的一个操作失败 则最终的结果将仿佛是事务中的操作 均未发生 数据源将会保持事务开始以前的状态 对象模型无法清楚地体现出事务的概念 而是用一组 Connection 对象方 法来表示 2 命令 通过已建立的连接发出的 命令 可以某种方式来操作数据源 一般情况 下 命令可以在数据源中添加 删除或更新数据 或者在表中以行的格式检索 数据 对象模型用 Command 对象来体现命令概念 Command 对象使 ADO 能 够优化对命令的执行 3 参数 通常 命令需要的变量部分即 参数 可以在命令发布之前进行更改 例 如 可重复发出相同的数据检索命令 但每一次均可更改指定的检索信息 参数对执行其行为类似函数的命令非常有用 这样就可知道命令是做什么 的 但不必知道它如何工作 例如 可发出一项银行过户命令 从一方借出贷 给另一方 可将要过户的款额设置为参数 对象模型用 Parameter 对象来体现参数概念 四川理工学院毕业 设计 论文 15 4 记录集 如果命令是在表中按信息行返回数据的查询 行返回查询 则这些行将 会存储在本地 对象模型将该存储体现为 Recordset 对象 但是 不存在仅代 表单独一个 Recordset 行的对象 记录集是在行中检查和修改数据最主要的方法 Recordset 对象用于 指定可以检查的行 移动行 指定移动行的顺序 添加 更改或删除行 通过更改行更新数据源 管理 Recordset 的总体状态 5 字段 一个记录集行包含一个或多个 字段 如果将记录集看作二维网格 字 段将排列构成 列 每一字段 列 都分别包含有名称 数据类型和值的属性 正是在该值中包含了来自数据源的真实数据 对象模型以 Field 对象体现字段 要修改数据源中的数据 可在记录集行 中修改 Field 对象的值 对记录集的更改最终被传送给数据源 作为选项 Connection 对象的事务管理方法能够可靠地保证更改要么全部成功 要么全部 失败 6 错误 错误随时可在应用程序中发生 通常是由于无法建立连接 执行命令或对 某些状态 例如 试图使用没有初始化的记录集 的对象进行操作 对象模型以 Error 对象体现错误 任意给定的错误都会产生一个或多个 Error 对象 随后产生的错误将会放弃先前的 Error 对象组 何金 物流管理系统的设计和实现 16 7 属性 每个 ADO 对象都有一组唯一的 属性 来描述或控制对象的行为 属性有两种类型 内置和动态 内置属性是 ADO 对象的一部分并且随时 可用 动态属性则由特别的数据提供者添加到 ADO 对象的属性集合中 仅在 提供者被使用时才能存在 对象模型以 Property 对象体现属性 8 集合 ADO 提供 集合 这是一种可方便地包含其他特殊类型对象的对象类型 使用集合方法可按名称 文本字符串 或序号 整型数 对集合中的对象进行 检索 ADO 提供四种类型的集合 Connection 对象具有 Errors 集合 包含为响应与数据源有关的单一错误 而创建的所有 Error 对象 Command 对象具有 Parameters 集合 包含应用于 Command 对象的所有 Parameter 对象 Recordset 对象具有 Fields 集合 包含所有定义 Recordset 对象列的 Field 对象 另外 Connection Command Recordset 和 Field 对象都具有 Properties 集合 它包含所有属于各个包含对象的 Property 对象 ADO 对象拥有可在其上使用的诸如 整型 字符型 或 布尔型 这 样的普通数据类型来设置或检索值的属性 然而 有必要将某些属性看成是数 据类型 COLLECTION OBJECT 的返回值 相应的 集合对象具有存储和检 索适合该集合的其他对象的方法 事件 事件 是对将要发生或已经发生的某些操作的通知 一般情况下 可用 事件高效地编写包含几个异步任务的应用程序 四川理工学院毕业 设计 论文 17 对象模型无法显式体现事件 只能在调用事件处理程序例程时表现出来 在操作开始之前调用的事件处理程序便于对操作参数进行检查或修改 然 后取消或允许操作完成 操作完成后调用的事件处理程序在异步操作完成后进行通知 多个操作经 过增强可以有选择地异步执行 例如 用于启动异步 Recordset Open 操作的应 用程序将在操作结束时得到执行完成事件的通知 ADO 常用对象和方法 1 Connection 对象 ADO 数据库连接对象 用于实现 ADO 与数据库之间 的连接 2 Command 对象 ADO 命令对象 用于保存 SQL 执行命令 负责具体对 数据库的操作 3 Recordset 对象 ADO 记录集对象 用于保存 SQL 执行命令结果 4 Addnew 方法 添加新的记录到数据库中 5 Delete 方法 删除数据库中的记录 Update 方法 更新数据库记录 3 2 3 VB 程序设计 Visual Basic 简称 VB 是 Microsoft 公司推出的一种 Windows 应用程序开 发工具 是当今世界上使用最广泛的编程语言之一 它也被公认为是编程效率 最高的一种编程方法 无论是开发功能强大 性能可靠的商务软件 还是编写 能处理实际问题的实用小程序 VB 都是最快速 最简便的方法 VB 是一种强 大的语言 即您所能想到的编程任务 它基本都能完成 从设计新型的用户界 面到利用其它应用程序的对象 从处理文字图象到使用数据库 从开发个人或 小组使用的小工具 到大型企业应用系统 甚至通过 Internet 的遍及全球分布 式应用程序 都可在 Visual Basic 提供的工具中各取所需 因为 VB 具备了这 何金 物流管理系统的设计和实现 18 些强大的功能 所以在本次的课题设计中决定使用它来完成软件设计 表 3 2 7 所示的是本次所设计软件的各主体模块名称及类型 表 3 1 VB 程序 名称类型说明 MDIFrmMainMDI Form 主 MDI 窗体 FrmBaleAddForm MDI Child 货品添加窗体 FrmBaleDelForm MDI Child 货品删除窗体 FrmBaleUpdateForm MDI Child 货品资料更改窗体 FrmDepotAddForm MDI Child 仓库添加窗体 FrmDepotDelForm MDI Child 仓库删除窗体 FrmDepotUpdateForm MDI Child 仓库资料更改窗体 FrmBaleInForm MDI Child 进货管理窗体 FrmBaleOutForm MDI Child 出活管理窗体 FrmBaleUpdateForm MDI Child 货品流动管理窗体 FrmSysManageForm MDI Child 系统管理窗体 FrmLoginForm MDI Child 登陆窗体 FrmAbout Form关于窗体 DataEnv DataEnvironment报表数据环境 DataRepBaleDataReport 货品报表 DataRepDepotDataReport 仓库报表 ModBootModule 启动模块 四川理工学院毕业 设计 论文 19 第 4 章 模块详细设计 4 1 货品添加窗体 FrmBaleAdd frm 货品添加模块各控件名称及说明如表 4 1 表 4 1 货品添加模块各控件名 控件名称说明 FrmBaleAdd 货品添加窗体 FraMain 主框架 TxtBaleID 货品 ID 信息文本框 TxtBaleName 货品名称信息文本框 TxtBlaeFrom 货品产地信息文本框 TxtBaleSpec 货品规格信息文本框 TxtBalePrice 货品价格信息文本框 TxtBaleMemeo 货品备注信息文本框 CmdAddNew 添加按钮 CmdConfirm 确定操作按钮 CmdCancel 撤消操作按钮 CmdRefresh 刷新按钮 CmdExit 退出按钮 AdoMain 主 ADO 控件 AdoTest 测试 ADO 控件 表 4 1 表示的是在用户登陆时列出所有货品清单 但用户选择添加货品记 录后 会激活资料输入功能 若用户输入完成后点击确认后 会自动检测是否 在数据库中有没有重复编号的数据 若有 拒绝添加 代码如下 Private Sub CmdAddNew Click 点击添加 CmdAddNew Enabled False CmdRefresh Enabled False CmdConfirm Enabled True CmdCancel Enabled True ActiveTextBox 何金 物流管理系统的设计和实现 20 AdoMain Recordset AddNew End Sub Private Sub CmdConfirm Click 确认添加 If TxtBaleID Text Or TxtBaleName Text Then aa MsgBox 请填写货品编号和名称 vbOKOnly Else 检查是否有重复的货品 ID AdoTest RecordSource SELECT FROM Bale WHERE BaleID Data Source Persist Security Info False 以下语句用于在用户名下拉列表中显示所有用户名称 AdoLogin RecordSource SELECT OpLogin FROM operator WHERE OpEnabled true AdoLogin Refresh CmbUserList Clear While Not AdoLogin Recordset EOF CmbUserList AddItem AdoLogin Recordset Fields 0 Value AdoLogin Recordset MoveNext Wend 用于效验匿名用户是否可用 AdoLogin RecordSource SELECT GuestEnabled FROM config AdoLogin Refresh If AdoLogin Recordset Fields 0 Value False Then 四川理工学院毕业 设计 论文 35 OptGuest Enabled False OptGuest Caption OptGuest Caption 目前禁用 Else OptGuest Enabled True End If End Sub 在该窗体中 LogAdmin 过程用于在用户输入管理员密码并点击登陆按钮 后 检查用户密码是否正确 从而设置登陆用户名 具体代码如下 Sub LogAdmin AdoLogin RecordSource SELECT AdminPsw FROM config AdoLogin Refresh If AdoLogin Recordset Fields 0 Value TxtAdminPsw Text Then 密码正确 PubLogin admin Call LogOk Else aa MsgBox 密码不正确 请重新输入 vbOKOnly TxtAdminPsw Text TxtAdminPsw SetFocus End If End Sub 在该窗体中 LogUser 过程用于在用户输入用户密码并点击登陆按钮后 检查用户密码是否正确 从而设置登陆用户名 具体代码如下 何金 物流管理系统的设计和实现 36 Sub LogUser AdoLogin RecordSource SELECT OpLogin OpPsw FROM operator WHERE OpEnabled true AdoLogin Refresh While Not AdoLogin Recordset EOF If AdoLogin Recordset Fields 0 Value CmbUserList Text Then If AdoLogin Recordset Fields 1 Value TxtUserPsw Text Then 密码正确 PubLogin CmbUserList Text Call LogOk Else aa MsgBox 密码不正确 请重新输入 vbOKOnly TxtUserPsw Text TxtUserPsw SetFocus End If End If AdoLogin Recordset MoveNext Wend End Sub 在该窗体中 LogGuest 过程用于在匿名用户点击登陆按钮后 设置登陆用 户名 具体代码如下 Sub LogGuest PubLogin guest 四川理工学院毕业 设计 论文 37 Call LogOk End Sub 在该窗体中 LogOK 过程用于管理员 用户 匿名用户登陆完成后 根据 起身份分配不同的权限 具体代码如下 Sub LogOk MDIFrmMain M Bale Enabled True MDIFrmMain M Depot Enabled True MDIFrmMain M Traffic Enabled True MDIFrmMain M Report Enabled True 若登录的是管理员 可以进行管理工作 If PubLogin admin Then MDIFrmMain M SysManage Enabled True End If 若是匿名登录 则缺少较多权限 If PubLogin guest Then MDIFrmMain M Bale Enabled False MDIFrmMain M Depot Enabled False MDIFrmMain M Traffic Enabled False MDIFrmMain M Report Enabled True End If FraLogin Visible False FraIntro Visible True Call StartIntro 何金 物流管理系统的设计和实现 38 End Sub 4 6 进货管理窗体 FrmBaleIn frm 表 4 6 进货管理模块控件 控件名称说明 AdoMain ADO 数据控件 AdoMain2 第二个 ADO 数据控件 CmdAddNew 添加新货品按钮 CmdAddOld 添加已有货品按钮 FraAddNew 添加新货品框架 FraAddOld 添加已有货品框架 FraMain 主框架 FraBaleIn 进货区框架 LblMsg 消息标签 LblMsg2 消息标签 2 LstAllBale 所有货品清单 LstBale 货品清单 LstDepot 仓库清单 OptBaleInNew 进新货选项 OptBaleInOld 进已有货品选项 TxtNum 数值输入框 TxtNum2 数值输入框 2 图 4 4 进货管理操作界面 表 4 6 表示的是进货管理模块各控件名称及说明 该模块定义了 tDepotID 变量用于保存当前的仓库信息 定义了 tBaleID tBaleName tBaleTotal 变量用 于保存当前仓库中的货品信息 定义了 tBaleID2 tBaleName2 tBaleFrom2 四川理工学院毕业 设计 论文 39 tBaleSpec2 tBalePrice2 变量用于保存当前的货品表中的货品信息 操作界面如 上图 4 4 该模块具体代码如下 定义变量用于保存当前的仓库信息 Dim tDepotID 定义变量用于保存当前仓库中的货品信息 Dim tBaleID tBaleName tBaleTotal 定义变量用于保存当前的货品表中的货品信息 Dim tBaleID2 tBaleName2 tBaleFrom2 tBaleSpec2 tBalePrice2 当用户点了填加新的货品时 该货品的记录回自动保存到 storage 表中 做为存储记录 具体代码如下 Private Sub CmdAddNew Click 增加该仓库中没有的货品的数量 If OptBaleInNew Value True Then AdoMain2 RecordSource SELECT FROM Storage AdoMain2 Refresh If IsNumeric TxtNum2 Text And TxtNum2 Text Then AdoMain2 Recordset AddNew AdoMain2 Recordset Fields SBaleID tBaleID2 AdoMain2 Recordset Fields SDepotID tDepotID AdoMain2 Recordset Fields STotal Value CInt TxtNum2 Text AdoMain2 Recordset Update 何金 物流管理系统的设计和实现 40 AdoMain2 Refresh MsgBox 添加成功 查询货品 CheckBale CheckAllBale End If End If 在仓库中增加新的货品 AdoMain2 Recordset AddNew End Sub 当用户点了添加已有货品按钮后 新的数值会与仓库中原来的数值相加 并写入到 storage 表中 Private Sub CmdAddTotal Click 增加已有货品的数量 If OptBaleInOld Value True Then AdoMain RecordSource SELECT FROM Storage WHERE SBaleID tBaleID AdoMain Refresh If IsNumeric TxtNum Text And TxtNum Text And Not AdoMain Recordset EOF Then AdoMain Recordset Fields STotal Value CInt AdoMain Recordset Fields STotal Value CInt TxtNum Text AdoMain Recordset Update 四川理工学院毕业 设计 论文 41 AdoMain Refresh MsgBox 添加成功 查询已有货品 CheckBale 显示已有货品的信息 AdoMain RecordSource SELECT BaleID FROM Bale WHERE BaleName tBaleName AdoMain Refresh tBaleID AdoMain Recordset Fields BaleID Value AdoMain RecordSource SELECT STotal FROM Storage WHERE SBaleID tBaleID AdoMain Refresh tBaleTotal AdoMain Recordset Fields STotal Value LblMsg Caption 商品编号 tBaleID 商品名 称 tBaleName 商品现存数量 tBaleTotal End If End If End Sub 当用户点了相应的列表框如货品列表 已有货品列表 仓库列表时 列表 的响应 text 值会被程序捕获并从数据库中取出相应的记录 显示给用户 具体 代码如下 Private Sub LstAllBale Click 显示点选货品的信息 tBaleName2 LstAllBale Text 何金 物流管理系统的设计和实现 42 AdoMain2 RecordSource SELECT BaleID BaleFrom BaleSpec BalePrice FROM Bale WHERE BaleName tBaleName2 AdoMain2 Refresh tBaleID2 AdoMain2 Recordset Fields BaleID Value tBaleFrom2 AdoMain2 Recordset Fields BaleFrom Value tBaleSpec2 AdoMain2 Recordset Fields BaleSpec Value tBalePrice2 AdoMain2 Recordset Fields BalePrice Value LblMsg2 Caption 商品编号 tBale

温馨提示

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

最新文档

评论

0/150

提交评论