企业设备管理系统.docx

上传人:b****5 文档编号:7203231 上传时间:2023-01-21 格式:DOCX 页数:16 大小:81.59KB
下载 相关 举报
企业设备管理系统.docx_第1页
第1页 / 共16页
企业设备管理系统.docx_第2页
第2页 / 共16页
企业设备管理系统.docx_第3页
第3页 / 共16页
企业设备管理系统.docx_第4页
第4页 / 共16页
企业设备管理系统.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

企业设备管理系统.docx

《企业设备管理系统.docx》由会员分享,可在线阅读,更多相关《企业设备管理系统.docx(16页珍藏版)》请在冰豆网上搜索。

企业设备管理系统.docx

企业设备管理系统

第4章企业设备治理系统

公司经常需要采购一些设备,用以满足公司正常运营的需要,采购返来的设备不能堆

放在库房里就不管了,谁想用的时候就去拿,谁想换的时候就去换。

这样,公司的设备恐

怕会越来越少,公司正常的运营就会受到影响。

因此,需要对公司的设备进行库存治理,

包管设备借出和送另有序,还要能查到设备的借出情况。

企业设备治理系统正好能满足这

个需求,它提供了对设备库存、设备借出、设备送还和设备统计信息的治理。

4.1系统设计

系统设计是系统开发最为要害的一环,良好的系统设计需要掌握系统的需求,并公道

地分别功效模块。

企业设备治理系统的系统设计还需要掌握一个要害点,就是明确设备的

惟一性,尽管设备可能一模一样,但是也应该区别开来,因为我们的借出、送还以及借出

历史的统计都是要具体到某一个设备的,需要对每一个设备赋予差别的设备编号,通常会

制作标签贴在设备上,这恐怕是库房治理员常做的事情,设备编号的方法可以凭据公司具

体决定。

功效描述

企业设备治理系统包罗设备库存治理、设备借出送还治理和设备统计信息治理,详细

的功效描述如下。

1.设备库存治理

设备库存治理包罗新设备入库、修改设备信息和陈旧设备的库存清理。

新设备入库是

对新采购的设备进行入库的操纵。

修改设备信息是对入库设备的名称、购置人、入库时间、

设备说明等信息的修改。

库存清理,是清理库存中不能再用的设备。

2.设备借出送还治理

设备借出送还治理包罗设备借出治理和设备送还治理。

对付设备借出治理,如果设备

已经借出,要提示用户谁借走了设备。

当借出乐成的时候,需要在列表中显示借出人、借

出时间和借出设备信息,如果送还乐成,还需要显示设备送还时间。

3.设备统计信息治理

设备统计信息治理包罗对设备借出历史信息、设备使用频率信息和未送还设备列表信

息的治理。

设备借出历史统计显示了一个设备所有的借出历史,便于跟踪设备的使用情况

如果设备出现问题,还可以顺藤摸瓜,查到谁有可能把设备弄坏了,从而找到设备损坏的

原因,便于实时修理。

设备使用频率统计提供了设备借出次数的统计信息,如果一个设备

借出的非常频繁,那么企业可以考虑多购置这种设备,从而提高公司的效率。

未送还设备

列表提供了尚未送还的设备信息,企业可以知道借出设备的使用情况。

功效模块设计

从上面的功效描述中,可以把企业设备治理系统分为3个模块:

设备库存治理、设备

借出送还治理和设备统计信息治理。

在每一个模块下又提供了更为具体的功效。

详细的企

业设备治理系统的功效模块图,如图4-1所示。

图4-1系统功效模块图

4.2数据库设计与实现

数据库设计的一个巧妙之处就是表的数量不能太多,逻辑条理也不能太多;不然

统的升级和维护将会非常困难。

通过对系统功效的阐发,企业设备治理系统需要包罗以下数据库信息。

1.设备信息

包罗设备编号、设备名称、设备描述、设备入库时间、设备购置人、设备借出状

设备借出ID。

2.设备借出信息

包罗设备借出ID、设备编号、借出人、借出时间和送还时间。

通过数据库的需求,可以创建以下数据表。

1.设备信息表(device_info_tab)

设备信息表包罗了设备的一些根本信息,还包罗设备的借出信息,设备的库存治理和

设备的借出送还治理都需要操纵这个数据表,表的结构见表4-1。

表4-1设备信息表

字段名称数据类型可否为空约束条件说明

device_codeVARCHAR2(24)NOTNULL主键设备编号,要惟一

device_nameVARCHAR2(24)NOTNULL无设备名称

descriptionVARCHAR2(1000)NULL无设备描述

oper_dateDATENOTNULL无设备入库时间

buyerVARCHAR2(24)NULL无设备购置人

Lend_statusINTEGERNULL无设备借出状态

lend_idINTEGERNULL无设备借出ID,借出ID是惟一的但可以为空

2.设备借出信息表(device_lend_info_tab)

设备借出信息表包罗了设备的借出和送还信息,设备借出、设备送还,以及统计信息

的治理都需要用到这个数据表,表的结构见表4-2。

表4-2设备借出信息表

字段名称数据类型可否为空约束条件说明

lend_idINTEGERNOTNULL主键借出ID,ID值从系列中获取)

device_codeVARCHAR2(24)NOTNULL外键(device_info_tab)设备编号

borrowerVARCHAR2(24)NOTNULL无借出人

borrow_dateDATENULL无设备借出时间

return_dateDATENULL无设备送还时间

利用第3章中报告的要领创建表空间dbdevice和数据库用户dbdevice,其中数据库用

户的密码为dbdevice,选择的默认表空间为dbdevice。

创建企业设备治理系统的所有数据表的SQL语句如下:

--创建立备信息表

CREATETABLEdevice_info_tab(

device_codeVARCHAR2(24)NOTNULL,

device_nameVARCHAR(24)NOTNULL,

descriptionVARCHAR(1000)NULL,

oper_dateDATENOTNULL,

buyerVARCHAR2(24)NULL,

lend_statusINTEGERNULL

CHECK(lend_statusIN(0,1)),

lend_idINTEGERNULL

);

--添加设备编号主键

ALTERTABLEdevice_info_tab

ADD(PRIMARYKEY(device_code));

--创建立备借出信息表

CREATETABLEdevice_lend_info_tab(

lend_idINTEGERNOTNULL,

device_codeVARCHAR2(24)NOTNULL,

borrowerVARCHAR(24)NOTNULL,

borrow_dateDATENULL,

return_dateDATENULL

);

--添加借出ID主键

ALTERTABLEdevice_lend_info_tab

ADD(PRIMARYKEY(lend_id));

--添加设备编号外键

ALTERTABLEdevice_lend_info_tab

ADD(FOREIGNKEY(device_code)

REFERENCESdevice_info_tab);

--创建可以递增的系列号供lend_id使用

CREATESEQUENCEseq_lend_idINCREMENTBY1STARTWITH1

NOMAXVALUENOMINVALUENOCYCLE;

利用OracleSQLPlusWorkSheet东西执行上述的SQL语句从而创建数据库表。

需要说

明的是,在打开OracleSQLPlusWorksheet的“OracleEnterpriseManager登录”窗口的时

候,需要在“用户名”文本框中输入企业设备治理系统的用户名dbdevice,在“口令”文

本框中输入用户密码dbdevice,在“办事”文本框中输入数据库的当地办事名ORADB,

选择连接方法Normal,登录乐成后,再运行上述的SQL语句。

4.3系统的实现

完成了系统功效模块的设计和数据库表的创建后,就可以创建一个企业设备治理系

统。

步伐

运行VisualC++,选择File|New命令,弹出New对话框。

从Projects列表中选择MFC

AppWizard(exe)向导,在Location文本框中选择项目工程的目录“D:

\VCSAMPLE\”,在

Projectname文本框中输入工程文件的名称DeviceDBS,单击OK按钮,进入MFC

AppWizard–Step1页面,从应用步伐的类型中选择Dialogbased选项,从语言列表中选择

“中文(中国)(APPWZCHS.DLL)”,单击Finish按钮,DeviceDBS对话框的应用步伐创建完

毕。

主对话框的结构如图4-2所示。

其中包罗设备库存治理、设备借出送还治理和设备统

计信息治理3个部门。

3.设备库存治理

控件类型、ID及说明见表4-3。

表4-3设备库存治理控件列表

控件类型ID属性变量或函数

GroupBoxIDC_STATIC设备库存治理无

LabelIDC_STATIC设备编号无

EditBoxIDC_EDIT_DEVICECODE无CString类型变量m_strDeviceCode

LabelIDC_STATIC设备名称无

EditBoxIDC_EDIT_DEVICENAME无CString类型变量m_strDeviceName

LabelIDC_STATIC购置人无

EditBoxIDC_EDIT_BUYER无CString类型变量m_strBorrower

LabelIDC_STATIC入库时间无

DateTimePickerIDC_DT_DATEShortDateCOleDateTime类型变量m_oleOperDate

DateTimePickerIDC_DT_TIMETimeCOleDateTime类型变量m_oleOperTime

LabelIDC_STATIC设备说明无

EditBoxIDC_EDIT_DESCRIPTION无CString类型变量m_strDescription

ButtonIDC_BTN_DEVICE_ADD新设备入库函数OnBtnDeviceAdd()处置惩罚新设备的入库治理

ButtonIDC_BTN_DEVICE_MOD修改设备信息函数OnBtnDeviceMod()修改设备信息

ButtonIDC_BTN_DEVICE_DEL库存清理函数OnBtnDeviceDel()处置惩罚库存设备的清理治理

GroupBoxIDC_STATIC设备信息无

ListControlIDC_LIST_DEVICE无列表框控件类型变量m_listDevice

4.设备借出送还治理

控件类型、ID及说明见表4-4。

表4-4设备借出送还治理控件列表

控件类型ID属性变量或函数

GroupBoxIDC_STATIC设备借出送还治理无

LabelIDC_STATIC请输入借书人无

EditBoxIDC_EDIT_BORROWER无CString类型变量m_strBorrower

LabelIDC_STATIC请选择设备名称无

ComboBoxIDC_COMBO_NAME无列表框控件变量m_comboName,CString类型变量

m_strSelectedName

LabelIDC_STATIC请选择设备编号无

ComboBoxIDC_COMBO_CODE无列表框控件变量m_comboCode,CString类型变量

m_strSelectedCode

ButtonIDC_BTN_LEND借出函数OnBtnLend()处置惩罚设备借出治理

ButtonIDC_BTN_RETURN送还函数OnBtnReturn()处置惩罚设备送还治理

GroupBoxIDC_STATIC借出信息无

ListControlIDC_LIST_LEND无列表框控件类型变量m_listLend

5.设备统计信息治理

控件类型、ID及说明见表4-5。

表4-5设备统计信息治理控件列表

控件类型ID属性变量或函数

GroupBoxIDC_STATIC设备统计信息治理无

ButtonIDC_BTN_LEND_LIST设备借出历史统计函数OnBtnLendList()处置惩罚设备借出历史统计

ButtonIDC_BTN_FREQUENCY_LIST设备使用频率统计函数OnBtnFrequencyList()处置惩罚设备使用频率统计

ButtonIDC_BTN_LENT_DEVICE未送还设备列表函数OnBtnLentDevice()处置惩罚未送还设备统计

ButtonIDC_SYS_EXIT退出函数OnSysExit()处置惩罚系统退出代码

主对话框类名称为CDeviceDBSDlg,资源ID为IDD_DEVICEDBS_DIALOG,对话框

名称为“企业设备治理系统”。

主界面用到了两个列表框控件分别显示设备信息和借出信息。

需要为这两个列表框控件添加显示的列,从而显示相应的数据信息。

为了代码设计的清晰,

在CDeviceDBSDlg类中界说了一个InitControl私有函数卖力添加控件的显示列,InitControl

函数的代码如下:

voidCDeviceDBSDlg:

:

InitControl()

{{

//设置列表框控件扩展气势派头

DWORDdwExStyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|

LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_UNDERLINEHOT;

m_listDevice.SetExtendedStyle(dwExStyle);

m_listLend.SetExtendedStyle(dwExStyle);

//初始化设备信息列表框控件

m_listDevice.InsertColumn(0,"设备编号",LVCFMT_CENTER,80);

m_listDevice.InsertColumn(1,"设备名称",LVCFMT_CENTER,80);

m_listDevice.InsertColumn(2,"设备入库时间",LVCFMT_CENTER,140);

m_listDevice.InsertColumn(3,"设备购置人",LVCFMT_CENTER,80);

m_listDevice.InsertColumn(4,"设备描述",LVCFMT_CENTER,200);

//初始化议题列表框控件

m_listLend.InsertColumn(0,"借出ID",LVCFMT_CENTER,80);

m_listLend.InsertColumn(1,"设备编号",LVCFMT_CENTER,80);

m_listLend.InsertColumn(2,"设备名称",LVCFMT_CENTER,80);

m_listLend.InsertColumn(3,"借出人",LVCFMT_CENTER,80);

m_listLend.InsertColumn(4,"设备借出时间",LVCFMT_CENTER,140);

m_listLend.InsertColumn(5,"设备送还时间",LVCFMT_CENTER,140);

}

在OnInitDialog函数末尾处添加InitControl函数的调用,这样系统在启动的时候,就

可以看到已添加显示列的列表框控件。

当系统启动之后,可以将数据库中的数据显示到界面上,需要处置惩罚数据库的连接和显

示数据到界面上的两个历程。

1.数据库的连接

数据库的连接需要3个参数:

ODBC数据源名称、数据库用户名称和数据库用户密码。

其中数据源名称为ORADB,数据库用户的名称和密码均为dbdevice。

考虑到读者配置的

数据源和用户名可能不一样,可以从配置文件中获取这些参数信息,配置文件的格式如下:

[General]

数据库数据源=oradb

数据库用户=dbdevice

数据库密码=dbdevice

把这段文字生存为DeviceDBS.ini文件,可以凭据读者自己配置的数据源、数据用户

和密码修改文件中的相应设置,并把DeviceDBS.ini文件放在DeviceDBS.exe运行步伐的

同一目录下。

在CDeviceDBSDlg类中界说了一个私有类型的ConnectDB函数,处置惩罚数据库的连接,

代码如下:

voidCDeviceDBSDlg:

:

ConnectDB()

{

charszPath[255];

//获取应用步伐完全路径

:

:

GetModuleFileName(NULL,szPath,255);

CStringstrFileName=szPath;

//获取所在的目录名称

strFileName.Delete(strFileName.ReverseFind(’\\’)+1,strFileName.GetLengt

h()-strFileName.ReverseFind(’\\’)-1);

//结构配置文件的完全路径

strFileName+="DeviceDBS.ini";

TCHARsz[101];

memset(sz,0,sizeof(TCHAR)*101);

//获取配置文件中数据库数据源的值,如果没有,默认值为oradb

GetPrivateProfileString(_T("General"),_T("数据库数据源

"),_T("oradb"),sz,100,strFileName);

CStringstrSource(sz);

GetPrivateProfileString(_T("General"),_T("数据库用户

"),_T("dbdevice"),sz,100,strFileName);

CStringstrUser(sz);

GetPrivateProfileString(_T("General"),_T("数据库密码

"),_T("dbdevice"),sz,100,strFileName);

CStringstrPwd(sz);

//创建连接字符串.

CStringstrConnect;

strConnect.Format("DSN=%s;UID=%s;PWD=%s",strSource,strUser,strPwd);

//打开数据库的连接,而且捕捉异常

TRY{

m_db.OpenEx(strConnect,CDatabase:

:

noOdbcDialog);

}

CATCH(CDBException,ex)

{

AfxMessageBox(ex->m_strError);

AfxMessageBox(ex->m_strStateNativeOrigin);

}

AND_CATCH(CMemoryException,pEx)

{

pEx->ReportError();

AfxMessageBox("memoryexception");

}

AND_CATCH(CException,e)

{

TCHARszError[100];

e->GetErrorMessage(szError,100);

AfxMessageBox(szError);

}

END_CATCH

InitCtrlData();

}

函数ConnectDB利用系统的GetPrivateProfileString函数从文件中获取数据库的配置参

数,GetPrivateProfileString函数的原型如下:

DWORDGetPrivateProfileString(

LPCTSTRlpAppName,

LPCTSTRlpKeyName,

LPCTSTRlpDefault,

LPTSTRlpReturnedString,

DWORDnSize,

LPCTSTRlpFileName

);

其中第1个参数是Section的名称,对应DeviceDBS.ini文件中的General,即中括号

所包罗的内容General;第2个参数是键的名称,如DeviceDBS.ini文件中的“数据库数据

源”、“数据库用户”和“数据库密码”;第3个参数是默认值,如果没用乐成得到键值,那

么就取lpDefault代表的数据;第4个参数是生存键值的缓冲区;第5个参数是缓冲区的大

小;第6个参数是文件的完全路径。

由于第6个参数需要获取文件DeviceDBS.ini的完全路径,因而需要利用系统的

GetModuleFileName函数先获取应用步伐DeviceDBS.exe所在的路径(因为DeviceDBS.ini

文件和应用步伐DeviceDBS.exe在同一目录下),然后结构配置文件DeviceDBS.ini的完全

路径。

当从文件中获取到数据库配置参数之后,就可以创建数据库连接字符串,利用

CDatabase的OpenEx要领打开数据库的连接,并处置惩罚数据库的异常。

2.显示数据到界面上

连接数据库之后,需要把数据库中的设备信息显示到设备信息列表框控件中,并刷新

借出送还治理中的设备名称和设备编号两个列表框中的显示数据。

因而在CDeviceDBSDlg

类中界说了一个InitCtrlData私有函数,卖力显示这些数据。

同时还界说一个

RefreshComboNameData函数,凭据数据库的最新数据刷新借出送还治理中的两个列表框

的数据。

在对设备信息添加、修改和删除之后都需要调用RefreshComboNameData函数来

更新列表框中的显示数据。

同时还需要界说两个分别把数据插入到列表框控件中的函数,

分别为:

InsertDeviceInfoItem和InsertLendInfoItem。

在连接数据库乐成之后,不需要显示

借出信息,因为比力多,也不是很重要,只需在借出和送还乐成之后显示借出信息。

DeviceDBSDlg.h文件中添加这4个私有函数的界说,代码如下:

//从数据库获取设备信息并更新到控件中

void

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

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1