




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.成绩管理信息系统课程设计报告系统名称 药店信息管理系统 班级 管093 姓名 张新萌、田新驰、李新雷 学号 04 、 06 、 12 装订线 2011年 12月 14 日一、 系统分析系统名称:药店管理信息系统. 开发背景、目的、意义:随着人们生活水平的提高,健康意识的增强,对医药产品的需求也迅速增加。药店作为医药产品的主要销售渠道,也处于高速发展时期,同时也加剧了产业间的竞争。为了加强企业的内部管理,提高运营效率,利用现代信息技术提高企业的管理水平已非常迫切。另外,由于医药产品种类繁多、销售模式特殊、业务量大,单凭手工记账已很难适应工作的需要。医药作为一个关系到人们健良的特殊行业,国家对医药行业又有一些不同于其他行业的管理政策,这些都加大了管理的难度。如何尽快建立和完善现代企业的信息化管理机制问题,已成为医药企业发展的关键所在。本课题以提高药店的医药管理水平和效率为目标,建立了管理信息系统。该系统能集中处理药品的进销存业务及其应付账目,实现了药店的现代化管理。实现目标:面对医药行业的高速发展及其发展过程中出现的各种情况,药店管理信息系统在实施后,应能够达到以下目标:(1) 实现多点操作的信息共享,相互之间的信息传递准确,快捷和顺畅。(2) 全面自动化管理,可随时掌握药品的库存、销售等情况。(3) 系统界面友好美观,操作简单易行,查询灵活方便,数据存储安全。(4) 能够快速、准确地处理药品进、销、存、退、盘点、变价、折扣等多种业务模式。(5) 提供助记码及支持多种结算方式。(6) 系统维护方便可靠,有较高的安全性,满足实用性,先进性的要求。(5)系统功能:本系统由系统设置、日常业务、查询统计、库存管理、基础信息管理五大分系统组成。主要功能如下:(1)系统设置:初期建账,密码设置,数据备份,数据恢复。(2)日常业务:入库单,销售单,入库退单,销售退单。(3)查询统计:入库查询,销售查询,入库退货查询,销售退货查询。(5)库存管理:库存盘点,库存查询,价格管理。(6)基础信息管理:客户管理,供应商管理。药店管理信息系统E-R 图2.2概念模型通过对用户需求分析进行综合、归纳与抽象、形成一个独立于具体DBMS 的概念模型。在本药店管理系统中涉及到了2种概念模型的抽象Is part of 聚集模型 概况模型2.3用例图和顶层数据流图 总体分析的用例图 经理与供货商的用例图 顾客与经理间的用例图 顶层数据流图1. 系统总体设计(1) 分解的数据流图 处理消费 处理采购组织结构或数学方法、构造模型。 药店管理信息系统库存管理查询统计日常业务基础信息系统设置供应商管理客户管理初期建账密码设置数据备份数据恢复销售退货查询入库退货查询销售查询入库查询库存盘点价格管理库存查询销售退单入库退单销售单入库单 二、系统设计说明:系统设计较为复杂,源程序代码较长,所以报告中只摘录了一小部分程序代码,其余代码详见程序中,程序先进入登陆界面,登陆后进入主界面,登陆到主界面后即可点击进入相应的窗口。该系统采用Access数据库,数据库名称为yyjxc,它包括以下8个表:供应商基础信息表gys,库存表kc,客户基础信息表kh,入库表rkd,入库退单表rktd,密码表ma,销售表xsd,销售退单表xstd。1、系统登录模块及主程序界面设计(1)系统登录模块(窗体名:系统登录.frm)源程序代码较长,此处省略,详见程序中实现目标:程序启动后,首先进入系统登录界面验证操作员密码。其实现的功能如下:a. 可选择操作员,支持鼠标和键盘操作b. 操作员和密码验证成功后,进入主界面c. 操作员错误或密码错误提醒并返回错误点。d. 输入三次错误的密码,系统自动退出(2)主程序界面设计(窗体名:主界面.frm)Public Sub entercell() Dim x, y As String If Text1.Text = 1 Then Set myform = main_rcyw_rk If Text1.Text = 2 Then Set myform = main_rcyw_rktd If Text1.Text = 3 Then Set myform = main_rcyw_xs If Text1.Text = 4 Then Set myform = main_rcyw_xstd If myform.mf1.CellWidth = 0 Or myform.mf1.CellHeight = 0 Then Exit Sub x = myform.mf1.TextMatrix(myform.mf1.FixedRows, myform.mf1.Col) y = myform.mf1.TextMatrix(myform.mf1.Row, 0) If y Then If myform.mf1.Col - myform.mf1.LeftCol 0 And myform.mf1.CellHeight 0 Then myform.Text1.Width = myform.mf1.CellWidth myform.Text1.Height = myform.mf1.CellHeight myform.Text1.Left = myform.mf1.CellLeft + myform.mf1.Left myform.Text1.Top = myform.mf1.CellTop + myform.mf1.Top End If x = myform.mf1.TextMatrix(myform.mf1.FixedRows, myform.mf1.Col) y = myform.mf1.TextMatrix(myform.mf1.Row, 0) p = myform.mf1.TextMatrix(myform.mf1.Row, myform.mf1.Col) myform.Text1.Text = myform.mf1.Text myform.Text1.SelStart = 0 myform.Text1.SelLength = Len(myform.Text1.Text) End IfEnd SubPublic Sub moveright() If Text1.Text = 1 Then Set myform = main_rcyw_rk If Text1.Text = 2 Then Set myform = main_rcyw_rktd If Text1.Text = 3 Then Set myform = main_rcyw_xs If Text1.Text = 4 Then Set myform = main_rcyw_xstd If myform.Text1.Text Then myform.Text1.SelStart = 0 myform.Text1.SelLength = Len(myform.Text1.Text) End If If myform.mf1.Col + 1 = myform.mf1.Cols - 1 Then myform.mf1.Col = myform.mf1.Col + 1 Else If myform.mf1.Row + 1 = myform.mf1.Rows - 1 Then myform.mf1.Row = myform.mf1.Row + 1 myform.mf1.Col = 1 End If End IfEnd SubPublic Sub moveleft() If Text1.Text = 1 Then Set myform = main_rcyw_rk If Text1.Text = 2 Then Set myform = main_rcyw_rktd If Text1.Text = 3 Then Set myform = main_rcyw_xs If Text1.Text = 4 Then Set myform = main_rcyw_xstd If myform.Text1.Text Then myform.Text1.SelStart = 0 myform.Text1.SelLength = Len(myform.Text1.Text) End If If myform.mf1.Col - 11 = myform.mf1.Cols + 1 Then myform.mf1.Col = myform.mf1.Col - 1 If myform.mf1.Col = 0 Then myform.mf1.Col = 1 Else If myform.mf1.Row + 1 = myform.mf1.Row - 1 Then myform.mf1.Row = myform.mf1.Row + 1 myform.mf1.Col = 1 End If End IfEnd SubPublic Sub movereturn() If Text1.Text = 1 Then Set myform = main_rcyw_rk If Text1.Text = 2 Then Set myform = main_rcyw_rktd If Text1.Text = 3 Then Set myform = main_rcyw_xs If Text1.Text = 4 Then Set myform = main_rcyw_xstd If myform.mf1.Col = 10 Then myform.mf1.Row = myform.mf1.Row + 1 myform.mf1.Col = 1 Else If myform.mf1.Col + 1 = myform.mf1.Cols - 1 Then myform.mf1.Col = myform.mf1.Col + 1 Else If myform.mf1.Row + 1 0 Data1.Refresh MS1.Col = 9: MS1.Sort = flexSortNumericAscending 第9行按升序排序End SubPrivate Sub Command2_Click() frm_main.Enabled = True Unload MeEnd SubPrivate Sub MS1_Click()End Sub程序启动后,选择“库存管理”菜单下的“库存盘点”项,将进入库存盘点模块。其实现的功能是盘点库存商品信息。(3)价格管理模块设计(窗体名:价格管理.frm)Public Sub eval() 定义赋值函数 If Data2.Recordset(0) Then pz.Caption = Data2.Recordset(0) Else pz.Caption = 0 If Data2.Recordset(1) Then hjsl.Caption = Data2.Recordset(1) Else hjsl.Caption = 0 If Data2.Recordset(2) Then hjje.Caption = Data2.Recordset(2) Else hjje.Caption = 0End SubPrivate Sub Form_Load() 自动识别数据库路径 Data1.DatabaseName = App.Path & yyjxc.mdb Data2.DatabaseName = App.Path & yyjxc.mdbEnd SubPrivate Sub Form_Activate() 向combo1添加查询项目列表 Combo1.AddItem (商品名称) Combo1.AddItem (简称) Combo1.AddItem (批号) Combo1.ListIndex = 0 初始化查询统计库存商品信息 Data2.RecordSource = select count(*)as 品种,sum(库存)as 合计库存,sum(库存金额)as 合计库存金额 from kc Data2.Refresh Call eval 调用函数End SubPrivate Sub Form_Unload(Cancel As Integer) frm_main.Enabled = TrueEnd SubPrivate Sub texgjj_Change() texgje.Text = Val(texgkc.Text) * Val(texgjj.Text) 计算库存金额 Data2.Refresh Call eval 调用函数End SubPrivate Sub texgkc_Change() texgje.Text = Val(texgkc.Text) * Val(texgjj.Text) 计算库存金额 Data2.Refresh Call eval 调用函数End SubPrivate Sub Command1_Click()查询统计库存商品信息 Data1.RecordSource = select * from kc where (kc. & Combo1.Text & & like + Chr(34) + Text1.Text + * + Chr(34) + ) Data1.Refresh Data2.RecordSource = select count(*)as 品种,sum(库存)as 合计库存,sum(库存金额)as 合计库存金额 from kc where (kc. & Combo1.Text & & like + Chr(34) + Text1.Text + * + Chr(34) + ) Data2.Refresh Call eval 调用函数End SubPrivate Sub Command2_Click() frm_main.Enabled = True Unload MeEnd Sub程序启动后,选择“库存管理”菜单下的“价格管理”项,将进入价格管理模块。其实现的功能如下:a.选择任意字段查询库存商品信息。b.完成库存商品的进价、库存数量的修改。c.统计库存品种、库存数量、库存金额。4、查询统计设计 (1)入库查询模块设计(窗体名:入库查询.frm)Private Sub DBGrid1_Click()End SubPrivate Sub Form_Activate()向combo1添加查询项目列表 Combo1.AddItem (商品名称) Combo1.AddItem (批号) Combo1.AddItem (票号) Combo1.ListIndex = 1 Data1.RecordSource = select * from rkd where (rkd.日期 between + Chr(35) + rq1.Text + Chr(35) + and + Chr(35) + rq2.Text + Chr(35) + ) Data1.RefreshEnd SubPrivate Sub Form_Load() 自动识别数据库路径 Data1.DatabaseName = App.Path & yyjxc.mdbEnd SubPrivate Sub Form_Unload(Cancel As Integer) frm_main.Enabled = TrueEnd SubPrivate Sub Command1_Click() 入库查询 Data1.RecordSource = select * from rkd where (rkd.日期 between + Chr(35) + rq1.Text + Chr(35) + and + Chr(35) + rq2.Text + Chr(35) + )and(rkd. & Combo1.Text & & like + Chr(34) + Text1.Text + * + Chr(34) + ) Data1.RefreshEnd SubPrivate Sub Command2_Click() 删除入库信息 On Error Resume Next Data1.Recordset.Delete Data1.RefreshEnd SubPrivate Sub Command3_Click() frm_main.Enabled = True Unload MeEnd Sub程序启动后,选择“查询统计”菜单下的“入库查询”项,将进入入库查询模块。其实现的功能如下:a.按任意时间段、任意字段查询入库商品信息。b.删除入库商品信息。(2)销售查询模块设计(窗体名:销售查询.frm)Private Sub DBGrid1_Click()End SubPrivate Sub Form_Activate()向combo1添加查询项目列表 Combo1.AddItem (商品名称) Combo1.AddItem (批号) Combo1.AddItem (票号) Combo1.ListIndex = 0 Data1.RecordSource = select * from xsd where (xsd.日期 between + Chr(35) + rq1.Text + Chr(35) + and + Chr(35) + rq2.Text + Chr(35) + ) Data1.RefreshEnd SubPrivate Sub Form_Load() 自动识别数据库路径 Data1.DatabaseName = App.Path & yyjxc.mdbEnd SubPrivate Sub Form_Unload(Cancel As Integer) frm_main.Enabled = TrueEnd SubPrivate Sub Command1_Click() 查询销售信息 Data1.RecordSource = select * from xsd where (xsd.日期 between + Chr(35) + rq1.Text + Chr(35) + and + Chr(35) + rq2.Text + Chr(35) + )and(xsd. & Combo1.Text & & like + Chr(34) + Text1.Text + * + Chr(34) + ) Data1.RefreshEnd SubPrivate Sub Command2_Click() 删除销售信息 On Error Resume Next Data1.Recordset.Delete Data1.RefreshEnd SubPrivate Sub Command3_Click() frm_main.Enabled = True Unload MeEnd Sub程序启动后,选择“查询统计”菜单下的“销售查询”项,将进入销售查询模块。其实现的功能如下:a.按任意时间段、任意字段查询商品销售信息。b.删除商品销售信息。(3)销售退货查询模块设计(窗体名:销售退货查询.frm)Private Sub DBGrid1_Click()End SubPrivate Sub Form_Activate()向combo1添加查询项目列表 Combo1.AddItem (商品名称) Combo1.AddItem (批号) Combo1.AddItem (票号) Combo1.ListIndex = 0 查询销售退货信息 Data1.RecordSource = select * from xstd where (xstd.日期 between + Chr(35) + rq1.Text + Chr(35) + and + Chr(35) + rq2.Text + Chr(35) + ) Data1.RefreshEnd SubPrivate Sub Form_Load() 自动识别数据库路径Data1.DatabaseName = App.Path & yyjxc.mdbEnd SubPrivate Sub Form_Unload(Cancel As Integer) frm_main.Enabled = TrueEnd SubPrivate Sub Command1_Click() 查询销售退货信息 Data1.RecordSource = select * from xstd where (xstd.日期 between + Chr(35) + rq1.Text + Chr(35) + and + Chr(35) + rq2.Text + Chr(35) + )and(xstd. & Combo1.Text & & like + Chr(34) + Text1.Text + * + Chr(34) + ) Data1.RefreshEnd SubPrivate Sub Command2_Click() 删除销售退货信息 On Error Resume Next Data1.Recordset.Delete Data1.RefreshEnd SubPrivate Sub Command3_Click() frm_main.Enabled = True Unload MeEnd Sub程序启动后,选择“查询统计”菜单下的“销售退货查询”项,将进入销售退货查询模块。其实现的功能如下:a.按任意时间段、任意字段查询商品销售退货信息。b.删除商品销售退货信息。4、基础信息管理设计 (1)供应商管理模块设计(窗体名:供应商管理.frm)程序代码过长,内容较多,详见程序中程序启动后,选择“基础信息管理”菜单下的“供应商管理”项,将进入供应商管理模块。其实现的功能如下:a.完成供应商基本信息的录入、保存、修改、删除。b.按任意字段、任意条件查询供应商基本信息。c.通过卡片式、列表式两种方式查看供应商基本信息。(2)客户管理模块设计(窗体名:客户管理.frm)程序代码过长,内容较多,详见程序中程序启动后,选择“基础信息管理”菜单下的“客户管理”项,将进入客户管理模块。其实现的功能如下:a.完成客户基本信息的录入、保存、修改、删除。b.按任意字段、任意条件查询客户基本信息。c.通过卡片式、列表式两种方式查看客户基本信息。5、系统设置设计 (1)初期建账模块设计(窗体名:初期建账.frm)Private Sub Form_Unload(Cancel As Integer) frm_main.Enabled = TrueEnd SubPrivate Sub Command1_Click() Dim db As Database Dim rs As Recordset Dim connter As Integer Dim workarea(200) As String ProgressBar1.Visible = True ProgressBar1.Max = UBound(workarea) ProgressBar1.Value = ProgressBar1.Min For Counter = LBound(workarea) To UBound(workarea) workarea(Counter) = initial value & Counter ProgressBar1.Value = Counter Set db = Workspaces(0).OpenDatabase(App.Path & yyjxc.mdb) Dim sql As String If Check1.Value = 1 Then 删除全部库存信息 sql = delete * from kc db.Execute sql End If If Check2.Value = 1 Then 删除全部供应商信息 sql = delete * from gys db.Execute sql End If If Check3.Value = 1 Then 删除全部客户信息 sql = delete * from kh db.Execute sql End If If Check4.Value = 1 Then 删除全部入库信息 sql = delete * from rkd db.Execute sql End If If Check5.Value = 1 Then 删除全部入库退货信息 sql = delete * from rktd db.Execute sql End If If Check6.Value = 1 Then 删除全部销售信息 sql = delete * from xsd db.Execute sql End If If Check7.Value = 1 Then 删除全部销售退货信息 sql = delete * from xstd db.Execute sql End If Next Counter ProgressBar1.Visible = False ProgressBar1.Value = ProgressBar1.MinEnd SubPrivate Sub Command2_Click() frm_main.Enabled = True Unload MeEnd Sub程序启动后,选择“系统设置”菜单下的“初期建账”项,将进入初期建账模块。其主要功能是实现清空系统全部或部分数据。(2)密码设置模块设计(窗体名:密码设置.frm)Private Sub Form_Load() Data1.DatabaseName = App.Path & yyjxc.mdb 自动识别数据库路径End SubPrivate Sub Form_Unload(Cancel As Integer) frm_main.Enabled = TrueEnd SubPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Then Text2.SetFocusEnd SubPrivate Sub text2_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Then Text3.SetFocusEnd SubP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子商务平台区域经销商网络合作协议
- 数据挖掘工程师跨区域合作合同
- 国际化新材料专利许可与全球市场研发合作协议
- 抗癌生物制药研发有限合伙人投资协议
- 影视版权代理与影视行业培训教育合作协议
- 小红书平台店铺综合运营与品牌推广合作协议
- 影视后期剪辑师聘用及影视版权合作合同
- 跨界合作影视剧本改编权转让合同
- 农业生态农场合伙人生态农业农业保险合作协议
- 豪宅房产优先购买权转让及执行协议
- 部编版八年级历史下册-第16课 独立自主的和平外交(教学设计4)
- 7.1 自由平等的真谛 课件- 2024-2025学年八年级道德与法治下册 统编版
- 2025年内蒙古中煤蒙大新能源化工有限公司招聘笔试参考题库附带答案详解
- 插画版权授权协议书
- 地理西亚+课件-2024-2025学年七年级地理下册人教版
- 放射科质量管理制度
- 科研助理笔试题库及答案
- 产品上市计划
- CHINET2024年全年细菌耐药监测结果
- 药物临床试验质量管理规范解读
- 膀胱癌健康宣教课件
评论
0/150
提交评论