小型自选商场综合管理系统系统设计之数据库设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
小型自选商场综合管理系统系统设计之数据库设计
1、组织结构 (1)组织结构概况
(2
计;记录进货场商或供应商的信息。
销售组——负责商品的销售,按月统计某个员工的销售业绩,记录员工
的基本信息。
库存组——负责进行日盘存、月盘存能打印库存清单,查询某种商品的
库存情况。
2、业务流程分析
进货管理:商品进货信息包括商品进货数量、单价、供货商等。商品
进货管理功能完成进货信息登记、修改和删除等。分类查看:可以根据商品类型来查看某种商品的进货情况。更新库存:进货信息的变动直接关系到库存的变化。进货分析:列出当日进货量最多的前几项商品和进货量最少的前几项商品。库存分析:列出当前库存量最多的前几项商品和库存量最少的前几项商品。
销售信息管理:商品销售数量、单价、统计日期等。分类查看后:可以根据商品类型来查看某种商品的销售情况。更新库存:销售信息的变动直接关系到库存的变化。销售分析:列出当前销售数量最多的前几项商品和销售量最少的前几项商品。
商品基本信息的维护:商品的查询、添加、删除。查询包括进货查询、销售查询和库存查询。供货商信息管理:包括供货商信息的新建、修改和删除等。
业务流程图
换货
4
重要数据及其简要描述如下表:数据项
名称说明
商品编号唯一标识一种商品,形式如:SP00001
员工编号唯一标识一名员工,形式如:YG00001
客户编号唯一标识一个客户,形式如:KH00001
供应商编号唯一标识一个供应商,形式如:GYS00001
销售票号以此记录以此销售登记,形式如:2012-5-8XS00001
入库票号以此记录以此入库登记,形式如:2012-5-8RK00001
毛利销售某种商品获得的利润
操作员系统登陆者
经手人对某次业务或交易实际上直接操作者
仓库名称唯一标识某个仓库
警戒上限商品数量的最高限
警戒下限商品数量的最低限
品种数销售、入库时交易的商品种数
结算方式进行交易时所采取的结算方式
是否结清记录某笔交易是否结清账款
数据存储
名称说明
商品信息表记录商品的基本信息
员工表记录员工的基本信息
客户表记录客户的基本信息
供应商表记录供应商的基本信息
仓库表记录仓库的基本信息
库存表记录库存信息
销售登记表记录销售时的的商品及数量信息
销售票号表记录销售时的客户、经手人、操作员、日期等信息入库登记表记录入库时的商品及数量信息
入库票号表记录入库时的供应商、经手人、操作员、日期等信息结算方式表用于存储结算方式
下面是收银台有关代码:
Void SRecord:OnSsaveButton()
{
//TODO:Add your control notification hander code here
CSring
SaleID=””,GoodsID=”2”,Price=”2”,Count=”2”,Acount=”2”,StubNumber=””,Da te=””;
CString sql;
Int gcount=0;
Float price=0,account=0;
CDataManage dm;
/**********************************************************/
/*GoodsID*/
m_GoodsID.GetWindowText(GoodsID);
if(GoodsID.GetLength()==0)
{
MessageBox(“请输入数据”,”提示”);
Return;
}
/*SaleID*/
/**********************************************************/
try
{
dm.ConnectDataBase();
Recordl->Open(_variant_t(“Sale”),
_ variant_t((IDispatch *)DataConn,true),adOpenKeyset,
adLockOptimistic,adCmdTable);
}
catch(_com_error& e)
{
MassageBox(e.ErrorMassage(),”提示”);
}
/***********************************************************/
Sql.Format(“select SaleID from Sale”);
try
{
Record->Open( adLockOptimistic,adCmdText);
}
catch(_com_error& e)
{
MassageBox(e.ErrorMassage(),”提示”)
}
If(Recordl->RecordCount>0)
{
Recordl-> MoveLast();
SaleID=(TCHAR*)(_bstr_t)Recordl->GetItem((long)0)->Value;
Int saleid=atoi(SaleID);
saleid+=1;
SaleID.Format(“%d”,saleid);
}
else
{
SaleID=””;
}
/*Price*/
/*******************************************************/ try
{
dm.ConnectDataBase();
Recordl->Open(_variant_t(“Sale”),
_ variant_t((IDispatch *)DataConn,true),adOpenKeyset,
adLockOptimistic,adCmdTable);
}
Catch(_com_error& e)
{
MassageBox(e.ErrorMassage(),”提示”);
}
/*******************************************************/ Sql.Format(“select SaleID from Sale”);
try
{
Record->Open( adLockOptimistic,adCmdText);
}
catch(_com_error& e)
{
MassageBox(e.ErrorMassage(),”提示”)
}
If(Recordl->RecordCount>0)
{
Price==(TCHAR*)(_bstr_t)Recordl->GetItem((long)0)->Value;
price=(float)atof(Price);
}
else
{
MassageBox(“库存中没有此种商品”,”提示”);
return;
}
/*Count*/