小型自选商场综合管理系统系统设计之数据库设计.docx

上传人:wj 文档编号:1315095 上传时间:2023-04-30 格式:DOCX 页数:12 大小:34.05KB
下载 相关 举报
小型自选商场综合管理系统系统设计之数据库设计.docx_第1页
第1页 / 共12页
小型自选商场综合管理系统系统设计之数据库设计.docx_第2页
第2页 / 共12页
小型自选商场综合管理系统系统设计之数据库设计.docx_第3页
第3页 / 共12页
小型自选商场综合管理系统系统设计之数据库设计.docx_第4页
第4页 / 共12页
小型自选商场综合管理系统系统设计之数据库设计.docx_第5页
第5页 / 共12页
小型自选商场综合管理系统系统设计之数据库设计.docx_第6页
第6页 / 共12页
小型自选商场综合管理系统系统设计之数据库设计.docx_第7页
第7页 / 共12页
小型自选商场综合管理系统系统设计之数据库设计.docx_第8页
第8页 / 共12页
小型自选商场综合管理系统系统设计之数据库设计.docx_第9页
第9页 / 共12页
小型自选商场综合管理系统系统设计之数据库设计.docx_第10页
第10页 / 共12页
小型自选商场综合管理系统系统设计之数据库设计.docx_第11页
第11页 / 共12页
小型自选商场综合管理系统系统设计之数据库设计.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

小型自选商场综合管理系统系统设计之数据库设计.docx

《小型自选商场综合管理系统系统设计之数据库设计.docx》由会员分享,可在线阅读,更多相关《小型自选商场综合管理系统系统设计之数据库设计.docx(12页珍藏版)》请在冰点文库上搜索。

小型自选商场综合管理系统系统设计之数据库设计.docx

小型自选商场综合管理系统系统设计之数据库设计

1、组织结构

(1)组织结构概况

该商场的组织结构如图所示。

主管

库存部

销售部

采购部

仓库

收银台

供应商

(2)管理职能分析

主管——全面负责本店的行政与业务管理。

采购组——负责每一笔进货,查询商品的进货记录,并能按月进行统计;记录进货场商或供应商的信息。

销售组——负责商品的销售,按月统计某个员工的销售业绩,记录员工的基本信息。

库存组——负责进行日盘存、月盘存能打印库存清单,查询某种商品的库存情况。

2、业务流程分析

进货管理:

商品进货信息包括商品进货数量、单价、供货商等。

商品进货管理功能完成进货信息登记、修改和删除等。

分类查看:

可以根据商品类型来查看某种商品的进货情况。

更新库存:

进货信息的变动直接关系到库存的变化。

进货分析:

列出当日进货量最多的前几项商品和进货量最少的前几项商品。

库存分析:

列出当前库存量最多的前几项商品和库存量最少的前几项商品。

销售信息管理:

商品销售数量、单价、统计日期等。

分类查看后:

可以根据商品类型来查看某种商品的销售情况。

更新库存:

销售信息的变动直接关系到库存的变化。

销售分析:

列出当前销售数量最多的前几项商品和销售量最少的前几项商品。

商品基本信息的维护:

商品的查询、添加、删除。

查询包括进货查询、销售查询和库存查询。

供货商信息管理:

包括供货商信息的新建、修改和删除等。

缺货通知

缺货通知

仓库

更新仓库信息

货物上架

查看库存信息

更新仓库信息

入库单

货物编号

进货员

退货单

订货单

发货单

供应商

业务流程图

换货

正常

更新

超市结算中心

顾客

查看商品数量

购买商品

商品存量

开缺货单

更新

缺货

更新

商品销售信息

3、数据流程分析

(1)信息要求

库存

商品ID

名称

型号规格

产地

单位

定价

折扣率

库存数量

最低数量

供应商ID

Varchar

Varchar

Varchar

Varchar

Varchar

Float

Float

Int

Int

Varchar

售货

售货ID

商品ID

售价

数量

金额

存根号

销售日期

Varchar

Varchar

Float

Int

Float

Varchar

Varchar

进货

进货ID

商品ID

进价

数量

金额

进货日期

Varchar

Varchar

Float

Int

Float

Varchar

供应商

供应商ID

供应商名称

邮编

地址

电话

联系人

联系人电话

Varchar

Varchar

Varchar

Varchar

Varchar

Varchar

Varchar

日盘存

商品ID

售价

数量

金额

销售日期

Varchar

Float

Int

Float

Varchar

月盘存

商品ID

售价

数量

金额

Varchar

Float

Int

Float

(2)数据流程图

供应商

供应

供应量

进货

存入量

存入

库存

销售

数量

售货

盘存

盘存

月盘存

日盘存

数据流程图

4、数据字典

重要数据及其简要描述如下表:

数据项

名称说明

商品编号唯一标识一种商品,形式如:

SP00001

员工编号唯一标识一名员工,形式如:

YG00001

客户编号唯一标识一个客户,形式如:

KH00001

供应商编号唯一标识一个供应商,形式如:

GYS00001

销售票号以此记录以此销售登记,形式如:

2012-5-8XS00001

入库票号以此记录以此入库登记,形式如:

2012-5-8RK00001

毛利销售某种商品获得的利润

操作员系统登陆者

经手人对某次业务或交易实际上直接操作者

仓库名称唯一标识某个仓库

警戒上限商品数量的最高限

警戒下限商品数量的最低限

品种数销售、入库时交易的商品种数

结算方式进行交易时所采取的结算方式

是否结清记录某笔交易是否结清账款

数据存储

名称说明

商品信息表记录商品的基本信息

员工表记录员工的基本信息

客户表记录客户的基本信息

供应商表记录供应商的基本信息

仓库表记录仓库的基本信息

库存表记录库存信息

销售登记表记录销售时的的商品及数量信息

销售票号表记录销售时的客户、经手人、操作员、日期等信息

入库登记表记录入库时的商品及数量信息

入库票号表记录入库时的供应商、经手人、操作员、日期等信息

结算方式表用于存储结算方式

下面是收银台有关代码:

VoidSRecord:

OnSsaveButton()

{

//TODO:

Addyourcontrolnotificationhandercodehere

CSring

SaleID=””,GoodsID=”2”,Price=”2”,Count=”2”,Acount=”2”,StubNumber=””,Date=””;

CStringsql;

Intgcount=0;

Floatprice=0,account=0;

CDataManagedm;

/**********************************************************/

/*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(“selectSaleIDfromSale”);

try

{

Record->Open((_variant_t)sql.DataConn.GetInterPtr(),adOpenKeyset,adLockOptimistic,adCmdText);

}

catch(_com_error&e)

{

MassageBox(e.ErrorMassage(),”提示”)

}

If(Recordl->RecordCount>0)

{

Recordl->MoveLast();

SaleID=(TCHAR*)(_bstr_t)Recordl->GetItem((long)0)->Value;

Intsaleid=atoi(SaleID);

saleid+=1;

SaleID.Format(“%d”,saleid);

}

else

{

SaleID=”20120001”;

}

/*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(“selectSaleIDfromSale”);

try

{

Record->Open((_variant_t)sql.DataConn.GetInterPtr(),adOpenKeyset,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*/

m_Count.GetWindowText(Count);

gcount=atoi(Count)

/*Acount*/

account=gcount*price;

pay+=acount;

/*StubNumber=SaleID*/

/*Date*/

intyear,month,day;

CStringdate;

CTimet=CTime:

:

GetCurrentTime();

year=t.GetYear;

month=t.GetMonth();

day=t.GetDay();

Date.Format(“%d%d%d”,year,month,day);

/*************************************************************/

Acount.Format(“%f”,acount);

m_SRList.InsetItem(100,””);

m_SRList.InsetItemText(row,0,GoodsID);

m_SRList.InsetItemText(row,1,Count);

m_SRList.InsetItemText(row,2,Acount);

row++;

/***********************销售记录插入*************************/

sql.Format(“insertintoSalevalues(“%s%s%f%d%f%s%s”)”,SaleID,GoodsID,price,gcount,account,SturbNumber,Date;)

/************************************************************/

try

{

dm.ConnectDataBase();

Record->Open(_variant_t(“Sale”),_variant_t((IDispatch*)DataConn,true),adOpenKeyset,adLockOptimistic,adCmdTable);

}

catch(_com_error&e)

{

this->MessageBox(e.ErrorMessage(),”出错提示”);

}

/***********************日盘存记录修改***********************/

CStringtemp1=””,temp2=””;

Recordl->raw_Close();

sql.Format(“select*fromDayStoragewhereGoodsID=%s”,GoodsID);

Recordl->Open((_variant_t)sql,DataConn.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);

if(Recordl->RecordCount>0)

{

temp1=(TCHAR*)(_dstr_t)Recordl->GetFields()->GetItem((long)2)->Value;

temp2=(TCHAR*)(_dstr_t)Recordl->GetFields()->GetItem((long)2)->Value;

intaddcount=atoi(temp1);

floataddacount=(float)atof(temp2);

addcount+=gcount;

addacount+=account;

sql.Format(“updateDayStoragesetGoodsCount=%d,GoodsAcount=%fwhereGoodsID=%s”,addcount,addacount,GoodsID);

try

{

dm.ExecSQL(sql);

}

catch(_com_error&e)

{

this->MessageBox(e.ErrorMessage(),”出错提示”);

}

}

else

{

sql.Foemat(“insetintoDayStoragevalues(%s,%f,%d,%f,%s)”,GoodsID,price,gcount,acount,Date);

try

{

dm.ExecSQL(sql);

}

catch(_com_error&e)

{

this->MessageBox(e.ErrorMessage(),”出错提示”);

}

}

/*********************月盘存记录修改***************************/

Recordl->raw_Close();

sql.Format(“select*fromMonthStoragewhereGoodsID=%s”,GoodsID);

Recordl->Open((_variant_t)sql,DataConn.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);

if(Recordl->RecordCount>0)

{

temp1=(TCHAR*)(_bstr_t)Recordl->GetFields()->GetItem((long)2)->Value;

temp2=(TCHAR*)(_bstr_t)Recordl->GetFields()->GetItem((long)3)->Value;

intaddcount=atoi(temp1);

floataddacount=(float)atof(temp2);

addcount+=gcount;

addacount+=account;

sql.Format(“updateMonthStoragesetGoodsCount=%d,GoodsAcount=%fwhereGoodsID=%s”,addcount,addacount,GoodsID);

try

{

dm.ExecSQL(sql);

}

catch(_com_error&e)

{

this->MessageBox(e.ErrorMessage(),”出错提示”);

}

}

else

{

sql.Foemat(“insetintoMonthStoragevalues(%s,%f,%d,%f,%s)”,GoodsID,price,gcount,acount,Date);

try

{

dm.ExecSQL(sql);

}

catch(_com_error&e)

{

this->MessageBox(e.ErrorMessage(),”出错提示”);

}

}

/******************库存修改************************************/

CStringtemp=“”;

Recordl->raw_Close();

sql.Format(“selectCountfromStoragewhereGoodsID=%s”,GoodsID);

Recordl->Open((_variant_t)sql,DataConn.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);

temp=(TCHAR*)(_bstr_t)Recordl->GetFields()->GetItem((long)0)->Value;

if(temp.GetLength()>0)

{

Recordl->raw_Close();

inttCount=atoi(temp);

tCount-=gcount;

sql.Format(“updateStoragesetStroageCount=%dwhereGoodsID=%s”,tCount,GoodID);

try

{

dm.ExecSQL(sql);

}

catch(_com_error&e)

{

this->MessageBox(e.ErrorMessage(),”出错提示”);

}

}

/*********************************************************/

m_GoodsID.SetWindowText(“”);

m_Count.SetWindowText(“”);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2