毕业论文--医药连锁管理系统——库存管理.doc_第1页
毕业论文--医药连锁管理系统——库存管理.doc_第2页
毕业论文--医药连锁管理系统——库存管理.doc_第3页
毕业论文--医药连锁管理系统——库存管理.doc_第4页
毕业论文--医药连锁管理系统——库存管理.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1 河河北北农农业业大大学学 本本科科毕毕业业论论文文 设设计计 题题 目 目 学学 院 院 信息科学与技术信息科学与技术 专业年级 专业年级 软件工程软件工程 1001 班班 学学 号 号 学生姓名 学生姓名 指导教师姓名 指导教师姓名 指导教师职称 指导教师职称 讲讲 师师 2014 年年 6 月月 1 日日 2 摘摘 要要 本文主要介绍药品信息管理系统的开发 药品信息管理系统是在 Windows7 平台 下 以微软公司的 Microsoft Visual Studio 2010 为工具开发出来的系统 实现了 药店信息的计算机管理 该系统由药品信息入库 出库 销售 订单生成 药品信 息查询 药品信息管理功能模块组成 系统可按各种方式查询数据 打印和预览药 品价格 入库药品清单等 使药品信息管理系统从纯手工中解脱出来 实现药品管 理系统简单化 规范化 合理化 科学化 其实用性强 用户界面友好 另外 由于医药产品种类繁多 销售模式特殊 业务量大 单凭手工记账已很难适 应工作的需要 医药作为一个关系人们健康的特殊行业 国家对医药行业又有一些不同 与其他行业的管理政策 这些都加大了管理的难度 如何尽快建立和完善现代企业的信 息化管理机制问题 已成为医药企业发展的关键所在 关键词 药品信息管理系统 计算机管理 开发 3 AbstractAbstract This paper presents a review of the development of pharmaceutical information management system Drug information management system is in Windows platform Microsoft s Microsoft Visual Studio 2010 as the tool developed by the system realized the pharmacy information computer management The system by the drug information inbound outbound sales order generated medicine information query drug information management function modules system according to various ways to query data print preview and drug list price inventory etc make the drug information management system from pure manual implement drug simplification and standardization rationalization scientific management system its practicability is strong user friendly interface In addition because there are many different kinds of pharmaceutical products sales model special business big manual bookkeeping alone has been difficult to adapt to the needs of work Medicine as a special industry a relationship between people s health state for the pharmaceutical industry and there are some different with other industry management policies these are even more difficult for management How to establish and perfect modern enterprise informatization management mechanism as soon as possible has become the key to the development of the pharmaceutical enterprise Keywords drug information management system computer management and development 4 目录目录 1 绪论 4 1 1 前言 4 1 2 研究现状 4 2 相关理论与技术 6 2 1 相关技术 计算机技术对系统的支持 6 2 2 C 和 ASP 技术简介 6 2 3 三层架构技术简介 6 2 4 SESSION 技术简介 8 3 需求分析与系统设计 9 3 1 需求分析 9 3 1 1 总店子系统 需求分析 9 3 1 2 分店子系统 需求分析 9 3 2 系统的概要设计 10 3 2 1 开发环境 10 3 2 2 系统实现功能目标 10 3 2 3 系统权限设计 11 3 2 4 关键功能活动图 13 3 3 数据库设计设计 15 3 3 1 E R 设计 15 3 3 2 数据库关系图 16 3 3 3 数据库表结构 17 4 系统实现详细设计 19 4 1 数据库操作模块的实现 19 4 2 库存管理模块的实现 21 4 2 1 库存变更操作的实现 21 4 2 2 库存变更列表的实现 24 4 2 3 库存详细变更列表实现 30 4 2 4 查看库存的实现 30 5 总结 33 5 1 1 绪论绪论 1 11 1 前言前言 随着我国市场经济的蓬勃发展和人们对医药产品需求的迅速增加 医药行业正处于 一个高速发展的时期 行业的快速发展必然导致竞争的加剧 要想在激烈的市场竞争中 谋求发展 客观上要求企业必须加强内部管理 提高运营效率 另外 由于医药产品种 类繁多 销售模式特殊 业务量大 单凭手工记账已很难适应工作的需要 医药作为一 个关系人们健康的特殊行业 国家对医药行业又有一些不同与其他行业的管理政策 这 些都加大了管理的难度 如何尽快建立和完善现代企业的信息化管理机制问题 已成为 医药企业发展的关键所在 目前市场上流行较多的医药管理系统 在处理采购 销售 财务管理等方面都具有 比较强的应用价值 也就是说这些软件的设计主要的针对对象是医药公司的中下层实际 操作人员和管理人员 同时如果公司的上层高级管理人员需要用计算机对公司状况进行 分析 管理 决策时 则需要另外的相关软件 这样就会增加开支 我们就是在这样的 形式环境下 开发一种同时兼有以上两种功能的医药管理系统 以适应市场发展的需要 1 21 2 研究现状研究现状 发达国家医院药品进存销系统的开发实现已有三十多年的历史 至今有了长足的进步 有 许多举世公认的成功的系统在医院药品有效地运转着 像盐湖城 LDS 医院药品的 HELP 系 统 麻省总医院药品的 COSTAR 系统 退伍军人管理局的 DHCP 系统 医院药品进存削系统 的主要目标是支持医院药品的行政管理与事务处理业务 减轻 事务处理人员的劳动强度 辅助医院药品管理 辅助高层领导决策 提高医院药品的工作效 率 从而使医院药品能够以少的投入获得更好的社会效益与经济效益 像财务系统 人事 系统 药品库存管理系统等就属于管理系统的范围 但是 无论外国还是中国 当一个医 院药品的医院药品管理系统刚刚起步时 往往是首先建立医院药品进存削系统 支持医院 药品进存销系统的计算机技术较为单纯和简单 由于医院药品进存削系统以处理文字和 数字类数据为主 较少涉及声音 图象 多媒体数据的动态传递等复杂需求 因此实现起 来容易得多 就是说 以较少的投入 获得较大的收益 医院药品管理信息系统的主要目标是支持医院药品的行政管理与事务处理业务 减轻 事务处理人员的劳动强度 辅助医院药品管理 辅助高层领导决策 提高医院药品的工 作效率 从而使医院药品能够以少的投入获得更好的社会效益与经济效益 像财务系统 人事系统 药品库存管理系统等就属于管理系统的范围 但是 无论外国还是中国 当一个医院药品的医院药品管理系统刚刚起步时 往往 是首先建立医院药品管理信息系统 在国外 发达国家医院药品管理系统的开发实现已有三十多年的历史 至今有了长 足的进步 有许多举世公认的成功的系统在医院药品有效地运转着 像盐湖城 LDS 医院 药品的 HELP 系统 麻省总医院药品的 COSTAR 系统 退伍军人管理局的 DHCP 系统 6 纵观美国的医药库房发展历史 大约可分为三个阶段 第一个十年 集中在开发医 院药品行政管理的功能上 像财务收费管理管理等 但到 1972 年 Collen 仍报告美国迄 今为止连一个成功的已完成的全面医院药品 管理 计算机系统都没有 第二个十年 在 继续完成和实现医院药品管理信息的计算机化的同时 开发者的努力已进入医疗信息的 处理领域 像病人医疗处理系统 实验室系统等 到 1985 年 美国全国医院药品数据处 理工作调查表明 100 张床位以上的医院药品 80 实现了计算机财务收费管理 70 的医 院药品可支持病人挂号登记和行政事务管理 25 的医院药品有了较完整的 MIS 医院药 品管理系统正在经历着小型化 DownSizing 智能化 Intellegence 和集成化 Integration 的改造过程 在国内 一些先进的 运用计算机技术有了一些经验或者成功地运行着某些部门级 信息系统的药材公司或医院 迫切地从国内 国际市场上寻求一种较为完整的适合中国 国情的药品管理系统产品 一些大的集团化的药材公司或大中小型医院都迫切地需要国 家卫生部及有关信息开发部门集中财力 人力 物力 下真功夫开发出一套适合我国市 场的 有中国特色的药材公司药品信息管理系统 满足药材公司和医院药品管理的迫切 需求 并进而推动整个中国医药卫生信息产业的形成 趋于这种形势 加上各方面的限 制 如本人技术有限 人力不足等 我本着从大处着眼 小处着手 循序渐进 先建一 个简单实用的小型医院药品管理系统 然后逐步完善 目前医药管理系统地应用已成为医院管理的重要工具和手段 它的引入有助于改变 传统的工作方式 提高工作效率 提高经济效益 加强过程控制 提高医药管理质量 提高医院信誉 增强竞争能力 实现卫生资源共享 强化医院的科学管理等等 总之 药品管理系统应该能够为管理员提供充足的信息和快捷的数据处理手段 对 医院药品的各类信息及数据进行处理 做到数据管理及分析 为医院管理者提供一个适 用的管理工具 从而方便医院的管理 7 2 2 相关理论与技术相关理论与技术 2 12 1 相关技术相关技术 项目的连锁销售系统采用 ASP 技术实现 采用分层的系统架构方式 数据库选择的 是 SQL SERVER 2008 编辑环境选择的 Microsoft Visual Studio 2010 本章节则主要 介绍涉及到的技术问题 如 c 和 ASP 技术 三层架构技术和 session 技术等 同时介绍 了系统实现的物理环境和软件平台 2 2 2 2 C C 和和 ASPASP 技术简介技术简介 C 是微软公司开发的一种与 JAVA 极其相似的面向对象的高级程序设计语言 它是由 C 和 C 衍生出来的编程语言 虽说与 JAVA 极其相似 但 c 也和 JAVA 有着明显的不差 异 c 借鉴了 Delphi 的一个特点 与组件对象模型是直接集成的 它是微软 net 框架 的重要组成部分 它在继承 C 和 C 优点的同时也去掉了他们一些复杂过时的特征性质 比如去掉了 c 语言宏的概念以及摒弃了 C 多重继承的特性 而继承了 C 面向组件编程 和高效率运行的优点 C 同时也借鉴了 VB 的可视化操作 形成了 C 语言本身强大的操 作能力 优雅的语法风格 创新的语言特性和便捷的面向组件编程 ASP 也是微软公司的一种技术 需要注意的是 asp 并不是一种编程语言 与其说是 一种技术 不如说是实现了一种编程环境 在这种编程环境下可以同时使用 html Jscript CSS 等多种网页编程语言以及 C C 等程序设计语言 同时微软本身还 提供了完美支持这种环境的编译调试软件 比如 VS2010 VS2012 等 这些软件均能实现 网页空间的拖拽 极大地方便了网页布局人员的工作 同时这些软件集成了 ASP 的 WEB 服务器 免去了如 JSP 般复杂的服务器配置工作 ASP 网站发布在 IIS 中 IIS 也是微软 提供的一项免费组件 集成在 Windows 2000 及以上版本的系统中 ASP 强大的语言兼容 能力 功能强大的编译调试环境 简单易懂的编程方式 以及方便快捷的网站服务器 使得 ASP 成为了一种非常流行的网络编程技术 ASP 的主要用途有 动态直观的对网页进行布局 更改网页元素等任何内容 可以 通过 HTML 提交的表单信息与用户进行交互 并且通过后台程序进行响应 可以方便的从 数据库中查询更改信息 并通过界面向用户进行反馈 ASP 虽然是一种动态技术 但是 在向用户展示界面时提供的是静态网页 也就是说 ASP 的动态代码不能由浏览器编辑或 者查看 大大提高了安全性 ASP 的工作原理 用户通过浏览器向服务器发起请求 服务器接收请求并开始 运行 ASP 程序 ASP 将程序执行结果组装成不包含动态代码的网页 并将网页发送 到浏览器 2 32 3 三层架构技术简介三层架构技术简介 三层架构是软件体系架构的一种方式 分为三层 数据库访问层 业务逻辑层 表 8 示层 当然三层的划分不是物理实现时的划分 而是更具各部分功能的不同进行的逻辑 上的划分 目的是为了使三个层次具有专一的任务 是逻辑更加清晰 其中业务逻辑层 是这三个层中最重要的一层 负责系统主要功能的实现 三个层次各自实现的功能如下 1 表示层 UI 主要任务就是向用户展示界面 位于最外层 最接近用户 用于 显示数据和接收用户输入的数据 负责信息的显示和收集 并将收集的信息向业务逻辑 层进行提交处理 一般也为显示或者收集的信息进行基本的有效性判断 从而减轻了业 务逻辑层的负担 又不失逻辑分层上的严谨性 2 业务逻辑层 BLL 主要任务就是实现系统各个功能 从表示层接收信息 更具 需要完成的功能进行相关处理 向下调用数据库访问层的方法 向上为表示层提供需要 展示的信息 业务逻辑层将整个系统的功能都进行了处理 而不负责信息收集 以及信 息的持久化等工作 3 数据库访问层 DAL 主要任务就是对数据库进行 增添 删除 修改 查找的 基本操作 这些基本操作都是通过业务逻辑层根据不同的功能需求进行相应的调用的 该层不涉及任何业务逻辑上的东西 但是需要注意的是 该层虽然针对原始数据进行操 作 但它通常不负责数据物理上的存储以及查找的功能 对于数据物理上的操作 通常 该层将借助数据库管理系统 如 SQL SERVER 2008 My SQL 和 Oracle 进行具体的操作 当然有时该层也会访问二进制文件 文本文档或者 XML 文档等 通过以上三层的划分 表示层不直接与数据库访问层进行交互 也就是说数据的交 互需要通过业务逻辑层才能进行 从而使业务逻辑层可以对信息进行功能上的处理以及 合法性检验的工作 表示层和数据访问层对功能的实现一无所知 表示层只负责界面怎 么展示信息 数据库访问层只负责去数据库里得到信息 具体这些信息该怎么用都是业 务逻辑层需要干的事 但是业务逻辑层对数据 从哪里来 数据到 哪里去 同样一无 所知 三个层次的交互关系如下图 表示层业务逻辑层数据访问层 数据 库系 统 图 2 1 三层架构各层之间交互图 关于三个层次的划分 表示层 只向用户展示信息 采集用户输入的信息 并且将信息传递给业务逻辑层 此层不涉及任何的业务逻辑 业务逻辑层 只从表示层接收信息 根据功能需求做出相应处理 然后利用数据访 问层进行增删改查等基本操作 并将信息整合之后向界面层进行反馈 该层不管数据的 来与去 数据访问层 只负责数据的增加 删除 查询和更改操作 该层是被业务逻辑层更 9 具需求进行调用的 该层不涉及任何业务逻辑 进行层次的划分 本质上的目的是降低耦合 大大降低了各个模块间的依赖 优点 在于使不同层次的开发人员只关注整个结构中的某一层 加快开发进度 在系统的后期 维护中 能够很容易的用新的实现替换掉原有层次的实现 而保持其他层次不变 这样 就极大地降低了维护的成本和时间 但由于数据在各个层次之间的传递 是的系统的性 能降低了 同时可能还会增加系统的开发成本 2 42 4 SESSIONSESSION 技术简介技术简介 Session 是指用户在初次浏览某个网站时 将于该网站的服务器进行连接 同时在 服务器中将保存一份有浏览器信息生成的在服务器端唯一识别的信息 这份信息将一直 保持到用户关闭浏览器 结束这次访问 Session 涉及客户端即浏览器 同时也涉及服 务器端 比并且需要不间断的访问才能保持 需要注意的是 同一主机的不同客户端 即不同的浏览器 对同意服务器进行访问 在服务器中生成的 Session 是不同的 也 就是说 session 生成的单位是客户端对服务器一对一的访问 而不是主机对服务器的访 问 客户端 请求 请求 服务器 接收请求 建立 session 首次访问 读取 更改 session 图 2 2 Session 技术客户端于浏览器之间交互图 存储于服务器的 session 可以在客户端与服务器的会话中中多次使用 也就是说客 户端可以从服务器的到一些有用的信息 也可将一些信息存进 Session 供客户端后期 访问 Session 的这一特性 可以帮助 B S 系统实现诸多技术上的问题 比如用户是否 登录的判断 用户登录后权限的检查 界面刷新过程中临时信息的存储等 这些问题本 系统也是通过 Session 技术进行解决的 在 ASP 中使用 session 的方法相当简单 Session user user 将user对象存入session 在session中的唯一识别名称为 user User Session user 从session中读取名为user的session信息 10 3 3 需求分析与系统设计需求分析与系统设计 3 13 1 需求分析需求分析 3 1 13 1 1 总店子系统总店子系统 需求分析需求分析 1 基础资料 1 药品资料 2 门店资料 2 销售管理 1 远程订单管理 处理来自门店的远程订单 2 加盟店的进货统计 统计每个门店进货的数量 金额和比例 3 门店销售查询 实时统计每个门店的商品销售情况 商品销售数量 销售额等 4 销售决策分析管理 对全体门店的销售情况进行分析 3 库存管理 1 门店库存查询 实时统计每个门店的各种商品库存情况 对商品的不足和积 压实时预警 2 总部库存查询 实时统计总部的各种商品库存情况 对商品的不足和积压实时 预警 3 店间调拨管理 加盟店之间的商品调拨 3 1 23 1 2 分店子系统分店子系统 需求分析需求分析 1 基础数据管理 1 店铺管理 店铺资料管理 增加店铺 2 货品管理 货品基本信息 添加新货品 2 库存管理 指单体店本地库存管理 1 入库 填写入库单 增加库存 2 出库 填写出库单 减少库存 3 库存查询 查询当前库存情况 查询总店库存情况 4 拆零 将大包装商品拆为小包装商品 3 销售管理 1 包括销售录入 销售利润统计等 2 各项销售批发报表 4 价格管理 1 包括进货价格管理 零售价格管理 进货价格调整 5 会员管理 1 会员基本信息 会员信息维护 会员折扣率设置 11 3 23 2 系统的系统的概要设计概要设计 3 2 13 2 1 开发环境开发环境 系统开发环境的需求见下表 表 3 1 环境需求配置清单 开发环境配置需求清单开发环境配置需求清单 内存内存1GB 以上 系统系统Windows 7 开发语言开发语言C 开发工具开发工具VS2010 数据库数据库SQL SERVER 2008 架构方式架构方式三层架构 服务器服务器IIS 调试浏览器调试浏览器IE 浏览器 3 2 23 2 2 系统实现功能目标系统实现功能目标 该系统主要模块包括库存管理和销售管理 还包括了一些基本资料模块 如货品管 理 会员管理 店铺管理和管理员管理 具体功能设计如下表 表 3 2 系统功能设计表 功功 能能 分分 类类 功能概况功能概况具体功能具体功能功能说明 可参考需求分析 功能说明 可参考需求分析 库存变更库存变更主要支持入库操作 一次可对某一仓库入库多种产品 库存变更列表库存变更列表 入库和出库的总单列表 包括总单号 店铺号 时间以及总价 的 不包括某一具体商品的入库数量 支持关键字查询 详细变更列表详细变更列表 详细列出某一具体商品在某一店铺的入库数量 支持关键字查 询 库存管理库存管理 库存查看库存查看 库存情况列表 可以对某一商品进行整装拆零 支持关键字查 询 销售开票销售开票 一个店铺一次可以销售多种商品 并生成销售单 同时生成出 库单 涉及库存管理 销售概况销售概况 销售总单列表 只显示总单号 销售对象 时间等信息 不涉 及具体商品的销售情况 详细销售列表详细销售列表店铺向销售对象销售具体商品的情况 包括价格等信息 销售利润销售利润销售渠道获得的利润 不可更改 主主 要要 操操 作作 销售管理销售管理 拆零利润拆零利润通过整装拆零获得的利润 不可更改 添加货品添加货品增加商品 只有存在相应产品时才可进行出 入库和销售操作基基 本本 货品管理货品管理 货品列表货品列表货品列表中的编辑一项可以对已存在的货品信息进行更改 由 12 于涉及价格和整 散装数量问题 需要清空库存后才可编辑 添加会员添加会员需输入新增会员编号 姓名 折扣率 会员管理会员管理 会员列表会员列表只可更改姓名和折扣率 添加管理员添加管理员需输入管理员编号 密码 姓名 所在店铺以及权限 管理员管理管理员管理 管理员列表管理员列表只可更改密码 姓名 所在店铺以及权限 新增店铺新增店铺需输入店铺编号 名称 地址以及联系电话 资资 料料 店铺管理店铺管理 店铺管理店铺管理只可更改名称 地址以及联系电话 注 1 只有店铺 货品资料存在时才可进行出库或者入库操作 2 只有店铺 货品 足量 以及会员同时存在时才可进行销售操作 3 由于整装价格 整装数量和散装价格不一致问题 可能会产生拆零 将整装拆成散装 利润 4 在销售时 会参考会员折扣率确定最终价格 3 2 33 2 3 系统权限设计系统权限设计 角色分类 表 3 3 角色分类表 管理员名称权限代码 及代号 所在店铺码 01 0 1 总店管理员2 总店操作员 其他3 分店管理员4 分店操作员 权限分配 表 3 4 权限分配表 功能概况功能概况具体功能具体功能1 1 总店管理员总店管理员2 2 总店操作员总店操作员3 3 分店管理员分店管理员4 4 分店操作员分店操作员 库存变更库存变更是是是是 库存变更列表库存变更列表是是是是 详细变更列表详细变更列表是否否否 库存管理库存管理 库存查看库存查看是是是是 销售开票销售开票是是是是 销售概况销售概况是是是是 详细销售列表详细销售列表是否否否 销售利润销售利润是否否否 销售管理销售管理 拆零利润拆零利润是否否否 添加货品添加货品是否否否 货品管理货品管理 货品列表货品列表是是是是 添加会员添加会员是否是否 会员管理会员管理 会员列表会员列表是是是是 添加管理员添加管理员是否否否 管理员管理管理员管理 管理员列表管理员列表是是否否 13 新增店铺新增店铺是否否否 店铺管理店铺管理 店铺管理店铺管理是是否否 3 2 43 2 4 关键功能活动图关键功能活动图 图 3 5 库存变更操作图 用户可以通过系统添加商品信息 提交后体统会检查药品是否存在 如果存在会直 接生成入库单 并将入库记录添加到数据库中 如果成功入库 改变数据库中药品数量 显示列表 如果失败则显示失败 回滚 14 图 3 6 库存变更操作活动图 用户可以通过显示销售界面 查看药品信息 然后将药品添加到出库单 提交后体 统会检查药品是否存在 如果存在会直接生成出库单 并将入库记录添加到数据库中 如果成功出库 改变数据库中药品数量 显示列表 如果失败则显示失败 回滚 15 3 33 3 数据库设计设计数据库设计设计 3 33 3 1 1 E RE R 设计设计 图 3 7 ER 图 ID 货品店铺库存 拆零变更总单 变更详细 名称 ID 整装价格 散装价格价 格 整装含量 ID ID ID 包装方式 整装数量 散装数量 数量 日期 利润 属于 变更方式 散装数量 整装数量 ID 日期 16 3 3 23 3 2 数据库关系图数据库关系图 图 3 8 数据库关系图 17 3 3 33 3 3 数据库表结构数据库表结构 表 3 9 1 Shop 列名属性是否主键完整性约束说明 shop idchar 10 是 not nullID shop namechar 20 否 not null 商店名 Addresschar 30 否无商店地址 contactchar 20 否无商店联系方式 表 3 9 2 Products 列名属性是否主键完整性约束说明 pro idchar 10 是 not nullID pro namechar 20 否 not null 产品名称 bulk priceint 否无散装价格 while priceint 否无整装价格 pack numberint 否无整装数量 表 3 9 3 Stock 列名属性是否主键完整性约束说明 pro idchar 10 references 货品 ID shop idchar 10 是 references 店铺 ID pack modechar 1 否 0 or 1 or 2 包装方式 bulk numberint 否无散装数量 while numberint 否无整装数量 表 3 9 4 Bale 列名属性是否主键完整性约束说明 bale idchar 10 是 not nullID pro idchar 10 否 references 货品 ID shop idchar 10 否 references 店铺 ID bale timedatetime 否无拆零日期 bale numberint 否无拆零数量 bulk priceint 否无散装价格 while priceint 否无整装价格 表 3 9 4 AllStorage 列名属性是否主键完整性约束说明 allstor idchar 10 是 Not nullID shop idchar 10 否 references 店铺 ID stor datedatetime 否无变更日期 change modechar 4 否 出库 or 入库 变更方式 totalint 否无总价 18 表 3 9 5 Storage 列名属性是否主键完整性约束说明 stor idchar 10 是 not nullID pro idchar 10 否 references 货品 ID allstor idchar 10 否 references 变更总单 ID stor datedatetime 否无变更日期 pack modechar 1 否 0 or 1 or 2 包装方式 bulk numberint 否无散装数量 bulk priceint 否无散装价格 while numberint 否无整装数量 while priceint 否无整装价格 totalint 否无总价 19 4 4 系统实现详细设计系统实现详细设计 本章详细介绍了各主要模块的实现原理 在介绍过程中详细分析了实现的实现代码 4 14 1 数据库操作模块的实现数据库操作模块的实现 本系统采用三层架构模式开发 分为界面层 逻辑层与数据层 系统在操作过程中 需要频繁查询或者更改信息 所以系统的实现过程中需要多次对数据库进行操作 而在 对数据库进行操作之前必须进行数据库连接 如果每一部分都单独编写数据库连接代码 将造成代码的冗余 同时降低了系统的可维护性 为此本系统将数据库连接参数写进配 置文件 Web config 并为数据库的连接和基本语句的执行单独写作一个类 DbHelperSQL 具体如下所示 配置文件 SaleManage Web Web config DbHelperSQL 类的实现 SaleManage DBUtility DbHelperSQL cs public abstract class DbHelperSQL 在配置文件 Web config 中取得连接参数 PubConstant 的代码在本类代码之下 public static string connectionString PubConstant ConnectionString 执行 sql 语句 返回 dataset public static DataSet Query string SQLString 与数据建立连接 using SqlConnection connection new SqlConnection connectionString DataSet ds new DataSet 声明用于装载查询结果的对象 try connection Open 打开会话 20 SqlDataAdapter command new SqlDataAdapter SQLString connection 执行 SQL 语句字符串 command Fill ds ds 装载数据库 catch System Data SqlClient SqlException ex 如果发生异常怎 么处理 throw new Exception ex Message 抛出异常 return ds 执行带参数语句 返回受影响行数 public static int ExecuteSql string SQLString params SqlParameter cmdParms 详细代码略去 具体实现可参见源代码 执行带参数的 sal 语句 返回 dataset public static DataSet Query string SQLString params SqlParameter cmdParms 详细代码略去 具体实现可参见源代码 PubConstant 类的实现 SaleManage DBUtility PubConstant cs public class PubConstant 获取连接字符串 public static string ConnectionString 详细请见代码 21 4 24 2 库存管理模块的实现库存管理模块的实现 4 2 14 2 1 库存变更操作的实现库存变更操作的实现 4 1 库存变更添加 库存变更操作可一次添加多种商品 输入一件商品信息后确认添加 然后然后更新 用于存储已添加商品的 session 最后提交时将 session 里的商品逐一进行库存更新 最后生成总库存变更单 和包括单一商品信息的详细变更单 单一商品确认添加相关代码 SaleManage Web MainAdmin Stock AllStorageAdd aspx cs protected void AddItem Click object sender EventArgs e 检查总单基本信息 string strErr if this txtallstor id Text Trim Length 0 strErr stor id不能为空 n if this txtshop id Text Trim Length 0 strErr shop id不能为空 n else SaleManage BLL Shop bllshop new BLL Shop if bllshop Exists this txtshop id Text Trim strErr 该店铺不存在 n if strErr MessageBox Show this strErr return 22 SaleManage BLL Products bllpro new BLL Products SaleManage Model Products modelpro bllpro GetModel this pro id Text 检查是否存在此商品 if bllpro Exists this txtpro id Text MessageBox Show this 您添加的商品不存在 若要添加须先在商品 单中添加 return Model Storage modelstor new Model Storage List storagelist List Session storagelist 设置子单的信息 if storagelist Count 9 MessageBox Show this 最多添加9件商品 return else 生成出库或者入库单号 modelstor stor id txtallstor id Text storagelist Count 1 ToString modelstor pro id this txtpro id Text modelstor shop id txtshop id Text modelstor stor date DateTime Now modelstor pack mode 2 if this txtbulk number Text Length 0 modelstor bulk number Int32 Parse this txtbulk number Text else modelstor bulk number 0 23 if this txtwhile number Text Length 0 modelstor while number Int32 Parse this txtwhile number Text else modelstor while number 0 modelstor total modelstor bulk price modelstor bulk number modelstor while price modelstor while number storagelist Add modelstor 更新显示界面 for int i 0 i storagelist Count i modelstor storagelist i 取得列表中的对象 界面的重新显示过程此处不再展示 可查看源代码 Session storagelist storagelist 更新session 4 2 24 2 2 库存变更列表的实现库存变更列表的实现 4 2 库存变更显示列表 系统中关于列表的显示都采用了相同的方式 Web 层使用 GridView 控件 然后在控 件中添加列 BoundField 并使用 DataField 属性指定调用 BLL 层的 GetList 方法取得的 DataSet 中列名相匹配的字段 BLL 层调用 DAL 层的 GetList 方法 返回 DataSet 对象 由于其他列表与本列表代码类似 在此仅对本列表进行分析 以后不再重复 界面表示层相关代码 前台界面 SaleManage Web MainAdmin Stock AllStorageAdd aspx 24 数据加载过程 protected void Page Load object sender EventArgs e 界面加载首先要执 行的方法 if Page IsPostBack btnDelete Attributes Add onclick return confirm 你 确认要删除吗 BindData 调用此方法 向 web 层填充数据 方法实现如 下 public void BindData DataSet ds new DataSet StringBuilder strWhere new StringBuilder if txtKeyword Text Trim strWhere AppendFormat stor id like 0 txtKeyword Text Trim 此段代码点击查询的时候会用 ds bll GetList strWhere ToString 调用 BLL 层方法 gridView DataSource ds 为 gridView 设置数据源 gridView DataBind 为 gridView 填充数据 BLL 层相关代码 public DataSet GetList string strWhere return dal GetList strWhere 25 DAL 层相关代码 public DataSet GetList string strWhere StringBuilder strSql new StringBuilder strSql Append select stor id shop id stor date change mode total strSql Append FROM AllStorage if strWhere Trim 条件字符串如果不为空的话 添 加 where 语句进行查询 strSql Append where strWhere return DbHelperSQL Query strSql ToString 执行查询 可 参考前边数据库连接部分对 DbHelperSQL 的讲解了解 Query 方法的执行过程 系统中每个列表页都含有对相关关键字的查询功能 实现方式相同 以此库存变更 单列表分析一次 之后不再重复 点击查询后执行的相关代码 SaleManage Web MainAdmin Stock AllStorageList aspx cs protected void btnSearch Click object sender EventArgs e BindData public void BindData 此方法与页面加载过程调用的相同 可参考以上 分析 DataSet ds new DataSet StringBuilder strWhere new StringBuilder if txtKeyword Text Trim 如果查询文本框里不为空 将添加 where 语句之后的条件 strWhere AppendFormat stor id like 0 txtKeyword Text Trim ds bll GetList strWhere ToString gridView DataSource ds gridView DataBind 26 4 2 34 2 3 库存详细变更列表实现库存详细变更列表实现 4 34 3 库存变更查询库存变更查询 这个详细变更列表其实是关于一次订单中单个商品的列表 此列表主要实现按条件 查询的功能 主要包括按时间查询 按编号 单个商品变更编号 药品编号 店面编号 和两者联合查询 大体实现控件与 库存变更列表 相同不在重述 关于时间查询引入 My97DatePicker 文件 使用 My97DatePicker 的时间控件 4 2 44 2 4 查看库存的实现查看库存的实现 4 44 4 库存变更详细查询库存变更详细查询 查看库存的功能实际也是通过库存列表实现的 此列表的表现方式以及包含的各个 功能 与系统的其他列表所使用的控件与实现方式完全相同 可参考库存管理中 库存 表更列表的实现分析 其中所实现的拆零功能为其他列表所没有的 拆零是根据一个单 位的整装所包含的散装数量进行操作的 过程中涉及整装与散装的变化 以及由于整装 与散装价格的不同所产生利润的记录 实现过程中首先 由列表页 SaleManage Web MainAdmin Stock List aspx 跳转的拆零的信息填写页 SaleManage Web MainAdmin Stock BaleAdd aspx 并把需要拆零的货品信息传给信 息填写页 跳转实现如下 SaleManage Web MainAdmin Stock List aspx 其中DataNavigateUrlFormatString指 定了跳转路径为 BaleAdd aspx pro id 0 得到拆零单ID string pro id this lblpro id Text 得到拆零的商品号 string shop id this lblshop id Text 得到拆零的店铺号 DateTime bale time DateTime Now 得到拆零的时间 SaleManage BLL Products bllpro new BLL Products SaleManage Model Products modelpro bllpro GetModel pro id 得 到货品的对象 从而得到整装数量 价格等信息 为进行库存变更 拆零利润计算等操 作提供基础 SaleManage BLL Stock bllsto new BLL Stock SaleManage Model Stock modelsto bllsto GetModel pro id shop id 更具货品ID和店铺ID得到库存对象 用于进行库存数量调整 int bale number Int32 Parse this txtbale number Text 得到 调整的数量 if bale number modelsto while number 如果调整数量大于对应 库存总量 拆零失败 重新跳转至拆零界面 Response Redirect BaleAdd aspx pro id pro id int bulk price Int32 Parse modelpro bulk price ToString 取得散装价格 int while price Int32 Parse modelpro while price ToString 取得整装价格 int pack number Int32 Parse modelpro pack number ToString 取得整装的含量 int profit pack number bale number bulk price bale number while price 计算利润 SaleManage Model Bale model new Model Bale 设置拆零单对 象 用于存储 对象属性的设置此处不再显示 参看源代码 modelsto bulk number pack nu

温馨提示

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

评论

0/150

提交评论