汽车销售管理系统_第1页
汽车销售管理系统_第2页
汽车销售管理系统_第3页
汽车销售管理系统_第4页
汽车销售管理系统_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

沈阳理工大学课程设计专用纸沈阳理工大学课程设计专用纸沈阳理工大学沈阳理工大学目录汽车销售管理系统 错误!未定义书签一、课程设计的目的和意义 错误!未定义书签TOC\o"1-5"\h\z二、 需求分析 1三、 模块设计 1四、 创建数据库 2五、 创建登录窗口 4六、 主窗体的设计 6七、 用户管理模块 9八、汽车信息管理模块 15九、进货信息模块 错误!未定义书签十、销售信息管理模块 错误!八、汽车信息管理模块 15九、进货信息模块 错误!未定义书签十、销售信息管理模块 错误!未定义书签卜一、查找窗体模块 36十二、结果分析 38十三、参考文献 38汽车销售管理系统课程设计的目的和意义高效的汽车销售管理系统是当前信息化汽车公司管理系统之需要。 面对庞大的汽车销售和库存信息,就需要有汽车管理系统来提高管理工作的效率。 通过建立这样的系统,可以做到汽车信息的规范管理、快速查询和科学统计,从而减少管理方面的工作量。系统开发环境为一台安装 windowsxp的个人计算机作为客户机,其上安装了 SQLServer2000,本系统使用VisualBasic6.0来开发,系统设计与运行均可在客户机上进行。需求分析本系统的设计模拟一般医院的汽车销售管理系统内容,经过充分的系统分析和调研,本系统主要包括的信息有3类:汽车商品信息、汽车进货信息以及汽车销售信息。在传统的销售管理工作中,往往是用人工清点的方式来掌握仓库中的汽车商品、 使用手工记账的方式来掌握商品的进货和销售情况。 这种方式在数量较少、库存变换少的情况下,不失为一种好的方法。但是,随着每天所发生的进货和销售情况纷繁复杂,如果借助人工来记录和管理,将会耗费大量的时间,而且容易出现错误,造成管理上的混乱。具体而言,汽车销售管理系统需要实现一下的需求:(1) 能够对医院过拥有的各种汽车的基础信息进行维护和管理。 汽车的基础信息包括:汽车的顺序号、汽车名称、汽车规格、计量单位、备注信息、库存数量等。系统需要能够对汽车信息进行添加、 修改和删除,也可以以图形的方式显示出现汽车的库存数量的比较。(2) 跟踪各种汽车的的进货信息。 汽车的进货信息包括顺序号、 汽车名称、进货数量、进货价格、进货日期、备注等。系统还需要能够对进货信息进行添加、修改和删除,也可以按照一定的条件来进行查询。(3) 跟踪各种汽车的销售信息。汽车的销售信息包括顺序号、汽车名称、顾客名称、购买数量、售出价格、销售日期、备注等。系统需要能够对销售信息进行添加、修改和删除,也可以按照一定的条件来进行查询。模块设计根据需求分析的结果,本系统主要划分为 4个子模块:用户管理、汽车信息管理、进货信息管理、销售信息管理。汽车销售管理系统不同类型的用户在系统中有不同的权限,主要有以下 3种用户:(1) 管理人员本系统的管理人员可以使用本系统的所有功能,包括用户管理、汽车信息管理、进货信息管理和销售信息管理功能。(2) 仓管人员仓管人员负责管理仓库中的汽车数量, 主要负责汽车的每次的进货情况。其只能使用系统中的进货信息管理功能模块, 对每次进货的信息进行记录,并且可以查询当前仓库中的汽车库存数量。(3) 销售人员销售人员负责汽车的日常销售工作, 需要掌握各种汽车的各次的销售情况。其只能使用本系统的汽车销售信息管理模块, 贵每次汽车的销售情况进行记录。整个系统的结构模块如图1所示。一下分别介绍系统中的各个系统 4个子模块A.用户管理模块用于管理汽车销售系统中的各种类型的用户。只有具有管理人员身份的人才能使用本模块,管理人员可以添加或者删除相应的用户,可以改变用户的身份,也可以改变某个用户的秘密。

B.汽车信息管理模块销售信息管理模块B.汽车信息管理模块销售信息管理模块▲.图1系统模块分析用来多医院所拥有的各种汽车的基础信息进行维护和管理。在系统中,需要对汽车信息进行添加、修改和删除,也可以按照一定的条件进行查询,并且不要将汽车的库存数量以图形的方式显示出来。进货信息管理模块用来跟踪汽车每一次进货的信息。该模块需要能够对进货信息进行添加、修改和删除,也可以按照一定的条件来进行查询。只有管理人员和仓管人员才能使用本模块。销售信息管理模块用来跟踪汽车每一次售货的信息。该模块需要能够对销售信息进行添加、修改和删除,也可以按照一定的条件来进行查询。只有管理人员和销售人员才能使用本模块。4•创建数据库在本系统中,需要掌握汽车的基本信息、每次汽车进货信息、每次汽车销售信息,此

外,由于要进行用户管理,还需要掌握使用本系统的用户,各种数据表如图 2,3,4,5所示数据类塑KE允也liEEl50用尸窖玛clur50闿户类型4图2用户信息表-userlist

数据类型允许仝tigiirt3itvarchar50nivarchai-5D计量单位iivaruhar50/备注Isict16Z库存数量Tiigint8图3汽车信息表-products數据类型|畏度此许空|沖1垃年耳——I"bigizil汽车名称nvarctiar30顾客8称nvarchar50购戛数量i.nt.4售出怖格moni.ey&销售日朗datetime5tnt16图4销售信息表-sell數据类型摂度允许空|pt宇耳bigiM□汽车名称nvaruhar50nvarchar50进货数最irttn进货怖格moneys进货日期datetime0备连t«xt16*图5进货信息表-stock为了数据库的规范化的设计理念, 3个表之间的关系如图6所示的关系图。•products表中的"汽车名称”字段和sell表中的"商品名称”形成一对多的参照完整性-products表中的"商品名称”字段和stock表中的"商品名称”字段形成一对多的参照完整性理ock]-—理ock]-—*(所有列) A顺序号汽军名称宫车规移计量单位 V_.-■sell*【宙有刿)古车名称帧客名称1—季买數昼图6表之间的关系5•创建登录窗体模块5.1窗体模块的功能该系统是一个基于不同用户的系统, 在本系统中有3类不同的用户:管理人员、仓管人员、销售人员。因此,在系统启动时,需要一个登录窗口,已选择不同的身份登录,然后根据不同的身份来显示不同的功能。5.2主界面的设计图7主界面5.3工作流程或者方式系统运行时,首先出现主界面。当点击“登录”按钮后,出现登录窗体。由于登录窗体时一个面向多用户的系统, 不同的用户在使用系统时, 将会拥有不同的功能。登录窗体的作用就是确定当前使用系统的用户类型。当窗体运行时,用户首先要在用户名和密码这两个文本框中输入相应的用户名和密码,然后在身份组合框中选择不同的身份。单击“确定”按钮即可进入主窗体。登录界面如图8所示。图8登录界面5.4部分代码如下:“确定”按钮的部分代码:PrivateSubcmdOK_Click()OnErrorGoToerrHandlerSetgConn=NewADODB.ConnectiongConn.Open"yyxs","teamo"DimuserAsString,pwdAsStringuser=txtUserpwd=txtPwdgnUserType=cboUserType.ListlndexgsUserName=userDimstrSQLAsStringstrSQL="select*fromuserlistwhere用户名="'&user&"'and用户密码="'&pwd&"'and用户类型="&gnUserTypeDimrAsNewADODB.Recordsetr.OpenstrSQL,gConn,adOpenStaticStaticnTryCountAsIntegerIfr.EOFThenMsgBox"对不起,无此用户或者密码不正确!请重新输入! !!",vbCritical,"错误”txtUser.SetFocustxtUser.SelStart=0txtUser.SelLength=Len(txtUser)nTryCount=nTryCount+1IfnTryCount>=3ThenMsgBox"您无权操作本系统!再见!",vbCritical,"无权限"UnloadMegConn.CloseEndIfElseUnloadMefrmMain.ShowEndIfr.CloseExitSuberrHandler:MsgBoxErr.Description,vbCritical,"错误"EndSub身份选择组合框的代码如下:PrivateSubForm_Load()cboUserType.ClearcboUserType.AddItem"管理人员",0cboUserType.AddItem"仓管人员",1cboUserType.AddItem"销售人员",2cboUserType.Listlndex=0EndSub主窗体的设计6.1窗体模块的功能如果用户通过登录窗体登录了本系统,将会出现如图 9,10,11所示的主窗体界面。该窗体是为整个系统中的窗体提供一个统一管理的环境。 其中设计了菜单,不同的菜单对应不同的系统功能;根据不同的用户身份,将会显示不同的菜单,这样就实现了使功能随用户的不同而不同的设计思路。6.2工作流程该窗体被作为系统中众多窗体的父窗体,其主要功能是提供用户所要使用的菜单项,不同身份的用户,其所能使用的菜单项也是不同的。以管理人员登录的界面显示,如图 9所示图9以仓管人员登录的界面显示,如图10所示图10以销售人员登录的界面显示,如图 11所示图11(4)密码或用户名输入错误的界面如图 12所示图126.3部分代码(1)主窗体Load事件的代码PrivateSubForm_Load()OnErrGoToerrHandlerMe丄eft=GetSetting(App.Title,"Settings","MainLeft",1000)Me.Top=GetSetting(App.Title,"Settings","MainTop",1000)Me.Width=GetSetting(App.Title,"Settings","MainWidth",6500)Me.Height=GetSetting(App.Title,"Settings","MainHeight",6500)SelectCasegnUserTypeCase0:mnuSystem.Visible=TruemnuProduct.Visible=TruemnuStock.Visible=TruemnuSell.Visible=TruemnuHelp.Visible=TrueCase1:mnuSystem.Visible=FalsemnuProduct.Visible=FalsemnuStock.Visible=TruemnuSell.Visible=FalsemnuHelp.Visible=TrueCase2:mnuSystem.Visible=FalsemnuProduct.Visible=FalsemnuStock.Visible=FalsemnuSell.Visible=TruemnuHelp.Visible=TrueEndSelectExitSuberrHandler:MsgBoxErr.Description,vbCritical,"错误"EndSub(2)各菜单项的代码PrivateSubmnuProductAdd_Click()frmProduct.mbAddMode=TruefrmProduct.ShowvbModalEndSubPrivateSubmnuProductChart_Click()DimrsAsNewADODB.Recordsetrs.Open"select*fromproducts",gConn,adOpenStaticLoadfrmChartfrmChart.Caption="当前汽车的库存状态"Dimarr()ReDimarr(1Tors.RecordCount,1To2)DimiAsIntegeri=1rs.MoveFirstDimstrAsStringWhileNotrs.EOFstr=Trim(rs("汽车名称"))arr(i,1)=""&str&""arr(i,2)=rs("库存数量")i=i+1rs.MoveNextWendWithfrmChart.charReport.Title="当前汽车的库存状态.ChartData=arrEndWithrs.ClosefrmChart.ShowvbModalEndSubPrivateSubmnuProductFind_Click()mnuProductList_ClickfrmProductList.cmdFind.Value=TrueEndSubPrivateSubmnuProductList_Click()LoadfrmProductListfrmProductList.SQL="select*fromproducts"frmProductList.ShowEndSubPrivateSubmnuSellAdd_Click()frmSell.mbAddMode=TruefrmSell.ShowvbModalEndSubPrivateSubmnuSellFind_Click()mnuSellList_ClickfrmSellList.cmdFind.Value=TrueEndSubPrivateSubmnuSellList_Click()LoadfrmSellListfrmSellList.SQL="select*fromsell"frmSellList.ShowEndSubPrivateSubmnuStockAdd_Click()frmStock.mbAddMode=TruefrmStock.ShowvbModalEndSubPrivateSubmnuStockFind_Click()mnuStockList_ClickfrmStockList.cmdFind.Value=TrueEndSubPrivateSubmnuStockList_Click()LoadfrmStockListfrmStockList.SQL="select*fromstock"frmStockList.ShowEndSubPrivateSubmnuSystemExit_Click()UnloadMeEndSubPrivateSubmnuSystemLogin_Click()UnloadMefrmLogin.ShowEndSubPrivateSubmnuSystemUser_Click()frmUser.ShowEndSub用户管理模块7.1窗体模块的功能用户管理模块有3个窗体组成:用户管理主窗体、密码窗体和用户身份选择窗体。 用户管理主窗体用于显示用户列表, 供用户选择下一步操作; 密码窗体用于添加用户时输入用户密码,或者用于变更当前用户的秘密; 用户身份选择窗体用于添加用户时选择用户身份,或用于变更当前的用户身份。7.2窗体工作流程用户管理模块有几个窗体所共同组成,其流程如图 13所示7.3窗体显示界面(1)用户管理界面如图14所示图14用尸类星 ®(2)密码窗体如图15诸选择用尸类型:C管理人员r仓嘗山厂销肯人员图16图图16(3)用户类型窗体如图167.4部分代码a用户管理代码PrivateSubcboUserType_Click()OnErrorGoToerrHandlerlstUser.ClearDimstrAsStringSelectCasecboUserType.ListIndexCase0,1,2:str="select*fromuserlistwhere用户类型="&cboUserType.ListIndexCaseElse:str="select*fromuserlist"EndSelectDimrsAsNewADODB.Recordsetrs.Openstr,gConn,adOpenStaticWhileNotrs.EOFlstUser.AddItemrs("用户名"),0IstUser.ltemData(O)=rs("用户类型")rs.MoveNextWendrs.CloseExitSuberrHandler:MsgBoxErr.Description,vbCritical,"错误"EndSubPrivateSubcmdAddUser_Click()OnErrorGoToerrHandlerDimstrUserAsStringDimstrPwdAsStringDimnTypeAsIntegergetUser:strUser=InputBox("请输入所要新建的用户的名称: ","用户名")IfstrUser=""ThenExitSubDimrsAsNewADODB.Recordsetrs.Open"select*fromuserlistwhere用户名="'&strUser&""',gConn,adOpenStaticIfNotrs.EOFThenMsgBox"该用户名已经存在! ",vbCritical,"用户名重复”GoTogetUserEndIfrs.ClosegetPwd:frmPassword.ShowvbModalstrPwd=frmPassword.txtPwd(0).TextUnloadfrmPasswordIfstrPwd=""ThenMsgBox"必须输入密码! ",vbCritical,"需要密码”GoTogetPwdEndIfgetType:frmUserType.ShowvbModalnType=frmUserType.mmUserTypeUnioadfrmUserTypeIfnType<0ThenMsgBox"必须选择用户类型! ",vbCritical,"选择用户类型”GoTogetTypeEndIfgConn.Execute"insertintouserlist(用户名,用户密码,用户类型)values('"&strUser&"','"&strPwd&"',"&nType&")"ExitSuberrHandler:MsgBoxErr.Description,vbCritical,"错误"EndSubPrivateSubcmdChangePwd_Click()OnErrorGoToerrHandlerIflstUser.Text=""ThenExitSubfrmPassword.ShowvbModalIffrmPassword.txtPwd(0).Text<>""ThengConn.Execute"updateuserlistset用户密码="'&frmPassword.txtPwd(0).Text&"'where用户名='"&lstUser.Text&"”EndIfUnloadfrmPasswordExitSuberrHandler:MsgBoxErr.Description,vbCritical,"错误"EndSubPrivateSubcmdChangeType_Click()OnErrorGoToerrHandlerIflstUser.Text=""ThenExitSubLoadfrmUserTypefrmUserType.optUserType(lstUser.ltemData(lstUser.Listlndex)).Value=TruefrmUserType.ShowvbModalIffrmUserType.mnUserType>=0ThengConn.Execute"updateuserlistset用户类型="&frmUserType.mnUserType&"where 用户名='"&lstUser.Text&"”'EndIfUnioadfrmUserTypeExitSuberrHandler:MsgBoxErr.Description,vbCritical,"错误"EndSubPrivateSubcmdClose_Click()UnloadMeEndSubPrivateSubcmdDeleteUser_Click()OnErrorGoToerrHandlerIflstUser.Text=""ThenExitSubIflstUser.Text=gsUserNameThenMsgBox"不能删除当前记录! ",vbCritical,"删除用户错误”ExitSubEndIfgConn.Execute"deletefromuserlistwhere用户名="'&lstUser.Text&""'lstUser.RemoveItemlstUser.ListIndexExitSuberrHandler:MsgBoxErr.Description,vbCritical,"错误"EndSubb密码窗体代码c用户身份选择窗体代码PrivateSubcmdCancel_Click()mnUserType=-1Me.HideEndSubPrivateSubcmdOK_Click()Me.HideEndSubPrivateSubForm_Load()optUserType(0).Value=TruemnUserType=-1EndSubPrivateSuboptUserType_Click(lndexAsInteger)mnUserType=IndexEndSub汽车信息管理模块8.1窗体模块的功能在汽车信息管理模块中,包含 3个窗体:汽车信息列表窗体、汽车信息编辑窗体和显示库存数量的窗体。汽车信息列表窗体以表格的形式列出当前系统中的汽车信息,并且为用户提供了进行各种操作的接口;汽车信息编辑窗体用于显示某一个汽车的基本信息,借助该窗体可以对某个汽车信息进行编辑,也可以向数据库增加一个汽车信息;显示库存数量的窗体主要是借助图形方式显示出汽车当前的数量。8.2窗体工作流程图17汽车信息管理模块的子功能8.3窗体界面显示1)汽车信息列表窗体Pbllx汽车名称汽车规格宣车单述备注洁层库存数量oooQ4-23540汽车名称汽车规格宣车单述备注洁层库存数量oooQ4-23540202050利马驰拉謬

圭奔法三海加通編辑⑥删除述显示所育记录®显示库存伏态⑤图18(2)汽车信息编辑窗体返回保存返回图19(3)显示库存数量窗体

图208.4部分代码A汽车信息列表窗体代码PrivateSubcmdDelete_Click()OnErrorGoToerrHandlerDimlAsLongl=grdList.TextMatrix(grdList.Row,1)gConn.Execute"deletefromproductswhere顺序号="&IUnloadMeLoadMeMe.SQL="select*fromproducts"Me.ShowExitSuberrHandler:MsgBoxErr.Description,vbCritical,"错误"EndSubPrivateSubcmdEdit_Click()OnErrorGoToerrHandlerfrmProduct.mnSerial=CLng(grdList.TextMatrix(grdList.Row,1))frmProduct.mbAddMode=FalsefrmProduct.ShowExitSuberrHandler:MsgBoxErr.Description,vbCritical,"错误"EndSubPrivateSubcmdFind_Click()frmFind.SQL=mRs.SourcefrmFind.ShowvbModalIfTrim(frmFind.msResultSQL)=""ThenExitSubUnloadMeLoadMeMe.SQL="select*fromproductswhere"&frmFind.msResultSQLMe.ShowUnloadfrmFindEndSubPrivateSubcmdReport_Click()IfmRs.EOFAndmRs.EOFThenMsgBox"当前没有任何记录! ",vbExclamation,"错误”ExitSubEndIfLoadfrmChartfrmChart.Caption=”当前汽车的库存状态”Dimarr()ReDimarr(1TomRs.RecordCount,1To2)DimiAsIntegeri=1mRs.MoveFirstDimstrAsStringWhileNotmRs.EOFstr=Trim(mRs("汽车名称"))arr(i,1)=""&str&""arr(i,2)=mRs("库存数量")i=i+1mRs.MoveNextWendWithfrmChart.charReport.Title="当前的库存汽车的剩余价值.ChartData=arrEndWithfrmChart.ShowvbModalEndSubPrivateSubcmdShowAII_Click()UnloadMeLoadMeMe.SQL="select*fromproducts"Me.ShowEndSubPrivateSubForm_Load()SetmRs=NewADODB.RecordsetDimiAsIntegerWithgrdList.Cols=7.TextMatrix(O,1)="".TextMatrix(O,2)="汽车名称".TextMatrix(0,3)="汽车规格".TextMatrix(0,4)="汽车单位".TextMatrix(0,5)="备注信息".TextMatrix(0,6)="库存数量".FixedRows=1Fori=0To.Cols-1.ColAlignment(i)=0Nexti.FillStyle=flexFillRepeat.Col=0.Row=0.RowSel=1.ColSel=.Cols-1.CellAlignment=4.ColWidth(0)=100•ColWidth⑴=0•ColWidth(2)=1000•ColWidth(3)=1000.ColWidth(4)=1000.ColWidth(5)=1000.ColWidth(6)=1000.Row=1EndWithEndSub(2)汽车信息编辑窗体代码PrivateSubcmdCancel_Click()IfmbChangeAndcmdOK.EnabledThenIfMsgBox("保存当前记录的变化吗? ",vbOKCancel+vbExclamation,"警告")=vbOKThenCallcmdOK_ClickEndIfEndIfUnloadMeUnloadfrmProductListLoadfrmProductListfrmProductList.SQL="select*fromproducts"frmProductList.ShowEndSubPrivateSubcmdOK_Click()DimstrMsgAsStringDimrsAsADODB.RecordsetDimstrSQLAsStringDimiAsIntegerFori=0To2IfTrim(txtIntem(i)&"")=""ThenSelectCaseiCase0strMsg="汽车名称”Case1strMsg="汽车规格”Case2strMsg="计量单位”EndSelectstrMsg=strMsg&”不能为空!”MsgBoxstrMsg,vbOKOnly+vbExclamation,"警告”txtlntem(i).SetFocusExitSubEndIfNextiSetrs=NewADODB.RecordsetIfmbAddModeThenstrSQL="select*fromproductswhere汽车名称="'&Trim(txtlntem(O))&"'and 汽车规格='"&Trim(txtlntem(i))&“"rs.OpenstrSQL,gConn,adOpenStaticIfNotrs.EOFThenMsgBox"已经存在相同内容的记录! ",vbOKOnly+vbExclamation,"警告”txtlntem(0).SetFocusrs.CloseExitSubEndIfrs.CloseElsestrSQL="deletefromproductswhere顺序号="&Trim(mnSerial)gConn.ExecutestrSQLEndIfstrSQL="select*fromproducts"rs.OpenstrSQL,gConn,adOpenDynamic,adLockOptimisticrs.AddNewFori=0Tors.Fields.Count-2rs.Fields(i+1)=txtIntem(i)Nextirs.Updaters.CloseIfmbAddModeThenmbChange=FalseMsgBox"添加汽车信息成功!继续添加下一条汽车信息 ",vbOKOnly+vbExclamation,"添加汽车信息"UnloadMeMe.ShowvbModalElseUnloadMefrmProductList.SQL="select*fromproducts"frmProductList.ShowEndIfEndSubPrivateSubForm_Load()DimstrSQLAsStringDimiAsIntegerDimrsAsNewADODB.RecordsetIfmbAddModeThenMe.Caption=Me.Caption&”添加"ElsestrSQL="select*fromproductswhere顺序号="' &Trim(frmProductList.grdList.TextMatrix(frmProductList.grdList.Row,1))&""'rs.OpenstrSQL,gConn,adOpenKeysetIfrs.EOF=FalseThenWithrsmnSerial=.Fields(O)Fori=0To.Fields.Count-2IfNotlsNull(.Fields(i+1))ThentxtIntem(i)=.Fields(i+1)EndIfNextiEndWithEndIfrs.CloseMe.Caption=Me.Caption&"修改”EndIfmbChange=FalseEndSubPrivateSubtxtlntem_Change(lndexAsInteger)mbChange=TrueEndSubPrivateSubtxtlntem_GotFocus(IndexAsInteger)txtIntem(Index).SelStart=0txtIntem(Index).SelLength=Len(txtIntem(Index))EndSub(3)显示库存数量的窗体代码PrivateSubForm_Resize()charReport.Left=0charReport.Top=0charReport.Height=Me.ScaleHeightcharReport.Width=Me.ScaleWidthEndSub进货信息管理模块9.1窗体模块的功能在该模块中,包含两个窗体:进货信息列表窗体和进货信息编辑窗体。进货信息列表窗体以表格形式列出当前系统中的进货信息,并且提供了进行各种操作的接口;进货信息编辑窗体用于显示某一次进货的信息, 借助该窗体可以对某次进货的信息进行编辑,也可以向数据库增加进货信息。9.2工作流程该模块所包含的功能如图 21所示。图21进货信息管理模块的子功能9.3窗体界面设计(1)进货信息列表窗体,如图 22图22

(2)进货信息编辑窗体,如图 23图239.4部分代码A进货信息列表窗体代码PrivateSubcmdAdd_Click()frmStock.mbAddMode=TruefrmStock.ShowvbModalEndSubPrivateSubcmdDelete_Click()OnErrorGoToerrHandlerDimlAsLongl=grdList.TextMatrix(grdList.Row,1)gConn.Execute"deletefromstockwhere顺序号="&lUnloadMeLoadMeMe.SQL="select*fromstock"Me.ShowExitSuberrHandler:MsgBoxErr.Description,vbCritical,"错误"EndSubPrivateSubcmdEdit_Click()frmStock.mnSerial=CLng(grdList.TextMatrix(grdList.Row,1))frmStock.mbAddMode=TruefrmStock.ShowvbModalEndSubPrivateSubcmdFind_Click()frmFind.SQL=mRs.SourcefrmFind.ShowvbModalUnloadMeLoadMeIfTrim(frmFind.msResultSQL)<>""ThenMe.SQL="select*fromstockwhere"&frmFind.msResultSQLEndIfMe.ShowUnloadfrmFindEndSubPrivateSubcmdShowAII_Click()UnloadMeLoadMeMe.SQL="select*fromstock"Me.ShowEndSubPrivateSubForm_Load()DimiAsIntegerWithgrdList.Cols=8.TextMatrix(0,1)="".TextMatrix(0,2)="汽车名称".TextMatrix(0,3)="供应商名称".TextMatrix(0,4)="进货数量".TextMatrix(0,5)="商品单价".TextMatrix(0,6)="进货日期".TextMatrix(0,7)="备注".FixedRows=1Fori=0To.Cols-1.ColAlignment(i)=0Nexti.FillStyle=flexFillRepeat.Col=0.Row=0.RowSel=1.ColSel=.Cols-1.CellAlignment=4.ColWidth(O)=100.ColWidth⑴=0.ColWidth(2)=1000.ColWidth(3)=1000.ColWidth(4)=1000.ColWidth(5)=1000.ColWidth(6)=1000.ColWidth(7)=1000.Row=1EndWithSetmRs=NewADODB.RecordsetEndSubPrivateSubForm_Resize()fraManage.Left=(Me.ScaleWidth-fraManage.Width)/2fraManage.Top=Me.ScaleHeight-200-fraManage.HeightgrdList.Top=200grdList.Width=Me.ScaleWidth-200grdList.Left=Me.ScaleLeft+100grdList.Height=Me.ScaleHeight-fraManage.Height-grdList.Top-200EndSubPrivateSubForm_Unload(CancelAsInteger)IfmRs.State<>adStateClosedThenmRs.CloseEndSubB进货信息编辑窗体代码PrivateSubcmdCancel_Click()IfmbChangeThenIfMsgBox("保存当前记录的变化吗? ",vbOKCancel+vbExclamation,"警告")=vbOKThenCallcmdOK_ClickEndIfEndIfUnloadMeUnloadfrmStockListLoadfrmStockListfrmStockList.SQL="select*fromstock"frmStockList.ShowEndSubPrivateSubcmdOK_Click()OnErrorGoToerrHandlerIftxtIntem(3).Text=""ThenMsgBox"字段不能为空,而且只能输入数字 ",vbCritical,"错误”EndIfIftxtIntem(4).Text=""ThenMsgBox"字段不能为空,而且只能输入数字 ",vbCritical,"错误”EndIfIfTrim(cboItem)=""ThenMsgBox"必须选择汽车名称",vbCritical,"错误”cboltem.SetFocusExitSubEndIfIfNotIsDate(Trim(txtIntem(5)))ThenMsgBox"请输入正确的日期格式! ",vbOKOnly+vbExclamation,"警告”txtIntem(5).SetFocusExitSubEndIfIfNotmbAddModeThengConn.Execute"deletefromstockwhere顺序号="'&mnSerial&""'EndIfDimrsAsNewADODB.Recordsetrs.Open"select*fromstock",gConn,adOpenDynamic,adLockOptimisticrs.AddNewrs("汽车名称")=cboItem.TextDimiAsIntegerFori=txtIntem.LBoundTotxtIntem.UBoundrs.Fields(i).Value=txtIntem(i)Nextirs.Updaters.ClosemnQuantity=CInt(txtlntem(3))-mnQuantitygConn.Execute"updateproductsset库存数量=库存数量+"&mnQuantity&"where 汽车名称='"&cboItem.Text&"”'IfmbAddModeThenmbChange=True",vbOKOnly+vbExclamation,"添",vbOKOnly+vbExclamation,"添UnloadMeMe.ShowvbModalElseUnloadMefrmStockList.SQL="select*fromstock"frmStockList.ShowEndIfExitSuberrHandler:MsgBoxErr.Description,vbCritical,"错误"EndSubPrivateSubForm_Load()OnErrorGoToerrHandlerDimrsAsNewADODB.Recordsetrs.Open"selectdistinet汽车名称fromproducts",gConn,adOpenKeysetIfNotrs.EOFThencboltem.ClearDoWhileNotrs.EOFcboItem.AddItemrs("汽车名称")rs.MoveNextLoopElse",vbOKOnly+MsgBox"",vbOKOnly+vbExclamation,"警告"ExitSubEndIfrs.CloseIfmbAddModeThenMe.Caption=Me.Caption&”添加"txtlntem(5)=Format(Date,"yyyy-mm-dd")txtlntem(3)=0txtlntem(4)=10mnQuantity=0ElseMe.Caption=Me.Caption&"修改”rs.Open"select*fromstockwhere顺序号="&mnSerialIfNotrs.EOFThencboItem.Text=rs("汽车名称")DimiAsIntegerFori=txtIntem.LBoundTotxtIntem.UBoundtxtlntem(i)=rs.Fields(i).ValueNextiEndIfmnQuantity=rs("进货数量")rs.CloseEndIfmbChange=FalseExitSuberrHandler:MsgBoxErr.Description,vbCritical,"错误"EndSubPrivateSubtxtlntem_Change(lndexAsInteger)mbChange=TrueEndSubPrivateSubtxtlntem_GotFocus(lndexAsInteger)txtIntem(lndex).SelStart=0txtIntem(lndex).SelLength=Len(txtlntem(lndex))EndSub销售信息管理模块10.1窗体模块的功能在该模块中,包含两个窗体:销售信息列表窗体、销售信息编辑窗体。销售信息列表窗体以表格的形式列出系统中的销售信息,并且为用户提供了进行各种操作的接口;销售信息编辑窗体用于某一次销售的信息,借助该窗体可以对某次销售的信息进行编辑,也可以向数据库增加一个销售信息。10.2工作流程该模块所包含的功能如图 24所示。图24销售信息管理模块的子功能10.3窗体界面设计(1)销售信息列表窗体,如图 25(2)销售信息编辑窗体如图 2610.4窗体设计代码A销售信息列表窗体代码图25图26PrivateSubcmdAdd_Click()frmSell.mbAddMode=TruefrmSell.ShowvbModalEndSubPrivateSubcmdDelete_Click()OnErrorGoToerrHandlerDimlAsLongl=grdList.TextMatrix(grdList.Row,1)gConn.Execute"deletefromsellwhere顺序号="&lUnloadMeLoadMeMe.SQL="select*fromsell"Me.ShowExitSuberrHandler:MsgBoxErr.Description,vbCritical,"错误"EndSubPrivateSubcmdEdit_Click()frmSell.mnSerial=CLng(grdList.TextMatrix(grdList.Row,1))frmSell.mbAddMode=TruefrmSell.ShowvbModalEndSubPrivateSubcmdFind_Click()frmFind.SQL=mRs.SourcefrmFind.ShowvbModalUnloadMeLoadMeIfTrim(frmFind.msResultSQL)<>""ThenMe.SQL="select*fromsellwhere"&frmFind.msResultSQLEndIfMe.ShowUnloadfrmFindEndSubPrivateSubcmdShowAII_Click()UnloadMeLoadMeMe.SQL="select*fromsell"Me.ShowEndSubPrivateSubForm_Load()DimiAsIntegerWithgrdList.Cols=8.TextMatrix(O,1)="".TextMatrix(O,2)="汽车名称".TextMatrix(0,3)="顾客名称".TextMatrix(0,4)="购买数量".TextMatrix(0,5)="售出价格".TextMatrix(0,6)="销售日期".TextMatrix(0,7)="备注".FixedRows=1Fori=0To.Cols-1.ColAlignment(i)=0Nexti.FillStyle=flexFillRepeat•Col=0.Row=0.RowSel=1.ColSel=.Cols-1.CellAlignment=4.ColWidth(O)=100.ColWidth⑴=0.ColWidth(2)=1000.ColWidth(3)=1000.ColWidth(4)=1000.ColWidth(5)=1000.ColWidth(6)=1000.ColWidth(7)=1000.Row=1EndWithSetmRs=NewADODB.RecordsetEndSubPrivateSubForm_Resize()fraManage.Left=(Me.ScaleWidth-fraManage.Width)/2fraManage.Top=Me.ScaleHeight-200-fraManage.HeightgrdList.Top=200grdList.Width=Me.ScaleWidth-200grdList.Left=Me.ScaleLeft+100EndSubPrivateSubForm_Unload(CancelAsInteger)IfmRs.State<>adStateClosedThenmRs.CloseEndSub(2)销售信息编辑窗体代码PrivateSubcmdCancel_Click()IfmbChangeThenIfMsgBox("保存当前记录的变化吗? ",vbOKCancel+vbExclamation,"警告")=vbOKThenCallcmdOK_ClickEndIfEndIfUnloadMeUnloadfrmSellListLoadfrmSellListfrmSellList.SQL="select*fromsell"frmSellList.ShowEndSubPrivateSubcmdOK_Click()OnErrorGoToerrHandlerIftxtIntem(3).Text=""ThenMsgBox"字段不能为空,而且只能输入数字 ",vbCritical,"错误”EndIfIftxtIntem(4).Text=""ThenMsgBox"字段不能为空,而且只能输入数字 ",vbCritical,"错误”EndIfIfTrim(cboItem)=""ThenMsgBox"必须选择汽车名称",vbCritical,"错误”cboItem.SetFocusExitSubEndIfIfNotIsDate(Trim(txtIntem(5)))ThenMsgBox"请输入正确的日期格式! ",vbOKOnly+vbExclamation,"警告”txtIntem(5).SetFocusExitSubEndIfIfNotmbAddModeThengConn.Execute"deletefromsellwhere顺序号="'&mnSerial&""'EndIfDimrsAsNewADODB.Recordsetrs.Open"select*fromsell",gConn,adOpenDynamic,adLockOptimisticrs.AddNewrs("汽车名称")=cboItem.TextDimiAsIntegerFori=txtlntem.LBoundTotxtIntem.UBoundrs.Fields(i).Value=txtlntem(i)Nextirs.Updaters.ClosemnQuantity=CInt(txtlntem(3))-mnQuantity汽车gConn.Execute"updateproductsset库存数量=库存数量-"&mnQuantity&"where名称='"&cboItem.Text&"”'汽车IfmbAddModeThenmbChange=FalseMsgBox"添加进货信息成功!继续添加下一条进货信息 ",vbOKOnly+vbExclamation,"添加进货信息"UnloadMeMe.ShowvbModalElseUnloadMefrmSellList.SQL="select*fromsell"frmSellList.ShowEndIfExitSuberrHandler:MsgBoxErr.Description,vbCritical,"错误"EndSubPrivateSubForm_Load()OnErrorGoToerrHandlerDimrsAsNewADODB.Recordsetrs.Open"selectdistinet汽车名称fromproducts",gConn,adOpenKeysetIfNotrs.EOFThencboltem.ClearDoWhileNotrs.EOFcboltem.AddItemrs("汽车名称")rs.MoveNextLoopElseMsgBox"当前数据库不包含任何的汽车信息。请先设置汽车信息! ",vbOKOnly+vbExclamation,"警告"ExitSubEndIfrs.CloseIfmbAddModeThenMe.Caption=Me.Caption&"添加"txtIntem(5)=Format(Date,"yyyy-mm-dd")txtIntem(3)=0txtIntem(4)=10mn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论