PB 商场零售管理系统.doc_第1页
PB 商场零售管理系统.doc_第2页
PB 商场零售管理系统.doc_第3页
PB 商场零售管理系统.doc_第4页
PB 商场零售管理系统.doc_第5页
免费预览已结束,剩余48页可下载查看

下载本文档

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

文档简介

南京林业大学南京林业大学 本科毕业设计 论文 本科毕业设计 论文 题目 题目 商场零售管理系统商场零售管理系统 RetailRetail ManagementManagement SystemSystem ofof MarketMarket 院院 系系 信息科学与技术学院信息科学与技术学院 专专 业业 计算机科学与技术计算机科学与技术 学学 号号 0281119 学生姓名学生姓名 徐徐 乐乐 指导教师指导教师 朱正礼朱正礼 职职 称称 高级工程师高级工程师 二二 OO7 年年 五月五月 十日十日 商场零售管理系统 毕业论文 II 摘 要 随着信息产业的飞速发展 信息化管理已经引入并应用到各行业管理领域 尤 其是对于零售业 企业若想在激烈的竞争中胜出就必须拥有一套完善的且合适 自身特点的信息化管理系统 商场零售管理系统开发的目标是实现企业零售管理的系统化 规范化和自 动化 以实现企业降低成本 及时反馈市场信息 完善服务质量 提高经济效 益 分析市场需求 制定销售计划和目标等管理目的 本系统中增加简单的财 务报表 由于财务软件的特殊性 一般不包括在零售管理系统中 本系统只做 到为财务软件提供相应简单的财务数据 比如进销存报表 本商场零售管理系统是针对一般零售商场的特点设计的软件 它包括系统 功能 基本资料 客户管理 供应商管理 商品管理 订单管理 进货管理 销售管理 库存管理 财务报表等九个模块 能够满足现代零售商场的发展需 要 系统具有稳定性高 安全 易扩展 结构合理 界面友好 操作方便 实 用而科学 性能价格比高等特点 快速的查询 排序功能将大量复杂动态的数 据直观化 简单化 关键字 关键字 商场零售 管理系统 数据库 商场零售管理系统 毕业论文 III Abstract With the development of information industry information based management has already leaded to go into and apply to each professional management field s especial retail The business enterprise must have fit it characteristics information based management system if they want to win in the competition The target of the system development is to carry out the business enterprise retail price to manage of systematize the norm turns and automates to help enterprise to decline low costs feedback market information in time perfect service quantity raise the economic performance analyze the market need and draw up the management purposes such as sale program It increase the simple financial report in this system because of the special of the finance software don t include generally in retail management system this system attains only to provide to correspond the simple finance data for the finance software entering to sell to save the statement for example The market retails to manage the software that the system is a characteristics design that aims at the general retail price market It includes the system function basic data customer management supplier management merchandise management order management and enters nine mold pieces The system has the stability high safety expand easily structure reasonable interface amity operation convenience practical but science the function price than high etc Various searching and statistics the function to keep a great deal of complications dynamic state of data the view turn and turn in brief Keywords Market retail Management system Database 商场零售管理系统 毕业论文 IV 目录目录 前前 言言 1 第一章第一章 系统分析系统分析 2 1 1 管理信息系统概述及开发意义 2 1 2 需求分析 2 1 3 功能模块设计 3 第二章第二章 开发工具简介开发工具简介 4 2 1 开发工具简介 4 2 1 1 PowerBuilder 的对象 4 2 1 2 PowerBuilder 面向对象的特性 4 2 1 3 PowerBuilder 面向对象程序设计的过程 5 2 2 数据库的事务管理 5 2 2 1 PowerBuilder 中的事务管理 6 2 2 2 事务对象的 AutoCommit 属性 7 2 2 3 用数据库的事务管理指令实现完全控制 7 2 3 数据库设计 7 2 3 1 数据库模型 8 2 3 2 数据库平台的选择 9 第三章第三章 整体设计整体设计 10 3 1 系统结构图 10 3 2 业务流程图 10 3 3 数据库设计 11 3 3 1 数据库需求分析及 E R 图 11 3 3 2 数据表具体设计 13 3 4 关键设计 16 3 4 1 弹出菜单的设计 16 3 4 2 弹出菜单中的功能设计 16 第四章第四章 详细设计详细设计 18 4 1 系统登录窗口及菜单设计 18 4 1 1 系统登录窗口 18 4 1 2 主界面设计 19 4 1 3 功能菜单设计 19 4 2 基本资料管理 19 4 2 1 部门资料维护 20 4 2 2 员工基本信息维护 20 4 2 3 省份设置 21 商场零售管理系统 毕业论文 V 4 2 4 单位设置 21 4 3 客户管理 21 4 3 1 客户基本资料设置 22 4 3 2 客户查询 22 4 4 供应商管理 22 4 4 1 供应商基本资料维护 23 4 4 2 供应商特殊属性 23 4 4 3 供应商查询 23 4 5 商品管理 24 4 5 1 商品基本资料维护 24 4 5 2 商品特殊属性 25 4 5 3 商品查询 25 4 5 4 价格调整 25 4 6 订单管理 26 4 6 1 订单录入 26 4 6 2 订单审核 26 4 6 3 订单查询 27 4 7 进货管理 27 4 7 1 进货录入 27 4 7 2 进货审核 28 4 7 3 进货查询 28 4 8 销售管理 28 4 8 1 商品零售 29 4 8 2 销售明细 29 4 8 3 销售查询 29 4 8 4 销售排名 30 4 9 库存管理 30 4 9 1 商品入库 30 4 9 2 库存查询 30 4 9 3 库存盘点 31 4 10 财务报表 31 4 10 1 进货报表 31 4 10 2 销售报表 31 4 10 3 库存报表 32 4 11 帮助 32 4 11 1 软件说明 32 4 11 2 关于 32 第五章第五章 系统编译和发布系统编译和发布 33 5 1 创建工程对象 33 5 2 编译生成和测试 33 5 3 发布 34 第六章第六章 结论与展望结论与展望 35 6 1 结论 35 商场零售管理系统 毕业论文 VI 6 2 展望 35 致谢致谢 36 参考文献参考文献 37 附录附录 38 商场零售管理系统 毕业论文 1 前 言 随着信息产业的飞速发展 信息化管理已经引入并应用到各行业管理领域 尤其是对于零售业 放眼四周 各种形式的百货商场 大型仓储超市 便利店 连锁超市和专卖店等形式的零售业鳞次节比 并不断改变 影响着我们的观念 和生活方式 而企业若想在激烈的竞争中胜出就必须拥有一套完善的且合适自 身特点的信息化管理系统 以实现企业降低成本 及时反馈市场信息 完善服 务质量 提高经济效益 分析市场需求 制定销售计划和目标管理目的 因此 开发了一个能满足商家和客户需要的商场零售管理系统 该系统的目标是实现 零售管理的系统化 规范化和自动化 本系统具有系统功能 基本资料 客户 管理 供应商管理 商品管理 订单管理 进货管理 销售管理 库存管理 财务报表等九个功能 满足企业高效管理的需求 本论文第一章介绍了基本的系统分析 管理信息系统开发概述及开发意义 实现目标和需求分析 第二章介绍了PowerBuilder数据库编程技术和数据库设计 理论 第三章介绍了对整个系统的总体设计 包括系统的结构图 业务流程图 以及数据库设计 包括了数据库需求分析 数据流程分析 数据库的概念结构 和逻辑结构设计 第四章是本系统的详细设计 包括了主界面设计 菜单设计 系统登陆窗口的设计和九个主要功能模块设计 第五章是系统的编译与发布 第六章是结论与展望 介绍了设计和编程体会 并指出了系统设计中的不足和 改进的方向 商场零售管理系统 毕业论文 2 第一章 系统分析 1 1 管理信息系统概述及开发意义管理信息系统概述及开发意义 管理信息系统的概念是 1961 年美国人 J D Gallagher 首先提出 它是一门 新兴的 集管理科学 信息科学 系统科学及计算机科学为一体的综合性学科 它是用于研究企事业中信息管理活动的全过程 以便于更有效的管理信息 提 供各类管理决策信息 辅肋企业进行现代化管理 管理信息系统是企业的信息系统 它具备数据处理 计划 控制 预测 辅助决策功能 具体作用如下 1 用一标准处理和提供信息 排除使用前后矛盾的不完整的数据 2 完整 及时提供在管理及决策中需要的数据 3 利用指定的数据关系式分析数据 客观预测末来 4 向各级管理机构提供不同详细程度的报告 缩短分析和解释时间 5 用最低的费用最短的时间提供尽可能精确 可靠的信息 以便决策者选 择最佳的实施方案 以提高企业的经济效益 自从有了计算机 人们就在想怎样让计算机来处理种类烦多的信息 由于 信息的处理种类多 数据量大 因此 传统的方法再也不能满足要求 随着信 息产业的飞速发展以及日益激烈的竞争 必须要有一个依靠计算机的信息管理 系统软件的支持 1 2 需求分析需求分析 一个商场零售的管理系统不仅仅包括进货管理 销售管理 库存管理 还 应包括商品管理 供应商管理和客户管理 有的企业甚至要求简单的人事管理 文档管理 信访管理以及多媒体技术 由于财务软件的特殊性 一般是不包括 在企业的进销存系统中 零售系统也只要做到能为指定的财务软件软件提供相 应的财务数据 比如进销存报表 商场提供给顾客的每一件商品都会有其对应的供应商 每一个供应商因为 其提供给商场的商品不同而会存在一个供应折扣不同的问题 供应商管理模块 是企业和供货商联系的基础 它的信息直接影响企业和供货商的进货与付款结 算 这里所指的供应商是对向购物中心提供商品的厂家或经销商 主要是对供 应商的基本资料 特殊属性进行维护 并提供供应商查询功能 商场的经营活动主要是围绕着商品的购入 并在企业内转移 存贮 最终 实现销售而展开 伴随着商品在企业内的流动 产生了相应的商品信息流 商 品成为企业经营管理的主体 商品信息也就成了进销存系统软件处理的主体 商品进货管理 销售管理 调拨管理 库存管理这一切都离不开对商品的操作 商品管理模块是整个系统的核心 它主要任务是处理商品的基本信息 包括商 品编码的实现 属性设置 价格调整等 商场进货一般首先是向供应商或厂家发出订单 供应商或厂家在收到订单 商场零售管理系统 毕业论文 3 之后根据订单上的商品清单给企业发货 企业在收到商品之后根据实到的商品 数量进行确认完成商品的入库工作 因此 订单管理是商品开始流转前的第一 步 订单管理实现的功能从业务角度来说是企业要求供应商生成商品的订货单 它属于一种计划 从计算机角度来说可以看成是对进货商品的预先录入 使得 当真正的商品到来时仓库人员能够以最快的速度将实际到达商品的数量输入计 算机 所以对订单的操作分成录入 审核和查询这三部分 进货管理和订单管理在操作形式上几乎是相同的 可以以进货单将进货分 成录入 审核和查询操作 进货录入负责将由供应商送来的商品进行登记生成 进货单 同时允许对进货单进行修改 删除和还原操作 进货审核是对进货单 进行确认 进货查询是查询进货单据 查询条件是单据编号 企业根据市场的要求即时调整自己的商品结构对企业掌握经营的主动权 满足市场需求 提供自身的经济效益和竞争力显得十分重要 由于商场面向的 是直接购物的顾客 因此对于销售管理模块开说任何条件下都应保证其数据的 正确性和及时性 在响应时间上对商品信息数据的读取也应该保证在顾客可以 接受的范围呢 本模块包括商品零售 销售明细和销售查询三个部分 无论是商品的进货还是商品的销售都会影响到商品的库存 一个设计的再 完善的系统 在经过了一段时间运行之后 总会出现个别商品的系统库存与实 际库存不相符 尤其象商场这样一个流动性很大的企业 出现差错除了软件方 面的原因还有人为的因素在里面 当出现差错时则必须将正确的商品库存数量 记录到库存表中 本模块共包括三个部分 商品入库 库存查询 库存盘店 最常用的财务报表有商品进销存报表 月报表 月进货统计表 月销售统 计表 月出入库统计表和收银员销售日报 本系统只做了商品进销存报表 能 动态反映商场每天的经营情况 可以根据用户的需要按照部门将商场一天的进 货 销售和库存情况进行统计 供财务部门参考 1 3 功能模块设计功能模块设计 系统开发的目标是实现企业零售管理的系统化 规范化和自动化 以实 现企业降低成本 及时反馈市场信息 完善服务质量 提高经济效益 分析 市场需求 制定销售计划和目标等管理目的 该系统包括系统功能 基本资 料 客户管理 供应商管理 商品管理 订单管理 进货管理 销售管理 库存管理 财务报表等九个模块 系统主要功能设计有 1 基本资料 部门资料 员工资料 省份设置 单位设置 2 客户管理 基本资料 客户查询 3 供应商管理 供应商基本资料 特殊属性 供应商查询 4 商品管理 商品基本资料 特殊属性 商品查询 价格调整 5 订单管理 订单录入 订单审核 订单查询 6 进货管理 进货录入 进货审核 进货查询 7 销售管理 销售登记 销售明细 销售查询 销售排名 8 库存管理 商品入库 库存查询 库存盘点 9 财务报表 进货报表 销售报表 库存报表 商场零售管理系统 毕业论文 4 第二章 开发工具简介 2 1 开发工具简介开发工具简介 在 PowerBuilder 的应用开发中 运用面向对象技术不是必须的 但是对一 个大型复杂应用系统的开发 如果采用了面向对象技术 则开发效率会大大提 高 用 PowerBuilder 开发的好处是 即使您不懂得什么是面向对象技术 您也 可能会下意识地用到面向对象技术的一些特性 但是如果您对这一技术有了充 分的了解 那对您所设计程序的可重用性 可维护性和其他各方面的质量都会 有大幅度提高 2 1 1 PowerBuilder 的对象的对象 PowerBuilder 对象有三个部分元素 属性 函数和事件 1 属性 也就是数据 包括系统属性和用户定义属性两类 描述该对 象的各种特性 如在窗口对象中的系统属性包括标题 高度 宽度等 用户定 义的属性可以是实例变量或共享变量 对这种属性的访问同系统属性相同 只 是在封装性上有所不同 2 事件 PowerBuilder 中的事件与 Windows 的事件存在着映射关系 当用户的操作或系统本身产生 Windows 的标准事件 就转化成 PowerBuilder 中的事件 例如命令按钮有一个叫 Clicked 事件 当用户按按钮时触发 操作 系统首先检测到鼠标被点击 并把 Clicked 这一消息转给该按钮 PowerBuilder 运行时的工作引擎翻译了这一事件 并执行适当 PowerScript 语 句 PowerBuilder 中大部分的事件都是可以映射成由用户激发的 Windows 事 件 另一类事件是用户定义事件 这种事件是用户声明并可以在任何时刻由用 户触发的 Power Builder 中保留了 75 个用户事件可由程序员使用 3 函数 用户通过函数来使对象完成某些操作 Pow erSoft 公司建 议用户通过调用对象事件和函数来修改对象而不要直接修改对象属性 以满足 对象封装的要求 例如采用 Window hide 而不要用 Window visi ble false 来使窗口不可见 2 1 2 PowerBuilder 面向对象的特性面向对象的特性 提到一门语言的面向对象特性 它应当具有继承性 多态性和封装性 如 缺少其中的一个则只能称其为基于对象的系统 而不是面向对象的系统 而 PowerBuilder 则很好地具备了全部三个特性 继承 PowerBuilder 中 窗口 菜单和用户对象是可以继承的 而其他对象则都 不能 当您继承了一个对象 那您得到的子类将具有父类的属性 实例变量 共享变量 控件 用户自定义事件 对象级函数 事件和代码 script 也 就是说当您继承了一个类 您几乎得到了这个类的全部 不过有一点值得注意 商场零售管理系统 毕业论文 5 您不能在子类中删除任何一个继承到的特性 在继承了祖先类后 您可以在子类中扩展或覆盖祖先的元素 例如代码 在 PowerBuilder 中缺省的是采用扩展方式 先执行继承到的祖先代码 后执行 子类的扩展代码 您也可以选择菜单 Compiler OverrideAncestorScript 选 项 只执行子类的代码 并可在代码中的任何位置调动祖先代码如 CALLw l open 重载函数是面向对象程序设计的重要特性 即同一函数名却有着 不同的参数 和返回值 在运行时 系统自动寻找执行参数相匹配的那个函数 例 如我们常用的 MessageBox 这个函数就有 12 个不同参数的重载函数 遗憾的 是 对 Power Builder 我们不能在同一个继承对象中定义 2 个不同参数的重载 函数 只能在后继的类中定义重载函数 这使我们对重载函数的定义带来了很 大的不便 这不能不说是 PowerBuilder 的缺陷 不过在即将发布的 PowerBuilder5 0 中 正是支持了函数重载这一特性 对于对象的继承 PowerBuilder 中所有对象都有其共同的基类 PowerObject 从这一个基类下面分成继承类 Graph icObject 和 NonVisualObject 等 它们的继承关系和扩展函数及属性如下表 多态性 在 PowerBuilder 中有大量的多态函数如 print TriggerEvent 等 在 运行过程中 您只需要指出对象和函数名即可 在有些函数中 即使不知道对 象类 也可以用 ClassName 函数得到对象类 或得到实例名 将对象名作为函 数参数调用该函数 封装性 封装的目的是为了实现数据隐藏和数据保护 封装的目标是为对象提供一 个对外操作的接口 使其他对象通过函数来访问 而不允许直接操纵对象的属 性 在 PowerBuilder 中有三种访问类型 Public Protect Private 这三种 访问控制类型可以用在对象的变量和函数上 缺省的实例变量和对象函数都是 public 类型的 为了保护数据 应尽可能多地使用 private 和 protect 类型 前者只允许对象内部的元素来访问 后者可以接受对象内部和继承类的元素访 问 2 1 3 PowerBuilder 面向对象程序设计的过程面向对象程序设计的过程 事实上用户在运用 Power Builder 进行程序设计的一开始 就已经开始进 行对象类的设计 例如在建立窗口时可以用窗口画笔 painter 建立一个新窗 口 命名为 w emp 建立的窗口就是从 PowerBuilder 的窗口对象继承下来的 所以窗口会自动具备一些属性 例如 X 和 Y 的坐标 高度 宽度 窗口类型 标题等 当用窗口画笔建立窗口时 您给这些属性赋了值 你还可以增加窗口 的函数和事件 2 2 数据库的事务管理数据库的事务管理 在数据库中 所谓事务是指一组逻辑操作单元 使数据从一种状态变换到 另一种状态 为确保数据库中数据的一致性 数据的操纵应当是离散的成组的 逻辑单元 当它全部完成时 数据的一致性可以保持 而当这个单元中的一部分 操作失败 整个事务应全部视为错误 所有从起始点以后的操作应全部回退到 商场零售管理系统 毕业论文 6 开始状态 对事务的操作是这样进行的 先定义开始一个事务 然后对数据作修改操 作 这时如果提交 COMMIT 这些修改就永久地保存下来 如果回退 ROLLBACK 数 据库管理系统将放弃您所作的所有修改而回到开始事务时的状态 此外有些 数据库支持事务的 存储点 savepoint 这一概念 即在一个事务进程中任意一 点您都可以进行当前状态的存储 回退时只是回到你所设定的存储点 而不必 退回全部的事务 如果您的事务可以分成几组对数据库的修改 那就可以设置 多个存储点 根据需要您可以回退到任意一个存储点 而不使所有事务的修改 数据全部丢失 正确地管理事务可以保证数据的完整性 当您所做的工作全部完成和得到 确认之前 没有任何数据物理地写进数据库 让我们来看这样一个实例 我们 有这样一个银行应用系统 前台使用者作出将储户甲的一百元存款划归储户乙 帐下的操作 在后台的数据库中 这两个客户的记录分储在两张表中 当使用者 在屏幕上作出如上操作时 在后台需要对两张表进行修改 如果在数据库中对 甲用户存款余款作减去一百元修改后 对乙用户加一百元的操作修改却失败时 前 一张表也必须回到修改前的状态 否则数据库的内容不统一 甲储户白白损失 一百元 信息必然是不正确的 因此进行事务管理是必须的 传统地 我们认为一个事务包括了对一个或多个表的修改 而随着分布式 数据库和数据仓库的发展 事务可能包括了对一个或多个数据库的修改 在上 例中甲乙两用户就可能是异地用户 信息分储在不同地域的不同数据库中 上 述的一个事务就涉及到了对不同数据库的操作 2 2 1 PowerBuilder 中的事务管理中的事务管理 作为数据库的前台开发工具 Power Builder 支持事务管理的操作 在 Power Builder 中有一种称作事务 transaction 的对象 这个对象是 PowerBuilder 应用与数据库的通讯区域 PowerBuilder 在应用开始时建立一 个全局的事务对象 SQLCA 由于大多数的应用只用到一个数据库 所以一般开 发者主要也只用 SQLCA 作为与唯一数据库连接的事务对象 PowerScrip 中常 用的事务管理的语句有 4 个 COMMIT ROLLBACK CONNECT DISCONNECT 当您需要应用与数据库建立连接时使用 CONNECT 这一操作命令 取消连接 时执行 DISCONNECT 这两个命令一般分别用在应用的开始和结束 也就是 Appli cation 的 Open 和 Close 事件中 当一个事务的数据库修改都成功地完成后 修改须提交给数据库 COM MIT 语句是一个旧事务结束和一个新事务开始的界线 在修改被提交前 数据库的 数据并没有被真正地修改 这些修改被保留在某个工作区 只有作修改的用户 才能看到这些被修改后的值 提交之后 则所有的用户就都可以看到新值了 在事务的进程中发生某些错误 或者在操作中出于种种原因打算中止事务 须 用 ROLLBACK 命令回退事务 如果已作的操作不用 ROLLBACK 命令取消 这些操 作必将错误地作为下一个事务的一部分而导致数据库的混乱 如果您使用的是多窗口的应用 却只用一个事务对象 就应格外注意 ROLL BACK 和 COMMIT 会影响事务的逻辑一致性 在某个窗口执行的这两个指令会使 其他窗口应用中所进行到一半的工作提交或回退 在多用户系统中 修改和提交的时间越接近 提交成功的可能性就越高 因为一个事务中所有的 SQL 语句全部执行成功而提交却失败是完全可能发生 商场零售管理系统 毕业论文 7 的 例如在您的事务过程中 另一个用户修改了数据并提交 这很可能使您作出 的修改无效 这时 COMMIT 将失败 您必须回退这一事务的全部 2 2 2 事务对象的事务对象的 AutoCommit 属性属性 事务对象有一个 AutoCom mit 的属性可以使开发者简化对事务管理的操 作 这一布尔型的属性可以用 TRUE 或 FALSE 来对其赋值 当其为真时 PowerBuilder 不通过其他额外的交互就将您的 SQL 语句传输给后台数据库 而 且执行完毕自动提交 当然 您可以设置 AutoCommit 属性为假 缺省值 使用 COMMIT 或 ROLLBACK 这样的关键词提交或回退事务 在大多数应用中 一部分的数据库操 作是要成组提交的 而另一些则不用 因此我们可以利用 AutoCommit 的特性 来确定事务的起点 当我们把 AutoCommit 的属性设为 False 时 系统设定此时 为事务的起点 当 AutoCommit 设为真时 系统自动消取这一事务 因此你可 以先把 AutoCommit 设为真 当您需要开始一个事务时 将其置为 false 此刻即 为事务起始点 PowerBuilder 内部这种事务管理的最大优点是方便 您不去考虑整个事 务 而只需把您所作的修改提交或滚回即可 但是方便与可控性总是矛盾的 在 Power Builder 中没有存储点和嵌套事务管理的机制 即使您所使用的数据 库支持这些特性 在 PowerBuilder 中却无法得以体现 不过在普通的应用中 存储点和嵌套事务管理并不是必须的 一般的事务管理足以够用 2 2 3 用数据库的事务管理指令实现完全控制用数据库的事务管理指令实现完全控制 上述的事务管理方式尽管简单方便 但是在某些应用中 我们也的确需要利 用所用的数据库系统的嵌套事务和存储点的特性 而 PowerBuilder 内部的事务 管理没有提供这样的功能 您必须自己设计 自己进行事务管理的方式是直接使用数据库本身的事务指令 当您使用自 己的管理方式时 就应使 Power Builder 停止管理事务 即设置 Auto Commit 为 TRUE 系统内部就不会自动建构事务处理的命令了 实现人工事务管理的方式是 采用 EXECUTEIMMEDIATE 这条 PowerBuilder 指令来执行任意的数据库操作 你 所需做的是将数据库指令编辑成一个字符串 您可以执行任何的数据定义语句如 建表 建主键 存储过程等 例如您可以用 EXECUTEIMMEDIATEBEGINTRANSACTIONtrans name 这样的指令开始一个事务 采 用这种方法 只要您所用的数据库支持嵌套事务和存储点等事务管理 我们通过 PowerBuilder 开发出的应用也就同样可以实现 在 PowerBuilder 中提供的事务管理的方法是多种多样的 只要您灵活运用 就一定能设计出优秀的数据库应用来 2 3 数据库设计数据库设计 数据库是一种存储数据并对数据进行操作的工具 数据库的作用在于组织 和表达信息 简而言之 数据库就是信息的集合 创建任何一个数据库的第一 商场零售管理系统 毕业论文 8 步是仔细的规划数据库 设计必须是灵活的 有逻辑的 创建一个数据库结构 的过程被认为是数据模型设计 实际上设计任何一种数据库应用系统 不论是层次的 网状的还是关系的 都会遇到如何构造合适的数据模式即逻辑结构的问题 由于关系模型有严格的 数学理论基础 并且可以向别的数据模型转换 因此人们往往以关系模型为背 景来讨论问题 形成了数据库逻辑设计的一个有力工具 关系数据库规范化理 论 关系数据库是以关系模型为基础的数据库 它利用关系描述现实世界 一 个关系既可用来描述一个实体及其属性 也可用来描述实体间的一种联系 关 系模式是用来定义关系的 一个关系数据库包含一组关系 定义这组关系的关 系模式的全体就构成了该数据库的模式 范式是符合某一种级别的关系模式的集合 关系数据库中的关系必须满足 一定的要求 满足不同程度要求的为不同范式 目前主要有六种范式 第一范 式 第二范式 第三范式 BC范式 第四范式 第五范式 满足最低要求叫第 一范式 数据库之间的关系指明两个库之间共享一个共同的关键字值 一个连接是 指一种虚拟的表 这种表是在当用户要求从相互关联的各个不同的表中获取信 息时建立的 关键字段用于在相互连接的不同表中查找匹配的记录 一个更高 级的连接形式称为自连接 这种连接是指一个表被连接到它自己的一个字段 或在不同的纪录中由重复数据的组合字段 数据库中有三种不同类型的关键字 主关键字 组合关键字和外关键字 在表中使用的关键字类型用于描述库表示 什么以及在数据库中如何与其它的库建立关系 2 3 1 数据库模型数据库模型 目前广泛作用的数据模型可分为两种类型 1 独立于计算机系统的模型 完全不涉及信息在系统中的表示 只是用来 描述某个特定组织所关心的信息结构 这类模型称为 概念数据模型 要领 模型用于建立信息世界的数据模型 强调其语义表达功能 应该概念简单 清 晰 易于用户理解 它是现实世界的第一层抽象 是用户和数据库设计人员之 间进行交流的工具 这一其中著名的模型是 实体联系模型 2 直接面向数据库的逻辑结构 它是现实世界的第二层抽象 这类模型涉 及到计算机系统和数据库管理系统 又称为 结构数据模型 例如 层次 网状 关系 面向对象等模型 这类模型有严格的形式化定义 1 层次模型 用树型结构表示实体类型及实体间联系的数据模型 树的结 点是记录类型 每个非根结点有且只有一个父结点 上一层记录类型和下一层 记录类型间联系是 1 N 联系 层次模型的特点是记录之间的联系通过指针实现 查询效率较高 但层次模型有两个缺点 一是只能表示 1 N 联系 虽然有多种 辅助手段实现了 M N 联系 但都较复杂 二是由于树型结构层次顺序的严格和 复杂 引起数据的查询和更新操作也很复杂 因此 编写应用程序也很复杂 2 网状模型 用有向图结构表示实体类型及实体间联系的数据模型 1969 年 DBTG 报告提出的数据模型是网状模型的主要代表 有向图中的结点 是记录类型 有向边表示从箭尾一端的记录类型到箭头一端的记录类型间联系 是 1 N 联系 网状模型的特点 记录之间联系通过指针实现 M N 联系也容 商场零售管理系统 毕业论文 9 易实现 查询效率较高 网状模型的缺点是编写应用程序比较复杂 程序员必 须熟悉数据库的逻辑结构 由于层次系统和网状系统的应用程序编制比较复杂 因此 从 20 世纪 80 年代中期起 其市场已被关系系统所取代 但是使用这两 种模型建立起的许多数据库仍然在正常运转 只是在外层加了个关系数据库语 言的接口 3 关系模型 关系模型的主要是用二维表格结构表达实体集 用外键表示 实体间联系 关系模型是由若干个关系模式组成的集合 关系模式相当于前面 提到的记录类型 它的实例称为关系 每个关系实际上是一张二维表格 关系 模型和层次 网状模型的最大判别是用关键码而不是用指针导航数据 表格简 单用户易懂 编程时并不涉及存储结构 访问技术等细节 关系模型是数学化 模型 SQL 语言是关系数据库的标准化语言 已得到了广泛的应用 4 面向对象模型 目前 关系数据库的使用已相当普遍 但是 现实世 界中仍然存在着许多含有复杂数据结构的应用领域 例如 CAD 数据 图形数 据等 而关系模型在这方面的处理能力就显得力不从心 因此 人们需要更高 级的数据库技术来表达这类信息 面向对象的概念最早出现在程序设计语言中 随后迅速渗透到计算机领域的每一个分支 面向对象数据库是面向对象概念与 数据库技术相结合的产物 2 3 2 数据库平台的选择数据库平台的选择 数据库的发展经过好几个阶段 从最初的平面文件管理方式 多个平面文 件管理 再到平面文件数据库 大型关系型数据库的等几个阶段 1 Access 是微软推出的简单的一个数据库 它采用一个文件的方式 内部 以基于表 窗体 报表等一系统的机制对外提供一个数据平台 它的特点是简单 实用 对于许多小型的数据可以能够很好地满足要求 它对于一般的平面文件相比 它有着可以对实体之间进行关联 另外 它内含其开发工具 可以在其中进行窗体 报表等的创建 2 Oracle 是数据库中最为优秀的一种选择 它功能强大 支持多种平台 强大的开发平台以及丰富的开发软件包 对于各级企业的数据库应用提供了完 美的方案 不足之处是它太过于复杂 价格昂贵 使得一般的用户不易使用 它被定为了最高档的大型关系数据库系统 3 SQL Server 为微软的中间档次的数据库开发平台 由于其强有力的操作 系统 以及微软产品内部的良好连接性能 使得 SQL 的市场占有率急剧上升 再者由于它针对于中间档次的用户 价格也适中 因此 它的使用非常广泛 本系统采用的是简单实用的 Access 作为数据库的开发后台 商场零售管理系统 毕业论文 10 第三章整体设计 3 1系统结构图系统结构图 本系统有 9 大模块 详细系统结构图如图 3 1 所示 商场零售管理系统 基 本 资 料 客 户 管 理 供 应 商 管 理 商 品 管 理 订 单 管 理 进 货 管 理 销 售 管 理 库 存 管 理 财 务 报 表 员 工 资 料 部 门 资 料 客 户 资 料 客 户 查 询 供 应 商 资 料 供 应 商 查 询 商 品 资 料 价 格 调 整 订 单 录 入 订 单 审 核 订 单 查 询 进 货 录 入 审 核 查 询 商 品 销 售 明 细 查 询 商 品 入 库 查 询 盘 点 进 销 存 报 表 图 3 1 商场零售管理系统结构图 3 2业务流程图业务流程图 订单录入出库 进货录入 审核审核 销售 价格调整 采购订单 订单 管理 进货 管理 库存 管理 销售 管理 客户 供应商 管理 销售报表库存报表进货报表 盘点 销售查询 订单查询 商品查询 供应商 商品 管理 商场零售管理系统 毕业论文 11 图 3 2 业务流程图 3 3数据库设计数据库设计 3 3 13 3 1 数据库需求分析数据库需求分析及及 E RE R 图图 根据以上的系统功能分析 可以得到数据库由以下几个部分组成 1 部门信息表 department 表 2 员工基本信息表 employee 表 3 商品基本信息表 goods 表 4 供应商基本信息表 supplier 表 5 客户基本信息表 customer 表 6 订单信息表 orders 表 7 商品进货信息表 purchase 表 8 商品销售表 sales 表 9 商品库存表 kc 表 部门和员工 E R 图 n1 部门员工组成 姓名性别员工编号 部门编号 图 3 3 部门和员工 E R 图 进货 E R 图 n m 商 品 商品名型号单位产地进价售价 供货 供应商 供应商编码供应商名地址电话 部门名称 商场零售管理系统 毕业论文 12 图 3 4 进货 E R 图 销售 E R 图 m n 客 户 客户编码客户名称公司名地址电话 订货 商 品 商品名型号单位产地进价售价 图 3 5 销售 E R 图 订单 E R 图 1 n 订 单 订单编号部门编号制单人制单日期供应商编号 审核 员工 员工编号性别姓名业绩 图 3 6 订单 E R 图 库存 E R 图 n1 库 存 商品名型号单位产地入库数操作员 入库 商品 入库日期 商场零售管理系统 毕业论文 13 图 3 7 库存 E R 图 财务报表 E R 图 1n 财务报表 进货报表销售报表库存报表 打印 员工 图 3 8 财务报表 E R 图 3 3 23 3 2 数据表具体设计数据表具体设计 1 部门信息表 department 表 表 3 1 department 表 2 员工基本信息表 employee 表 表 3 2 employee 表 3 商品基本信息表 goods 表 表 3 3 goods 表 4 供应商基本信息表 supplier 表 商场零售管理系统 毕业论文 14 表 3 4 supplier 表 5 客户基本信息表 customer 表 表 3 5 customer 表 6 订单信息表 orders 表 表 3 6 orders 表 7 商品进货信息表 purchase 表 表 3 7 purchase 表 商场零售管理系统 毕业论文 15 8 商品销售表 sales 表 表 3 8 sales 表 9 商品库存表 kc 表 表 3 9 kc 表 商场零售管理系统 毕业论文 16 3 4 关键关键设计设计 本系统采用弹出菜单的功能 将多个按键的功能集于一身 省去一个界面 里有多个按键 使得界面简洁直观 3 4 13 4 1 弹出菜单的设计弹出菜单的设计 当用户在数据窗口控件中单击鼠标右键的时候会在鼠标位置出现一个弹出 菜单 但现在在进行窗口设计的时候并没有将任何菜单和窗口关联 因此 首 先必须创建菜单对象 再将菜单关联到窗口 创建菜单对象之前首先需要说明 一个菜单变量 和任何变量说明一样 说明菜单变量的语句如下 m dwpop lm dwpop 其中 m dwpop 是创建的弹出式菜单的菜单名字 有了菜单变量说明语句 接 下来的问题是把菜单变量说明语句放在什么位置 也就是弹出菜单的作用域是 什么 调用菜单的地方是在数据窗口控件中的单击鼠标右键的事件中发生 既 然如此 菜单变量的说明完全可以放在该事件中 在数据窗口的 RbuttonDown 事件中写上 m dwpop lm dwpop 有了菜单变量声明之后就该创建菜单实例 创建菜单实例的代码如下 lm dwpop create m dwpop 一但菜单实例创建完毕 就可以象窗口菜单那样使用 现在程序要做的是如何实现弹出菜单 弹出菜单 的方式是通过菜单的 popmenu 函数 Popmenu 函数的作用是在指定位置显示 弹出菜单 在使用 popmenu 函数时 将菜单对象的 visible 属性设置为 true 否则用户不会在窗口上看到弹出菜单 完整的菜单调用函数如下 m dwpop lm dwpop lm dwpop create m dwpop lm dwpop popmenu parent pointerx parent pointery 上述代码中 parent pointerx 和 parent pointery 表示确定鼠标指针离指定对象左 边缘和上边缘的距离 作为函数 popmenu 的参数就是在窗口鼠标指针显示的 位置处弹出菜单 m dwpop 3 4 23 4 2 弹出菜单中的功能设计弹出菜单中的功能设计 若仅仅弹出一个菜单而不做任何事这显示是不行的 在弹出菜单中我们需要 对数据窗口实现新增 删除和存盘等一系列工作 在弹出式菜单中实现对数据 窗口操作的一种通用方法是在菜单中调用其父窗口的事件 在菜单对象的函数 中有一个函数 postevent 该函数将指定事件放置到指定对象或控件事件队 列的尾部 异步触发事件 既然是调用父窗口的事件 那么首先要得到父窗 口对象或者说指向父窗口对象 在菜单对象属性中一个叫 parentwindow 的属性 指定菜单对象的父窗口 现在先假设父窗口 w employee 有一个叫 ue dwnew 的 事件 在菜单中调用它的语句应该是 parentwindow postevent ue dwnew 有了事件调用语句 接下来就该写事件代码时间菜单上所要求的功能 通过 菜单应对数据窗口需要实现新增 删除 存盘 上下移记录以及退出窗口等功 能 显然 这些功能在一个事件中实现是不太容易的 也不太可能用窗口自带的事 商场零售管理系统 毕业论文 17 件 惟一解决办法就是为窗口自定义事件 例如打开员工信息维护窗口 w employee 选择事件列表 在事件列表的空白处单击鼠标右键 选择 add 新增 命令 或者选择 powerbuilder 主菜单 insert event 命令 此时用户自定义事件窗口 打开 现在将为窗口上的数据窗口增加一个实现添加新记录功能的事件 ue dwnew 由于事件不需要任何输入参数和任何返回参数 因此 在事件名字 event name 录入栏中输入事件名字 ue dwnew 然后在代码框中输入能 实现记录添加的代码 long ll row 0 ll row dw 1 insertrow 0 dw 1 setrow ll row dw 1 setcolumn empcode 类似其他功能代码如下 刷新功能 dw 1 retrieve 用户事件 ue dwrefresh 删除功能 long ll row 0 用户事件 ue dwdel ll row dw 1 getrow if ll row 0 then dw 1 deleterow ll row 存盘功能 if dw 1 update 1 then commit 用户事件 ue dwsave Messagebox 信息提示 存盘成功 Else rollback Messagebox 出错提示 存盘失败 End if 首记录 dw 1 setrow 1 dw 1 setcolumn empcode 用户事件 ue dwfirst dw 1 selectrow 0 false dw 1 selectrow 1 true 尾记录 long ll row 0 ll row dw 1 rowcount 用户事件 ue dwlast dw 1 setrow ll row dw 1 setcolumn empcode dw 1 selectrow 0 false dw 1 selectrow ll row true 上一条 long ll row 0 ll row dw 1 getrow 用户事件

温馨提示

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

评论

0/150

提交评论