3.1药店销售管理系统结构设计 3wMkG@H7
3.2药店销售管理系统数据结构和数据库设计 6+8zQ0n{
3.2.1需求分析 6Lv@SOmG
3.2.2概念结构设计 9p3<`|[j)
3.2.3概要设计 10?
w9
~*Fp
第四章 药店销售管理系统的实现 12TVlPIU?
}q
4.1登陆界面及主界面 12p"z;#9\y
4.2销售统计模块 12?
J.eUzwc[
4.2.1窗体界面 12aneTPk
4.3药品入库模块 13O-&'9H/kk'
4.3.1窗体界面 13YhpH{vg
4.4库存维护模块 14YMjgv@*
4.4.1窗体界面 14
2~umJF!
M
4.4.4功能描述 14]>ne9n
4.5采购计划模块 16=qW]Y6
4.5.1窗体界面 16Gb].E9}`
4.5.2算法描述 16U92+D
4.6入库统计模块 16
b^\8v
4.6.1窗体界面 16,%8bX#K
4.6.2功能描述 17%u8~dMR{
4.7主要存储过程设计 17}"bQ^wT,?
4.8生成安装与部署程序 19_anZMM)
结 论 20x~_'Y?
A5
致谢 21+<.Sw/gX4
参考文献 22~N]Fb0C
F~6,&Wfc
第1章 绪论e[>2O},A
目前国内药店经营管理手段落后,而国家对这些药店规范管理,实施GSP认证已是大势所趋,为提高自身竞争力和顺利达标,使用专业管理软件是这些药店的必由之路,所以说药店管理软件市场潜力巨大,商机无限.\
本系统是根据国内药店的实际运营情况及国家药监局GSP认证规范与XXXX药店联合设计开发,适合各种规模的国内药店使用,加强药品进销存的规范化管理.该软件是目前针对国内药店最专业、最实用的管理软件,可以帮助药店由原来的手工处理改为通过计算机处理从而提高药店的工作效率,规范经营,为顺利通过GSP认证提供强有力的保障.YR|JXf*,
另外,VisualStudio.Net是微软推出的新一代开发平台,拥有许多特性,其中一些特性是对先前版本的增强,另一些是新增特性--包括单一地集成开发环境,新的Microsoft Visual Basic .NET面向对象特性,以及整个开发周期所使用的工具。
作为微软.NET战略中的关键组成部分,VisualStudio.NET其高度集成的可视化开发环境能够为开发人员极大的提高开发速度。
所以本系统的开发使用VisualC#这个开发平台。
H_c^~7
本药店销售管理系统主要包括中、西药品信息输入,中、西药药品统计以及药品信息查询。
不仅能显示一个客户购买的全部药品信息(包括药品的编号,名称,单价,数量,金额,销售类型,销售员和销售日期,并由此向销售记录表中添加一条记录,以供以后进行销售时用.)另外,本系统还实现了对指定时间段内的销售情况进行统计,根据此数据对每种药品的销售情况仅进行分析,产生每种药品的销售金额和数量,确定药品的最高库存量和最低库存量。
该金额与入库统计得到的金额进行比较得到利润。
另外,当这些记录无用时可以删除以释放磁盘空间.]^bG~~MQ
最后,由于水平有限,有些地方可能会有疏漏和不足,希望各位批评指正,以便在今后的软件开发过程中不断完善。
rK:
Bygnq
hVp]Is?
O
1u>Y1F
第2章 系统开发技术基础4
4|HuW
2.1关于开发语言C#pVsbS
VisualC#(读作Csharp)被设计成一种创建.NET应用程序的方便而快捷的方法。
用VisualC#编写的应用程序是在公共语言运行库的各种服务的基础上生成的,并且全面利用了.NETFramework。
而.NET框架组件的本意是,便是将开发人员、管理员和用户实施的一组范围广泛、灵活性高的安全选项结合在一起。
}
2.1.1NETFramewor开发技术优的越性eK[uJc>p
.NETFramework是一种新的计算平台,它简化了在高度分布式Internet环境中的应用程序开发。
.NETFramework具有两个主要组件:
公共语言运行库和.NETFramework类库。
5bnvIb:
b
公共语言运行库是.NETFramework的基础。
可以将运行库看作一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程处理),这些优越性使得编程变得相当的方便和快捷。
类库是一个综合性的面向对象的可重用类型集合,可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面(GUI)应用程序。
C`f;9DzYJj
2.2关于本系统的关系数据库设计SR[P6Du
关系型数据库是支持关系模型的数据库系统。
关系模型由关系数据结构,关系操作集合和关系完整性约束三部分组成。
F[M0t`
在本系统中通过利用SQLServer服务管理器启动、停止和暂停服务器上的MicrosoftSQLServer2000组件。
本系统中设计数据库时按照关系数据库中的范式规则,将表中的重复字段和不相关字段划分合理,设计出来的数据库表格符合第二范式,减少了数据操作时的错误。
oRVU5wK=
2.2.1关系操作集合设计f=`$W&AyF
本系统通过SQL标准语句中定义的各种对关系数据库的操作,编写一些合理,实用,功能完善的语句对数据库进行操作。
z!
by\,6
2.2.2关系完整性约束设计5Bt^|s
本系统通过对外键的控制,在存储过程中编写一些合理,实用,功能完善的操作语句对数据库进行操作。
|Jw`I
_h4s+1B8W
Lm+El0~;
N6M&@W1um
d9F#Oh
<]tl~ib>
j=bzvUF
y~=*C*3~
C6BaU^Cd
(-|rX,^
AP2anzRCk
2=,{SS8
第3章 药店销售管理系统总体设计HgPO/zWH
3.1药店销售管理系统结构设计z\W
QqsG
系统开发的总体任务是实现药店销售管理的系统化、规范化和自动化。
系统功能分析是在系统开发的总体任务的基础上完成的。
经过细致的系统分析得到药店销售站管理系统需完成的功能:
~?
#V^R}!
1)药品销售P[A3=ox2
包括药品零售和药品批发,零售价和批发价不同,输入药品的编号,数量和选择销售类型进行销售.能显示一个客户购买的全部药品信息(包括药品的编号,名称,单价,数量,金额,销售类型,销售员和销售日期,并由此向销售记录表中添加一条记录,以供以后进行销售时用.),给出应付的金额.由于某种原因,可以让用户退药.<
quOh#WnI
2)销售统计&>>As$X8
对指定时间段内的销售情况进行统计,根据此数据对每种药品的销售情况仅进行分析,产生每种药品的销售金额和数量,确定药品的最高库存量和最低库存量.该金额与入库统计得到的金额进行比较得到利润.另外,当这些记录无用时可以删除以释放磁盘空间.h_q1ADG
3)药品信息维护YRU?
a{
添加药品基本信息X`K9M?
cMu
包括药品的编号,药品名称,药品简码,单位,规格,主要成分,功能与主治,用法用量.其中药品的编号是唯一的,不同的药品不能有相同的编号,药品的简码根据药品的名称制定,YL(q,6S
修改药品基本信息)Kpoxg!
当发现有药品的基本信息错误时可以进行修改,执行此操作应能同时修改其他表(销售登记表、库存表、入库登记表)的相应药品的编号,确保数据的一致性.&b62DqZP
删除药品基本信息O@}v'VlQf
当某种药品的信息不需要时可以删除,同时能删除其他表(销售登记表、库存表)中与此药品对应的信息,确保数据一致.7]z+qD.Z
4)药品基本信息浏览TBkB75z"
浏览所有药品的基本信息,可以按药品的编号、简码、名称进行排序,也可以根据药品的简码或编号进行模糊查找,快速浏览指定药品的信息.WPX{h{]E[
5)制定采购计划y5ULB(=?
{
查找库存表,根据药品的最高库存量,最低库存量和现存量,对现存量小于最低库存量的药品制定采购计划,5Y!
YJd<
方法是:
需要采购的数量=最高库存量-现存量"Ut?
"bA
6)药品入库cf.i$$#
购入药品之后把所购药品的情况记入入库记录表中,供以后进行入库统计时用.需要记录的信息包括药品的编号,入库数量,单位,单价,金额,入库员,入库日期,有效日期和进货地址.对于已经入库的药品,由于某种原因可以将药品退还给商家.tA;#F&]4
7)入库统计oavMq$X
对指定时间段内药品的入库信息进行统计,得到每种药品的入库总金额.得到的金额与销售统计得到的金额进行比较得出药品的销售利润.当这些记录信息无用时可以删除以释放磁盘空间..l>`!
-
8)库存维护#u)\Jf{
添加库存信息5n|6r
包括药品编号,库存量,零售价,批发价,最高库存量,最低库存量.药品编号要与药品信息表中的药品编号相对应,如果药品基本信息表中没有这种药品应该先添加该药品的基本信息再添加该药品的库存信息.在此添加的库存信息的库存量应为0.最低库存量不能大于最高库存量,批发价不能大于零售价.RwmWAb7
修改库存信息5(xn=N!
1
可以修改药品的现存量,零售价,批发价,最高库存量,最低库存量.最低库存量不能大于最高库存量,批发价不能大于零售价.SN%*a+m
删除库存信息FzvlN"~
当不卖某种药品时可以删除该药品的库存信息,以避免在制定采购计划时产生无用的记录.{b-CrQr
9)存货浏览
;+rD
o
浏览所有药品的库存信息,可以根据药品的编号、名称、简码、库存量、零售价、批发价、最低库存量和最高库存量进行排序,也可以根据药品的简码或编号进行模糊查找快速浏览指定药品的库存信息.g10)系统安全+Kx$w&
用户需通过登陆进行身份验证,验证通过时才可以进入系统。
uzj!
78
药品销售管理系统功能模块图为:
图3-1功能模块图M{xn&;Fv
3.2药店销售管理系统数据结构和数据库设计y3ks@
3.2.1需求分析-,m3uXpx
用户的需求具体体现在各种信息的输入、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。
收集基本数据、数据结构以及合理组织数据处理的流程,然后形成一份详尽的数据流图和数据字典,就能为以后的设计提供依据。
~'o9Eg2:
1n
在仔细分析医药信息需求的基础上,将得到如图4-2所示的顶层数据流图。
kh- X`-s;/g9W
针对药店销售管理系统的顶层数据流图, 图3-2销售数据流图, 6tC?
{v]}
设计如下所示的数据项:
^j{O'Ve"`
购药单zPXn;p5=
表3-1LS数据流条目 1lrrI~\k
数据流名称 购药单(oQWZEk
来源 顾客SA5*3x#
去向 药店销售系统b!
5^z9!
组成 药品名称、数量*89C?
MkG
销售单B]6ql4;o"7
表3-2R=[;bZYK
数据流条目 2GS}~MK!
数据流名称 销售单LxO=p
来源 药店销售系统_G2*6{2
去向 仓库c_!
:
"p
组成 药品编号、药品名称、销售数量、销售日期、销售单价、销售员、销售类型(零售,批发)pIE?
~]u*T
缺货单8D1\*n,f
表3-3BpK\oS*
数据流条目 3\@o]5h~$7
数据流名称 缺货单ecT372b
来源 药店销售系统%\XVF2W5Y
去向 采购员c&~f1u+rB
组成 药品名称、数量IB@HL%@
统计表7%&Z&L%s
表3-49\\p~^
数据流条目 5Q/"iiM'
数据流名称 统计表z:
eagnx\&
来源 药店销售系统/,JM2X^V}
去向 经理><
fEY`7
组成 药品名称、数量、金额、单位^KBC"UW
再根据顶层数据流图设计第0层数据流图)UbBl3
图3-3药品处理数据流图lB?
NFI
第0层数据流图主要包括:
处理购药单后得出可销售药品单和缺货单;处理缺货单得到销售单和购药单,追后进行销售统计。
[ZN:
['i
第1层数据流图2–处理供货VB4YI5
wI[fX#S
根据可销售药品单制定}#:
WbE.9Vv
销售单,然后登记入库,gW5II+,&
开销售单(.#%dGs
图3-4处理供货l%rkk+<
第1层数据流图3–处理进货remW?
I,
51PG0;
图3-5处理缺货流程图"V?
M%[[#
根据进货单修改库存记录中的药品现存量,生产核对后的进货单。
geWJ8,
根据缺货记录和核对后的进货单生成可销售购药单pUdj)^/Eu
第1层数据流图4–处理缺货wq8=F
mtT}GA
Z
图3-6处理缺货流程图"j}rNX)`
先根据进货单修改库存再根据进货单修改库存记录中的药品现存量,生产核对后的进货单7<0r"p6
第1层数据流图5–销售统计$1u@'Y
)y/u{\06
图3-7销售统计数据流图;\7(K:
B
在这里允许用户进行统计选择,比如:
按日期或按药品名称}s%=Qq~
3.2.2概念结构设计sZ
ssAsPiq
得到上面的数据项以后,就可以设计出能够满足用户需求的各种实体,以及他们之间的关系。
图3-8 E-R图[:
VmgF
本系统根据上面的设计规划出实体的E-R图如上。
qV5/)*m
3.2.3概要设计t"?
r,";Q
在需求分析文档的基础上进行分析设计产生出药店销售系统的初步设计,特点是要清楚的反映出系统设计者对药店销售系统设计前(人工系统)与设计后(计算机系统)之间的区别,着重表达出在设计的新系统与现行人工系统上的不同。
yc=[KNU!
!
[
本系统共分为4个模块如下:
P31`n%Ece
1) 药品销售:
包括零售、批发和顾客退药。
将销售或退药记录写入数据库。
R4L+R_m
2) 库存管理:
包括药品入库、商家退货、过期查询、存货浏览和库存维护,:
C[_R
修改药品的库存记录,更新库存。
@4G-\W=~
3) 药品维护:
包括添加、修改和删除药品的基本信息,修改数据库,更新药品信息`x'K&Pp
4) 药品统计:
包括销售统计和入库统计,统计后删除销售记录和入库记录,释放磁盘空间。
T8K3V>?
}k
四个模块关系描述如下:
G9gDc+]
药品维护模块添加、修改、删除药品的基本信息。
库存管理模块对库存信息进行添加,修改,删除,查询。
药品销售模块完成药品销售和顾客退货功能。
药品统计模块对销售记录和入库记录进行统计。
各模块之间不存在相互调用关系,~-'Gn^ar
因此这四个模块之间是M6Q+%0sb].
平行的。
总体机构如右图:
数据库设计fS08O=s6
现在需要将上面的数据库概念结构转化为SQLServer2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
8(E
药店销售管理系统数据库中各个表的设计结果如下面的几个表格所示。
每个表格表示在数据库中的一个表。
下面只给给出我在这次任务中所用到的表
(一),(三)和设计的表
(二)g!
6.dh!
(一)药品信息表(medicine)表3-5_D#~9=r
列名 类型 长度 空值 备注r=,Pe
ID varchar 10 非空 主键y2Je6o
名称 varchar 50 非空 Cwkit*K
简码 varchar 20 允许 /T/^]g7
单位 varchar 4 非空 9+YO%G5
规格 varchar 10 允许 .zxu]$+E
主要成分 varchar 100 允许 9onMe=?
D
功能主治 varchar 200 允许 k?
1fk.*P=
用法用量 varchar 30 允许 @vz/[G3
注:
对该表的更新,删除操作将会级联更新和删除库存信息表、销售记录表、入库记录表Zy9L--&
(二)库存信息表(kucun)2H!
b|e$L+
表3-6oWdExKbm,U
列名 类型 长度 空值 备注FOLy"X^
ID Varchar 10 非空 主键=>b]PD
数量 Float 8 非空 u.)rxt
零售价 Float 8 非空 ZyoPS`U4+
批发价 Float 8 非空 te-FB=U)$>
最低量 Float 8 非空 x$(_GTwy/x
最高量 Float 8 非空 z7tP~J
(三)用户表(users)8JUD3Q+u#,
表3-7H?
cnq>7
列名 类型 长度 空值 备注fp)J
Name Varchar 20 非空 主键eFZJ}z(
Pwd Varchar 20 非空 CJbTXI
以上各表为本系统所使用的数据库中的基本关系表。
其中药品信息表是药店销售系统中最为基本的表,它存储药品基本的信息,整个系统的功能中所要访问的数据库操作都与该表有关。
/9L-l5}>
用户表是药品销售人员或者药店管理者所要使用的基本表,在本软件的功能实现中体现为对销售人员或者药店管理者进行身份识别。
!
U|c-T
5JGiSe
c"?
)HQR
10eqD
第四章 药店销售管理系统的实现tCFc,LO
详细设计G=("""wZ
在这里给出药店销售管理系统设计的一些关键编程技术。
这里所列出的登录以及查询等部分的代码已经全部通过测试。
为以后软件维护人员进行软件维护的重要依据。
ke\#pc0
4.1登陆界面及主界面iLjBEAn
选择用户名,输入密码登录,如果密码不正确提示密码错误,如果正确成功登录。
KCv{Ob('
初始用户为admin密码为123456,s6fr
FO(
该用户为系统用户,可以添加和vmk)tZ;P
删除其他用户,E\9,H]
其他用户不能执行这两个操作。
图4-1系统登陆m)|$.@gT
用户admin不能删除。
本模块最主要的部分就是实现用户的身份识别。
这一点在实际的使用中体现为药店的销售人员(即普通用户)与药店的管理人员(系统用户)本身在药店的管理上是有差异的。
uA.9:
dy_
主界面如右图所示:
=qTkZ0OS
主界面即系统的操作界面。
本系统所有的基本操作都能在主界面中 图4-2主界面-*6kw/N
显现出来。
标题栏与菜单栏分开,I$5J7b4wr
错落有致。
因为主界面要尽量的简洁,新颖。
使用户在使用中对计算机管 g&dh^:
.RR/
理有一种方便,高效的感觉。
pbIX[@(fN
4.2销售统计模块&Lsg,H@
4.2.1窗体界面?
p{KS|yl
1) 销售统计模块界面如右图所示:
图4-3销售统计M'eC/lCxq
输入开始时间和终止时间。
输出各药品的销售信息、销售的药品的种类总数和销售总金额!
7|6D,U
4.2.2功能描述U"44q(
1) 查看功能V\n1OH
用户可以通过选择起止时间来查看在该时间段内对各种药品的销售状况。
这样就可以为采购员提供一个制定采购计划的很好的帮助文档。
在程序中通过执行存储过程XSHTJ_Select检索数据用listview显示;用label显示总品种和总金额。
2) 删除功能cp9pLd6k
当采购员采购回药品或者该药品不再进货则需删除或更新该药品的销售记录在程序中执行存储过程XSHTJ_Del删除选中药品的销售记录;将总品种减1,总金额减去删除药品的销售金额;由于该表独立所以该删除不会对销售统计造成影响。
5~gZ"29l2
4.3药品入库模块x3`Agz]
4.3.1窗体界面6(d+q(Vi
1) 药品入库模块界面如右图所示:
'vpCx
F8p/LtJ
输入药品编号、入库数量、购进单价、进货地址, 图4-4药品入库*
F(Y/
有效日期。
输出药品的库存信息,入库信息/Apqu[
4.3.2模块功能描述1) 输入药品编号文本框的TextChanged事件W-w80-0^
先清空label的文本;以输入药品编号文本框的内的文本为参数执行存储过程Idselect查找药品,如果找到用label显示该药品的库存信息;WW3=wX@13z
2) 入库按钮的功能:
>?
zF5!
先检查输入的药品编号、入库数量、购进单价、有效日期不能为空。
其中药品编号为主码,但对于一种药品而言有效日期是至关重要不可或缺,而入库数量、购进单价是十分重要的销售信息对采