




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
个体工商户管理系统的设计与开发开发背景当今社会是一个信息社会,计算机信息管理正以迅猛的势头影响着各行各业,它对规范业务流程、提高整体管理水平有着十分重大的意义。随着近年来个体工商户的不断增加,以往单纯靠直面记录工商信息的方式已经不能满足当前的需要了。例如,每当需要查询、修改某个工商户的信息时,无法迅速、便捷地查找到相关的纸面资料,同时纸面记录还具有易破损和易丢失等缺点,因此,开发一套专门用于个体工商户管理的系统是为了适应经济发展的需要而提出的。需求分析实现目标:在对客户的需求进行分析的基础上。得出以下3个必须实现的基本目标;{=1\*GB3I①基本业务功能:需要实现工商户的工商信息、歇业信息、变更信息、年检信息的输入和保存功能。查询浏览功能:必须具备查看开业户、歇业户和年检户的功能。用户管理功能:必须具备添加用户、修改用户资料、删除用户的功能;同时具备哟过户的权限管理功能,使不同权限的用户在登录系统之后对系统具有不同的控制权。在实现上述要求的基础上,系统还可以扩充,如增加模糊查询、报表导出、打印等模块。个体工商管理系统的功能及其业务要求如下:⑴工商户信息管理提供对个体工商户的信息管理能力,包括工商户信息的注册、变更、歇业和年检。开业登记(注册)该功能用于将工商户的注册信息保存到数据库的“工商信息表”中,所需要录入信息的架构【说明】*表中的“注册号”要求为18为纯数字字符串,而且不能重复。*表中的“身份证号”要求兼容性新、旧两种身份证号码变更修改该功能是对已经登记的工商户信息提供修改。工商户的信息修改之后,还需要记录每次变更的内容,因此需要建立一个“变更信息表”【说明】*表中的“注册号”对应“工商信息表”中的注册号。当今工商户的信息发生变更后,需要将相应的注册号保存到该表中。*表中的“变更时间”为系统当前时间,格式要求为:当前日期+当前时间。*“工商信息表”中的注册号与“变更信息表”中的注册号是一对多关系。“一对多关系”是表间最常见的关系类型。在这种关系类型中,表A中的行开业在表B中有许多匹配行,但是表B中的行只能在表A中有一个匹配行。歇业注销该功能用于对歇业的工商户信息进行处理:将歇业的工商户信息保存到“歇业表”中,然后将该工商户的信息冲“工商信息表”中删除。“歇业表”的结构除了具有与“工商信息表”相同字段意外,还需要一个数据类型为日期/时间的“歇业日期”字段工商年检该功能用于将参加过年检的工商户的注册号、字号名称及年检日期保存到一个“年检表”中用于将来查询某个工商户是否参加过年检。【说明】*“工商信息表”中的注册号与“年检表”中的注册号是一对多关系。*年检的用户录入界面除了提供年检日期的录入以外,还需要提供可修改工商信息表中的“截止日期”的功能,当保存年检信息的同时,更新工商信息表中的“截止日期”。.浏览查询要求提供的基本功能是开业查看开业户、歇业户和年检户的信息。在浏览的同时,能够根据选择的工商信息注册号,显示该工商户的其他信息。用户管理用户管理包含2个功能:用户信息管理和注销。用户信息管理具备添加、修改、删除和浏览用户资料4项功能。用户的类别有3中,具有不同的权限:*查看和修改用户信息。在修改用户资料的时候,用户名也可以被修改。*操作员:可以对个体工商户的数据进行查看和修改,但不能查看和修改用户信息。注销功能清除当前登记用户保存在内存中的信息,系统还原为初始登录状态,即出现“登录”对话框。所有类型都提供“注销”功能。.帮助提供关于软件的基本信息、用户使用手册等内容,要求用户手册包含软件的基本功能介绍、常见问题以及技术支持信息等。系统结构图系统结构图可以很直观的反应出系统的组成框架图,我们做的这个系统实现了什么功能通过下图可以很好的体会到。数据库设计在对整体的系统的需求设计以及系统的结构图有了很清晰地轮廓以后,下面就要针对强大的数据库进行设计.以下就是主要的数据库表设计:创建个体工商户管理数据库创建个体信息表创建其他数据表【说明】建立一个数据库所要用到的是易操作的microsoftaccess2003,软件。具体的如何使用这里就不做过多的详细解释了。需要说明的就是主键的作用,主键在数据库设计里面是很重要的,它是用于唯一标示数据库表的每条记录。主键建立之后,数据库就会同时为该主键建立索引。索引便可以加快查询速度,添加索引之后,数据库执行查询时首先检索索引中的记录以便快速定位记录所在的位置。另外,在创建其他的表的同时,例如“工商信息表”与“变更信息表”,“工商信息表”与“歇业表”存在着一对多的关系,因此要添加类型为“自动编号”的“ID”字段来与“注册号”组成一条记录的唯一标识。详细设计创建项目于公共模块这个环节是我们比较熟悉的,我们主要是基于vb语言来做界面设计,多个窗体的设计,一般以主窗体为窗体容器,以便于其他窗体在里面运行。创建“个体工商户管理系统”项目卜表设置MainForm窗体的部分属性属性设置说明IsMdiContainerTrue使MainForm变成窗体容器Text个体工商户管理系统显示在MainForm窗体的标题栏WindowsStateMaximized使MainForm窗体运仃时最大化下表为主菜单控件的菜单显示项目工商户管理浏览查询用户管理帮助开业登记查看开业户用户信息帮助手册表更修改查看歇业户注销关于歇业注销查看年监护工商年检下图为mainform的设计界面图添加公共模块公共模块的作用主要是通过类封装一些常用的方法,不但可以增强代码的复用性,而且还可以隐藏方法的实现细节,减少整体编码的复杂性,同时通过创建一些角色使得代码更易读懂。添加MyDbEngine类MyDbEngine类提供常用的数据库操作方法,目的在于将待定的数据库操作对象进行封装。不需要知道使用的是什么数据库,就可以调用。本例当中具体的类添加方法:在“个体工商户管理系统”项目下的Moudles文件夹下添加类,代码清单如下:ImportsSystem.Data.OleDbImportsSystem.Data.CommonImportsSystem.IO'''<summary>'''数据库操作类。提供了执行查询等数据库操作方法。'''</summary>'''<remarks></remarks>PublicClassMyDbEnginePrivateSharedReadonlyDB_CONNECTIONAsString="PROVIDER=Microsoft.Jet.OLEDB.4.0;DataSource="&_Path.Combine(Application.StartupPath,"db\个体工商管理.mdb")PrivateconnAsOleDbConnection=NothingPublicSubNew()EndSub'''<summary>'''打开数据库连接。'''</summary>'''<remarks></remarks>PublicSubOpenConnect()IfIsConnectionOpened()=FalseThenconn=NewOleDbConnection(DB_CONNECTION)conn.Open()EndIfEndSub'''<summary>'''关闭数据库连接。'''</summary>'''<remarks></remarks>PublicSubCloseConnect()IfIsConnectionOpened()Thenconn.Close()conn=NothingEndIfEndSub'''<summary>'''执行SQL语句并返回影响的行数。'''</summary>'''<paramname="cmdText">SQL语句。</param>'''<returns></returns>'''<remarks></remarks>PublicFunctionExecuteNonQuery(ByValcmdTextAsString)AsIntegerOpenConnect()DimcmdAsOleDbCommand=NewOleDbCommand(cmdText,conn)Returncmd.ExecuteNonQuery()EndFunction'''<summary>'''执行SQL语句,并返回结果集。'''</summary>'''<paramname="cmdText">SQL语句。</param>'''<returns></returns>'''<remarks></remarks>PublicFunctionExecuteReader(ByValcmdTextAsString)AsDbDataReaderOpenConnect()DimcmdAsOleDbCommand=NewOleDbCommand(cmdText,conn)Returncmd.ExecuteReader()EndFunction'''<summary>'''判断数据库连接是否已经打开。'''</summary>'''<returns></returns>'''<remarks></remarks>PublicFunctionIsConnectionOpened()AsBooleanIfIsNothing(conn)ThenReturnFalseEndIfReturnTrueEndFunction'''<summary>'''判断工商信息表中某个字段中是否包含指定的值。'''</summary>'''<paramname="tableName">表名。</param>'''<paramname="fieldName">字段名。</param>'''<paramname="fieldValue">字段对应的内容,必须为字符串型。</param>'''<returns>如果表中已经有该值的记录则返回True,否则返回False。</returns>'''<remarks>'''示例:''' '判断工商表中是否存在0001的注册号。''' DimenginAsNewMyDbEngine''' DimisExistsAsBoolean'''isExists=engin.IsValueExists("注册号","0001”)'''</remarks>PublicFunctionIsValueExists(ByValtableNameAsString,ByValfieldNameAsString,ByValfieldValueAsString)AsBooleanDimenginAsNewMyDbEngineDimcmdTextAsStringcmdText="select*from"+tableName+"where"+fieldName&"='"+fieldValue+"'”DimreaderAsDbDataReader=Me.ExecuteReader(cmdText)reader.Read()DimisExistsAsBoolean=reader.HasRowsreader.Close()ReturnisExistsEndFunction'''<summary>'''根据传入的查询条件返回结果集。'''</summary>'''<paramname="cmdText">SQL语句。</param>'''<returns></returns>'''<remarks></remarks>PublicFunctionExecuteDataSet(ByValcmdTextAsString)AsDataSetOpenConnect()DimmyDataSetAsNewDataSetDimadapterAsOleDbDataAdapter=NewOleDbDataAdapter(cmdText,conn)adapter.Fill(myDataSet)ReturnmyDataSetEndFunction添加UerPrivilege类代码如下'''<summary>'''用户权限。定义了用户可具备的权限。'''</summary>'''<remarks></remarks>PublicClassUserPrivilegePublicSharedReadOnlyManagementAsString=”系统管理员"PublicSharedReadOnlyOperationAsString="操作员"PublicSharedReadOnlyNormalAsString="普通用户”EndClass添加UserInfo类代码如下:PublicClassUserInfo'用户IDPrivatestrUserIdAsLongPublicPropertyUserId()AsStringGetReturnMe.strUserIdEndGetSet(ByValvalueAsString)Me.strUserId=valueEndSetEndProperty'用户名PrivatestrUserNameAsStringPublicPropertyUserName()AsStringGetReturnMe.strUserNameEndGetSet(ByValvalueAsString)Me.strUserName=valueEndSetEndProperty'用户密码PrivatestrUserPasswordAsStringPublicPropertyUserPassword()AsStringGetReturnMe.strUserPasswordEndGetSet(ByValvalueAsString)Me.strUserPassword=valueEndSetEndProperty'用户权限PrivatestrUserPrivilegeAsStringPublicPropertyUserPrivilege()AsStringGetReturnMe.strUserPrivilegeEndGetSet(ByValvalueAsString)Me.strUserPrivilege=valueEndSetEndProperty'重写ToString()方法PublicOverridesFunctionToString()AsStringReturnMe.UserNameEndFunctionEndClass添加CommonUtil类代码如下PublicClassCommonUtil'''<summary>'''获取新的注册号。'''</summary>'''<returns>返回新获取的注册号。</returns>'''<remarks></remarks>PublicSharedFunctionGetNewRegistNumber()AsStringDimregistNumAsString'获得当前日期及时间的刻度数registNum=Date.Now.Ticks'判断时间日期刻度数的长度是否超过注册表规定的长度IfregistNum.Length>CommonConstants.REGISTER_LENGTHThenReturnregistNum.Substring(0,CommonConstants.REGISTER_LENGTH)ElseReturnregistNumEndIfEndFunctionEndClass添加CommonConstants模块代码如下ModuleCommonConstants'注册号的长度PublicReadOnlyREGISTER_LENGTHAsInteger=18EndModule添加CommonVariable模块代码如下ModuleCommonVariable'当前登陆的用户信息对象PublicloginUserAsUserInfoEndModule模块设计工商管理模块需要实现的功能有:开业登记、变更修改、鞋业注销以及年检工商开业登记窗体设计的界面图如下:
代码设计如下:窗体load事件PublicClass开业登记PrivateSub开业登记_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadMe.btn添加下一个.Enabled=FalseMe.txt注册号.Text=CommonUtil.GetNewRegistNumber()Me.txt起始日期.Text=Today.ToString("yyyy-MM-dd")Me.txt截止日期.Text=Today.ToString("yyyy-MM-dd")Me.txt发照日期.Text=Today.ToString("yyyy-MM-dd")Me.txt出生年月.Text=Today.ToString("yyyy-MM-dd")'添加经营方式Me.cmb经营方式.Items.Add("零售”)Me.cmb经营方式.Items.Add("服务”)Me.cmb经营方式.Items.Add("批发”)Me.cmb经营方式.SelectedIndex=0'设置默认选中的列'添加组织形式Me.cmb组成形式.Items.Add("个人”)Me.cmb组成形式.Items.Add("家庭”)Me.cmb组成形式.SelectedIndex=0'添加性别Me.cmb性别.Items.Add("男”)Me.cmb性别.Items.Add("女”)Me.cmb性别.SelectedIndex=0'添加民族Me.cmb民族.Items.Add("汉”)Me.cmb民族.Items.Add("苗”)Me.cmb民族.Items.Add("黎”)Me.cmb民族.Items.Add("回”)Me.cmb民族.Items.Add("蒙古”)Me.cmb民族.Items.Add("维吾尔”)Me.cmb民族.SelectedIndex=0EndSub“确定”按钮的click事件PrivateSubbtn确定_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtn确定.ClickDimenginAsNewMyDbEngineDimcmdTextAsString'打开数据库连接engin.OpenConnect()DimisExistsAsBoolean'检查字号名称是否已经被别的商家注册DimcompanyNameAsString=Me.txt字号名称.Text.Trim()isExists=engin.IsValueExists("工商信息表","字号名称",companyName)IfisExistsThenMessageBox.Show(-该字号名称已存在,请重新输入字号名称!”)ExitSubEndIf'检查经营者地址是否已经被别的商家使用DimcompanyAddressAsString=Me.txt经营地址.Text.Trim()isExists=engin.IsValueExists("工商信息表","经营地址”,companyAddress)IfisExistsThenMessageBox.Show("该经营地址已存在,请重新输入经营地址!")ExitSubEndIfcmdText="insertinto工商信息表(注册号,字号名称,经营者姓名,性别,"&"出生年月,民族,身份证号,家庭住址,联系电话,组成形式,经营方式,"&_"资金数额,经营地址,起始期限,截止期限,发照日期,经营范围)"cmdText=cmdText+"values('"&_Me.txt注册号.Text+"','"&_Me.txt字号名称.Text&"','"&_Me.txt姓名.Text&"','"&_Me.cmb性别.Text&"','"&_Me.txt出生年月.Text&"','"&_Me.cmb民族.Text&"','"&_Me.txt身份证号.Text&"','"&_Me.txt家庭住址.Text&"','"&_Me.txt联系电话.Text&"','"&_Me.cmb组成形式.Text&"','"&_Me.cmb经营方式.Text&"',"&_Me.txt资金数额.Text&",'"&_Me.txt经营地址.Text&"','"&_Me.txt起始日期.Text&"','"&_Me.txt截止日期.Text&"','"&_Me.txt发照日期.Text&"','"&_Me.txt经营范围.Text&"')"DimresultAsInteger=engin.ExecuteNonQuery(cmdText)Ifresult<1ThenMessageBox.Show("操作失败!")engin.CloseConnect()ExitSubEndIf'关闭数据库连接engin.CloseConnect()btn添加下一个.Enabled=TrueMessageBox.Show("完成!")EndSub添加“下一个”按钮的click事件PrivateSubbtn添加下一个_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtn添加下一个.ClickMe.txt注册号.Text=CommonUtil.GetNewRegistNumber()Me.txt字号名称.Text=""Me.txt姓名.Text=""Me.cmb性别.Text=""Me.txt出生年月.Text=""Me.cmb民族.Text=""Me.txt身份证号.Text=""Me.txt家庭住址.Text=""Me.txt联系电话.Text=""Me.cmb组成形式.Text=""Me.cmb经营方式.Text=""Me.txt资金数额.Text=""Me.txt经营地址.Text=""Me.txt截止日期.Text=""Me.txt经营范围.Text=""EndSub“关闭”按钮的click事件PrivateSubbtn关闭—Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtn关闭.ClickMe.Close()EndSubEndClass变更修改界面设计如下图:代码设计如下:窗体load事件PublicClass变更修改PrivateSub变更修改_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadMe.btn更新.Enabled=False'添加经营方式Me.cmb经营方式.Items.Add("零售”)Me.cmb经营方式.Items.Add("服务”)Me.cmb经营方式.Items.Add("批发”)Me.cmb经营方式.SelectedIndex=0'设置默认选中的列'添加组织形式Me.cmb组成形式.Items.Add("个人”)Me.cmb组成形式.Items.Add("家庭”)Me.cmb组成形式.SelectedIndex=0'添加性别Me.cmb性别.Items.Add("男”)Me.cmb性别.Items.Add("女”)Me.cmb性别.SelectedIndex=0'添加民族Me.cmb民族.Items.Add("汉”)Me.cmb民族.Items.Add("苗”)Me.cmb民族.Items.Add("黎”)Me.cmb民族.Items.Add("回”)Me.cmb民族.Items.Add("蒙古”)Me.cmb民族.Items.Add("维吾尔”)Me.cmb民族.SelectedIndex=0EndSub“查询”按钮的click事件PrivateSubbtn查询_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtn查询.ClickDimregistNumberAsString=Me.txt查询注册号.Text.Trim()IfregistNumber.Length<>CommonConstants.REGISTER_LENGTHThenMessageBox.Show("注册号位数不对,请重新输入!")ExitSubEndIfDimenginAsNewMyDbEngineDimreaderAsCommon.DbDataReaderDimcmdTextAsString'打开数据库连接engin.OpenConnect()'从工商信息表中读入注册号对应记录的工商信息cmdText="select*from工商信息表where注册号='"+registNumber+"'”reader=engin.ExecuteReader(cmdText)reader.Read()IfIsNothing(reader)Orreader.HasRows=FalseThenMessageBox.Show("该工商户不存在!")reader.Close()engin.CloseConnect()ExitSubEndIfMe.txt注册号.Text=reader("注册号”).ToString()Me.txt字号名称.Text=reader("字号名称”).ToString()Me.txt姓名.Text=reader("经营者姓名”).ToString()Me.cmb性别.Text=reader("性别”).ToString()Me.txt出生年月.Text=Date.Parse(reader("出生年月”).ToString()).ToString("yyyy-MM-dd")Me.cmb民族.Text=reader("民族”).ToString()Me.txt身份证号.Text=reader("身份证号”).ToString()Me.txt家庭住址.Text=reader("家庭住址”).ToString()Me.txt联系电话.Text=reader("联系电话”).ToString()Me.cmb组成形式.Text=reader("组成形式”).ToString()Me.cmb经营方式.Text=reader("经营方式”).ToString()Me.txt资金数额.Text=reader("资金数额”).ToString()Me.txt经营地址.Text=reader("经营地址”).ToString()Me.txt起始日期.Text=Date.Parse(reader("起始期限).ToString()).ToString("yyyy-MM-dd")Me.txt截止日期.Text=Date.Parse(reader("截止期限).ToString()).ToString("yyyy-MM-dd")Me.txt发照日期.Text=Date.Parse(reader("发照日期).ToString()).ToString("yyyy-MM-dd")Me.txt经营范围.Text=reader("经营范围”).ToString()'调用对象的Close()方法回收资源reader.Close()engin.CloseConnect()Me.btn更新.Enabled=TrueEndSub“更新”按钮的click事件PrivateSubbtn更新_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtn更新.ClickDimenginAsNewMyDbEngineDimcmdTextAsStringDimregistNumberAsStringengin.OpenConnect()registNumber=Me.txt注册号.Text'检查字号名称是否已经被别的商家注册cmdText="select*from工商信息表where字号名称='"&CompanyName&_"'and注册号<>'"®istNumber&"'"DimreaderAsCommon.DbDataReader=engin.ExecuteReader(cmdText)IfNotIsNothing(reader)Andreader.HasRowsThenMessageBox.Show(-该字号名称已存在,请重新输入字号名称!")engin.CloseConnect()ExitSubEndIfreader.Close()'检查经营者地址是否已经被别的商家使用cmdText="select*from工商信息表where经营地址='"&Me.txt经营地址.Text&_"'and注册号<>'"®istNumber&"'"reader=engin.ExecuteReader(cmdText)IfNotIsNothing(reader)Andreader.HasRowsThenMessageBox.Show("该经营地址已存在,请重新输入经营地址!")engin.CloseConnect()ExitSubEndIfreader.Close()'更新工商信息cmdText="update工商信息表set字号名称='"&Me.txt字号名称.Text&_"',经营者姓名='"&Me.txt姓名.Text&_"',性别='"&Me.cmb性别.Text&_"',出生年月='"&Me.txt出生年月.Text&_"',民族='"&Me.cmb民族.Text&_"',身份证号='"&Me.txt身份证号.Text&_"',家庭住址='"&Me.txt家庭住址.Text&_"',联系电话='"&Me.txt联系电话.Text&_"',组成形式='"&Me.cmb组成形式.Text&_"',经营方式='"&Me.cmb经营方式.Text&_"',资金数额='"&Me.txt资金数额.Text&_"',经营地址='"&Me.txt经营地址.Text&_"',起始期限='"&Me.txt起始日期.Text&_"',截止期限='"&Me.txt截止日期.Text&_"',发照日期='"&Me.txt发照日期.Text&_"',经营范围='"&Me.txt经营范围.Text&"'"&_"where注册号='"®istNumber&"'”DimresultAsInteger=engin.ExecuteNonQuery(cmdText)Ifresult>0ThenMessageBox.Show("保存成功!")ElseMessageBox.Show("保存失败!")engin.CloseConnect()ExitSubEndIf'添加一条变更记录到“变更信息表”中DimaddRecordTextAsStringaddRecordText="insertinto变更信息表(注册号,变更时间)values"&_"('"&Me.txt注册号.Text&"','"&Date.Now.ToString()&"')"engin.ExecuteNonQuery(addRecordText)'关闭数据库连接engin.CloseConnect()Me.btn更新.Enabled=FalseEndSub“关闭”按钮的click事件PrivateSubbtn关闭—Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtn关闭.ClickMe.Close()EndSubEndClass歇业注销设计界面如下图:代码设计如下:窗体load事件代码PublicClass歇业注销PrivateSub歇业注销_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadMe.btn注销.Enabled=FalseEndSub查询按钮的click事件代码PrivateSubbtn查询_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtn查询.ClickDimregistNumberAsString=Me.txt查询注册号.Text.Trim()IfregistNumber.Length<>CommonConstants.REGISTER_LENGTHThenMessageBox.Show("注册号位数不对,请重新输入!")ExitSubEndIfDimenginAsNewMyDbEngineDimreaderAsCommon.DbDataReaderDimcmdTextAsString'打开数据库连接engin.OpenConnect()'从工商信息表中读入注册号对应记录的工商信息cmdText="select*from工商信息表where注册号='"+registNumber+"'”reader=engin.ExecuteReader(cmdText)reader.Read()IfIsNothing(reader)Orreader.HasRows=FalseThenMessageBox.Show("该工商户不存在!")reader.Close()engin.CloseConnect()ExitSubEndIfMe.txt注册号.Text=reader("注册号”).ToString()Me.txt字号名称.Text=reader("字号名称”).ToString()Me.txt姓名.Text=reader("经营者姓名”).ToString()Me.cmb性别.Text=reader("性别”).ToString()Me.txt出生年月.Text=Date.Parse(reader("出生年月”).ToString()).ToString("yyyy-MM-dd")Me.cmb民族.Text=reader("民族”).ToString()Me.txt身份证号.Text=reader("身份证号”).ToString()Me.txt家庭住址.Text=reader("家庭住址”).ToString()Me.txt联系电话.Text=reader("联系电话”).ToString()Me.cmb组成形式.Text=reader("组成形式”).ToString()Me.cmb经营方式.Text=reader("经营方式”).ToString()Me.txt资金数额.Text=reader("资金数额”).ToString()Me.txt经营地址.Text=reader("经营地址”).ToString()Me.txt起始日期.Text=Date.Parse(reader("起始期限”).ToString()).ToString("yyyy-MM-dd")Me.txt截止日期.Text=Date.Parse(reader("截止期限”).ToString()).ToString("yyyy-MM-dd")Me.txt发照日期.Text=Date.Parse(reader("发照日期”).ToString()).ToString("yyyy-MM-dd")Me.txt经营范围.Text=reader("经营范围”).ToString()'调用对象的Close()方法回收资源reader.Close()engin.CloseConnect()Me.btn注销.Enabled=TrueEndSub注销按钮的click事件PrivateSubbtn注销_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtn注销.Click'确认是否真的进行歇业操作DimanswerAsMsgBoxResultanswer=MessageBox.Show("是否真的对该工商户进行歇业操作?","歇业确认”,MessageBoxButtons.YesNo)Ifanswer<>MsgBoxResult.YesThenExitSub'保存工商户信息到歇业表中DimenginAsNewMyDbEngineDimcmdTextAsStringcmdText="insertinto歇业表(注册号,字号名称,经营者姓名,性别,"&_"出生年月,民族,身份证号,家庭住址,联系电话,组成形式,经营方式,"&_"资金数额,经营地址,起始期限,截止期限,发照日期,经营范围,歇业日期)”cmdText=cmdText+"values('"&_Me.txt注册号.Text+"','"&_Me.txt字号名称.Text&",,,"&_Me.txt姓名.Text&",,,"&_Me.cmb性别.Text&",,,"&_Me.txt出生年月.Text&",,,"&_Me.cmb民族.Text&",,,"&_Me.txt身份证号.Text&",,,"&_Me.txt家庭住址.Text&",,,"&_Me.txt联系电话.Text&",,,"&_Me.cmb组成形式.Text&",,,"&_Me.cmb经营方式.Text&",,"&_Me.txt资金数额.Text&",,"&_Me.txt经营地址.Text&",,,"&_Me.txt起始日期.Text&",,,"&_Me.txt截止日期.Text&",,,"&_Me.txt发照日期.Text&",,,"&_Me.txt经营范围.Text&",,,"&_Today.ToString("yyyy-MM-dd")&",)"DimresultAsInteger=engin.ExecuteNonQuery(cmdText)Ifresult<1ThenMessageBox.Show("操作失败!")engin.CloseConnect()ExitSubEndIf,将当前注册号的工商信息从工商信息表中删除cmdText="deletefrom工商信息表where注册号=,"&Me.txt注册号.Text&result=engin.ExecuteNonQuery(cmdText)Ifresult<1ThenMessageBox.Show("操作工商信息表失败!")engin.CloseConnect()ExitSubEndIfengin.CloseConnect()MessageBox.Show("歇业成功!")Me.txt查询注册号.Text=""Me.txt注册号.Text=""Me.txt起始日期.Text=""Me.txt发照日期.Text=""Me.txt字号名称.Text=""Me.txt姓名.Text=""Me.cmb性别.Text=""Me.txt出生年月.Text=""Me.cmb民族.Text=""Me.txt身份证号.Text=""Me.txt家庭住址.Text=""Me.txt联系电话.Text=""Me.cmb组成形式.Text=""Me.cmb经营方式.Text=""Me.txt资金数额.Text=""Me.txt经营地址.Text=""Me.txt截止日期.Text=""Me.txt经营范围.Text=""EndSub关闭按钮的click事件PrivateSubbtn关闭—Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtn关闭.ClickMe.Close()EndSubEndClass年检工商设计界面如下图:代码设计如下:窗体load事件PublicClass工商年检PrivateSub工商年检_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadMe.btn保存.Enabled=FalseEndSub查询按钮的click事件PrivateSubbtn查询_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtn查询.ClickDimregistNumberAsString=Me.txt查询注册号.Text.Trim()DimenginAsNewMyDbEngineDimreaderAsCommon.DbDataReaderDimcmdTextAsString'打开数据库连接engin.OpenConnect()'检查对应注册号是否已经参加过年检cmdText="select*from年检表where注册号='"+registNumber+"'"reader=engin.ExecuteReader(cmdText)reader.Read()IfNotIsNothing(reader)Andreader.HasRows=TrueThenDimcheckYearAsStringDimthisYearAsStringcheckYear=DateTime.Parse(reader("年检日期”).ToString()).Year.ToString()thisYear=Date.Now.Year.ToString()IfcheckYear.Equals(thisYear)ThenMessageBox.Show("该工商户已参加年检!")reader.Close()engin.CloseConnect()ExitSubEndIfEndIfreader.Close()'从工商信息表中读入注册号对应记录的工商信息cmdText="select*from工商信息表where注册号='"+registNumber+reader=engin.ExecuteReader(cmdText)reader.Read()IfIsNothing(reader)Orreader.HasRows=FalseThenMessageBox.Show("该工商户不存在!")reader.Close()engin.CloseConnect()ExitSubEndIfMe.txt注册号.Text=reader("注册号”).ToString()Me.txt字号名称.Text=reader("字号名称”).ToString()Me.txt姓名.Text=reader("经营者姓名”).ToString()Me.cmb性别.Text=reader("性别”).ToString()Me.txt出生年月.Text=Date.Parse(reader("出生年月).ToString()).ToString("yyyy-MM-dd")Me.cmb民族.Text=reader("民族”).ToString()Me.txt身份证号.Text=reader("身份证号”).ToString()Me.txt家庭住址.Text=reader("家庭住址”).ToString()Me.txt联系电话.Text=reader("联系电话”).ToString()Me.cmb组成形式.Text=reader("组成形式”).ToString()Me.cmb经营方式.Text=reader("经营方式”).ToString()Me.txt资金数额.Text=reader("资金数额”).ToString()Me.txt经营地址.Text=reader("经营地址”).ToString()Me.txt起始日期.Text=Date.Parse(reader("起始期限).ToString()).ToString("yyyy-MM-dd")Me.txt截止日期.Text=Date.Parse(reader("截止期限).ToString()).ToString("yyyy-MM-dd")Me.txt发照日期.Text=Date.Parse(reader("发照日期).ToString()).ToString("yyyy-MM-dd")Me.txt经营范围.Text=reader("经营范围”).ToString()'调用对象的Close()方法回收资源reader.Close()engin.CloseConnect()Me.btn保存.Enabled=TrueEndSub参加年检按钮的checkedchanged事件PrivateSubchk参加年检_CheckedChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handleschk参加年检.CheckedChangedMe.btn保存.Enabled=TrueEndSub保存按钮的click事件PrivateSubbtn保存_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtn保存.ClickDimenginAsNewMyDbEngineDimcmdTextAsString'打开数据库连接engin.OpenConnect()'将年检信息保存到年检表中cmdText="insertinto年检表(注册号,字号名称,年检日期)values("&_"'"&Me.txt注册号.Text.Trim()&"'"&_",'"&Me.txt字号名称.Text.Trim()&"'"&_",'"&Me.txt年检日期.Text.Trim()&"')"engin.ExecuteNonQuery(cmdText)'更新截止日期cmdText="update工商信息表set截止期限='"&Me.txt截止日期.Text+"'"&_"where注册号='"&Me.txt注册号.Text+"'"engin.ExecuteNonQuery(cmdText)engin.CloseConnect()MessageBox.Show("年检完成!")EndSub关闭按钮的click事件PrivateSubbtn关闭—Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtn关闭.ClickMe.Close()EndSubEndClass2.浏览查询模块包括:查看开业户、查看歇业户、查看年检户这三个设计模块。查看开业户窗体设计的界面效果图如下:PrivateSub退出ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles退出ToolStripMenuItem.ClickMe.Close()EndSubControlsHelper类:窗体load事件:PrivateSub查看开业户§_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadDimcmdTextAsString="select*from工商信息表括ControlsHelper.FillSearchToTreeView(cmdText,"注册号”,Me.TreeView1)'初始化一ListView1控件Me.ListView1.Columns.Add("字段”,80,HorizontalAlignment.Left)Me.ListView1.Columns.Add("值”,180,HorizontalAlignment.Left)Me.ListView1.View=View.DetailsEndSubPrivateSubTreeView1_AfterSelect(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.TreeViewEventArgs)HandlesTreeView1.AfterSelectMe.ListView1.Items.Clear()DimcmdTextAsStringcmdText="select*from工商信息表where注册号="&Me.TreeView1.SelectedNode.Text&""ControlsHelper.FillTableRowToListView(cmdText,Me.ListView1)EndSubEndClass查看歇业户的窗体设计界面如下:代码设计如下:窗体load事件PublicClass查看歇业户PrivateSub查看歇业户§_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadDimcmdTextAsString="select*from歇业表ControlsHelper.FillSearchToTreeView(cmdText,"注册号”,Me.TreeView1)'初始化一ListView1控件Me.ListView1.Columns.Add("字段”,80,HorizontalAlignment.Left)Me.ListView1.Columns.Add("值”,180,HorizontalAlignment.Left)Me.ListView1.View=View.DetailsEndSub退出菜单项的click事件:PrivateSub退出ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles退出oolStripMenuItem.ClickMe.Close()EndSubTreeView控件的AfterSelect事件PrivateSubTreeView1_AfterSelect(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.TreeViewEventArgs)HandlesTreeView1.AfterSelectMe.ListView1.Items.Clear()DimcmdTextAsStringcmdText="select*from歇业表where注册号="&Me.TreeView1.SelectedNode.Text&ControlsHelper.FillTableRowToListView(cmdText,Me.ListViewl)EndSubEndClass查看年检户窗体设计如下:代码设计如下窗体load事件:PublicClass查看年检户§PrivateSub查看年检户§_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadDimcmdTextAsString="select*from年检表括ControlsHelper.FillSearchToTreeView(cmdText,"注册号”,Me.TreeView1)'初始化一ListView1控件Me.ListView1.Columns.Add("字段”,80,HorizontalAlignment.Left)Me.ListView1.Columns.Add("值”,180,HorizontalAlignment.Left)Me.ListView1.View=View.DetailsEndSub退出按钮的。蜻件PrivateSub退出ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles退出ToolStripMenuItem.ClickMe.Close()EndSubTreeView1控件的AfterSelect事件PrivateSubTreeView1_AfterSelect(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.TreeViewEventArgs)HandlesTreeView1.AfterSelectMe.ListView1.Items.Clear()DimcmdTextAsStringcmdText="select*from年检表where注册号='"&Me.TreeView1.SelectedNode.Text&""ControlsHelper.FillTableRowToListView(cmdText,Me.ListView1)EndSubEndClass3.帮助模块和登录窗体这个模块的设计主要是为了方便软件的使用者,包括了该软件的详细使用和说明。“帮助手册”菜单项的click事件代码设计如下:“关于...”菜单项的click事件的代码设计如下:4.实现登录功能添加登录窗体界面如下:PrivateSubbtn登录—Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtn登录.ClickIfMe.txt用户名.Text.Length<1OrMe.txt密码.Text.Length<1ThenMessageBox.Show("用户名或密码不能为空!”)ExitSubEndIfDimmanagerAsNewUserManager()'loginUser变量在CommonVariable模块中被定义,'该变量用于保存登录用户的信息。loginUser=manager.GetUser(Me.txt用户名.Text)IfIsNothing(loginUser)ThenMessageBox.Show("用户不存在!”)ExitSubEndIfIfNotloginUser.UserPassword.EqualsCMe.txt密码.Text)ThenMessageBox.Show("密码错误!”)ExitSubEndIfMe.Close()EndSubPrivateSubbtn退出_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesbtn退出.ClickMe.Close()EndSub5.设置主窗体菜单的click事件实现该过程中,我们前面在对“工商户管理”窗体的设计过程就已经注意到了,下面的下拉菜单就包括了几个子菜单,这一块的主要任务就是对“开业登记”、“工商管理”、“浏览查询”下面的子菜单的click事件进行代码设计。各个click事件的代码设计如下:PrivateSub开业登记ToolStripMenuItem_Click(ByValSystem.EventArgs)Handles开业登记ToolStripMenuItem.ClickDimfrmAsFormfrm=New开业登记()frm.ShowDialog()EndSubsenderAsSystem.Object,ByValeAsPrivateSub变更修改ToolStripMenuItem_Click(ByValSystem.EventArgs)Handles变更修改ToolStripMenuItem.ClickDimfrmAsFormfrm=New变更修改()frm.ShowDialog()EndSubsenderAsSystem.Object,ByValeAsPrivateSub歇业注册ToolStripMenuItem_Click(ByValSystem.EventArgs)Handles歇业注册ToolStripMenuItem.ClickDimfrmAsFormfrm=New歇业注销()frm.ShowDialog()EndSubsenderAsSystem.Object,ByValeAsPrivateSub工商年检ToolStripMenuItem_Click(ByValSystem.EventArgs)Handles工商年检ToolStripMenuItem.ClicksenderAsSystem.Object,ByValeAsDimfrmAsFormfrm=New工商年检()frm.ShowDialog()EndSubPrivateSub查看开业户ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles查看开业户ToolStripMenuItem.ClickDimfrmAsFormfrm=New查看开业户()frm.ShowDialog()EndSubPrivateSub查看歇业户ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles查看歇业户ToolStripMenuItem.ClickDimfrmAsFormfrm=New查看歇业户()frm.ShowDialog()EndSubPrivateSub查看年检户ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles查看年检户ToolStripMenuItem.ClickDimfrmAsFormfrm=New查看年检户()frm.ShowDialog()EndSubPrivateSub用户信息ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles用户信息ToolStripMenuItem.ClickDimfrmAsFormfrm=New用户信息()frm.ShowDialog()EndSubPrivateSubMainForm_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadloginUser=NothingDimfrmAsFormfrm=New登录()frm.ShowDialog()'loginUser对象为空(Nothing)则退出应用程序IfIsNothing(loginUser)ThenApplication.Exit()ExitSubEndIf'权限管理。此处用到了在CommonVariable模块中定义的loginUser变量
'该变量指向的UserInfo实例在登录的被创建IfloginUser.UserPrivilege.Equals(UserPrivilege.Management)ThenMe.工商户管理ToolStripMenuItem.Visible=TrueMe.用户信息ToolStripMenuItem.Visible()=TrueElseIfloginUser.UserPrivilege=UserPrivilege.OperationThenMe.工商户管理ToolStripMenuItem.Visible=TrueMe.用户信息ToolStripMenuItem.Visible()=FalseElseMe.工商户管理ToolStripMenuIte:Me.Me.工商户管理ToolStripMenuIte:Me.用户信息ToolStripMenuItem.Visible()=FalseEndIf窗体设计界面如下图所示:EndSub窗体设计界面如下图所示:5.用户管理模块根据前面的需求分析的结果,要求“用户管理”模块提供创建用户、修改用户资料以及删除用户的功能,因此可以基于需求分析的结果设计提供这些功能的界面以及实现这些的代码。用户管理窗体设计界面:
代码设计如下:PrivateSub用户信息—Load(ByValsenderAsSystem.Object,ByVa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 空调承包竞标方案(3篇)
- 学校食品预警管理制度
- 印章保管交货管理制度
- 楼板烧毁处理方案(3篇)
- 公共工程安全管理制度
- 化学药剂专人管理制度
- DB62T 4477-2021 肉牛规模养殖场技术规范
- 包装防尘处理方案(3篇)
- 市场补偿方案模板(3篇)
- 电路改造评估方案(3篇)
- 图像处理新技术Photoshop试题
- 内在动机:自主掌控人生的力量
- 2025中国稀土集团有限公司社会招聘65人笔试参考题库附带答案详解
- 江苏省南京市建邺三校联合2025届七下生物期末质量检测试题含解析
- DBJ50-T-200-2024 建筑桩基础技术标准
- AI 技术在高中历史教学中的应用实例2
- 小学黄梅戏《打猪草》课件戏曲进校园
- 山东省山东名校考试联盟2025年高三4月高考模拟考试物理试卷+答案
- 输电线路六防课件
- 露天矿安全警示教育
- 患者自带药品管理规定
评论
0/150
提交评论