




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VB.NET程序设计实训教程第12章综合应用12.1系统概述12.2重点模块设计12.1数据库系统简介本系统有“系统管理员”、“进货管理员”、“销售管理员”、“仓库管理员”和“总经理”五个不同的用户,每个用户的权限不同,功能实现上有所不同。登录系统时首先要在用户登录界面选择用户身份,如图所示。系统采用SQLServer2005软件设计数据库。数据库中包含10个基本表,分别为:User表、Order表、Product表、Sale表、Store表、Supplier表、Type表和Warehouse表、getmoney表和paymoney表。当以“总经理”登录时,显示的登录界面如图所示,输入正确的密码,单击“确定”按钮即可进入系统主界面。系统中“总经理”具有全部权限,如果以“总经理”登录将显示全部功能菜单。在主界面中设计了6个功能菜单。1.用户登录子模块的设计用户登录是用户管理模块的子模块。用户管理模块主要完成用户的添加、删除、修改等操作。用户登录子模块按照登录系统的用户名和密码来完成登录系统主界面的任务。(1)界面设计:用户登录窗体如图12-1所示。使用组合框控件显示User表中的用户名,使用文本框控件接收输入的密码。(2)用户登录窗体中“确定”按钮单击事件的过程代码: IfUser.LoginConfirmThen '传递用户权限到主窗体 mdiMain.Privilege=User.Privilege.Trim() '传递用户姓名到主窗体 mdiMain.UserName=comboUserName.Text mdiMain.Show() Finalize()Else '如果用户验证失败,则将登录次数加一 Times=Times+112.2重点模块设计'如果用户输入错误的用户名和密码超过三次,提示错误并退出系统IfTimes>2ThenMsgBox("您输入用户名和密码错误已经超过三次,您无权登录此系统!", MsgBoxStyle.Exclamation,"用户登录")Close()ElseMsgBox("用户名或密码输入不正确,请重试",MsgBoxStyle.Exclamation,"用户登录") ExitSubEndIf2.权限管理功能的设计(1)设计思想:用户权限在登录窗体界面中通过语句mdiMain.Privilege=User.Privilege.Trim()传递到主窗体mdiMain.vb中。例如,权限为“系统管理员”,只能使用“用户管理”功能,增、删、改、查用户,而不能使用其他功能。所以要设计只有“用户管理”菜单可见,其余四个主菜单不可见。即设置不可见的菜单其Visible属性值为False,程序代码为:If_privilege="系统管理员"ThenOrderManageMenuItem.Visible=FalseStoreManageMenuItem.Visible=FalseSaleManageMenuItem.Visible=FalseInfoManageMenuItem.Visible=False说明:其中OrderManageMenuItem、StoreManageMenuItem、SaleManageMenuItem、InfoManageMenuItem分别为订货管理菜单、入库管理菜单、出库管理菜单和商品信息管理菜单。3.数据库连接模块的设计在系统中要访问数据库,就要创建数据库连接相关的类和对象。编程建立DBConfig命名空间,在DBConfig命名空间中建立如图所示的类。可以看到DBConfig命名空间中包含七个类。其中DBDataTable、DBCommand、DBDataReader和DBDataRelation都是继承自DBConnection类的子类。所有使用数据库连接的其他类在类文件的开头只需使用Imports语句引入DBConfig命名空间,就可以使用命名空间中的任意类,这样做既规范简化了编程,同时也有利于项目的维护。4.出库管理模块的设计以“出库管理模块”为例说明系统怎样实现增、删、改、查功能。出库管理模块实现了“添加出库单”、“修改出库单”、“删除和查询出库单”功能。添加出库单子模块设计'判断销售量是否小于库存IfInteger.Parse(txtCount.Text)>MaxCountThenMessageBox.Show("库存不足!","添加出库记录",MessageBoxButtons.OK,MessageBoxIcon.Error)ReturnEndIf'计算总价DimsumAsDouble=Double.Parse(txtPrice.Text)*Integer.Parse(txtCount.Text)DimcmdAsDBCommand=NewDBCommand(NewConnectionString().ConnectionInfo)'设置SQL语句向Sale表插入记录DimSQLStringAsString="InsertIntoSaleValues('"&txtSaleDate.Text&"','"&TxtSaler.Text&"',"&comboProductID.Text&",'"&txtProductName.Text&"',"&txtCount.Text&","&txtPrice.Text&","&sum.ToString()&")“'如果Insert方法返回值大于0表示插入记录成功,否则表示插入记录失败Ifcmd.Insert(strSQL)>0Then'生成出库单后向getmoney表中插入包含收款总金额的记录SQLString="InsertIntogetmoney(日期,金额,导购员)Values('"&txtSaleDate.Text&"',"&sum.ToString()&",'"&TxtSaler.Text&"')"cmd.Insert(SQLString)'得到该商品的剩余数量DimCountAsInteger=MaxCount-Integer.Parse(txtCount.Text)IfCount>0Then'如果商品销售后还有库存,修改Product表中“数量”和“售价”字段的值cmd.Update("Product","数量="&Count,"编号",comboProductID.Text)cmd.Update("Product","售价="&txtPrice.Text,"编号",comboProductID.Text)Else'如果商品全部售罄,则从Product表中删除该商品记录cmd.Delete("Product","编号",comboProductID.Text)EndIf MsgBox("添加出库信息成功!",MsgBoxStyle.OkOnly,"添加出库表")Else MsgBox("添加出库信息失败!",MsgBoxStyle.Critical,"添加出库表")EndIf(2)修改出库单子模块设计①代码设计:'修改出库单窗体中“读取”按钮单击事件的过程代码:PrivateSubRead_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) HandlesRead.ClickDataBinding.FillTextBox(TxtSaler,"sale","导购员",NewConnectionString().ConnectionInfo,"编号",txtSaleID.Text)DataBinding.FillTextBox(txtSaleDate,"sale","日期",NewConnectionString().ConnectionInfo,"编号", txtSaleID.Text)DataBinding.FillTextBox(txtProductID,"sale","商品编号",NewConnectionString().ConnectionInfo,"编号", txtSaleID.Text)DataBinding.FillTextBox(txtProductName,"sale","商品名称", NewConnectionString().ConnectionInfo,"编号",txtSaleID.Text)DataBinding.FillTextBox(txtCount,"sale","商品数量",NewConnectionString().ConnectionInfo,"编号",txtSaleID.Text)DataBinding.FillTextBox(txtPrice,"sale","商品售价", NewConnectionString().ConnectionInfo,"编号",txtSaleID.Text)'读取信息后,出库单编号不能再修改txtSaleID.ReadOnly=TrueEndSub'修改出库单窗体中“确定”按钮单击事件的过程代码:DimcmdAsDBCommand=NewDBCommand(NewConnectionString().ConnectionInfo)'计算总价DimsumAsDouble=Double.Parse(txtPrice.Text)*Integer.Parse(txtCount.Text)'设置更新的内容字符串DimstringCont="导购员='"&ComSaler.Text&"',商品数量="&Integer.Parse(txtCount.Text)&",总计="&sum.ToString()'执行更新命令Ifcmd.Update("sale",stringCont,"编号",txtSaleID.Text)>0ThenMsgBox("修改出货单成功!",MsgBoxStyle.OkOnly,"修改出货单")ElseMsgBox("修改出货单失败!",MsgBoxStyle.Critical,"修改出货单")EndIf(3)删除和查询出库单子模块设计‘“查询”按钮单击事件的过程代码:DimstringFieldAsStringDimstringValueAsString'根据单选按钮的选择状态得到查询字段,根据文本框中的输入值得到查询关键字IfRadioButton1.CheckedThenstringField="编号"stringValue=TextBox1.TextElsestringField="导购员"stringValue="'"&TextBox1.Text&"'"EndIfListView1.Items.Clear()'在ListView1中显示满足查询条件的所有记录DataBinding.FillListView(ListView1,"sale",8, NewConnectionString().ConnectionInfo,stringField,"=",stringValue)'“删除”按钮单击事件的过程代码:PrivateSubDelete_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) HandlesDelete.ClickDimcmdAsDBCommand=NewDBCommand(NewConnectionString().ConnectionInfo)'执行删除操作Ifcmd.Delete("sale","编号",ListView1.SelectedItems(0).Text)>0ThenMsgBox("删除出库单成功!",MsgBoxStyle.OkOnly,"删除出库单")ElseMsgBox("删除出库单失败!",MsgBoxStyle.Critical,"删除出库单")EndIf'
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 在线学习平台在教育政策执行中的作用
- 抖音商户直播选品匹配度评估制度
- 抖音商户场控直播网络稳定性保障制度
- 抖音商户直播话题热度跟踪制度
- 全球教育变革中2025年跨文化交流能力培养的课程开发研究
- 全球铀矿资源地理分布与核能产业未来发展挑战研究报告
- Carbonic-anhydrase-inhibitor-30-生命科学试剂-MCE
- 黑龙江农业职业技术学院《制药工程综合设计》2023-2024学年第一学期期末试卷
- 嵩山少林武术职业学院《电影镜头画面创作》2023-2024学年第一学期期末试卷
- 广东省中学山市四中学2024-2025学年数学七上期末学业质量监测模拟试题含解析
- 2024年湖南城建职业技术学院辅导员考试真题
- 2024-2025学年下学期高一数学人教A版期末必刷常考题之频率与概率
- 设备易损配件管理制度
- 青霉素过敏反应的急救
- 2025-2030中国铝业发展状况与投资战略研究报告
- 2025年国家医疗器械抽检品种检验方案
- 防汛物资储备定额编制规程(SL298-2024)
- 无人机培训创业计划书-20250205-222450
- 舆情分析试题及答案
- 营运车辆入股协议书
- 高中数学专项提升计划
评论
0/150
提交评论