搜索
您的当前位置:首页药店管理系统

药店管理系统

来源:智榕旅游
1项目概述

随着社会的发展,计算机技术的广泛普及,一小部分大型的药店已经实现了商品管理、客户管理、销售管理及销售管理等的信息化和网络化,提高了管理效率。但是,在绝大多数小药店,药店的管理仍然以传统人工管理为主,特别是在药品的采购、销售、库存环节,传统的手工管理处理信息混乱,账目管理困难,效率低下,浪费严重,造成了资产的流失。而本系统可以克服这些缺点,提高效率,减少资产的流失。

经过实际调查和综合分析,本系统使用功能强大的Microsoft Visual Studio 2005作为开发环境,使用编程语言JAVA对整个系统进行设计与开发,后台数据库使用Microsoft SQL Server 2000。系统操作简单,灵活性好,系统安全性高,运行稳定。

2需求分析

药店管理系统是为了加强药品管理,以便更好地对药品进行监督和管理,对售药机构人员的工作,起到了高效性、准确性管理而开发。本系统主要包含系统用户管理模块、药品管理模块、销售管理模块、进货管理模块、存货转移管理模块。药品管理系统是以合理、全面、准确的药品编码体系为基础,提供了对药品数量、金额、有效期的全面管理,统一的药价管理机制规范了药品的价格。系统能随时提供药库的库存、药品流向和消耗,还能根据现有库存,药品有效期提供采购计划或应暂停采购的药品清单,以提高资金的利用率,避免不必要的损失,方便快捷的途径对药基本信息进行定期的更新和删除等管理。

为了保证系统能够长期、安全、稳定、可靠、高效的运行,药品管理系统应该满足以下的性能需求:

1、系统处理的准确性和及时性 2、系统的开放性和系统的可扩充性 3、系统的易用性和易维护性 4、系统的标准性 5、系统的先进性 6、系统的响应速度

2.1 业务流程描述

根据需求分析的得到的现行业务处理流程,在用户反复研究后,首先确定目标系统的业务流程。

针对业务流程,现具体描述其功能如下: 1.用户登录:系统对用户合法性进行检查。

2.药品入库:对新购进的药品分类进行编号,并把药品基本信息录入计算机。 3.药品销售:对已入库的药品,销售人员可以进行销售。 4.药品进货:对已入库的药品,管理人员可以进行货存控制。 5.存货转移:对于已经过期或者损坏的药品,可以进行处理。 6.信息查询:对药品的各种变动情况的查询。 7.职员管理:对药店的职工进行管理。

2.2 业务流程图

图3.1 药店管理系统的业务流程

管理员 退出登陆 销售和库存整理 管理员 登陆 合法用户 用户验证 药品登记 登记后的 药品 2.3 数据流程图

在仔细调查药店药品进销存管理过程的基础上,得到系统所要处理数据的流程,如图所示。

顶层图:

F1 登录 P F5 出库 管 F2 药品信息 理 F3 存储 药品管理系统 F6 退出登录 员 F4 仓库管理

D1 采购信息

顾客 一级细化:

F1 P1 P2 P3 D3 出库单 用户 药品 销售 验证 F2 管理 F3 管理 D2 入库单 P4 库存 管理 F6 P5 D4 信息变更 信息 查询 P1的二级细化

F1 P1.1 P1.2 F2 登录 密码 系统 验证

P2的二级细化

F2 P2.1 P2.2 F3 录入药品 D2 入库单 打印 信息 入库单 P3的二级细化

F3 P3.1 P3.2 F4 药品 D3 出库单 打印 D2 销售 出库单

P4的二级细化 F3 P4.1 D1 药品 入库 D3 F6 F4 P4.2 D2 药品 出库

图3.10 数据流程图

3总体设计

3.1系统层次结构图

药店药品进销存管理系统是专为药店药品批发零售度身设计的专用进销存管理软件。软件模块结构清晰、操作方便、简单实用,操作人员一般不用培训,参照“帮助文档”自己摸索就能使用。及时反应各种药品的库存进销存情况,全面及时掌握经营情况和经济收益。

通常程序中的一个模块完成一个适当的子功能。应该把模块组织成良好的层次系统。我们在对模块设计时应该遵循启发式规则,使得模块规模适中,深度、宽度、扇出和扇入适当,并在设计模块时尽量使模块独立,做到高内聚,低耦合,

并保持信息隐蔽和局部化原则。

在基于WEB的网站设计中,对系统的功能进行严格的划分是比较重要的,这样可以进行有效和完善的管理。因此从设计上的需要我把它分为前台信息的浏览、处理和后台数据、文件的管理。

在系统功能分析的基础上,考虑程序编制的特点,实现了以下几个大的功能:登入管理:要求管理员输入账户和密码,只有登录成功的管理员才能使用系统提供的特殊功能,否则无法对系统进行操作。

仓库管理:对药品所在的仓库进行有效的管理,按照规则把药品进行分类,同时掌握药品的出入库。

药品管理:要包括药品的主要信息、药品的效期、价格和销售金额销售量,并根据相应的药品存储信息对是否进对其行计划。

统计管理:对销售和库存的具体信息的一个统计。

个人设置:用户可以修改除账户以外的所有注册时填写的信息。但在修改密码时要求密码重复验证。

退出系统:完成操作或长时间不工作都可以退出系统。如图3.1.1。

药店管理系统 用户 验证 模块 药品 登记 模块 销售 管理 模块 库存 管理 模块 信息 查询 模块 系统 维护 模块 登 录 系 统 模 块 密 码 验 证 模 块 录 入 药 品 信 息 模 块 打 印 入 库 单 模 块 药 品 销 售 模 块 打 印 出 库 单 模 块 药 品 入 库 模 块 药 品 出 库 模 块 代码维护 DB 维护 帮助

图3.1.1 系统层次结构图

以下我们就分类介绍系统的四个主要功能。

药品管理 统计查询 仓库管理 四大功能 个人设置

图3.1.2 系统四大功能

1.仓库管理:

仓库管理是一个综合了仓库信息维护、存储规则管理和出|入库管理的总的管理。图3.1.3介绍了仓库与其子系统的关系。

存储规则管理 仓库信息维护 仓库管理

图3.1.3 仓库管理系统

出入库管理 仓库信息维护:仓库信息维护的作用主要是对现有的药品的存储的仓库名称和存储仓库的地点进行编辑。

仓库名称 所在地点 仓库编号 仓库信息 描述

图3.1.4 仓库信息

存储规则管理:存储规则管理是对药品的储存的仓库名称、药品的名称以及库存的上下限进行全面的系统的管理。

药品编号 仓库编号 规则编号 存储规则 当前库存 存储下限 存储上限 图3.1.5 存储规则

出\\入库管理:出\\入库管理介绍了对出入库药品的名称、是出还是入的类型、出入库的数量和出入库的时间进行具体的管理分析。

库存管理 入库|出库记录 用户信息 销售记录 药品信息 仓库信息

图3.1.6出\\入库管理

2.药品管理:

药品管理包含了药品信息维护、药品效期管理、药品价格管理、药品销售管理和药品计划管理。如下图

效期管理 价格管理 销售管理 信息维护 计划管理 药品管理

图3.1.7药品管理

药品信息表:综合介绍药品信息维护、药品效期管理、药品价格管理和药品销售管理。

药品信息维护,主要是对药品的编码、药品的名称、药品的剂量,此药品的生产厂家。

药品效期管理,具体分析了所在仓库的哪中药品的数量和有效期时间进行管理。

药品价格管理,它是药品名称具体的进价、原价和折扣进行编辑管理工具。 药品销售管理,是负责药品的出售数量,出售药品的总金额和药品出售的日期。

药品计划管理:药品计划管理对药品和药品所在仓库的存储状态进行详细的系统管理。对药品存储不足的仓库进行文字提示,对药品存储接近漫溢状态的仓库进行颜色提示。计划管理就是对药店近期需要采购的药品、采购数量和采购药品的供应商的管理。

剂量 进价 定价 折扣 出厂日期 编码 药品信息 批号 生产厂家 条码 主供应商 通用名 唯一编号 次供应商

图3.1.8药品信息

过期日期 3.统计查询:

选型原则 统计查询只包括了两个功能:出入库变化和销售情况。 出入库变化:对具体仓库里的药品在某一个时间段内的入库、出库和库存变化进行查询。

销售情况:对药店的某一种药品在某一个时间段内的的所有销量和销售金额查询分析。个人设置:

个人设置包括个人资料修改和密码修改。个人资料包括管理员的姓名、姓名、密码保护(密码问题和问题答案)、联系电话和Email,个人资料修改就可以对这些资料进行修改。密码修改是对管理员登入密码进行修改。

3.2数据库设计

3.2.1 E-R图

E-R模型的组成元素有:实体、属性、联系。E-R模型用E-R图来表示。实体是用户工作环境中所涉及的事物,属性是对实体特征的描述。本系统主要的E-R图,见图3.2。

出入库记录ID药品ID仓库ID出入库类型药品ID药品名药品编码规则ID药品IDN出入库记录N仓库ID包含仓库IDN实施当前数量实施N仓库地址采购计划N操作1计划状态N计划IDN存储规则存储限定 包含1药品信息1仓库名称仓库信息销售记录用户信息药品ID销售记录ID药品ID销售数量用户ID用户IDEMAIL电话

图3.2 整体E-R图

3.2.2 数据库表

在SQL服务器上建立名为zhao的数据库。其中包括以下7张表:

表3.1 仓库信息表(stores)

字段名 Storeid Name Address Description

字段类型 Int Varchar(200) Varchar(200) Varchar(200)

说明

仓库唯一id,自动增量

仓库名称 仓库所在地址 仓库描述

表3.2 存储规则表(storerule)

字段名 Uid Medicalid Storied Topcount Basecount Curcount

字段类型 Bigint Bigint Int Int Int Int

表3.3 出入库记录表(outinrecords)

字段名 Uid Medicalid Storied Stype Tcunt Managerid Shandler Opdate

字段类型 Bigint Bigint Int Bit Int Int varchar(200) Smalldatetime

说明

记录唯一id,自动增量

药品id 仓库id

类型,0表示入库,1表示出库

数量 操作员id 经手人 日期 说明

规则唯一id,自动增量

药品id 仓库id 存储上限 存储下限 当前数量

表3.4 药品信息表(medical)

字段名 Medicalid Cname Tiaoma Bianma Jiliang Pici Jinjia Shoujia Dazhelv Outdate Pertime Prodcorp provider1 provider2

表3.5 药品采购计划表(stockplan)

字段名 uid status medicalid tcount zongjia provider makeuserid makedate execuser execdate

字段类型 int bt bigint int money Varchar(200)

int smalldatetime Varchar(50) smalldatetime

说明

计划唯一id,自动增量 计划状态,0-未执行,1-已执行

药品id 计划采购数量

总价 供应商 计划制订人id 制订日期 采购员 采购日期

字段类型 Bigint Varchar(200) Varchar(200) Varchar(200) Varchar(200) Varchar(200)

Money Money Float Smalldatetime Smalldatetime Varchar(200) Varchar(200) Varchar(200)

说明

药品唯一id,自动增量

药品通用名 药品条码 药品编码 剂量 批号 进价 定价 折扣 出厂日期 过期日期 生产厂家 主供应商 次供应商

表3.6 销售记录表(sales)

字段名 Uid Opdate Medicalid Tcount Opuserid Zongjia Recipeid

字段类型 Bigint Smalldatetime

Bigint Int Int Money Varchar(50)

表3.7 用户信息表(users)

字段名 userid username password truename sex question answer email phone usertype

字段类型 int Varchar(50) Varchar(50) Varchar(50)

Bit Varchar(50) Varchar(50) Varchar(50) Varchar(50)

int

说明

用户唯一id,自动增量

仓库名称 仓库所在地址 仓库描述

性别 1表示男,0表示女

密码问题 问题答案 email 电话

用户类型,暂时未使用该字段

说明

记录唯一id,自动增量

销售日期 药品id 销售数量 操作员id 总价 处方编号

4详细设计

4.1实现技术

微软的.NET是为了解决因特网应用中存在的普遍问题而预先建立的基础设施。.NET的服务器版可运行在Windows NT.Windows 2005以及Windows XP Professional操作系统下.其客户版可运行在Windows 98、Windows Me、Windows

XP Home下。目前它只是一个附加的服务补丁,以后的.NET版本极有可能成为操作系统的一部分,今后的版本也有可能会允许.NET的—部分运行在其他版本的Windows操作系统下,微软的.NET提供了下述服务,具体如下

.NET提供了一种新的运行环境.即.NET框架,它使得程序员能够更容易、迅速地写出优良、健壮的程序代码,并且能够方便地管理、部署和修改代码,所编写的程序和组件都在该环境中执行。它为程序员提供了一些新功能,例如自动内存管理(垃圾收集).以及更方便地访问所有系统服务。它添加了许多实用功能、例如易于访问因特网和数据库。它还为代码复用提供了一种新的机制一一更易于使用.并且比COM更加有效和灵活。.NET框架更易于部署.因为它不需要进行注册设置。它还为版本的制定提供了标准化、系统级别的支持。程序员可以在任一种与.NET兼容的编程语言中使用上述全部功能

.NET为创建HTML页面提供了一种新的编程模型,称为ASP.NET.尽管智能的单机程序仍在不断涌现,但是在不久的将来,大多数因特网通信都会以通用浏览器作为前端,这就要求服务器能够使用HTML语言来构造页面,以便浏览器识别并显示给用户。ASP.NET是一种运行在因特网信息服务(IIS)下的新环境,它使得程序员能够更容易地编写代码来构造基于HTML语言的web页面,供浏览器查看。 ASP.NET提供了一种新的与语言无关的代码编写方式,并将其与web页面请求相关联。它提供了.NET的Web窗体,它是一种与控件交互的事件驱动编程模型、这使得编写web页面变得就像编写普通的VB窗体一样。ASP.NET包含了良好的会话状态管理和安全功能,它比原来的ASP更加健壮,性能也得以提高。

.NET提供了windows窗体,它是一种使用.NET框架编写各种客户程序的新方法。 一个使用XML Web服务的专用客户端应用程序必须提供良好的用户界面。高质量的界面能够提供更佳的用户感受,.NET提供了一种新的软件包,它被称为.NET windows窗体.这使得程序员能够使用.NET框架轻易地编写出专用的windows客户应用程序。

C#是可用于创建要运行在.NET上的应用程序的语言之一,它从C和C++语言演化而来,是Microsoft专门为使用.NET平台而创建的。因为C#是近期发展起来的,所以吸取了以前的教训,考虑了其他语言的许多优点,并解决了它们的问题。

使用C#开发应用程序比使用C++简单,因为其语法比较简单。但是,C#是一种强大的语言,在C++中能完成的任务在C#中也能完成,C#中与C++比较高级的功能等价的功能(例如直接访问和处理系统内存),只能在标记为“不安全”的代码中使用。这个高级编程技术是非常危险的(正如它的名称),因为它可能覆盖系统中重要的内存块,导致严重的后果。

C#代码常常比C++略长一些。这是因为C#是一种类型安全的语言(与C++不同),一旦为某些数据指定了类型,就不能转换为另一个不相关的类型。所以,在类型之间转换时,必须遵守严格的规则。执行相向的任务时,用C#编写的代码通常比C++长。但C#代码更健壮,调试也比较简单,.NET总是可以随时跟踪数据的类型。在C#中,不能完成如“把4字节的内存放在数据中,并把它解释为x”等的任务。

C#只是.NET开发的一种语言,是目前最好的一种语言。C#的优点是,它是唯一为.NET Framework而设计的语言,是移植到其他操作系统上的.NET版本中使用的主要语言。C#能使用.NET Framework代码库提供的每种功能

4.2应用程序配置结构

web.config文件主要配置节如下:

name=\"strConn\"

connectionString=\"Data

Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\net05jinxiaocun_Data.MDF;Integrated

Security=True;User

Instance=True\"

providerName=\"System.Data.SqlClient\"/>

mode=\"RemoteOnly\"

5系统实现

5.1数据库连接的实现

在设计中我采用的是OLEDB方式连接SQLServer2000数据库,服务器名:(local)用户为:sa,密码为:空,数据库名为:zhao,其中采用的数据库连接对象控件是:ADO,方法为:Connection

<%

dim dsn,oConn

dsn=\"Provider=SQLOLEDB.1;Initial Catalog=zhao;Data Source=(local);User ID=sa; \"

set oConn=Server.CreateObject(\"Adodb.Connection\") oConn.Open dsn %>

5.2系统功能的实现

5.2.1登录界面的实现

输入管理员的账号密码。当用户输入的用户名时与数据库中的用户名和密码进行比较,如果两项都相同则返回到主页,如果不同弹出对话框要求重新输入,并且提示“用户名或密码错误”要求重新输入。

用户登录页(login.asp)部分代码: <%

if Request.ServerVariables(\"CONTENT_LENGTH\")=0 then %>

action=\"<%=Request.ServerVariables(\"SCRIPT_NAME\")%>\" onsubmit=\"javascript:return validform()\" name=\"pgfm\">

width=\"180\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"#666666\">

用户登录

method=\"post\"

帐号:

密码:

name=\"submit\"

type=\"image\"

src=\"images/img3.jpg\"

name=\"passwd\"

style=\"width:80px;\"

class=\"txt\"

width=\"40\" height=\"20\" border=\"0\">

<% else

username=Trim(Request.Form(\"username\")) username=Replace(username,\"'\passwd=Trim(Request.Form(\"passwd\"))

sql = \"select * from users where username='\" & username & \"' and

password='\" & md5(passwd) &\"'\"

set rs=Server.CreateObject(\"Adodb.Recordset\") rs.Open sql,oConn,3,1 if rs.EOF then

ret=false

else

ret=true uid=rs(\"userid\")

end if rs.Close oConn.Close set rs=nothing set oConn=nothing if ret=false then

Response.Write \"错误的用户名或密码,登录失败!


这里 重新登录\"

else

Session.Timeout=10

Session(\"UserName\")=username Session(\"UserID\")=uid Response.Redirect \"default.asp\"

end if

end if %>

图4.1 系统登录界面

5.2.2 添加仓库和维护的实现

添加仓库主要就是指添加药房的某个仓库的基本信息,包括仓库的名称,仓库所在的地址,以及对这个仓库的作用的简单描述。目前市场药品的种类犹如繁星,这样便于管理药房药品存处的方向,便于存取方便。仓库信息维护就是对目前药房所拥有的所有仓库进行一个列表分类,这样可以直截了当的了解每一种仓库的基本信息,在出库入库方面明确了方向。同时如果发生仓库该修或者其他暂停使用的情况下,同样可以多需要修改的仓库进行编辑,这样便于工作人员交接班的信息交流。

添加仓库(storeadd.asp)部分代码:

<%if Request.ServerVariables(\"CONTENT_LENGTH\")=0 then%>

action=\"<%=Request.ServerVariables(\"SCRIPT_NAME\")%>\"

method=\"post\" name=\"ptfm\" onsubmit=\"javascript:return validform()\">

width=\"100%\"

border=\"1\"

cellspacing=\"0\"

cellpadding=\"2\"

bordercolordark=\"#fcfcfc\"

bordercolorlight=\"#7c89e2\">

名称*

style=\"width:240pt;\" maxlength=\"200\">

所在地址*

描述 style=\"width:240pt;\">

<% else

name=\"desc\"

rows=\"3\"

tname=Trim(Request.Form(\"tname\")) taddr=Trim(Request.Form(\"taddr\")) desc=Trim(Request.Form(\"desc\"))

sql=\"select * from stores where name='\"& tname & \"'\" set rs=oConn.Execute(sql)

if not rs.e of then

rs.Close set rs=nothing oConn.Close set oConn=nothing

Response.Redirect \"error.asp?id=0\"

else

rs.Close set rs=nothing

set cmd=Server.CreateObject(\"Adodb.Command\") set cmd.ActiveConnection=oConn cmd.CommandType=adCmdStoredProc cmd.CommandText=\"StoreAdd\" cmd.Parameters.Append

cmd.CreateParameter(\"@tname\

cmd.Parameters.Append

cmd.CreateParameter(\"@taddr\

cmd.Parameters.Append

cmd.CreateParameter(\"@tdesc\

cmd.Execute

set cmd.ActiveConnection=nothing set cmd=nothing oConn.Close set oConn=nothing

Response.Redirect Request.ServerVariables(\"SCRIPT_NAME\")

end if

end if %〉

图4.2 添加新仓库

图4.3 仓库信息维护

5.2.3 药品存储规则的实现

药品的入库是对药房具体的某一种药品入存哪一种仓库资料备份,同时设置了对入库的数量进行设置,这样便于仓库空间的合理分配,不会发生仓库爆满的情况。对所有药品都分配好存储空间后,在存储管理栏我们可以看见药品的分类情况,药品所在仓库和药品所在仓库对此药品的库存的上、下存储限度。

添加存储规则(ruleadd.asp)部分代码: action=\"<%=Request.ServerVariables(\"SCRIPT_NAME\")%>\" if(ptfm.basecount.value==''||ptfm.topcount.value=='') { }

if(parseInt(ptfm.topcount.value)alert('上限必须大于下限!'); return false;

alert('请输入所有带*项目!'); return false;

method=\"post\" name=\"ptfm\" onsubmit=\"javascript:return validform()\">

width=\"100%\"

border=\"1\"

cellspacing=\"0\"

cellpadding=\"2\"

bordercolordark=\"#fcfcfc\"

bordercolorlight=\"#7c89e2\">

药品名称

存储仓库

库存下限*

name=\"basecount\"

type=\"text\"

class=\"text\"

ONKEYPRESS=\"event.returnValue=IsDigit();\"

库存上限*

name=\"topcount\" type=\"text\" class=\"text\"

ONKEYPRESS=\"event.returnValue=IsDigit();\"

class=\"btn\" value=\"确定\">

图 4.4 添加新规则

图4.5 存储规则管理

5.2.4 药品的信息的实现

药店药品的流动性是很大的,为了适应市场的需要和药房经济的发展,必然会对市场上的药品需求量进行相应的变动。对目前药店不需要再经营的药品进行编辑删除,对与市场上的新药品的引进进行信息添加。在添加的项目中带“*”的项目是必须填写的。填写准确的药品后,对于以后的进货,发货都会有一个详细的数据参考。如果出现药品紧缺可以在最短的时间取得药品的信息,知道这种药品的供应商,便可以进货。

它主要介绍的药品的信息的列表分类,最上面给出的是药品的编码、药品的名字、收购药品的数量以及此药品的生产厂家。中间的部分可以看出是药品价格的管理,对药品的进价、出售的原价和折扣有了系统的归类。最下面的是药品的效期的管理,对在某一个仓库里的某一种药品的数量以及有效期的归类,我们可以看出失效的药品是红字显示出来的。

药店药品的信息化管理,给药店带来了巨大的经济效益。在药品资料富裕的情况下,仓库不会堆放大量的货物,就不会引起药品长时间的无法出售而引起的药品过期。在大量货物交易的情况下可以直接电脑计算出支付金额,不用烦琐的手工操作而引起的误差。对于可以折扣的药品也能计算出折扣后的金额。有效期的管理同样也能让药房排除蒙受巨大的经济损失,可以在接近有效期的时候进行低价出售,这样对经济的影响不会很大。总之,药品的信息管理是药店药品管理中重要管理部分之一。

添加药品信息页(medadd.asp)部分代码:

action=\"<%=Request.ServerVariables(\"SCRIPT_NAME\")%>\"

method=\"post\" name=\"ptfm\" onsubmit=\"javascript:return validform()\">

width=\"100%\"

border=\"1\"

cellspacing=\"0\"

cellpadding=\"2\"

bordercolordark=\"#fcfcfc\"

bordercolorlight=\"#7c89e2\">

通用名*

条码*

编码*

剂量*

进价* ONKEYPRESS=\"event.returnValue=IsDigit();\" >

定价*

ONKEYPRESS=\"event.returnValue=IsDigit();\" >

折扣

批号* name=\"pihao\"

type=\"text\"

class=\"text\"

id=\"pihao\"

style=\"width:160pt;\" maxlength=\"100\">

出厂日期*

[格式:yyyy-mm-dd]

有效期限*

生产厂家*

主供应商*

次供应商

onclick=\"javascript:window.location.href='medlist.asp'\">

图4.6 添加新药品

图4.7 药品信息维护

5.2.5统计查询的实现

统计查询主要功能就是查询出入库的及时变化情况和药房药品销售情况。 销售记录统计查询(sumsaledo.asp)部分代码 sql=\"select max(tcount) from sales \" & cond set rs=oConn.Execute(sql) if isnull(rs(0)) then

Response.Write \"未找到任何符合条件的记录!\"

else

maxn=CInt(rs(0)) rs.Close

sql=\"select tcount,opdate,zongjia from sales\" & cond & \" order by opdate\" set rs=oConn.Execute(sql) if rs.eof then

Response.Write \"未找到任何符合条件的记录!\"

else

%> width=\"100%\"

border=\"1\"

cellspacing=\"0\"

cellpadding=\"2\"

bordercolordark=\"#fcfcfc\"

bordercolorlight=\"#7c89e2\">

class=\"emtt\"><%=medname%>销量图

时间段

<% Response.Write ToDate(stdate) & \" 至 \" & ToDate(eddate)%> <%

while not rs.eof

width=CInt(CDbl(rs(\"tcount\")/maxn*640))

%>

<%=ToDate(rs(\"opdate\"))%>

height=14

<%

str=\"销售数量:\"& rs(\"tcount\")

if instr(1,opt,\"2\")>0 then

str=str & vbcrlf & \"销售金额:\"& rs(\"zongjia\")

end if

Response.Write \"title=\"\"\" & str & \"\"\"\"

%>>

sql=\"select sum(tcount) from sales \" & cond set rs=oConn.Execute(sql) tcount=rs(0) rs.Close set rs=nothing

if instr(1,opt,\"1\")>0 then

%>

<%end if

if instr(1,opt,\"2\")>0 then sql=\"select sum(tcount) from sales \" & cond set rs=oConn.Execute(sql) tcount=rs(0) rs.Close set rs=nothing

if instr(1,opt,\"1\")>0 then%>

<%end if

if instr(1,opt,\"2\")>0 then

sql=\"select sum(zongjia) from sales \" & cond set rs=oConn.Execute(sql) tcount2=rs(0) rs.Close

sql=\"select jinjia from medical where medicalid=\" & medid set rs=oConn.Execute(sql) jinjia=rs(0) rs.Close set rs=nothing%>

图4.8 药品计划管理

图4.8是药品的库存情况,对库存适中药品的状态显示的是蓝色横条,对库存不足的药品的装备则显示的是红色字体警告,对于接近饱和状态的药品库存情况则显示的是红色横条提示。添加新计划可以对目前接近紧缺的药品进行一个计划性收购。药品计划管理对库存的情况了如指掌,是药品库存的控制中心,只要有紧缺状。可以立即采购,可见系统信息化的优点。

图4.9 出入库变化查询

销售查询分出入库变化查询和销售查询。图4.9给出的是库存变化查询,他能够查询某一个仓库在某一个时间段里的入库、出库和总的库存变化情况。同理,销售查询也能够查询某一时间段内的药品销售数量以及药品销售金额。

6结束语

通过本次课程设计,使我对.net的知识更加深入的了解和掌握。本次课程设计的过程是对以前所学知识的总结和规划才做出了最后的成果,虽然在其过程中遇到了很多困难。但是通过自己不断的努力并且通过网上查询,翻书查询,询问同学和老师最终得以解决。在整个课程设计的过程中对我的能力有了一个全方位的提高和锻炼,对以后的参加工作打下一个坚实的基础。

此次设计中,我用SQL Server2005建立后台数据库,用VS.NET 的C#作为主要的应用程序开发工具。运行环境是Windows xp/2005/2005Server.

参考文献

[1](美) Wendy Boggs,Michael Boggs.UML与Rational Rose2002从入门到精通.北京: 电子工业出版社,2002.

[2](美)Joseph Schmuller.UML基础、案例与应用.北京:人民邮电出版社,2001. [3] 李满潮 .Visual C#.NET编程基础.北京:清华大学出版社,2002. [4] Meilir Page.JonesUML.面向对象设计基础.北京:科学出版社,2003. [5] 刘润东.UML对象设计与编程.北京:希望电子出版社2002.

[6] Martin Flower,Kendall Sott.UML精粹——标准对象建模语言简明指南.北京: 清华大学出版社 ,1999.

[7]Karli Watson Marco Bellinaso.康博译.C#入门经典.北京:清华大学出版社, 2002. [8] 孙三才 张智凯 许薰尹.C#与.NET技术平台实战演练.北京:中国青年出版社, 2002. [9] (美)普拉持(Platt,D.s.) .黄惠萍等译.Microsoft.NET精髓著.北京:机械工业出版社 ,2003.

[10]ASP.NET程序设计基础与项目实训 杨桦文东 主编 北京:科学出版社

教师评语: 成绩: 教师签字:

因篇幅问题不能全部显示,请点此查看更多更全内容

Top
总销量: <%=tcount%>
总销量: <%=tcount%>
总销售额: <%=tcount2%>
总利润: <%=(tcount2-jinjia*tcount)%>