目 录
摘要 Ⅰ
Abstract Ⅱ
第1章 绪论 1
1.1选题意义 1
1.1.1选题背景 1
1.1.2选题意义 1
1.2系统方案 1
1.3可行性分析 1
1.3.1技术可行性分析 1
1.3.2经济可行性分析 1
第2章 系统主要功能及界面设计 3
2.1系统功能分析 3
2.1.1系统功能分析 3
2.1.2 数据库结构设计 4
2.2界面设计 8
第3章 系统特色或关键技术实现 15
3.1系统关键技术 15
3.1.1 定义全局变量 15
3.1.2 五次登录验证 15
3.1.3 用户权限设置 15
3.1.4 库存预警 15
3.1.5 进药单的录入 16
第4章 系统默认ODBC数据源名、用户名、口令 20
第5章 需要说明的其他问题 21
结论 22
致谢 23
参考文献 24
第1章 绪 论
1.1选题意义
1.1.1选题背景
随着计算机技术的发展和普及,各行各业的管理机构需要由计算机处理大量的信息。在我国药品品种繁多,规模甚大,以往的手工记载、查询操作容易出错且工作效率低,已经不能适应时代发展的要求,而且手工管理要浪费许多人力和物力,从管理的角度来看,对管理者会造成诸多的不便,还有可能疏忽一些细节,让不法商家逃脱罪责。
1.1.2 选题意义
利用计算机进行药品管理,堵塞了药品的流失。规范了价格管理,避免了人为的物价损失,从而明显地提高医院的经济效益。将销售行为纳入规范化、公开化的轨道,从制度上纠正医药商品购销活动中的不正之风。为此药店需一个药品销售管理系统。
通过药品销售管理系统可以让药店有效的管理销售业务;其次,让顾客增加对药店售药的可信度;再次,药店可以方便的了解到这一段时间的售药情况,顾客消费情况等;更重要的是统一的药价管理机制,与顾客之间建立了友好的关系,增进了与顾客之间的交流,为售药机构自身发展提供有力的支持。
1.2 系统方案
本系统使用的开发工具是PB9.0,数据库使用的是PB自带的ASA数据库,它实现了药店的主要数据录入和数据的统计分析处理。为药店整合各药品信息,进药信息,供应商信息,销售信息与统计提供了很好的统计工具。很好的实现了管理智能化,轻松化,简便化的目标。
1.3 可行性分析
1.3.1 技术可行性分析
根据客户提出的系统功能、性能及实现系统的各项约束条件,根据新系统目标来衡量所需的技术是否具备,本系统是一个数据库管理和查询的系统,所以需要熟悉数据库系统和熟悉编程语言以及良好的逻辑性的人,现有的技术以较为成熟,硬件、软件的性能要求、环境条件和人才等各项条件良好,估计利用现有技术条件可以达到该系统的功能目标。
1.3.2 经济可行性分析
估算新系统的成本效益分析,其中包括估计项目开发成本,开发费用和系统完成后的运行、维护费用,估计新系统将获得的效益,估算开发成本是否回高于项目预期的全部经费。并且,分析系统开发是否会对其它产品或利润带来一定影响。系统的效益可以从经济效益和社会效益两方面考虑。对于本系统则应分析其经济效益。此系统不仅减少了大量的脑力计算量,还能有效避免人不小出现的数据统计错误,为企业带减少了不少的潜在问题。
第2章 系统主要功能及界面设计
2.1系统功能分析
2.1.1系统功能分析
根据需求分析,所设计系统的相关数据流程如下:
1、基础数据录入:包括对药品信息的录入,进药单、卖药单录入。
2、数据查询:对进药单信息、进药退货单信息、卖药退货单信息、卖药单信息、药品基本信息、供应商基本信息、库存基本信息等的查询。
3、数据分析:对药品销售情况的统计,即对一段时间内销售额情况的统计分析。
4、统计查询结果的输出:根据用户需要,输出打印各种表单以及信息查询结果。
药店的销售管理系统功能上以实际的业务操作为基础,相应设计出几个功能,具体有如下几个:
1、系统管理模块
(1)用户密码修改。该功能只有管理员才有权限使用。
(2)添加删除用户。该功能只有管理员才有权限使用。
2、资料管理模块
(1)药品信息。
(2)供应商信息。
(3)员工信息。
用户可以通过这个模块对药品信息、供应商信息和员工信息进行查询增加、删除、修改操作,而作为员工的用户只能查看员工信息,只有管理员才有权限对其进行增加、删除、修改操作。
3、库存管理模块
(1)入库登记。日常业务操作,登记后日后可以查询统计。
(2)入库登记查询。对进药单进行查询,统计信息,包括总额。
(3)入库退货登记。日常业务操作,登记后日后可以查询统计。
(4)入库退货登记查询。对进药退货单进行查询,统计信息,包括总额。
(5)库存查询。查看库存中药品的库存情况。
(6)失效药品查询。查看失效药品的信息,以及对预定日期失效药品的查询。
(1)药品价格调整。当市场上药品价格改变时,可以对某类药品的价格进行调整。
(2)买药单登记。日常业务操作,登记后日后可以查询统计。
(3)买药单查询。对买药单进行查询,统计信息,包括总额。
(4)买药退货单。登记日常业务操作,登记后日后可以查询统计。
(5)买药退货单查询。对买药退货单进行查询,统计信息,包括总额。
5、财务管理模块
(1)当日结账。
(2)当日报表。
(3)当月结账。
(4)当月报表。
列出某个时间的进药总额、进药退货总额、卖药总额和买药退货总额的列表,统计销售总额。用户可以通过报表查看某时间段的销售情况。
6、帮助模块,对系统的使用提供帮助
(1)关于。关于系统版本的信息。
(2)帮助。对系统中出现的问题的帮助信息。
2.1.2 数据库结构设计
1.药品信息表(yp)
字段名 | 意义 | 类型 | 宽度 | NULL | PrimaryKey |
yp_id | 药品编号 | char | 8 | No | √ |
yp_mc | 药品名称 | varchar | 20 | Yes | |
yp_gg | 规格 | varchar | 40 | Yes | |
yp_cd | 产地 | varChar | 60 | Yes | |
yp_dw | 单位 | Char | 10 | Yes | |
yp_scrq | 生产日期 | date | No | ||
yp_bzq | 保质期 | date | No | ||
yp_jinjia | 进价 | Numeric | 19 | No | |
yp_lsj | 零售价 | Numeric | 19 | No | |
gys_mc | 供应商名称 | Varchar | 50 | Yes | |
yp_bz | 药品备注 | Varchar | 60 | Yes |
2.用户表(yonghu)
字段名 | 意义 | 类型 | 宽度 | NULL | PrimaryKey |
user_id | 用户编号 | char | 6 | No | √ |
user_type | 类型 | char | 10 | Yes | |
user_name | 用户名 | varchar | 10 | Yes | |
pwd | 密码 | varchar | 10 | Yes |
3.员工信息表(yg)
字段名 | 意义 | 类型 | 宽度 | NULL | PrimaryKey |
yg_id | 员工编号 | char | 8 | No | √ |
yg_name | 员工姓名 | varchar | 20 | Yes | |
yg_csrq | 出生日期 | date | Yes | ||
yg_xb | 性别 | Char | 2 | Yes | |
yg_whcd | 文化程度 | Char | 10 | Yes | |
yg_sfzh | 身份证号 | Char | 20 | Yes | |
yg_dh | 电话 | Char | 20 | Yes | |
yg_dz | 员工住址 | Char | 40 | Yes | |
yg_xj | 薪金 | Numeric | 19 | Yes | |
yg_pyrq | 聘用日期 | date | Yes |
4.供应商信息表(gys)
字段名 | 意义 | 类型 | 宽度 | NULL | PrimaryKey |
gys_id | 供应商编号 | char | 10 | No | √ |
gys_mc | 供应商名称 | char | 50 | Yes | |
gys_dz | 地址 | char | 50 | Yes | |
gys_dh | 电话 | char | 20 | Yes | |
gys_lxr | 联系人 | char | 20 | Yes | |
gys_lxrdh | 联系人电话 | char | 20 | Yes | |
| 邮箱 | char | 30 | Yes |
5.进药单表(jinyao)
字段名 | 意义 | 类型 | 宽度 | NULL | PrimaryKey |
jy_id | 进药单编号 | char | 8 | No | √ |
yp_id | 药品编号 | char | 8 | No | √ |
yp_mc | 药品名称 | char | 20 | Yes | |
yp_gg | 规格 | varchar | 40 | Yes | |
jy_shuliang | 数量 | int | 4 | No | |
yp_dw | 单位 | char | 10 | Yes | |
yp_scrq | 生产日期 | date | No | ||
yp_bzq | 保质期 | date | No | ||
yp_jinjia | 进价 | Numeric | 19 | No | |
gys_mc | 供应商名称 | char | 50 | Yes | |
yp_bz | 备注 | char | 60 | Yes | |
jy_zongjia | 总价 | Numeric | 19 | No | |
jy_date | 入库日期 | date | 8 | No | |
user_name | 操作员 | varchar | 10 | No |
6.进药退货单表(jyth)
字段名 | 意义 | 类型 | 宽度 | NULL | PrimaryKey |
jyth_id | 退药单编号 | char | 10 | No | √ |
yp_id | 药品编号 | char | 8 | No | √ |
yp_mc | 药品名称 | char | 20 | Yes | |
yp_gg | 规格 | varchar | 40 | Yes | |
jyth_shuliang | 数量 | Integer | No | ||
yp_dw | 单位 | char | 10 | Yes | |
yp_scrq | 生产日期 | date | No | ||
yp_bzq | 保质期 | date | No | ||
yp_jinjia | 进价 | Numeric | 19 | No | |
gys_mc | 供应商名称 | char | 50 | Yes | |
yp_bz | 备注 | char | 60 | Yes | |
jyth_zongjia | 总价 | Numeric | 19 | No | |
jyth_date | 退货日期 | date | No | ||
user_name | 操作员 | varchar | 10 | No |
7.买药单表(xs)
字段名 | 意义 | 类型 | 宽度 | NULL | PrimaryKey |
xs_id | 买药单编号 | char | 8 | No | √ |
yp_id | 药品编号 | char | 8 | No | √ |
yp_mc | 药品名称 | char | 20 | Yes | |
xs_shuliang | 数量 | Integer | No | ||
yp_lsj | 单价 | Numeric | 19 | No | |
xs_bz | 备注 | char | 60 | Yes | |
xs_zongjia | 总价 | Numeric | 19 | No | |
xs_date | 买药时间 | date | No | ||
user_name | 操作员 | char | 20 | No |
8.销售退货单(xsth)
字段名 | 意义 | 类型 | 宽度 | NULL | PrimaryKey |
xsth_id | 买药退货单编号 | char | 10 | No | √ |
yp_id | 药品编号 | char | 8 | No | √ |
yp_mc | 药品名称 | char | 20 | Yes | |
xsth_shuliang | 数量 | Integer | No | ||
yp_lsj | 单价 | Numeric | 19 | No | |
xsth_bz | 备注 | char | 60 | Yes | |
xsth_zongjia | 总价 | Numeric | 19 | No | |
xsth_date | 退货时间 | date | 8 | No | |
user_name | 操作员 | char | 10 | No |
9.库存表(kucun)
字段名 | 意义 | 类型 | 宽度 | NULL | PrimaryKey |
yp_id | 药品编号 | char | 8 | No | √ |
yp_mc | 药品名称 | char | 20 | Yes | |
gys_id | 供应商编号 | char | 20 | Yes | |
gys_mc | 供应商名称 | char | 50 | Yes | |
kc_min | 最小库存量 | Integer | Yes | ||
kc_shuliang | 库存量 | Integer | Yse | ||
yp_scrq | 药品生产日期 | Date | Yes | ||
yp_bzq | 药品保质期 | Date | Yes | ||
kc_zongjia | 总价 | Numeric | 19 | No |
10.日结帐报表(rjzbb)
字段名 | 意义 | 类型 | 宽度 | NULL | PrimaryKey |
rjz_rq | 日结帐日期 | date | No | √ | |
user_name | 操作员 | Char | 10 | No | |
rjz_rk_ze | 入库总额 | Numeric | 19 | No | |
rjz_rk_th_ze | 入库退货总额 | Numeric | 19 | No | |
rjz_xs_ze | 销售总额 | Numeric | 19 | No | |
rjz_xs_th_ze | 销售退货总额 | Numeric | 19 | No |
11.日结帐报表(yjzbb)
字段名 | 意义 | 类型 | 宽度 | NULL | PrimaryKey |
yjz_rq | 月结帐日期 | date | No | √ | |
user_name | 操作员 | Char | 10 | No | |
yjz_rk_ze | 月入库总额 | Numeric | 19 | No | |
yjz_rk_th_ze | 月入库退货总额 | Numeric | 19 | No | |
yjz_xs_ze | 月销售总额 | Numeric | 19 | No | |
yjz_xs_th_ze | 月销售退货总额 | Numeric | 19 | No |
2.2界面设计
(1)登陆连接数据库读取进度条,在登陆时数据条开始为连接数据库读数,增加设计的美观。
(2) 登录窗口
只有用户类型、用户名和密码填写正确才能进入主系统窗口,若五次填写错误,则登录窗口自动关闭,用户无法进入主系统窗口。
(3)库存预警
当库存量低于最低库存时,操作员一登陆,系统就会提示库存缺货,如果有药品过期也会进行药品过期提示.只有用户点击确定才能登陆到主系统窗口。
(4)主窗口
(5)增删用户窗口
当点击添加用户时,用户编号选项自动为新用户添加编号,其他选项制空,此时“保存”按钮和“放弃”按钮转变为可用状态,“删除用户”按钮和“修改信息”按钮变为不可用状态。同时也可对用户进行查询并删除和修改。
(6)修改密码
只有管理员才有权限对密码进行修改操作
(7)进药单录入窗口
点击添加,系统自动生成一个空的进药单,其他按钮选项变为可用状态。当用户填写完药品编号和进货数量后,按回车,一张完整的进药单完成了。点击保存,完成进药单的录入及库存的修改。
录入后可以点击查看标签查看。
(8)入库登记查询窗口
(9)库存查询窗口
(10)最低库存设置窗口
(11)库存报警窗口
用户可通过该窗口查询哪些药品的库存量不足。
(12)失效药品查询窗口
输入查看时间,用户可获知哪些药品在指定的时间前已过期。
(13)价格调整窗口
(14)买药单录入窗口
填写客户所要购买的药品编号或药品名称,点击查看,窗口就会显示该药品的库存量及单价,用户确认药品库存量大于客户所需的数量后,点击添加,系统自动生成一个空的买药单,填写客户购买数量后,按回车,一张完整的买药单完成了。点击保存,完成买药单的录入及库存的修改。
录入后可以点击查看标签查看。
(15)当日结账窗口
(16)当日报表窗口
用户可查看某时间段内每天的入库情况及销售情况。