管理信息系统课程设计 医药管理信息系统.docx
《管理信息系统课程设计 医药管理信息系统.docx》由会员分享,可在线阅读,更多相关《管理信息系统课程设计 医药管理信息系统.docx(46页珍藏版)》请在冰豆网上搜索。
管理信息系统课程设计医药管理信息系统
一、项目说明…………………………………………………………2
二、系统分析…………………………………………………………4
三、系统设计…………………………………………………………5
四、程序设计…………………………………………………………14
五、系统测试…………………………………………………………37
六、设计总结…………………………………………………………38
七、参考文献、致谢………………………………………………39
医药销售系统课程设计报告
1、项目说明
(一)项目背景
随着中国经济的快速发展,医药生产企业迫切需要采用新的销售管理方法来加强内部医药代表管理和客户管理,高效的处理销售业务,掌握销售状况,降低运作成本。
同时医药代表也希望有方便实用的工具,以便进行各类数据的查询,管理以及提交。
以往的医药信息管理系统由于技术的限制,已经无法适应医药的发展。
因此开发新的医药系统迫在眉睫。
医药销售管理系统用于管理与药品相关的信息与活动,但不包括产品信息、库存数据与销售活动。
使用了基于VisualFoxPro技术为系统奠定了安全、稳定、高效、炫丽的技术基础。
给公司提供方便,稳定的服务。
(二)使用环境
医药企业的市场营销环境是一个复杂的系统工程,它由相互作用、互相依赖的若干要素组成。
一般可以分为内部和外部或宏观和微观两个方面。
现分别介绍如下。
(1)宏观营销环境:
医药企业宏观营销环境,是指影响企业生产经营的经济环境、科技环境、政治法律环境、社会文化环境和自然环境等要素(详细内容参阅本章余下内容)。
它们共同组成了企业生产经营的制约力量,具体地规定或引导企业生产什么、生产多少、如何生产、如何销售等。
用在通常意义上说,这是企业不可控制的因素,只能顺应它、利用它,而较少地能够改变它。
这几个方面的内容各自又可细分为若干个子项目,也都会直接或间接、有形或无形地影响着企业的生产经营活动。
因此,医药企业在进行市场营销环境分析时,首先应对外部宏观环境进行科学严谨的调查研究,以期把不利变为有利,使其营销活动完全符合环境的要求。
(2)微观营销环境:
医药企业市场营销微观环境是指对企业营销活动产生直接影响的介于4Ps策略与宏观环境之间的一种营销环境,它包括营销部门所在的企业、供应商、营销中介、顾客、信息、竞争者和公众等因素。
一个企业能否成功地开展营销活动,不仅取决于能否适应宏观环境的变化,适应和供应者环境是指那些向医药企业提供开展市场营销活动所需物资与资金的企业的状况。
医药企业的营销活动,包括供、产、销各个不同环节,都需要大量的物资与资金作保证,因而需要许多部门或企业为之服务,为之供应所需的一切。
通常医药企业的供应者有以下成员组成:
①资源供应者。
他们生产医药企业所需要的机械设备、原材料、能源及零部件等生产资源,或者提供所需的资金,并把这些资源供应给企业。
②物资供应商。
物资供应商即物资经营部门,他们收购生产企业生产的各种物质资料,再提供给需要这些产品的医药企业。
③运输部门。
他们把资源供应者生产的物资运送到物资供应商或购买的医药企业手中,也从物资供应商那里把物资运送给各个医药企业。
④便利供应部门,如保险公司、咨询机构等,他们为物资的供应提供各种方便条件,共同完成向医药企业提供物资与资金方面的任务。
影响微观环境的变化也是非常重要的。
以下是企业微观营销环境主要内容。
(三)系统设计思想
本系统的设计思想是,系统采用模块化的程序设计方法,既便于系统功能的各种组合和修改,又便于管理人员的维护。
系统应具备数据库维护功能,及时根据用户的需求进行数据的查询、添加、删除、修改等操作。
(四)项目规划
(1)分工:
组长:
xx,进行系统程序设计,完成连编,组织成员任务分配等系列工作。
文秘:
xxx,负责课程设计报告,指导成员工作,负责打印等工作。
组员:
xxx,负责部分表单设计,制作表格等工作。
组员:
xx,负责部分表单设计,制作表格等工作。
(2)进度:
2012年6月5日:
分配小组,组织成员,进行讨论。
2012年6月6日:
到图书馆查阅资料,确定主题,并进行讨论。
2012年6月7日至8号:
完成系统设计,并完成连编,成功运行系统。
2012年6月9号至10号:
系统程序的检验,完成课程设计报告,并检查相关系统。
2、系统分析
(1)组织模块功能图
医药销售系统
备忘录
药品出库
药品入库
药品出库
药品入库
客户信息
退出系统
密码管理
系统管理
信息管理
药品管理
记录查询
其它
供应信息
(二)系统流程图
入库单
3、系统设计
(一)数据库的设计
在创建应用系统之前,必须先考虑与数据有关的一些问题。
比如系统需要使用和处理哪些数据,这些数据组织成几个表才方便程序的设计和用户的使用,每个表需要设计哪些字段合适,每个字段应该定义成什么数据类型,需要建立哪些索引才便于操作等等。
本系统共设计了7个表,分别是、药品信息表(yaopinxinxi)、客户信息表(kehuxinxi)、供应商表(gongyingshang)、备忘录信息表(beiwangluxinxi)、药品入库信息表(rukuxinxi)和药品出库信息表(chukuxinxi)。
用户密码表(pass)
数据库7个表的结构分别如下:
药品信息表
字段名
字段类型
宽度
标题
ypbh
字符型
4
药品编号
ypmch
字符型
16
药品名称
jj
货币型
8
进价
shj
货币型
8
售价
pfj
货币型
8
批发价
zhl
字符型
8
质量
shl
整型
4
数量
jyy
字符型
8
检验员
yply
字符型
14
药品来源
lxr
字符型
8
联系人
yxrq
日期型
8
有效日期
jhrq
日期时间型
8
进货日期
客户信息表
字段名
字段类型
宽度
标题
bh
整型
4
编号
xm
字符型
8
姓名
dh
字符型
20
电话
dzh
字符型
20
地址
yx
字符型
24
邮箱
zhl
字符型
8
质量
供应商表
字段名
字段类型
宽度
标题
bh
字符型
4
编号
gsmch
字符型
16
公司名称
dh
字符型
30
电话
dzh
字符型
30
地址
wzh
字符型
24
网址
jyyl
字符型
20
经营药类
备忘录信息表
字段名
字段类型
宽度
标题
xh
字符型
4
序号
nr
字符型
254
内容
zdsj
字符型
30
电话
dzh
日期型
8
制定时间
zdr
字符型
10
制定人
药品入库信息表
字段名
字段类型
宽度
标题
ypbh
字符型
4
药品编号
ypmch
字符型
16
药品名称
jj
货币型
8
进价
shj
货币型
8
售价
pfj
货币型
8
批发价
zhl
字符型
8
质量
shl
整型
4
数量
jyy
字符型
8
检验员
yply
字符型
14
药品来源
lxr
字符型
8
联系人
jhrq
日期时间型
8
进货日期
药品出库信息表
字段名
字段类型
宽度
标题
ypbh
字符型
4
药品编号
ypmch
字符型
16
药品名称
shj
货币型
8
售价
shl
数值型
6
数量
khlb
字符型
6
客户类别
khmch
字符型
1
客户名称
yfje
货币型
8
应付金额
shfe
货币型
8
实付金额
zhb
货币型
8
找补
xshrq
日期时间型
8
销售日期
用户密码表
字段名
字段类型
宽度
标题
yhm
字符型
10
用户名
yhmm
字符型
10
用户密码
yhlx
字符型
10
用户类型
选择系统菜单中“数据库”菜单下的“新建表…”选项建立新的数据库后,“新建表”对话框中单击“新建表”按钮,按照如上分别建立这7个数据表。
数据表都建立完成后,截图如下:
(二)创建主程序
打开mis项目文件,在“项目管理器-mis”窗口中,单击“代码”选项卡,选中“程序”项,单击项目管理器窗口右边的“新建”按钮。
就可在新弹出的程序代码编辑窗口中输入程序的以下代码内容,保存即可。
publicbwl
bwl=substr(alltrim(sys(5)+curdir()),1,len(alltrim(sys(5)+curdir()))-1)
setdefaultto&bwl
Setpathtoforms;progs;reports;menus;data;graphics;graphics\pic;graphics\ico
setexacton
setconfirmoff
setescapeon
setsafetyon
setstatusoff
setscoreboardoff
setdecimalsto3
settalkoff
setsysformatson
setcenturyon
setdatetoansi
zoomwindowscreenmax
closeall
releasewindow常用
setsysmenuto
_screen.caption="欢迎使用医药营销系统"
_screen.picture="14.jpg"
_screen.minbutton=.f.
_screen.maxbutton=.f.
_screen.controlbox=.f.
doformfm.scx
readeven
(三)Fm.scx系统密码验证主表单设计
控件设置:
(1)表单的“Load”代码:
publicca,cb,cc&&设置全局变量,记录RGB()函数的自变量的值
ca=0
cb=0
cc=0
(2)表单的“Unload”代码:
releaseca,cb,cc&&释放全局变量
标签主要属性设置
Label1
Label2
Label3
Label4
Label5
Caption
医药销售系统
欢迎使用
用户名称:
用户密码:
开发设计:
工商管理⒁小组 Ver1.02012年06月
AutoSize
.T.
.T.
.T.
.T.
.T.
BackStyle
0-透明
0-透明
0-透明
0-透明
0-透明
FontBold
.T.
.T.
.T.
.T.
.T.
文本框的主要属性设置
Alignment
Enabled
FontSize
Height
Left
PasswordChar
Text1
0-左
.T.
12
26
224
Text2
0-左
.T.
12
26
224
*
命令按钮的主要属性设置
AutoSize
Cancel
Caption
Default
FontSize
Height
Width
Command1
.F.
.F.
确定
.T.
18
30
79
Command2
.F.
.T.
取消
.F.
18
30
79
(1)“确定”按钮的“Click”事件代码如下:
publicyhkl,yhname&&定义全局变量,记录登录用户的名称和密码,以便系统分配用户权限
yhkl=alltrim(thisform.text2.value)&&保存用户输入的名称和密码
yhname=alltrim(thisform.text1.value)
usepass&&打开保存已注册用户的用户名和密码的表文件
*以下代码是检验用户名称和密码
locaallforlower(alltrim(yhm))=lower(alltrim(yhname))
ifeof()
*不是合法注册用户,给出警告
=messagebox('你不是合法注册用户!
',0,'真遗憾')
return
thisform.text1.setfocus
else
*用户名正确,再检验用户密码
lsyhlx=alltrim(yhlx)
iflower(alltrim(yhmm))=lower(alltrim(yhkl))
use
thisform.release
setdeleon
setnotifyoff
setcenton
setdatetoansi
closeall
RELEASEWINDOW常用
MODIFYWINDOWSCREENTITLE"医药销售系统ver1.0
登录用户:
"+yhname+"("+lsyhlx+")"+"今天是:
"+dtoc(date())
_SCREEN.ICON="face05.ico"
_SCREEN.picture="pc1.jpg"
ZOOMWINDOWSCREENMAX
_SCREEN.controlbox=.f.
domainmenu.mpr&&当用户名和密码都正确时,关闭当前表单,运行主菜单进行系统
else
*不是合法注册用户,给出警告
=messagebox('密码不正确,请你再好好想想!
',0,'真遗憾')
return
thisform.text2.setfocus
endif
Endif
(2)“取消”按钮的“Click”事件代码如下:
thisform.release
cleareven
Quit
(3)“计时器”控件Interval属性为100。
“Timer”代码如下:
ifca<255
ca=ca+1
else
ca=90
endif
ifcb<255
cb=cb+1
else
cb=180
endif
ifcc<255
cc=cc+1
else
cc=1
endif
IfThisform.Label2.left>thisform.width
thisform.label2.forecolor=rgb(ca,cb,cc)
Thisform.Label2.left=-199
thisform.label2.left=Thisform.Label2.left+10
Else
thisform.label2.forecolor=rgb(ca,cb,cc)
Thisform.Label2.left=Thisform.Label2.left+10
EndIf
IfThisform.Label5.Left<=-394
Thisform.Label5.Left=thisform.width
Thisform.Label5.Left=Thisform.Label5.Left-10
Else
Thisform.Label5.Left=Thisform.Label5.Left-10
EndIf
Thisform.refresh
(三)系统菜单的设计
(1)“系统管理”子菜单编辑为“密码管理”、“\-”“退出系统”
①“密码管理”的过程代码:
setdeleon
deleallforlen(alltrim(yhm))=0
locaallforalltrim(yhm)=alltrim(yhname)
ifalltrim(yhlx)="系统管理员"
use
doformmmgl
else
nAnswer=messagebox('很抱歉!
您不是系统管理员无权查阅和更改用户名和密码!
',0,'警告!
')
use
return
Endif
②“退出系统”的过程代码:
ans=messagebox("确信要退出系统吗?
",4,"确认信息")
ifans=6
closeall
clearevent
quit
else
return
Endif
(2)“信息操作管理”子菜单编辑为“客户信息管理”和“供应商信息管理”
①“客户信息管理”的过程代码:
usekehuxinxi
pack
use
doformkehu
②“供应商信息管理”的过程代码:
usegongyingshang
pack
use
doformgys
(3)“药品管理”子菜单编辑为“药品入库管理”和“药品出库管理”
①“药品入库管理”的过程代码:
userukuxinxi
pack
use
doformyprk
②“药品出库管理”的过程代码:
usechukuxinxi
pack
use
doformypck
(4)“记录查询”子菜单编辑为“药品入库查询”和“药品出库查询”
①“药品入库查询”的过程代码:
userukuxinxi
pack
use
doformrkjl
②“药品出库查询”的过程代码:
usechukuxinxi
pack
use
doformckjl
(5)“其他”子菜单编辑为“备忘录”
①“备忘录”的过程代码:
usebeiwangluxinxi
pack
use
doformbwl
4、程序设计
本系统除去主表单设计外,内容表单分别有密码管理表单、客户信息表单、供应商表单、药品入库表单、药品出库表单、入库记录查询表单、出库记录查询表单、备忘录表单等8个项目表单。
其主要程序设计如下:
(一)Mmgl.scx密码管理表单设计
(1)表单的主要属性:
AutoCenter=.T.
BorderStyle=“2-固定对话框”
Caption=“用户密码管理”
Height=299
Icon=“c:
\mis\graphics\ico\controlpanel.ico”
MaxButton=.F.
MinButton=.F.
Width=582
WindowState=0-普通
(2)文本框的主要属性:
ControlSource=“无”
Enabled=.f.
FontName=“宋体”
FontSize=11
Height=25
(3)组合框的主要属性:
BoundColumn=1
ColumnWidths=“无”
ControlSource=“无”
Enabled=.f.
FirstElement=1
FontName=“宋体”
FontSize=11
Height=25
Left=380
ReadOnly=.f.
RowSource=“系统管理员,普通用户”
RowSourceType=“1-值”
SelectOnEntry=.t.
Style=“0-下拉组合框”
Top=258
Width=114
(4)表格控件的主要属性:
ColumnCount=3
DeleteMark=.f.
Enabled=.t.
FontName=“宋体”
FontSize=11
GridLineColor=“0,0,255”
GridLineWidth=1
HeaderHeight=20
Height=223
Left=9
ReadOnly=.t.
RecordMark=.t.
RecordSource=“pass”
RecordSourceType=“1-别名”
RowHeight=20
Top=27
Width=485
(5)表单的“Init”事件代码:
publicxgbzhi,rec
xgbzhi=.f.
rec=0
setdeletedon
mand2.enabled=.t.
mand1.enabled=.t.
mand3.enabled=.t.
mand4.enabled=.f.
mand5.enabled=.t.
mand6.enabled=.f.
mand2.setfocus
(6)“删除”命令按钮的“Click”事件代码:
selepass
ifeof().or.bof()
nAnswer=messagebox('你还没有选择要删除的注册用户记录!
请选定一个要删除的用户!
',0,'警告!
')
return
endif
dele
mand2.enabled=.t.
mand1.enabled=.t.
mand3.enabled=.t.
mand4.enabled=.f.
mand5.enabled=.t.
mand6.enabled=.f.
Thisform.refresh
(7)“修改”命令按钮的“Click”事件代码:
ifeof().or.bof()
nAnswer=messagebox('你还没有选择要修改的注册用户记录!
请选定一个要修改的用户!
',0,'警告!
')
return
endif
thisform.text1.enabled=.t.
thisform.text2.enabled=.t.
bo1.enabled=.t.
mand2.enabled=.f.
mand1.enabled=.f.
mand3.enabled=.f.
mand4.enabled=.t.
mand5.enabled=.t.
mand6.enabled=.t.
thisform.grid1.enabled=.f.
rec=recno()
thisform.text1.value=yhm
thisform.text2.value=yhmm
bo1.value=yhlx
xgbzhi=.t.
thisform.text1.setfocus
(8)“增加”命令按钮的“Click”事件代码:
thisform.text1.enabled=.t.
thisform.text2.enabled=.t.
bo1.enabled=.t.
mand2.enabled=.f.
mand3.