仓库管理系统.docx
《仓库管理系统.docx》由会员分享,可在线阅读,更多相关《仓库管理系统.docx(29页珍藏版)》请在冰豆网上搜索。
![仓库管理系统.docx](https://file1.bdocx.com/fileroot1/2023-2/23/9374e540-68da-4abd-8f5b-b42ea22cd72c/9374e540-68da-4abd-8f5b-b42ea22cd72c1.gif)
仓库管理系统
目录
一、系统定义……………………………………………………………1
二、需求分析……………………………………………………………1
三、系统设计……………………………………………………………5
四、详细设计……………………………………………………………8
五、课程设计总结………………………………………………………14
六、参考文献……………………………………………………………14
七、附录…………………………………………………………………15
一、系统定义
仓库管理系统是通过入库业务、出库业务、仓库调拨、库存调拨和虚仓管理等功能,综合批次管理、物料对应、库存盘点、质检管理、虚仓管理和即时库存管理等功能综合运用的管理系统,有效控制并跟踪仓库业务的物流和成本管理全过程,实现完善的企业仓储信息管理。
该系统可以独立执行库存操作,与其他系统的单据和凭证等结合使用,可提供更为完整全面的企业业务流程和财务管理信息。
二、需求分析
因为一个软件系统本质上就是一个信息处理系统,它通过输入的数据信息决定应该执行哪一部操作,而且系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌,对软件设计有深远影响,所以,必须分析系统的数据要求,这是软件需求分析的一个重要任务。
在数据库系统中,系统的数据流图是非常重要的。
在一个企业的内部,各个部门之间的整体合作和数据对象的处理流程都可以通过数据流图表现出来。
本系统的数据流图分为管理员数据流图和一般用户数据流图,这两个数据流图可以清晰的表示出系统内部的数据处理过程。
在一般用户数据流图中,一般用户只具有登录系统进行入库、出库、借出、调库、退库、归还和查询的权限。
为了商业机密着想,不为一般用户设立其他权限。
在管理员数据流图中,管理员登陆系统以后可以对一般用户进行添加或删除操作。
另外,管理员可以进行员工信息修改,管理员还可以对产品字典进行操作,而且,管理员对供货商信息录入、生产厂家信息及客户信息等需要保密的工作也同样有操作权限。
(二)系统逻辑模型
1.数据流图:
2.数据字典
三、系统设计
(一)概念结构设计
(二)逻辑结构设计
供货商信息图表
客户信息图表
盘点信息图表
操作员信息表
出库信息图表
退库信息图表
(三)子模块划分及功能概述
四、详细设计
(一)开发平台及工具
●开发工具MicrosoftVisualC++6.0
●DBMS:
MicrosoftSQLServer2000
(二)存储过程及触发器
GetAllUser函数
GetAllUser函数的主要作用是从czy表中获取所有操作员的用户名。
在该函数的代码中,首先设置TADOQuery组件的Connection属性,连接到数据库jbda然后添加查询操作员名称的SQL语句并执行该语句,最后将所有操作员的用户名称加到Result变量中。
DBConnection函数
DBConnection函数的主要作用是设置与数据库ckgl、jbda对应的数据库连接组件的数据库连接字符串,并激活这些连接。
在该函数的代码中,首先建立与数据库ckgl、jbda对应的数据库连接组件,然后设置这些组件数据库连接字符串,最后激活这些连接。
GetPWDConnect函数
GetPWDConnect函数的主要作用是判断登录用户输入的用户密码是否正确,如果密码正确,则设置与该登录用户对应的用户权限字符串。
在该函数的代码中,首先初始化用户权限字符串,然后设置搜索用户选择的登录用户名称信息资料的SQl语句,接着判断输入的登录用户密码时候正确,如果密码正确,则最后正确设置与该登录用户对应的用户权限字符串。
GetAllRecord函数
GetAllRecord函数的主要作用是在TabName所指的jbda数据库表中获得FieldName所指的字段值列表。
在该函数的代码中,首先设置查询组件的Connection属性,使其连接到数据库jbda,然后设置SQL查询语句并运行,最后将符合条件的记录的FieldName字段值添加到result变量中。
GetChangePwd函数
GetChangePwd函数的主要作用是修改登录用户的用户密码。
在该函数的代码中,首先设置查询组件的属性,使其连接到数据库jbda,然后添加修改密码的SQL语句并执行该语句,最后提交所作的修改。
在执行修改密码的过程中,如果系统出现异常,将设置函数返回值为false,并取消所做的修改。
UpdateKc函数
UpdateKc函数的主要作用是根据货物单价的大小,添加或修改该物品记录中货物类别、货物规格和货物数量等字段的值。
在该函数的代码中,首先设置查询组件的属性,使其连接到数据库ckgl,然后判断该物品的单价是否为0。
如果货物单价为0,则添加在kc表中搜索是否有与此物品具有相同规格、相同类别和相同存储仓库的物品的SQL语句,否则添加在kc表中搜索是否有与此物品具有相同规格、相同类别、相同单价、相同产地和相同存储仓库的物品的SQl语句。
接着执行SQL语句,在接着根据找到符合查询条件的货物记录与否,分别添加新的货物信息或修改货物记录数量字段的值,最后提交所作的添加或修改。
在执行提交所作的添加或修改语句过程中,如果系统出现异常,将设置函数返回值为false。
Sjbf函数
Sjbf函数的主要作用是备份数据库jbda和ckgl。
Sjhf函数
Sjhf函数的主要作用是恢复数据库jbda和ckgl。
在该函数的代码中,首先初始化函数返回值为false,然后断开与数据库jbda、ckgl的连接,最后恢复数据库jbda和ckgl。
UpdateLog函数
UpdateLog函数的主要作用是将用户在仓库管理系统中的操作信息存入操作日志(log)表中。
其中操作信息包括操作人员、操作日期和操作内容。
字符串资源设计
字符串资源中主要包括了系统中经常用到的字符串变量,如数据连接字符串、数据备份或恢复成功后的提示信息字符串、操作出现异常时的提示字符串和输入的用户密码不正确时的提示字符串等等。
程序代码如下:
resourcestring
AppTitle='仓库管理系统';
DBConnectionString='Provider=Microsoft.Jet.OLEDB.4.0;'
+'Password="";DataSource=%s;'
+'PersistSecurityInfo=True';
SaveError='保存数据中发生错误,请重试!
';
FTPFailMsg='FTP站点连接不成功,请稍后重试!
';
AbnormityError='操作中异常出错,请重试!
';
UserNameIsEmptyError='用户名为空,请重输!
';
NotExistsUser='用户名不存在,请重新输入!
';
PassWordError='输入%s密码不正确,请重试!
';
PassWordNotSame='两次密码输入不一致!
';
SendPrompt='确认将报告单报送[%s]吗?
';
GDateFormat='YYYYMMDD';
DateTimeFormat='YYYY-MM-DDHH24:
MI:
SS';
GSptStr='__^#$%@';
NotFound='没有找到符合条件的!
';
NotExistPrt='打印模板文件%s不存在,请检查!
';
NotSaveInf='是否保存对"%s"内容的更改?
';
DBConnectFail='无法与数据库服务器连接,请查看%s!
';
ChnagePwdSuccess='%s的密码修改已经修改,请记住新密码!
';
UserNameIsEmpty='请选取用户再进行%s操作!
';
SelLocation='选取备份数据位置';
SjbfComplete='数据备份完全无损完成!
';
SjhfComplete='数据恢复完全无损恢复!
';
ReLogon='您需要重新登陆系统吗?
';
CloseInf='你真的退出仓库管理系统吗?
';
NoFind='对不起,没有找到相关数据!
';
ErrCondition='请检查您所选取的条件!
';
(四)界面设计
●登陆界面:
●操作员档案管理面:
●基本档案管理界面:
●基本档案管理界面:
●入库管理界面
五、课程设计总结
六、参考文献
1.《VisualC++.net2003程序设计》何炜等冶金工业出版社P247-261
2.《数据库系统概论(第三版)》萨师煊等高等教育出版社
七、附录
部分源代码
//MachinegeneratedIDispatchwrapperclass(es)createdbyMicrosoftVisualC++
//NOTE:
Donotmodifythecontentsofthisfile.Ifthisclassisregeneratedby
//MicrosoftVisualC++,yourmodificationswillbeoverwritten.
#include"stdafx.h"
#include"datalist.h"
//Dispatchinterfacesreferencedbythisinterface
#include"picture.h"
#include"font.h"
/////////////////////////////////////////////////////////////////////////////
//CDataList
IMPLEMENT_DYNCREATE(CDataList,CWnd)
/////////////////////////////////////////////////////////////////////////////
//CDataListproperties
/////////////////////////////////////////////////////////////////////////////
//CDataListoperations
BOOLCDataList:
:
GetLocked()
{
BOOLresult;
InvokeHelper(0x1,DISPATCH_PROPERTYGET,VT_BOOL,(void*)&result,NULL);
returnresult;
}
voidCDataList:
:
SetLocked(BOOLbNewValue)
{
staticBYTEparms[]=
VTS_BOOL;
InvokeHelper(0x1,DISPATCH_PROPERTYPUT,VT_EMPTY,NULL,parms,
bNewValue);
}
CStringCDataList:
:
GetBoundText()
{
CStringresult;
InvokeHelper(0x2,DISPATCH_PROPERTYGET,VT_BSTR,(void*)&result,NULL);
returnresult;
}
voidCDataList:
:
SetBoundText(LPCTSTRlpszNewValue)
{
staticBYTEparms[]=
VTS_BSTR;
InvokeHelper(0x2,DISPATCH_PROPERTYPUT,VT_EMPTY,NULL,parms,
lpszNewValue);
}
CStringCDataList:
:
GetBoundColumn()
{
CStringresult;
InvokeHelper(0x4,DISPATCH_PROPERTYGET,VT_BSTR,(void*)&result,NULL);
returnresult;
}
voidCDataList:
:
SetBoundColumn(LPCTSTRlpszNewValue)
{
staticBYTEparms[]=
VTS_BSTR;
InvokeHelper(0x4,DISPATCH_PROPERTYPUT,VT_EMPTY,NULL,parms,
lpszNewValue);
}
longCDataList:
:
GetMousePointer()
{
longresult;
InvokeHelper(0xfffffdf7,DISPATCH_PROPERTYGET,VT_I4,(void*)&result,NULL);
returnresult;
}
voidCDataList:
:
SetMousePointer(longnNewValue)
{
staticBYTEparms[]=
VTS_I4;
InvokeHelper(0xfffffdf7,DISPATCH_PROPERTYPUT,VT_EMPTY,NULL,parms,
nNewValue);
}
CPictureCDataList:
:
GetMouseIcon()
{
LPDISPATCHpDispatch;
InvokeHelper(0x6,DISPATCH_PROPERTYGET,VT_DISPATCH,(void*)&pDispatch,NULL);
returnCPicture(pDispatch);
}
voidCDataList:
:
SetMouseIcon(LPDISPATCHnewValue)
{
staticBYTEparms[]=
VTS_DISPATCH;
InvokeHelper(0x6,DISPATCH_PROPERTYPUT,VT_EMPTY,NULL,parms,
newValue);
}
voidCDataList:
:
SetRefMouseIcon(LPDISPATCHnewValue)
{
staticBYTEparms[]=
VTS_DISPATCH;
InvokeHelper(0x6,DISPATCH_PROPERTYPUTREF,VT_EMPTY,NULL,parms,
newValue);
}
BOOLCDataList:
:
GetIntegralHeight()
{
BOOLresult;
InvokeHelper(0x7,DISPATCH_PROPERTYGET,VT_BOOL,(void*)&result,NULL);
returnresult;
}
voidCDataList:
:
SetIntegralHeight(BOOLbNewValue)
{
staticBYTEparms[]=
VTS_BOOL;
InvokeHelper(0x7,DISPATCH_PROPERTYPUT,VT_EMPTY,NULL,parms,
bNewValue);
}
longCDataList:
:
GetMatchEntry()
{
longresult;
InvokeHelper(0x8,DISPATCH_PROPERTYGET,VT_I4,(void*)&result,NULL);
returnresult;
}
voidCDataList:
:
SetMatchEntry(longnNewValue)
{
staticBYTEparms[]=
VTS_I4;
InvokeHelper(0x8,DISPATCH_PROPERTYPUT,VT_EMPTY,NULL,parms,
nNewValue);
}
VARIANTCDataList:
:
GetSelectedItem()
{
VARIANTresult;
InvokeHelper(0x9,DISPATCH_PROPERTYGET,VT_VARIANT,(void*)&result,NULL);
returnresult;
}
shortCDataList:
:
GetVisibleCount()
{
shortresult;
InvokeHelper(0xa,DISPATCH_PROPERTYGET,VT_I2,(void*)&result,NULL);
returnresult;
}
CStringCDataList:
:
GetText()
{
CStringresult;
InvokeHelper(0xb,DISPATCH_PROPERTYGET,VT_BSTR,(void*)&result,NULL);
returnresult;
}
voidCDataList:
:
SetText(LPCTSTRlpszNewValue)
{
staticBYTEparms[]=
VTS_BSTR;
InvokeHelper(0xb,DISPATCH_PROPERTYPUT,VT_EMPTY,NULL,parms,
lpszNewValue);
}
CStringCDataList:
:
GetListField()
{
CStringresult;
InvokeHelper(0xc,DISPATCH_PROPERTYGET,VT_BSTR,(void*)&result,NULL);
returnresult;
}
voidCDataList:
:
SetListField(LPCTSTRlpszNewValue)
{
staticBYTEparms[]=
VTS_BSTR;
InvokeHelper(0xc,DISPATCH_PROPERTYPUT,VT_EMPTY,NULL,parms,
lpszNewValue);
}
COleFontCDataList:
:
GetFont()
{
LPDISPATCHpDispatch;
InvokeHelper(DISPID_FONT,DISPATCH_PROPERTYGET,VT_DISPATCH,(void*)&pDispatch,NULL);
returnCOleFont(pDispatch);
}
voidCDataList:
:
SetRefFont(LPDISPATCHnewValue)
{
staticBYTEparms[]=
VTS_DISPATCH;
InvokeHelper(DISPID_FONT,DISPATCH_PROPERTYPUTREF,VT_EMPTY,NULL,parms,
newValue);
}
BOOLCDataList:
:
GetEnabled()
{
BOOLresult;
InvokeHelper(DISPID_ENABLED,DISPATCH_PROPERTYGET,VT_BOOL,(void*)&result,NULL);
returnresult;
}
voidCDataList:
:
SetEnabled(BOOLbNewValue)
{
staticBYTEparms[]=
VTS_BOOL;
InvokeHelper(DISPID_ENABLED,DISPATCH_PROPERTYPUT,VT_EMPTY,NULL,parms,
bNewValue);
}
unsignedlongCDataList:
:
GetBackColor()
{
unsignedlongresult;
InvokeHelper(DISPID_BACKCOLOR,DISPATCH_PROPERTYGET,VT_I4,(void*)&result,NULL);
returnresult;
}
voidCDataList:
:
SetBackColor(unsignedlongnewValue)
{
staticBYTEparms[]=
VTS_I4;
InvokeHelper(DISPID_BACKCOLOR,DISPATCH_PROPERTYPUT,VT_EMPTY,NULL,parms,
newValue);
}
unsignedlongCDataList:
:
GetForeColor()
{
unsignedlongresult;
InvokeHelper(DISPID_FORECOLOR,DISPATCH_PROPERTYGET,VT_I4,(void*)&result,NULL);
returnresult;
}
voidCDataList:
:
SetForeColor(unsignedlongnewValue)
{
staticBYTEparms[]=
VTS_I4;
InvokeHelper(DISPID_FORECOLOR,DISPATCH_PROPERTYPUT,VT_EMPTY,NULL,parms,
newValue);
}
BOOLCDataList:
:
GetMatchedWithList()
{
BOOLresult;
InvokeHelper(0xf,DISPATCH_PROPERTYGET,VT_BOOL,(void*)&result,NULL);
returnresult;
}
longCDataList:
:
GetAppearance()
{
longresult;
InvokeHelper(0x10,DISPATCH_PROPERTYGET,VT_I4,(void*)&result,NULL);
returnresult;
}
voidCDataList:
:
SetAppearance(longnNewValue)
{
staticBYTEparms[]=
VTS_I4;
InvokeHelper(0x10,DISPATCH_PROPERTYPUT,VT_EMPTY,NULL,parms,
nNewValue);
}
BOOLCDataList:
:
GetRightToLeft()
{
BOOLresult;
InvokeHelper(0xfffffd9d,DISPATCH_PROPERTYGET,VT_BOOL,(void*)&result,NULL);
returnresult;
}
voidC