欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 毕业论文 > 计算机毕业论文

医药批发企业进销存管理系统设计与开发

时间:2011-04-24  作者:秩名

论文导读:我们设计开发了医药批发企业进销存管理系统。而是选择了传统稳定的C/S系统架构。采用PowerBuilder9.0作为前端开发工具。系统架构,医药批发企业进销存管理系统设计与开发。
关键词:C/S系统架构,PowerBuilder,面向对象程序设计,进销存管理系统
 

1 引言

医药批发企业药品的进货、销售和库存管理比较复杂,首先是药品的种类繁多,难于管理,其次其成本核算不仅设计到药品的进货和销售,还要考虑业务员对应的收入管理,为了实现进销存的科学管理,减小管理人员的劳动强度,我们设计开发了医药批发企业进销存管理系统。

针对医药批发企业的行业特点,系统在实施后应能达到以下目标:

(1)系统界面友好美观,操作简单易行。

(2)全面自动化信息管理,可随时掌握药品的进销存信息。

(3)灵活准确的收费,提高工作效率。

(4)查询灵活方便,数据存储安全可靠。

(5)功能全面,实用性强。毕业论文,C/S系统架构。

根据用户的需求和系统的特点,我们没有选择越来越流行的B/S系统架构,而是选择了传统稳定的C/S系统架构,采用PowerBuilder 9.0作为前端开发工具,以MSSQL Server 2005作为后台数据库。这样主要基于两方面的考虑,首先,使得用户的硬件投资较少,不用购买专门的服务器,只需要一台普通微型计算机即可充当数据库服务器;其次,数据交互能力强,能够快速自动生成各种复杂的成本核算单和复杂财务报表。

2 开发技术

本系统采用PowerBuilder9.0作为前端编程工具,后端数据库采用MS SQL Server 2005数据库。PowerBuilder提供的数据窗口对象(DataWindows Object)可以用于连接数据库,获得记录,以各种风格显示数据和更新数据库,很容易和灵活的生成和打印各种风格各异的报表,支持应用系统同时访问多种数据库,其中包括Oracel、Sybase和MS SQL Server等。数据窗口对象还具有数据有效性验证、共享数据等功能,开发人员可以在程序中动态地改变数据窗口对象的结构和显示模式。这使得开发出的数据库应用系统具有强大的数据提取能力,使用户查询灵活方便,数据存储安全可靠,并且界面友好美观,操作简单易行[1, 2]。毕业论文,C/S系统架构。

PowerBuilder的编程语言称为PowerScript,是一种高级的结构化的编程语言。PowerScript提供了一套完整的嵌入式SQL语言,大大增强了程序操纵和访问数据库的能力。提供了大量控件,大大加快了项目的开发速度,也是开发者更容易掌握数据库的开发,完全按照客户/服务器结构研制设计的,采用面向对象技术,图形化的应用开发环境,是强大的数据库前端开发工具,可以更容易地开发出功能强大的图形界面的访问服务器数据库的应用程序[1, 3]。

3 系统主要功能及实现

3.1 系统的主要功能模块

医药批发企业进销存管理系统要实现的功能非常多,最重要的就是药品和医疗器械产品的购进与销售功能,以及对库存中产品数量的管理功能。为了使系统操作员与管理员对库存中的各种药品有一个详细的了解,系统还需要一个对库存管理和查询功能,通过该功能,管理员与操作员可以了解仓库中产品的详细情况。在药品和医疗器械产品进销存管理过程中,会需要生成各种报表,以便对客户所定产品信息和仓库存量信息等内容进行比对和确认。毕业论文,C/S系统架构。对于本系统,其功能目标是要将药品进销存的管理由传统的人工手写管理模式向自动化管理模式转变,同时还能对客户和药品种类以及库存情况进行全面管理,系统需要划分出的功能模块有:

1、入库管理:操作员购进药品提交入库单,并可以打印出入库单,提交出现人为错误,可作废入库单,在仓库复核出现人为错误可冲入库。

2、出库管理:操作员卖出药品提交出库单,并可以打印出出库单,提交出现人为错误,可作废出库单,在仓库复核出现人为错误可冲出库。毕业论文,C/S系统架构。

3、移库管理:药品在各个不同的仓库中转移管理,需操作员提交移库单,并可以打印出移库单,提交出现人为错误,可作废移库单,在仓库复核出现人为错误可冲移库。

4、仓库复核:对操作员提交的入库单,出库单,移库单进行相对应的药品清点,并复核库单。并可以查找未复核的库单。

5、收款与复核:实现销售产品价款收取和复核功能。

6、查询与统计:按不同的条件(如:单号、药品、客户等)对库单进行查询,并对仓库中药品按不同条件(如:仓库、药品)进行查询。

7、系统管理:此模块的权限为管理员,主要包括对药品信息的维护,客户信息的维护以及操作员信息的维护等功能。

C/S系统架构图1 医药批发企业进销存管理系统功能结构

综上所述,本系统包括入库管理,出库管理,移库管理,仓库复核,查询与统计,收款与复核、系统维护等七大模块,各个模块间相对独立,同时又有较强的联系。系统的功能结构如图1所示。

3.2 数据库结构设计

根据系统功能设计的要求以及功能模块的划分,进行了数据库结构设计。下面给出医药进销存管理系统的各个组成部分主要的数据表和数据项:

l仓库表:仓库编号,仓库名称。

l库单表:库单编号,操作日期,操作人,验收员,原始仓库,接受仓库,发票号,开票日期,货品编号,品名,规格,产地,单位编号,单位名称,备注,数量,库单类别标志,作废标志,冲库标志,复核标志。毕业论文,C/S系统架构。

l客户信息表:客户编号,客户名称。

l库存表:货品编号,品名,规格,产地,仓库,数量。

l操作员表:操作员编号,操作员姓名,密码,所属仓库,入库数量,出库数量,移库数量。

l药品信息表:药品编号,品名,规格,产地。

l库单类型表:库单类型,库单类型标志。

3.3 系统详细设计与实现

如前所述,入库管理模块主要包括入库单录入、冲入库单、入库单作废、重打入库单和添加发票号等功能,下面以入库单录入、冲入库单功能的实现为例说明系统的详细设计与实现方法。

1、入库单录入功能设计与实现

入库单录入窗口如图2所示,该窗口包括一个数据窗口,数据窗口绑定的数据表为库单表,窗口打开时在操作员表中找到相应的操作员所对应的入库编号字段,并将其赋值给一个长整型实例变量il_no,将其+1,然后将操作员编号(gs_userID)与il_no用“-”连接,写入数据窗口对应的单号中,实现单号自动生成,操作员写入gs_userName,操作日期写入当前的系统日期,验收员EDIT属性中选择dropdownlistDW,选择另一数据窗口(d_ysy),该数据窗口只包括验收员姓名一个字段,操作员在选好验收员时,系统自动到数据库中查找此验收员所对应的仓库,并将仓库自动显示在仓库字段中,操作员输入货品编号与单位编号之后都可以自动搜索到药品的品名、规格、产地和单位名称并自动显示在相应的位置。开发票日期,发票号,备注可为空。毕业论文,C/S系统架构。点击“存盘”按钮即可将数据写入库单数据表,并将il_no更新到login表中的ruku字段。“存盘”按钮的“clicked”事件上的主要程序代码为:

ll_upd =dw_1.update()

if ll_upd = 1 then

commitusing sqlca;

ifsqlca.sqlcode = 0 then

ib_change= false

ifmessagebox('注意','是否打印入库单?',question!,yesno!)= 1 then

dw_2.retrieve(ls_no)

dw_2.print()

endif

il_no= il_no + 1

ls_no= gs_czy_no +'-'+ string(il_no,'0000000')

dw_1.reset()

dw_1.insertrow(0)

dw_1.setitem(1,'code',ls_no)

dw_1.setitem(1,'kpr',gs_czy)

dw_1.setitem(1,'rq',today())

dw_1.setitem(1,'bm',ls_bm)

dw_1.setitem(1,'kprq',today())

dw_1.setitem(1,'bh',ls_khbh)

dw_1.setfocus()

else

rollback;

messagebox('注意','存盘失败!请查询或修改该入库单!')

return

endif

else

rollback;

messagebox('存盘失败!','请仔细检查输入的内容!!')

return

end if

C/S系统架构

图2 入库单录入窗口

2、冲入库单功能设计与实现

如果入库单录入错误,可以进行修改。但如果已经由复核人员对入库单进行了复核,则只能将其对冲,再重新录入。在冲入库单时,首先打开如图3所示的输入窗口,输入需要冲的入库单号,然后打开如图4所示的冲入库单窗口,填入相关数据后点击“存盘”按钮即可完成冲入库单功能。“存盘”按钮的“clicked”事件上的主要程序代码为:

update 'rkd' set 'ch' = '1' wherecode = :ls_oldno;

if sqlca.sqlcode <> 0 then

rollback ;

messagebox('注意!','冲入库单失败!')

return

end if

ll_upd = dw_1.update()

if ll_upd = 1 then

commit usingsqlca;

if sqlca.sqlcode= 0 then

ib_change= false

ifmessagebox('注意','是否打印?',question!,yesno!)= 1 then

dw_3.retrieve(ls_no)

dw_3.print()

endif

else

rollback;

messagebox('注意','存盘失败!请查询或修改该单据!')

return

end if

else

rollback;

messagebox('存盘失败','请仔细检查输入的内容!!')

return

end if

图3 对冲入库单号输入窗口

图4 冲入库单数据录入窗口

4 结论

在充分调研医药批发企业进销存管理流程的基础上,利用PowerBuilder 9.0开发工具和MS SQLServer数据库,利用面向对象的程序设计方法,设计开发了医药批发企业进销存管理系统。经过多个医药批发企业的使用,完全能够满足其药品和医疗器械进销存管理的需求,同时可以根据用户的需求给出了各种条件、多种结果的统计分析,为企业领导的分析决策支持提供了理想的平台和合理有效的分析手段,在一定程度上提高了医药批发企业的工作效率,实现了预期的目标。


参考文献
1.于洪文,蔡毅,杨鸿雁等.PowerBuilder9.0案例开发篇[M].清华大学出版社,2004年9月.
2.王晓,赵军.PB中的查询技术[J].电脑学习.2009年8月,第4期.
3.董丹丹.基于PB的宾馆管理信息系统的设计与实现[J].科技信息,2008年第29期.
 

 

查看相关论文专题
加入收藏  打印本文
上一篇论文:改进的多级加权滤波算法在细胞图像滤波中的应用
下一篇论文:基于KJava和J2EE的图书查询系统的设计与实现
毕业论文分类
行政管理毕业论文 工商管理毕业论文
护理毕业论文 会计毕业论文
会计专业毕业论文 英语专业毕业论文
大学毕业论文 硕士毕业论文
计算机毕业论文 市场营销毕业论文
物流管理毕业论文 法学毕业论文
相关计算机毕业论文
    无相关信息
最新计算机毕业论文
读者推荐的计算机毕业论文