药店综合管理系统票据处理_开发药店综合管理系统

2020-02-28 其他范文 下载本文

药店综合管理系统票据处理由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“开发药店综合管理系统”。

药店管理系统

摘 要:药店管理系统开发的总体任务是实现对药店业务系统化,规范化,和自动化的管理,简化业务人员的手工劳动,减轻事物处理人员的劳动强度,合理的记录和管理药店的药品信息,提高药店的生存能力,加强管理,增进效益,所以我们从药店基本需求出发,有针对性的开发了本药店管理系统。它可以满足一个药店的基本业务需求,包括药品基本信息的管理,药品的购进,销售,对库存中的药品进行效期报警以及分析等功能,并能够形成需要的报表。药店管理系统是一种信息管理系统,它的开发包括后台数据库的建立维护和前台应用程序的开发,前者要求数据要具有一致性,完整性及安全性,后者要求功能完备,操作简便灵活实用。经过分析,我们使用Microsoft Acce2000建立数据库,Microsoft Visual Basic6.0作为前台开发工具,结合ADO数据库开发技术,开发本系统。在开发的过程中,对原始模型不断的改进,针对用户对报表图表的需求,使用了Crystal Reports 9.20,使系统逐步完善,直到形成用户满意的可行系统。经过多次大量实验和用户的使用检验,本系统可以满足

中小药店的业务需要。

关键词:ADO数据库开发技术,Crystal Reports 9.20,数据库,打印

Abstract:The total miion of Pharmacy management system is to manage the Pharmacy operation systemic standardized and automatically, simplify the busine personnel's handicraft labor, ease the labor strength of people, note and management the medicine information, improve the pharmacy viability, strengthen the management, promote the performance.For a pharmacy the most important operations are purchase, sell and storage, so we are from the Pharmacy basic need, develop the Pharmacy management system pertinently.Including ,sell ,return ,cancel ,analyze and so on, it can make the need report and chart.The Pharmacy management system is a kind of MIS, its development includes setting up the database of background and application of proscenium, and the first require the data keep coherence, integrality and security, and the operation is simple and vivid and practical.Acro analyze, we develop the system use Microsoft Acce2000 built database, Microsoft Visual Basic6.0 as develop tools, combine ADO database develop technology.In the proce of develop, we improve original model continuously, for the user's need of report and chat, we use Crystal Reports 9.20 to make the system gradually perfect, until form a system can go and make user satisfied.Through much experimentation and user use, the system can satisfy the busine demand of the medium and small pharmacy.Keywords :ADO database develop technology, Crystal Reports 9.20, Database,Print.1.序言

随着科学技术的发展和计算机科学的日渐成熟,信息时代已经来临,计算机已经应用于各行各业,人们对计算机也不再陌生。人们可以方便的存储大量的数据,而且容易保存,不宜丢失损坏。针对以上问题和有利条件,我们开发了本药店管理系统。

药店管理系统可以完成药店的基本业务如药品的入库、销售,可以进行返货、退货处理,同时还可以实现特殊业务如报损收益、效期报警等。另外它可以根据业务需求生成报表图形如销售毛利表等。它可以帮助业务处理人员轻松的摆脱大量重复的手工劳动,方便快捷的处理数据,进行分析汇总,大大提高了工作效率。

根据分析后台数据库的建立我使用了Microsoft Acce2000,它提供了数据库中最常用的功能,使用便捷,可以满足本系统的需要。完成了对后台数据库的搭建和设计,通过ADO数据库开发技术与前台的Visual Basic 6.0进行连接,同时我在开发过程中为了美化界面和完成报表功能应用了第三方控件和Crystal Report 9.2。

在下面的介绍中,将详细的介绍药店管理系统--票据处理的开发过程,同时,阐述开发过程中所涉及到的问题及解决方法。

2.应用软件与开发环境概述

2.1 Microsoft Acce2000数据库

Microsoft Acce2000是Microsoft公司开发的一套桌面数据库,是微软Office办公套件的重要组成部分。它具有使用便捷、系统资源占用低、交换数据非常方便的优点,它快速、小巧、灵活,作为本系统的后台数据库可以胜任。

微软的JET数据库引擎提供了与数据库打交道的途径,并利用SQL语句或者ADO 控件实现与数据库的连接,我们是通过它以及Visual Basic 来访问数据库并对其进行各种操作。

Visual Basic、Acce以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。在此系统利用SQL语句完成对数据库中数据的操作。

2.2 Crystal Report 9.2 Crystal Report 9是世界领先的桌面及 Web 报表工具,它除了可以替windows与web应用程序创建报表外,更可以将报表发布成web服务器上的报表web服务。Crystal Report 9可以内嵌到Microsoft Visual Basic6.0中,用户可以更方便的设计报表。

Crystal Report 9在Microsoft Visual Basic6.0中的设计器Crystal Report是所见即所得

的报表设计工具,其对数据库的访问可以通过“提取模式”(pull model)和“推入模式”(push model)两种模式,并支持当前流行的各种数据源。

2.3 Microsoft Visual Basic 6.0 Microsoft Visual Basic6.0数据库开发技术有DAO数据库开发技术、RDO数据库开发技术、ADO数据库开发技术、ODBC数据库开发技术。

本系统的开发应用的是ADO数据库开发技术。ADO是一种提供访问各种数据类型的连接机制,不仅可以使用SQL Server、Oracle、Acce等数据库应用程序,也可使用与Excel表格、文本文件、图形文件和无格式的数据文件。

3.药店管理系统的开发分析

3.1 需求分析

通过和用户的交流详细了解客户的需求,细化功能要求,准确地回答系统必须作什么。

系统可能完成功能要求包括:

(1)药品的入库、及其信息的查询和即时记录打印;

(2)即时查询打印当前收银员的收银情况,及选定时间内所有收银员的收银情况;(3)对供应商供货金额的查询、单品的保管帐查询;

(4)每天的结帐处理,其中包括对入库(返货)、销售(退货)、库存;(5)通过每日的结帐可以查询打印选定时间内的销售毛利表;

(6)选定时间内销售排行(分别按柜组和单品)前10名的柱状图的显示。3.2 总体设计

药店管理系统需要满足来自三方面的需求,分别是药品基本信息的查询、药品出库、入库的记录及库存的统计和系统管理人员的个人信息的更改。

药品基本信息查询的需求是查询药品所在的柜组、编码、拼音编码、产地等基本信息;药品基本信息及管理员个人信息的修改;系统管理人员的功能最为复杂,包括对供应商,药品基本信息、个人信息、进行管理和维护,及系统状态的查看、维护。

系统管理人员功能的信息量大,权限高,并且对数据安全性和保密性要求最高。

4.药店管理系统的实现

4.1 具体功能的实现

报表打印模块:针对不同的需要利用SQL语句选出需要的数据给以显示并实现打印

功能。

销售排行:直方图的形式显示(柜组/单品)销售额的前10名。具体实现将在后面叙述。

4.2 数据库功能的实现

首先在模块中利用ADO数据库开发技术自定义了一个执行程序中SQL 语句的函数,此函数自动连接数据库执行SQL语句后将返回执行结果的记录集。本系统中与数据库有关的操作,各种查询及对数据库中表的操作、各中数据集的得到均由以上几种操作组合实现,具体过程参见程序源码,此处不再叙述。

4.3 打印与出图功能的实现

导出到excel表中,通过Excel进行打印。

实现:由于入库查询结果项目众多,而对于查询的结果并不需要打印所有项目,查询者可以有选择的选择需要的打印项目,Excel的灵活性正好符合要求,所以此处选择此方法。首先通过Excel建立打印的模版文件入库查询.xls存于excel目录下,为了避免对模版文件的修改,先复制模版文件为到temp目录下名为新入库查询结果.xls,然后将查询结果到入此文件中并自动打开此文件等待打印操作。

以收银员收银报表介绍交叉报表的实现。

添加Crystal Reports 9后选择使用专家报表,选择专家中选择交叉表,选择完需要的表后设置如图4-1所示。

图4-1 交叉表创建向导

点击完成后经过,自动形成交叉表,设计修改后得到需要的报表,显示效果如图4-2所示。

图4-2收银员收银报表

建立新的设计器选择数据库、表之后选择插入图表结果如图4-3所示。

图4-3图表专家

再选择上图的数据,确定后得到柜组销售排行前10的柱状图,操作如图4-4所示。

图4-4柜组销售排行

系统中其它的由Crystal Reports 9实现的打印与出图功能的均可由上面介绍的方法实现,其中在设计的时候首先设置打印机选择合适的纸张,本系统设计过程中打印机的设置为EPSON-LQ1600KⅢ与实际应用的想符合,而纸张的大小选择与实际最相接近的10x11的纸。

5.系统测试与问题解决

5.1 解决不完善的问题

多次查询连续打印,打印的数据不能更新,如销售毛利查询,进入系统第一次确定查询选择打印运行正常,继续查询显示的数据无误,但是再选择打印,打印的仍为上次的查询结果,只有完全退出系统在再进,即每次进入系统只能正确打印一次。解决通过反复实验发现当显示打印结果的控件CRViewer9的EnableRefreshButton属性为true会出现一个刷新按钮,多次查询打印前先通过此按钮刷新便可得到最新的需要打印的数据。不完善在于打印数据不能自动刷新。

5.2 未解决的问题 系统与实际的业务情况还存在差距,如实际中实售价应可以改、由于某种需要某种药的某几笔货要暂时禁止销售(所谓的挑库存)、当库存中药品的批号与计算机内不符的时候可以改批号等功能没有实现。系统的运行只在1024x768下运行,在其它的显示模式下会出现窗体显示不全的问题。

当用户添加一条新的药品记录是系统会将数据库中最后一条记录的编号取出并加一,使其作为新记录的编号。但是由于一些规定,已删除的药品编号不能作为新药品的编号。

系统帮助部分只设计了界面排版工作,具体的功能尚未实现在测试中,发现提示信息过于死板,利用 MsgBox 的vbQuestion, 属性做了处理以后,界面较为美观,但仍然不足。此系统还没有实现添加新柜组的功能。

5.3 测试小结 在测试的时候我尽量更靠近实际情况,全面的考虑实际操作中可能出现的特殊情况,发现并解决了一些问题,同时也发现了一些暂时无法解决的问题,只能在以后的开发过程中逐步找到解决的办法。当然通过测试也发现了一些由于马虎产生的语法错误,也都及时的修改。单个模块测试后由于业务的连贯性,我又从实际业务的角度用实际的数据

进行录入,对手中正确的数据和各功能实现的结果相比较,以确保功能的正确性,最终完成系统中本人负责的功能模块。

6.小结

以上是药店管理系统本人开发部分的全部过程,这次毕业设计迄今历时三个月。通过本次毕业设计的锻炼,在实践中我学到了很多的东西,对软件的开发有了更深入的认识,提高了自己应用程序开发的水平和对事物的思考,逻辑分析能力有了长足的进步,同时也看到了自己的缺点和不足,由于本身技术和理论水平有限系统中还有些不足,希望老师批评指正,开发过程中一些没有想到的地方,也希望老师给予指点,以便在今后的学习工作中改进。通过这次锻炼相信在以后的学习和工作中,我一定会不断的充实自己,使自己的水平不断提高。

7.谢辞

本毕业设计是在马春华,孙珊珊,李欣老师们的悉心指导下完成的。在课题的选择和设计开发过程中各位老师们给予了我热心的帮助和大力支持,借此论文成稿之时,向他们致以忠心的感谢。

同时我要感谢我的合作伙伴李帛霖,黄冬,课题的完成需要合作,通过这次合作我更了解了团结合作的作用。最后对所有大学期间指导、关心、帮助和支持过我的老师和同学,致以最崇高的敬意和最真诚的感谢。参考文献:

[1] 李盛,《Visual Basic数据库编程技术与实例》,第三版,北京,人民邮电出版社, 2005,21-22页 [2] 张立科,《Visual Basic 6.0程序设计参考手册》, 北京 ,人民邮电出版社 , 2003,122-123页 [3] 齐锋,《Visual Basic 6.0程序设计》,第二版, 北京 ,中国铁道出版社,2002,154-156页 [4] 廖疆星 张艳钗,《中文Acce2002数据库开发指南》,冶金工业出版社 ,2001,10-12页 [5] Microsoft公司,《Visual Basic 6.0应用程序开发》,第二版,北京大学出版社,2000,25-26页 [6] Ed Robinson,《Upgrading Visual Basic 6.0 to Visual Basic.NET(影印版)》,世界图书出版公司,2001,23-24页

[7] [美]DIANE ZAK ,《VISUAL BASIC 6.0编程(提高版)(英文原版)》,电子工业出版社, 2002,26-27页

[8] Joe Estes,《Teach Yourself Crystal Reports 9 in 24 Hours》, Sams,2003,101-103 页

[9] Alex Kriegel,《Voris M.Trukhnov SQL Bible》,wiley,2003,58-60页

附录:

销售排行:

Private Sub Command1_Click()

Dim i As Integer

Dim sql As String

Dim rs As ADODB.Recordset

Dim sqlin As String

Dim rs1 As ADODB.Recordset

If Option1.Value = True Then

sql = “delete * from 销售量排行柜组”

transactsql(sql)

sql = “select 柜组,sum(数量),sum(金额)from 销售记录表 where datevalue(销售日期)between #” & DTPicker1.Value & “# and #” & DTPicker2.Value & “# group by 柜组”

Set rs = transactsql(sql)

If rs.EOF And rs.BOF Then

MsgBox “没有销售记录!”, , “提示!”

Exit Sub

Else

For i = 1 To rs.RecordCount

sqlin = “insert into 销售量排行柜组 values('” & rs(0)& “','” & rs(1)& “','” & rs(2)& “',#” & DTPicker1.Value & “#,#” & DTPicker2.Value & “#)”

transactsql(sqlin)

rs.MoveNext

Next i

xhphgz.Show

End If

End If

If Option2.Value = True Then

sql = “delete * from 销售量排行单品”

transactsql(sql)

sql = “select 编码,sum(数量),sum(金额)from 销售记录表 where datevalue(销售日期)between #” & DTPicker1.Value & “# and #” & DTPicker2.Value & “# group by 编码”

Set rs = transactsql(sql)

If rs.EOF And rs.BOF Then

MsgBox “没有销售记录!”, , “提示!”

Exit Sub

Else

For i = 1 To rs.RecordCount

sql = “select * from 药品基本表 where 编码='” & rs(0)& “'”

Set rs1 = transactsql(sql)

sqlin = “insert into 销售量排行单品 values('” & rs(0)& “','” & rs1(3)& “','” & rs(1)& “','” & rs(2)& “',#” & DTPicker1.Value & “#,#” & DTPicker2.Value & “#)”

transactsql(sqlin)

rs.MoveNext

Next i

xhphdp.Show

End If

End If End Sub 收银员收银报表:

Private Sub Form_Load()DTPicker1.Value = Date DTPicker2.Value = Date Me.Caption = ydmc & “管理系统” & “----销售排行” End Sub Private Sub Command1_Click()

Dim sql As String

Dim rs As ADODB.Recordset

Dim sqlin As String

Dim i As Integer

sql = “delete * from 收银员销售报表”

transactsql(sql)

sql = “select * from 销售记录表 where datevalue(销售日期)between #” & DTPicker1.Value & “# and #” & DTPicker2.Value & “#”

Set rs = transactsql(sql)

For i = 1 To rs.RecordCount

sqlin = “insert into 收银员销售报表 values('” & rs(0)& “','” & rs(1)& “','” & rs(8)& “','”

sqlin = sqlin & rs(10)& “',#” & DTPicker1.Value & “#,#” & DTPicker2.Value & “#)”

transactsql(sqlin)

rs.MoveNext

Next i

bbsyysyp.Show End Sub Private Sub Form_Load()

DTPicker1.Value = Date

DTPicker2.Value = Date

Me.Caption = ydmc & “管理系统” & “----收银员收银报表” End Sub

《药店综合管理系统票据处理.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
药店综合管理系统票据处理
点击下载文档
相关专题 开发药店综合管理系统 票据 药店 综合管理系统 开发药店综合管理系统 票据 药店 综合管理系统
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文