APP下载

超市POS销售系统的设计与开发

2014-07-28黄茜

电脑知识与技术 2014年18期
关键词:数据库

黄茜

摘要:随着计算机和网络技术的迅速发展,管理信息系统在连锁超市的销售管理中得到了广泛的应用。POS系统作为信息管理系统的重要组成部分,主要功能是完成商品销售,并记录销售信息。该文以某超市为应用背景,利用C++Builder 6.0和SQL Server 2000设计和开发了基于Windows 2000平台的POS销售系统,并在某连锁超市进行了试验,运行结果良好、速度快,完全满足用户要求。

关键词:POS;数据库;ADO;无盘工作站

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)18-4158-03

Design and Development of POS Sale System in Supermarket

HUANG Qian

(Xuzhou Economic and Trade Branch of Jiangsu Union Techical Institute,Xuzhou 221004,China)

Abstract:With the rapid development of computer and network technology, Management Information System(MIS) has been widely used in the sell management of supermarket. POS is an important part of MIS.It mostly completes commodity sell and records sell information. For the supermarket, based on Windows 2000 is designed and developed by C++ Builder 6.0 and SQL Server 2000 in the paper, and the POS sale system was tested in the supermarket. It has been shown that its running speed is very fast, its effect is good and it can satisfied users need completely.

Key words:POS;database;ADO;diskless workstation

1 概述

随着商业、零售业,特别是连锁超市的迅猛发展,管理信息系统(MIS)在商业的销售管理中起着越来越重要的作用。POS系统即电子收款机系统(Point Of Sells),是MIS的重要组成部分。它的主要功能就是完成商品销售,并全面地记录销售信息,为管理人员提供营销数据,是各种分析、统计和进行决策的基础和依据。结合某超市的实际情况,采用前台POS机+后台服务器的工作模式,设计和开发了基于Windows 2000的POS销售系统[1]。

2 POS系统总体架构

本文开发的POS销售管理系统由前台POS机和后台服务器两大部分组成。服务器由高性能的PC机完成全部管理功能,而前台各个POS机只完成商品销售所必须的输入输出功能,不再配备硬盘和操作系统,采用无盘工作站模式工作。各POS机和后台PC机通过局域网进行数据交换,并将处理结果送到相应的POS机显示和打印。POS系统总体架构如图1所示。

图1 POS系统总体架构图

前台POS机(包括钱箱)连接着票据打印机、条形码扫描仪和客显(客户价格显示器)。后台PC机连接着条形码打印机、普通打印机和盘点机[1]。

3 POS系统后台数据库设计

POS系统的后台数据库用来存储该系统的所有数据信息,包括商品资料、人员资料、销售资料等,是销售系统至关重要的组成部分。该文利用SQL Server 2000设计了POS系统的数据库CSDATA,系统采用Windows NT与SQL Server认证用户身份,加强了数据库的安全性。本数据库主要包括以下一些核心数据库表。

1)用户信息表(CS_TBL_USERINFO):包含用户编号、用户姓名、用户密码、用户级别(包括出纳、出纳组长、系统维护员和门店经理)、用户状态(包括销售、退货和已交班)、交易状态(销售、退货和出纳结帐)、交易日期等字段。

2)门店人员信息表(CS_TBL_SHPPERSONINF):包含用户编号、用户姓名、POS机编号、用户级别、正确的交易状态等字段。

3)商品基本资料表(CS_TBL_GOODSINFO):包含商品条码、商品店内码、商品简称、商品规格、商品名称等字段。

4)商品定价表(CS_TBL_STOREDIFFPRIC):包含差价类别、商品店内码、指导价等字段。

5)门店信息表(CS_TBL_DEPARTINFO):包含门店编号、门店名称、差价类别等字段。

6)POS机信息表(CS_TBL_POSINF):包含门店编号、POS机编号、钱箱金额、最近使用出纳编号、 当前状态、POS机网卡地址等字段。

7)销售流水主表(CS_TBL_SALDETAIL_MN):包含销售流水、出纳编号、商品数量、合计金额、支付金额、销售/退货、找零金额等字段。

8)销售流水从表(CS_TBL_SALDETAIL_SUB):包含销售流水、序号、店内码、商品条码、商品数量、商品单价、商品小计等字段。

9)登陆流水信息表(CS_TBL_LOGON):包含出纳编号、操作类型、门店编号、POS机号等字段。

10)商品库存信息表(CS_TBL_SHPSTOK_SUM):包含门店编号、店内码、商品数量等字段。endprint

11)POS机维护信息表(CS_TBL_POSINF):包含门店代号、POS机号、 当前状态、POS机网卡地址等字段。

4 POS系统的功能设计

POS系统功能模块的设计是系统的总体框架,是程序设计的指南。根据系统的用户需求,在保证系统安全性的前提下,我们将POS系统划分为以下八个功能模块:权限认证、出纳销售、出纳结账、商品退货、POS机维护、打印机设置、POS系统设置和商品热键设置。如图2所示。下面就各个模块的具体功能做详细的阐述。

图2 POS销售系统流程图

1)权限认证:出于安全性考虑,POS系统必须实行严格的权限管理,各种类型的用户只有验证身份后,才能使用各自权限范围以内的功能模块,并且对每一次的POS机使用人、使用时间、权限级别和放入备用金额量等都会保存到数据库中。

2)出纳销售:这是整个POS系统中最核心的部分,主要用来完成商品的销售。它详细地显示了顾客的购物清单、总计金额、实收金额、找零以及结帐的方式等主要信息,还包括当前出纳编号、当前日期、POS机编号和当前门店编号等辅助信息。

3)出纳结账:当换班或营业结束时,对本台POS机或当前出纳的销售情况进行简单查询、详细查询、结算并打印出销售清单。

4)商品退货:当顾客对所购商品要求退货时,出纳组长进入商品退货界面,输入顾客购物小票上的销售流水号,将显示出该流水号下所有商品的详细信息,然后就可以对所要求退货的商品进行退货了。

5)POS机维护:此模块完成系统中添加、修改、删除POS机的编号、MAC地址以及POS机的状态等。

6)打印机设置:用来设置销售小票的票头(连锁超市的名称)和票尾(顾客的注意事项、超市的店址、电话等信息)。

7)POS系统设置:对POS销售系统的一些设置,包括POS机基本键盘的设置、电子显示牌端口、打印方式(销售打印或结算打印)和POS编号的设置。

8)商品热键设置:对某些热销商品,可以在POS机的键盘上设置热键,销售时不用输入条码而直接按此热键就能输入该商品,这样可以提高销售速度。在这个界面里,可以完成商品热键的添加、删除、清空和查询等操作。

5 POS系统开发中的关键技术

5.1 无盘工作站

在计算机网络中,由于无盘工作站具有网络系统安全性高、对网络资源有较大的控制权、易于维护、可对工作站所用的软件同时升级、减少开支等特点,无盘工作站在局域网中得到了广泛的应用。基于上述优点以及POS机的特点,该文所开发的POS销售系统采用无盘工作站模式工作,POS机利用网卡上的远程启动芯片RPL ROM引导后台服务器上的操作系统,从而启动服务器上的POS应用软件来工作[2]。

5.2 ADO的使用

ADO(Microsoft ActiveX Data Objects)是一个数据对象的集合,是C++Builder和SQL server相关联数据库系统中一种数据访问接口,它为应用程序提供了通过OLE DB提供者存取数据的能力,其模型如图3所示。C+Builder ADOExpress组件封装了这些A D O对象的功能,并在C + + Builder中以面向对象的形式实现其功能。在本系统的开发中,利用以下三个组件来实现应用程序和SQL Server 数据库直接的连接及数据交换[2]:

TADOConnection:用于与ADO数据库建立连接;多个ADO数据集和命令组件能够共享这个连接来执行命令,获取数据以及对数据进行操作。

将ADOConnection的ConnectionString属性设置为:

Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;

User ID=sa;Initial Catalog=CSData;Data Source=SBSERVER。

TADOQuery:用于获取和操作由一条有效的SQL语句产生的数据集,可以直接或通过TADOConnection 组件连接到数据库。 将ADOQuery的Connection属性设置为:ADOConnection。

TDataSource:用来描述数据源。数据控制控件必须和TdataSource控件相联系才能从数据库中取得数据。将DataSource的DataSet属性设置为:ADOQuery。

图3 ADO模型

5.3 程序设计中的面向对象技术

由于面向对象技术集抽象性、封装性、继承性和多态性于一体,易于实现模块化、可复用、易维护、易扩充。类是面向对象程序设计中最重要的概念之一,它将相关的数据和函数封装起来形成一个整体,相当于一个数据结构。因此,在POS销售系统的开发过程中,针对此类软件的特点,从最基本的外围类、实体类和控制基类开始,编写了POS系统类库,为POS系统的开发奠定了基础,并为以后的软件维护和功能扩展以及其它类似软件的开发提供了丰富的资源。POS系统类库中类的继承关系如图4所示。

图4 POS系统开发中类的继承关系

1)外围类:主要完成电子显示屏的数据显示、打印机打印、弹开钱箱、打印机走纸和切纸等功能,具体函数如下:

bool __fastcall Show(AnsiString Content,AnsiString Com); //显示

bool __fastcall Print(String Content,int x,int y,String FontName,int FontSize); //打印

bool __fastcall FlickCashBox(); //弹开钱箱endprint

bool __fastcall GoPaper(); //走纸

bool __fastcall CutPaper(); //切纸

2)实体类:创建一个数据模型窗口,用来放置ADO组件,完成数据库连接和数据交换任务。

3)控制基类:完成数据库开发程序常用的操作,主要包括日期操作、提示对话框、字符串操作、人民币数字转换汉字、数据库操作等函数。

4)数据控制类:继承控制基类,主要对数据库操作,包括数据集操作函数、查询语句函数等。

5)POS系统基类:主要完成POS系统的基本操作,具体函数如下:

bool__fastcall AddSellGlideMN(String SellGlide,String Code,int GoodsNum,float TotalMoney,float PaymentMoney,int Status,float SpareMoney);//添加销售流水(主表)

bool__fastcall AddSellGlideSUB(String SellGlide,int OrderNum,String InsideCode,String BarCode,int Num,float Price,float SubTotal);//添加销售流水(从表)

bool__fastcall ChaStockNum(String ShopCode,String InsideCode,int GoodsNum,bool Status);//修改库存数量

bool__fastcall ChaStatus(String ShopCode,String Code,int CodeStatus);//修改出纳状态

bool__fastcall SetLogInfo(String Code,int Operator,String ShopCode,String POSCode);//添加操作流水

bool__fastcall ChaPosStatus(String ShopCode,String POSCode,int Status);//修改POS当前状态

float__fastcall CashBoxQuery(String ShopCode,String POSCode);//查询钱箱金额

6 结束语

本文结合某连锁超市的具体实际,以前台POS机+后台服务器模式开发了工作于无盘工作站下的POS销售系统,并在超市门店进行了试验,运行结果良好,完全满足客户要求。另外,在系统的开发中,完全采用面向对象技术,软件具有良好的开放性,易于日后功能扩展。

参考文献:

[1] 黄文钰.Delphi构建进销存系统—POS系统开发实例[M].北京:清华大学出版社,2002.

[2] 余席忠.无盘工作站组建及应用[M].北京:人民邮电出版社,2001.endprint

bool __fastcall GoPaper(); //走纸

bool __fastcall CutPaper(); //切纸

2)实体类:创建一个数据模型窗口,用来放置ADO组件,完成数据库连接和数据交换任务。

3)控制基类:完成数据库开发程序常用的操作,主要包括日期操作、提示对话框、字符串操作、人民币数字转换汉字、数据库操作等函数。

4)数据控制类:继承控制基类,主要对数据库操作,包括数据集操作函数、查询语句函数等。

5)POS系统基类:主要完成POS系统的基本操作,具体函数如下:

bool__fastcall AddSellGlideMN(String SellGlide,String Code,int GoodsNum,float TotalMoney,float PaymentMoney,int Status,float SpareMoney);//添加销售流水(主表)

bool__fastcall AddSellGlideSUB(String SellGlide,int OrderNum,String InsideCode,String BarCode,int Num,float Price,float SubTotal);//添加销售流水(从表)

bool__fastcall ChaStockNum(String ShopCode,String InsideCode,int GoodsNum,bool Status);//修改库存数量

bool__fastcall ChaStatus(String ShopCode,String Code,int CodeStatus);//修改出纳状态

bool__fastcall SetLogInfo(String Code,int Operator,String ShopCode,String POSCode);//添加操作流水

bool__fastcall ChaPosStatus(String ShopCode,String POSCode,int Status);//修改POS当前状态

float__fastcall CashBoxQuery(String ShopCode,String POSCode);//查询钱箱金额

6 结束语

本文结合某连锁超市的具体实际,以前台POS机+后台服务器模式开发了工作于无盘工作站下的POS销售系统,并在超市门店进行了试验,运行结果良好,完全满足客户要求。另外,在系统的开发中,完全采用面向对象技术,软件具有良好的开放性,易于日后功能扩展。

参考文献:

[1] 黄文钰.Delphi构建进销存系统—POS系统开发实例[M].北京:清华大学出版社,2002.

[2] 余席忠.无盘工作站组建及应用[M].北京:人民邮电出版社,2001.endprint

bool __fastcall GoPaper(); //走纸

bool __fastcall CutPaper(); //切纸

2)实体类:创建一个数据模型窗口,用来放置ADO组件,完成数据库连接和数据交换任务。

3)控制基类:完成数据库开发程序常用的操作,主要包括日期操作、提示对话框、字符串操作、人民币数字转换汉字、数据库操作等函数。

4)数据控制类:继承控制基类,主要对数据库操作,包括数据集操作函数、查询语句函数等。

5)POS系统基类:主要完成POS系统的基本操作,具体函数如下:

bool__fastcall AddSellGlideMN(String SellGlide,String Code,int GoodsNum,float TotalMoney,float PaymentMoney,int Status,float SpareMoney);//添加销售流水(主表)

bool__fastcall AddSellGlideSUB(String SellGlide,int OrderNum,String InsideCode,String BarCode,int Num,float Price,float SubTotal);//添加销售流水(从表)

bool__fastcall ChaStockNum(String ShopCode,String InsideCode,int GoodsNum,bool Status);//修改库存数量

bool__fastcall ChaStatus(String ShopCode,String Code,int CodeStatus);//修改出纳状态

bool__fastcall SetLogInfo(String Code,int Operator,String ShopCode,String POSCode);//添加操作流水

bool__fastcall ChaPosStatus(String ShopCode,String POSCode,int Status);//修改POS当前状态

float__fastcall CashBoxQuery(String ShopCode,String POSCode);//查询钱箱金额

6 结束语

本文结合某连锁超市的具体实际,以前台POS机+后台服务器模式开发了工作于无盘工作站下的POS销售系统,并在超市门店进行了试验,运行结果良好,完全满足客户要求。另外,在系统的开发中,完全采用面向对象技术,软件具有良好的开放性,易于日后功能扩展。

参考文献:

[1] 黄文钰.Delphi构建进销存系统—POS系统开发实例[M].北京:清华大学出版社,2002.

[2] 余席忠.无盘工作站组建及应用[M].北京:人民邮电出版社,2001.endprint

猜你喜欢

数据库
超星数据库录入证
本刊加入数据库的声明
两种新的非确定数据库上的Top-K查询
国外数据库高被引论文排行TOP10
国内主要期刊数据库