版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
开发背景及意义随着现代图书流通市场竞争的愈演愈烈,如何以一种新的管理方式提高图书流通信息的反馈速度,降低库存占用,加快资金周转,提高工作效率,已经成为图书企业提高竞争的关键。信息技术的发展给图书企业的管理带了新的力气,通过图书管理系统对图书企业经营运作的全程管理,不仅使企业拜托了人工管理带来的一系列的问题,更重要的是提高了工作效率,进而提高了企业的经济效益。通过管理系统对企业的管理,为企业的发展供应了大量的、关键性的数据,企业依据这些数据,刚好作出决策,进行调整,使之能够更好的把握市场的销售规律,适应市场改变,在激烈的行业竞争中取得一席之地。需求分析2.1、功能分析:主要利用计算机系统实现图书的信息化管理。图书管理涉及基本信息,库存信息,销售信息等多种数据管理。在基本信息管理中须要实现添加、修改和删除,包括操作员信息管理、图书信息管理、图书种类信息管理、供应商信息管理、仓库信息管理、柜台信息管理。在库存信息管理中须要实现添加,包括图书的入库、入库退货、库存调拨管理。在图书价格信息管理中须要实现添加和删除,包括图书定价管理、图书调价管理。在图书销售信息管理中主要实现添加和删除,包括图书销售、销售退货管理。⑤在查询信息管理中主要实现入库查询管理、入库退货查询管理、销售查询管理、销售退货查询管理。2.2、工作流图:图书管理系统的结构图如图所示:图书管理系统的业务流程图如图所示2.3、数据流图:在该系统中主要的数据记录有:图书、仓库、入库、入库退货、销售、销售退货、调拨、定价等信息;主要的数据流有:图书信息数据流、入库信息数据流、入库退货数据流、销售数据流、销售退货信息流、调拨信息流、仓库信息流;主要的数据处理有:对图书入库、入库退货、入库退货结账、入库结账、销售、销售结账、销售退货、销售退货结账、调拨信息的处理。由该分析得数据流图如下:2.4、数据字典:重要数据库及其简要描述:1、数据项名称说明条形码唯一标识一种图书,形式随意书籍种类把图书归成几类,方面查找操作员名称管理员,运用系统时,拥有系统账户的人供应商名称唯一标识一个供应商销售单号以此记录一次销售记录。唯一标识每次销售记录,形式如:XS20050812001入库单号以此记录一次入库登记,唯一标识每次入库登记,形式如:EQ20060208001退货单号以此记录一次入库退货登记,唯一标识每次入库退货登记,形式如:EQ20060209001调拨单号以此记录每一次调货登记,唯一标识每次调货登录,形式如:AD20060210002销售退货单号以此记录一次销售退货记录。唯一标识每次销售退货记录,形式如:EQ20060211001仓库名称唯一标识某个仓库柜台名称唯一标识某个柜台2、数据存储名称说明图书信息表记录图书的基本信息图书种类信息表记录图书种类仓库信息表记录仓库的基本信息操作员信息表记录操作员的用户名,密码,等级供应商信息表记录供应商的基本信息柜台图书表记录柜台图书的基本信息柜台信息表记录柜台的基本信息入库单记录入库时的图书及数量,单价等信息入库结账单记录入库结账的金额,操作员,日期等信息入库退货单记录入库退货时的图书及数量信息入库退货结账单记录入库退货时的供应商,金额,时间等信息图书销售单记录销售时的图书及数量信息图书销售结账单记录销售结账的金额,操作员,金额,销售时间等信息图书仓库表记录图书条形码,数量及仓库名称图书调拨单记录调拨时的单号,条形码,数量,操作员,调拨时间,仓库名称等信息图书定价表记录图书销售价格信息销售退货单记录销售时的条形码,数量等信息销售退货结账单记录销售退货结账的金额,操作员,日期等信息3、处理过程名称说明销售登记进行销售交易,即出库销售退货登记进行销售退货交易入库登记进行入库交易,也可以称为选购 登记入库退货登记进行入库退货交易入库结账登记入库结账操作,也可以称为选购 结账销售结账登记销售结账操作入库退货结账登记入库退货结账操作,也可以称为选购 退货结账销售退货结账登记销售退货结账操作调拨登记在仓库之间重新安排库存量概念模型设计这一设计阶段是在需求分析的基础上进行的,目的是设计出能够设计出能够满意用户需求的各种实体以及它们之间的关系,为后面的逻辑结构设计打下基础。依据以上的分析设计的结果,得到以下实体:图书、操作员、供应商、仓库、柜台图书、入库单、入库退货单、销售单、调拨单、定价单、销售退货单、入库退货结账单、销售结构单、入库结账单、销售退货结账单下图为图书实体E-R图:下图为操作员实体E-R图:操作员操作员等级密码名称等级密码名称下图为供应商实体E-R图:下图为仓库实体E-R图:仓仓库数量数量仓库名称条形码下图为柜台图书实体E-R图:柜台图书柜台名称数量条形码柜台名称数量条形码下图为入库单实体E-R图:下图为入库退货单实体E-R图:下图为销售单实体E-R图:下图为调拨单实体E-R图:下图为定价单实体E-R图:定价单定价单销售价格条形码销售价格条形码下图为销售退货单实体E-R图:下图为入库退货结账单实体E-R图:下图为销售结账单实体E-R图:下图为入库结账单实体E-R图:下图为销售退货结账单实体E-R图:下图为销售单与操作员相关的E-R图:销售单销售销售操作员操作员下图为入库单与操作员相关的E-R图:入库单选购 操作员下图为入库相关的E-R图:入库结账单入库结账单mm结账供应商1111图书入库m1入库单图书入库m1入库单选购 nn11mm图书仓库图书仓库退货mm1nm1nm图书出库入库退货单图书出库入库退货单11结账结账mm入库退货结账单入库退货结账单下图为销售相关的E-R图:销售结账单销售结账单mm顾客结账顾客结账11m111m1图书出库销售单销售图书出库销售单销售nn1m1m退货仓库图书退货仓库图书mmnmmn图书入库销售退货单图书入库销售退货单11结账结账mm销售退货结账单销售退货结账单逻辑结构设计4.1、E-R图向关系模型的转换:图书信息表(tb_bookinfo):字段名称字段类型主键外键允许为空描述booknamevarchar(30)书籍名称shortnamevarchar(10)简码barcodevarchar(30)是条形码authorvarchar(30)作者bookconcernvarchar(30)出版社pricemoney价格memovarchar(100)是备注kindvarchar(30)是种类图书种类信息表(tb_bookkinds):字段名称字段类型主键外键允许为空描述bookkindvarchar(30)是书籍种类仓库信息表(tb_storageinfo):字段名称字段类型主键外键允许为空描述storagenamevarchar(30)是仓库名称操作员信息表(tb_operator):字段名称字段类型主键外键允许为空描述namevarchar(30)是名称passwordvarchar(50)密码levelsmallint等级供应商信息表(tb_providerinfo):字段名称字段类型主键外键允许为空描述providervarchar(30)是供应商名称corporationvarchar(30)法人principalvarchar(10)负责人phonevarchar(30)联系电话addervarchar(50)地址webvarchar(50)是网址e_mailvarchar(30)是电子邮件柜台图书表(tb_counterbook):字段名称字段类型主键外键允许为空描述barcodevarchar(30)外键条形码countervarchar(30)外键柜台名称booknumfloat数量柜台信息表(tb_counterinfo):字段名称字段类型主键外键允许为空描述countervarchar(30)是柜台名称入库单表(tb_instock_sub):字段名称字段类型主键外键允许为空描述instockidvarchar(30)外键入库单号barcodevarchar(30)外键条形码unitPricemoney单价numbersfloat数量rebatefloat折扣paymoneymoney应付金额stocknamevarchar(30)外键仓库名称入库退货单表(tb_cancelinstock_sub):字段名称字段类型主键外键允许为空描述CancelIDvarchar(30)是退货单价barcodevarchar(30)是条形码unitPricemoney单价numbersfloat数量rebatefloat折扣paymoneymoney金额stocknamevarchar(30)是仓库名称图书仓库表(tb_bookstorage):字段名称字段类型主键外键允许为空描述barcodevarchar(30)是条形码storagenamevarchar(30)是仓库名称booknumfloat数量图书调拨明细表(tb_bookmove_sub):字段名称字段类型主键外键允许为空描述moveIDvarchar(30)是调拨单号barcodevarchar(30)是条形码booknumfloat数量图书调拨主表(tb_bookmove_main):字段名称字段类型主键外键允许为空描述moveIDvarchar(30)是调拨单号storagevarchar(30)是仓库名称countervarchar(30)是柜台名称operatorvarchar(30)是操作员movetimedatetime调拨时间入库退货结账表(tb_cancelinstock_main):字段名称字段类型主键外键允许为空描述CancelIDvarchar(30)是退货单号providervarchar(50)是供应商operatorvarchar(30)是操作员rebatefloat折扣sumtotalfloat总计paymoneymoney应付金额factmoneymoney实付金额inttimedatetime退货金额图书销售单表(tb_sell_sub):字段名称字段类型主键外键允许为空描述SellIDvarchar(30)是销售单号barcodevarchar(30)是条形码unitPricemoney单价numbersfloat数量rebatefloat折扣paymoneymoney金额图书销售结账表(tb_sell_main):字段名称字段类型主键外键允许为空描述SellIDvarchar(30)是销售单号Customervarchar(30)是顾客operatorvarchar(30)是操作员rebatefloat折扣sumtoalmoney总计paymoneymoney应付金额factmoneymoney实付金额intimedatetime销售时间countervarchar(30)是柜台名称图书定价表(tb_fixprice):字段名称字段类型主键外键允许为空描述barcodevarchar(30)是条形码sellpricemoney销售价格图书入库结账表(tb_instorage_main):字段名称字段类型主键外键允许为空描述IDvarchar(30)是入库单号providervarchar(50)是供应商operatevarchar(30)是操作员rebatefloat折扣sumtoalmoney总计paymoneymoney应付金额factmoneymoney实付金额intimedatetime入库时间销售退货单表(tb_cancelsell_sub):字段名称字段类型主键外键允许为空描述SellCancelIDvarchar(30)是销售退货单号barcodevarchar(30)是条形码unitPricemoney单价numbersfloat数量rebatefloat折扣paymoneymoney金额销售退货结账表(tb_cancelsell_main):字段名称字段类型主键外键允许为空描述SellCancelIDvarchar(30)是销售退货单号Customervarchar(30)是顾客operatorvarchar(30)是操作员rebatefloat折扣sumtoalmoney总计paymoneymoney应付金额factmoneymoney实付金额intimedatetime退货时间countervarchar(30是柜台名称4.2、说明:以上表中均不存在非主属性和主属性对码的部分函数依靠和传递函数依靠,每一个非平凡函数依靠的确定因素都包含有候选键,因此满意BC范式。源代码及查询截图5.1源代码:1、登录窗口:为了防止非法用户进入系统,程序中设计了一个系统登录窗口。在程序启动时,首先显示登录窗口,进行用户身份验证,假如用户输入的用户名称和密码不正确,将禁止进入系统。(用户名:宗吉密码:123456)程序相关代码:设计思路:首先推断用户名和密码是否为空,假如为空,则提示用户输入用户名和密码,否则以用户名和密码为条件,从数据库中查询数据,有数据返回,证明用户身份合法;反之,身份不合法。voidCDlgLogin::OnButton1(){ CStringc_user,c_password; m_user.GetWindowText(c_user); m_password.GetWindowText(c_password); if(c_user.IsEmpty()||c_password.IsEmpty()) { MessageBox("用户名称或密码不能为空","用户登录信息"); return; } CStringsql; sql.Format("select*fromtb_operatorwherename='%s'andpassword='%s'",c_user,c_password); m_pRs->raw_Close(); m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); if(m_pRs->RecordCount>0) { Flag=true; user=m_pRs->GetCollect("name").bstrVal; password=m_pRs->GetCollect("password").bstrVal; //PostMessage(WM_CLOSE,0,0); EndDialog(0); } else { user=""; password=""; MessageBox("用户名或密码不正确.","提示",64); return; }}2、主窗体:图书管理系统主界面由菜单和客户区域两部分组成。基本信息管理:操作员信息的添加、修改和删除程序相关代码:利用函数LoadOperatorInfo()加载操作员信息。在窗口初始化时,调用该函数将全部操作员信息添加到列表中。voidCDlgOperator1::LoadOperatorInfo(){ m_list.DeleteAllItems(); m_pRs->raw_Close(); CStringsql; sql.Format("select*fromtb_operator");//设置SQL语句 m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); introw=0; CStringitemtext; while(!m_pRs->adoEOF)//利用循环向表中添加数据 { m_list.InsertItem(100,""); for(intindex=0;index<m_pRs->Fields->Count;index++) { itemtext=(TCHAR*)(_bstr_t)m_pRs->GetFields()->GetItem((long)index)->Value; m_list.SetItemText(row,index,itemtext); } row+=1; m_pRs->MoveNext();//向下移动记录 }}voidCDlgOperator1::AddOperator(){ //推断基础信息是否为空 if(!InfoIsNull()) { CStringc_operator,c_password,c_level; m_operator.GetWindowText(c_operator); m_password.GetWindowText(c_password); m_level.GetWindowText(c_level); intlevel=atoi(c_level); CStringsql; sql.Format("insertintotb_operatorvalues('%s','%s',%d)",c_operator,c_password,level); if(m_pRs->State==adStateOpen) m_pRs->raw_Close(); try { m_pRs->Open((_bstr_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); LoadOperatorInfo(); ClearInterface(); MessageBox("操作胜利.","提示",MB_OK); } catch(_com_error*e) { MessageBox("操作失败.","提示",MB_OK|MB_ICONERROR); } } else MessageBox("基础信息不能为空.","提示",MB_OK+MB_ICONINFORMATION);}boolCDlgOperator1::InfoIsNull(){ CStringc_operator,c_password,c_level; m_operator.GetWindowText(c_operator); m_password.GetWindowText(c_password); m_level.GetWindowText(c_level); if(c_operator.IsEmpty()||c_password.IsEmpty()||c_level.IsEmpty()) returntrue; returnfalse;}voidCDlgOperator1::OnDblclkList1(NMHDR*pNMHDR,LRESULT*pResult){ introw=m_list.GetSelectionMark(); if(row!=-1) { m_operator.SetWindowText(m_list.GetItemText(row,0)); m_password.SetWindowText(m_list.GetItemText(row,1)); m_level.SetCurSel(m_level.FindString(0,m_list.GetItemText(row,2))); } *pResult=0;}voidCDlgOperator1::ClearInterface(){ m_operator.SetWindowText(""); m_password.SetWindowText(""); m_level.SetCurSel(-1);}voidCDlgOperator1::UpdateOperator(){ if(!InfoIsNull()) { if(m_list.GetSelectionMark()!=-1) { if(MessageBox("的确要修改数据吗?","提示",MB_YESNO|MB_ICONINFORMATION)==IDYES) { CStringc_operator,c_password,c_level; m_operator.GetWindowText(c_operator); m_password.GetWindowText(c_password); m_level.GetWindowText(c_level); intlevel=atoi(c_level); inti=m_list.GetSelectionMark(); CStringc_name=m_list.GetItemText(i,0); CStringsql; sql.Format("updatetb_operatorsetname='%s',password='%s',[level]=%dwherename='%s'",c_operator,c_password,level,c_name); m_pRs->raw_Close(); try { m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); ClearInterface(); LoadOperatorInfo(); MessageBox("操作胜利.","提示",64); } catch(...) { MessageBox("操作失败.","提示",MB_OK|MB_ICONERROR); } } } else MessageBox("请选择欲修改的信息.","提示",MB_OK|MB_ICONINFORMATION); } else MessageBox("基础信息不完整.","提示",MB_OK|MB_ICONINFORMATION);}boolCDlgOperator1::InfoIsExist(LPTSTRname){ CStringsql; sql.Format("select*fromtb_operatorwherename='%s'",name); m_pRs->raw_Close(); m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); if(m_pRs->RecordCount>1) returntrue; returnfalse;}voidCDlgOperator1::DeleteOperator(){ if(m_list.GetSelectionMark()!=-1) { if(MessageBox("的确要删除数据吗?","提示",MB_YESNO|MB_ICONINFORMATION)==IDYES) { inti=m_list.GetSelectionMark(); CStringc_name=m_list.GetItemText(i,0); CStringsql; sql.Format("deletetb_operatorwherename='%s'",c_name); m_pRs->raw_Close(); try { m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); ClearInterface(); LoadOperatorInfo(); MessageBox("操作胜利.","提示",64); } catch(...) { MessageBox("操作失败.","提示",MB_OK|MB_ICONERROR); } } } else MessageBox("请选择欲删除的信息.","提示",MB_OK|MB_ICONINFORMATION);}图书信息的添加、修改和删除相关代码:BOOLCDlgBookInfo1::PreTranslateMessage(MSG*pMsg){ if(pMsg->message==WM_KEYDOWN) if(pMsg->wParam==13) pMsg->wParam=9; returnCDialog::PreTranslateMessage(pMsg);}BOOLCDlgBookInfo1::OnInitDialog(){ CDialog::OnInitDialog();//设置表格风格 m_list.ModifyStyle(LVS_EDITLABELS,0); m_list.ModifyStyle(0,LVS_REPORT); m_list.ModifyStyle(0,LVS_SHOWSELALWAYS); m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_GRIDLINES|LVS_EX_ONECLICKACTIVATE|LVS_EX_FLATSB); //添加列 m_list.InsertColumn(0,"书籍名称"); m_list.InsertColumn(1,"助记码"); m_list.InsertColumn(2,"条形码"); m_list.InsertColumn(3,"作者"); m_list.InsertColumn(4,"出版社"); m_list.InsertColumn(5,"价格"); m_list.InsertColumn(6,"备注"); m_list.InsertColumn(7,"种类"); //设置列宽度 m_list.SetColumnWidth(0,100); m_list.SetColumnWidth(1,60); m_list.SetColumnWidth(2,80); m_list.SetColumnWidth(3,60); m_list.SetColumnWidth(4,80); m_list.SetColumnWidth(5,60); m_list.SetColumnWidth(6,80); m_list.SetColumnWidth(7,60); //加载图书种类 AddBookkinds(); //加载图书信息 LoadBookInfo(); returnTRUE;//returnTRUEunlessyousetthefocustoacontrol //EXCEPTION:OCXPropertyPagesshouldreturnFALSE}voidCDlgBookInfo1::OnOK(){//}voidCDlgBookInfo1::OnCancel(){//}voidCDlgBookInfo1::AddBookkinds(){ m_kinds.ResetContent(); m_pRs->raw_Close(); CStringsql; sql.Format("select*fromtb_bookkinds"); m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); while(!m_pRs->adoEOF) { m_kinds.AddString((TCHAR*)(_bstr_t)m_pRs->GetFields()->GetItem((long)0)->Value); m_pRs->MoveNext(); }}/***********************************************************************************说明:清空界面数据***********************************************************************************/voidCDlgBookInfo1::ClearInterface(){ m_list.DeleteAllItems(); m_author.SetWindowText(""); m_barcode.SetWindowText(""); m_bookname.SetWindowText(""); m_kinds.SetWindowText(""); m_list.SetWindowText(""); m_memo.SetWindowText(""); m_price.SetWindowText(""); m_public.SetWindowText(""); m_shortcode.SetWindowText(""); m_kinds.SetCurSel(-1);}/***************************************************************************************说明:推断信息是否为空****************************************************************************************/boolCDlgBookInfo1::InfoIsNull(){ CWnd*temp; temp=this; CStringtext; for(intindex=0;index<8;index++) { temp=this->GetNextDlgTabItem(temp); temp->GetWindowText(text); if(text.IsEmpty()) returntrue; } returnfalse;}/***************************************************************************************说明:加载图书信息****************************************************************************************/voidCDlgBookInfo1::LoadBookInfo(){ m_pRs->raw_Close(); CStringsql; sql.Format("select*fromtb_bookinfo"); m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); introw=0; m_list.DeleteAllItems(); while(!m_pRs->adoEOF) { m_list.InsertItem(100,""); for(intcol=0;col<8;col++) { m_list.SetItemText(row,col,(TCHAR*)(_bstr_t)m_pRs->GetFields()->GetItem((long)col)->Value); } row+=1; m_pRs->MoveNext(); }}/***************************************************************************************说明:推断条形码是否存在****************************************************************************************/boolCDlgBookInfo1::BarcodeIsExist(LPTSTRbarcode){ m_pRs->raw_Close(); CStringsql; sql.Format("select*fromtb_bookinfowherebarcode='%s'",barcode); m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); if(m_pRs->RecordCount>0) returntrue; returnfalse;}/***************************************************************************************说明:添加图书信息****************************************************************************************/voidCDlgBookInfo1::AddBookInfo(){ if(InfoIsNull()) { MessageBox("图书信息不能为空.","提示",MB_OK|MB_ICONINFORMATION); return; } CStringc_barcode; m_barcode.GetWindowText(c_barcode); if(BarcodeIsExist((_bstr_t)c_barcode)) { MessageBox("条形码已经存在.","提示",MB_OK|MB_ICONINFORMATION); return; } CStringc_name,c_shortname,c_author,c_press,c_price,c_memo,c_kinds; m_bookname.GetWindowText(c_name); m_shortcode.GetWindowText(c_shortname); m_author.GetWindowText(c_author); m_public.GetWindowText(c_press); m_price.GetWindowText(c_price); m_memo.GetWindowText(c_memo); m_kinds.GetWindowText(c_kinds); CStringsql; sql.Format("Insertintotb_bookinfovalues('%s','%s','%s','%s','%s',%f,'%s','%s')",c_name,c_shortname,c_barcode,c_author,c_press,atof(c_price),c_memo,c_kinds); try { m_pRs->raw_Close(); m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); MessageBox("操作胜利.","提示",MB_OK|MB_ICONINFORMATION); ClearInterface(); LoadBookInfo(); } catch(...) { MessageBox("操作失败.","提示",MB_OK|MB_ICONERROR); } }voidCDlgBookInfo1::UpdateBookInfo(){ if(!InfoIsNull()) { if(m_list.GetSelectionMark()!=-1) { if(MessageBox("的确要修改数据吗?","提示",MB_YESNO|MB_ICONINFORMATION)==IDYES) { CStringc_barcode; c_barcode=m_list.GetItemText(m_list.GetSelectionMark(),2); CStringc_name,c_newcode,c_shortname,c_author,c_press,c_price,c_memo,c_kinds; m_bookname.GetWindowText(c_name); m_barcode.GetWindowText(c_newcode); m_shortcode.GetWindowText(c_shortname); m_author.GetWindowText(c_author); m_public.GetWindowText(c_press); m_price.GetWindowText(c_price); m_memo.GetWindowText(c_memo); m_kinds.GetWindowText(c_kinds); CStringsql; sql.Format("updatetb_bookinfosetbookname='%s',shortname='%s',barcode='%s',author='%s',bookconcern='%s',price=%f,memo='%s',kind='%s'wherebarcode='%s'" ,c_name,c_shortname,c_newcode,c_author,c_press,atof(c_price),c_memo,c_kinds,c_barcode); m_pRs->raw_Close(); try { m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); ClearInterface(); LoadBookInfo(); MessageBox("操作胜利.","提示",64); } catch(...) { MessageBox("操作失败.","提示",MB_OK|MB_ICONERROR); } } } else MessageBox("请选择欲修改的信息.","提示",MB_OK|MB_ICONINFORMATION); } else MessageBox("基础信息不完整.","提示",MB_OK|MB_ICONINFORMATION);}voidCDlgBookInfo1::OnDblclkList1(NMHDR*pNMHDR,LRESULT*pResult){ introw=m_list.GetSelectionMark(); if(row!=-1) { m_bookname.SetWindowText(m_list.GetItemText(row,0)); m_shortcode.SetWindowText(m_list.GetItemText(row,1)); m_barcode.SetWindowText(m_list.GetItemText(row,2)); m_author.SetWindowText(m_list.GetItemText(row,3)); m_public.SetWindowText(m_list.GetItemText(row,4)); m_price.SetWindowText(m_list.GetItemText(row,5)); m_memo.SetWindowText(m_list.GetItemText(row,6)); m_kinds.SetCurSel(m_kinds.FindString(0,m_list.GetItemText(row,7))); } *pResult=0;}voidCDlgBookInfo1::DeleteBookInfo(){ if(m_list.GetSelectionMark()!=-1) { if(MessageBox("的确要删除数据吗?","提示",MB_YESNO|MB_ICONINFORMATION)==IDYES) { inti=m_list.GetSelectionMark(); CStringc_barcode=m_list.GetItemText(i,2); CStringsql; sql.Format("deletetb_bookinfowherebarcode='%s'",c_barcode); m_pRs->raw_Close(); try { m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); ClearInterface(); LoadBookInfo(); MessageBox("操作胜利.","提示",64); } catch(...) { MessageBox("操作失败.","提示",MB_OK|MB_ICONERROR); } } } else MessageBox("请选择欲删除的信息.","提示",MB_OK|MB_ICONINFORMATION);}voidCDlgBookInfo1::OnPaint(){ CPaintDCdc(this);//devicecontextforpainting}供应商信息的添加、修改和删除相关代码:BOOLCDlgProviderInfo1::OnInitDialog(){ CDialog::OnInitDialog(); m_list.ModifyStyle(0,LVS_SHOWSELALWAYS); m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_FLATSB); m_list.InsertColumn(0,"供应商名称",LVCFMT_LEFT,100); m_list.InsertColumn(1,"法人",LVCFMT_LEFT,80); m_list.InsertColumn(2,"负责人",LVCFMT_LEFT,80); m_list.InsertColumn(3,"联系电话",LVCFMT_LEFT,80); m_list.InsertColumn(4,"具体地址",LVCFMT_LEFT,100); m_list.InsertColumn(5,"网址",LVCFMT_LEFT,100); m_list.InsertColumn(6,"邮箱",LVCFMT_LEFT,100); LoadProviderInfo();//加载供应商信息 returnTRUE;}voidCDlgProviderInfo1::LoadProviderInfo(){ m_list.DeleteAllItems(); m_pRs->raw_Close(); CStringsql,temp; sql.Format("select*fromtb_providerinfo"); m_pRs=m_pCon->Execute((_bstr_t)sql,NULL,adCmdText); introw=0; while(!m_pRs->adoEOF) { m_list.InsertItem(100,""); for(inti=0;i<m_pRs->GetFields()->Count;i++) { temp=(TCHAR*)(_bstr_t)m_pRs->GetFields()->GetItem((long)i)->Value; m_list.SetItemText(row,i,temp); } row+=1; m_pRs->MoveNext(); } }BOOLCDlgProviderInfo1::PreTranslateMessage(MSG*pMsg){ if(pMsg->message== WM_KEYDOWN) if(pMsg->wParam==13) pMsg->wParam=9; returnCDialog::PreTranslateMessage(pMsg);}boolCDlgProviderInfo1::InfoIsNull(){ CWnd*temp; temp=this; CStringtext; for(intindex=0;index<7;index++) { temp=this->GetNextDlgTabItem(temp); temp->GetWindowText(text); if(text.IsEmpty()) returntrue; } returnfalse;}voidCDlgProviderInfo1::AddProvider(){ if(InfoIsNull()) { MessageBox("供应商信息不能为空.","提示",MB_OK|MB_ICONINFORMATION); return; } CStringc_provider,c_principal,c_phone,c_corporation,c_addr,c_netaddr,c_email; m_addr.GetWindowText(c_addr); m_corporation.GetWindowText(c_corporation); m_email.GetWindowText(c_email); m_netaddr.GetWindowText(c_netaddr); m_phone.GetWindowText(c_phone); m_principal.GetWindowText(c_principal); m_provider.GetWindowText(c_provider); CStringsql; sql.Format("Insertintotb_providerinfovalues('%s','%s','%s','%s','%s','%s','%s')",c_provider,c_corporation,c_principal,c_phone,c_addr,c_netaddr,c_email); try { m_pRs->raw_Close(); m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); MessageBox("操作胜利.","提示",MB_OK|MB_ICONINFORMATION); ClearInterface(); LoadProviderInfo(); } catch(...) { MessageBox("操作失败.","提示",MB_OK|MB_ICONERROR); }}voidCDlgProviderInfo1::ClearInterface(){ CWnd*temp; temp=this; CStringtext; for(intindex=0;index<8;index++) { temp=this->GetNextDlgTabItem(temp); temp->SetWindowText(""); }}voidCDlgProviderInfo1::DeleteProvider(){ if(m_list.GetSelectionMark()!=-1) { if(MessageBox("的确要删除数据吗?","提示",MB_YESNO|MB_ICONINFORMATION)==IDYES) { inti=m_list.GetSelectionMark(); CStringc_provider=m_list.GetItemText(i,0); CStringsql; sql.Format("deletetb_providerinfowhereprovider='%s'",c_provider); m_pRs->raw_Close(); try { m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); ClearInterface(); LoadProviderInfo(); MessageBox("操作胜利.","提示",64); } catch(...) { MessageBox("操作失败.","提示",MB_OK|MB_ICONERROR); } } } else MessageBox("请选择欲删除的信息.","提示",MB_OK|MB_ICONINFORMATION);}voidCDlgProviderInfo1::UpdateProvider(){ if(!InfoIsNull()) { if(m_list.GetSelectionMark()!=-1) { if(MessageBox("的确要修改数据吗?","提示",MB_YESNO|MB_ICONINFORMATION)==IDYES) { CStringc_provider; c_provider=m_list.GetItemText(m_list.GetSelectionMark(),0); CStringc_provider1,c_principal,c_phone,c_corporation,c_addr,c_netaddr,c_email; m_addr.GetWindowText(c_addr); m_corporation.GetWindowText(c_corporation); m_email.GetWindowText(c_email); m_netaddr.GetWindowText(c_netaddr); m_phone.GetWindowText(c_phone); m_principal.GetWindowText(c_principal); m_provider.GetWindowText(c_provider1); CStringsql; sql.Format("updatetb_providerinfosetprovider='%s',corporation='%s',principal='%s',phone='%s',addr='%s',web='%s',e_mail='%s'whereprovider='%s'" ,c_provider1,c_corporation,c_principal,c_phone,c_addr,c_netaddr,c_email,c_provider); m_pRs->raw_Close(); try { m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); ClearInterface(); LoadProviderInfo(); MessageBox("操作胜利.","提示",64); } catch(...) { MessageBox("操作失败.","提示",MB_OK|MB_ICONERROR); } } } else MessageBox("请选择欲修改的信息.","提示",MB_OK|MB_ICONINFORMATION); } else MessageBox("基础信息不完整.","提示",MB_OK|MB_ICONINFORMATION); }voidCDlgProviderInfo1::OnDblclkList1(NMHDR*pNMHDR,LRESULT*pResult){ introw=m_list.GetSelectionMark(); if(row!=-1) { CWnd*temp; temp=this; CStringtext; for(intindex=0;index<7;index++) { temp=this->GetNextDlgTabItem(temp); text=m_list.GetItemText(row,index); temp->SetWindowText(text); } } // *pResult=0;}查询管理:入库查询的相关代码:voidCDlgInputQuery3::Query(){ if((m_check1.GetCheck()==false)&&(m_check2.GetCheck()==false)) { MessageBox("请设置查询条件","提示",64); return; } if((m_check1.GetCheck()==true)&&(m_check2.GetCheck()==false)) { CStringc_field,c_value; m_fields.GetWindowText(c_field); m_value.GetWindowText(c_value); if(c_field.IsEmpty()||(c_value.IsEmpty())) { MessageBox("请设置查询条件","提示",64); return; } CStringsql; m_list.DeleteAllItems(); switch(m_fields.GetCurSel()) { case0: { c_field="bookname"; sql.Format("selecta.instockid,b.bookname,b.barcode,b.author,b.bookconcern,a.unitprice,a.numbersfromtb_instock_subainnerjointb_bookinfobona.barcode=b.barcodeandb.%s='%s'",c_field,c_value); break; } case1: { c_field="barcode"; sql.Format("selecta.instockid,b.bookname,b.barcode,b.author,b.bookconcern,a.unitprice,a.numbersfromtb_instock_subainnerjointb_bookinfobona.barcode=b.barcodeandb.%s='%s'",c_field,c_value); break; } case2: { c_field="instockid"; sql.Format("selecta.instockid,b.bookname,b.barcode,b.author,b.bookconcern,a.unitprice,a.numbersfromtb_instock_subainnerjointb_bookinfobona.barcode=b.barcodeanda.%s='%s'",c_field,c_value); break; } case3: { c_field="Operator"; sql.Format("selecta.instockid,b.bookname,b.barcode,b.author,b.bookconcern,a.unitprice,a.numbersfromtb_instock_subainnerjointb_bookinfobona.barcode=b.barcodeinnerjointb_instorage_maincona.instockid=c.idandc.%s='%s'",c_field,c_value); break; } case4: { c_field="provider"; sql.Format("selecta.instockid,b.bookname,b.barcode,b.author,b.bookconcern,a.unitprice,a.numbersfromtb_instock_subainnerjointb_bookinfobona.barcode=b.barcodeinnerjointb_instorage_maincona.instockid=c.idandc.%s='%s'",c_field,c_value); break; } } m_pRs->raw_Close(); m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); introw=0; while(!m_pRs->adoEOF) { CStringtemp; m_list.InsertItem(1000,""); for(inti=0;i<7;i++) { temp=(TCHAR*)(_bstr_t)m_pRs->GetFields()->GetItem((long)i)->Value; m_list.SetItemText(row,i,temp); } m_pRs->MoveNext(); row+=1; } } elseif((m_check1.GetCheck()==false)&&(m_check2.GetCheck()==true)) { m_list.DeleteAllItems(); CStringsql,c_starttime,c_endtime; m_strtime.GetWindowText(c_starttime); m_endtime.GetWindowText(c_endtime); sql.Format("selecta.instockid,b.bookname,b.barcode,b.author,b.bookconcern,a.unitprice,a.numbersfromtb_instock_subainnerjointb_bookinfobona.barcode=b.barcodeinnerjointb_instorage_maincona.instockid=imebetween'%s'and'%s'",c_starttime,c_endtime); m_pRs->raw_Close(); m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); introw=0; while(!m_pRs->adoEOF) { CStringtemp; m_list.InsertItem(1000,""); for(inti=0;i<7;i++) { temp=(TCHAR*)(_bstr_t)m_pRs->GetFields()->GetItem((long)i)->Value; m_list.SetItemText(row,i,temp); } m_pRs->MoveNext(); row+=1; } } else { CStringc_field,c_value; m_fields.GetWindowText(c_field); m_value.GetWindowText(c_value); if(c_field.IsEmpty()||(c_value.IsEmpty())) { MessageBox("请设置查询条件","提示",64); return; } CStringsql,c_starttime,c_endtime; m_strtime.GetWindowText(c_starttime); m_endtime.GetWindowText(c_endtime); if(c_field.IsEmpty()||(c_value.IsEmpty())) { MessageBox("请设置查询条件","提示",64); return; } m_list.DeleteAllItems(); switch(m_fields.GetCurSel()) { case0: { c_field="bookname"; sql.Format("selecta.instockid,b.bookname,b.barcode,b.author,b.bookconcern,a.unitprice,a.numbersfromtb_instock_subainnerjointb_bookinfobona.barcode=b.barcodeandb.%s='%s'innerjointb_instorage_maincona.instoc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度二手房交易税费缴纳及过户服务合同3篇
- 河南厂房防腐地坪施工方案
- 河北河道淤泥固化施工方案
- 河北工程大学plc课程设计
- 2024版二手车置换及车辆转让协议3篇
- 2024年度土石方项目:分包商责任合同3篇
- 河东轻防腐地坪施工方案
- 2024年标准民政离婚合同书模板版B版
- 2024版地产项目跨界合作营销顾问服务协议3篇
- 2024年度地下管网施工合同补充协议书3篇
- 法律逻辑简单学(山东联盟)智慧树知到期末考试答案章节答案2024年曲阜师范大学
- 小学二年级上册数学-数角的个数专项练习
- 园林设施维护方案
- 医疗器械质量安全风险会商管理制度
- 220kV~750kV油浸式电力变压器使用技术条件
- MOOC 生物化学与分子生物学-中国药科大学 中国大学慕课答案
- 第2课+古代希腊罗马【中职专用】《世界历史》(高教版2023基础模块)
- 金属屋面工程防水技术规程
- 《福建省安全生产条例》考试复习题库45题(含答案)
- 人工智能增强战略规划
- 无机材料与功能化学
评论
0/150
提交评论