【正文】
on = intPositionShowCurrectPosition()MsgBox(已經(jīng)成功更新了該用戶,MsgBoxStyle.OkOnly + _MsgBoxstyle.Exclamation,更新成功)ElseIf TextBox1.Text = ThenMsgBox(編號(hào)不能為空,請(qǐng)輸入編號(hào),MsgBoxStyle.OkOnly 添加確認(rèn))TextBox1.Focus()Exit SubElseIf TextBox2.Text = ThenMsgBox(用戶名不能為空,請(qǐng)輸入編號(hào),MsgBoxStyle.OkOnly 添加確認(rèn))TextBox2.Focus()Exit SubElseIf Me.ComboBox1 .Test = ThenMsgBox(用戶的管理權(quán)限不能為空,請(qǐng)輸入用戶的管理權(quán)限,MsgBoxStyle.OkOnly 添加確認(rèn))Me.ComboBox1 . Focus()Exit SubEnd Iferrorhandler:Msgbox(Err.Description)Resume NextEnd Sub'*********刪除控件的*********Private Sub btndelete_Click(ByVal sender As System .Object,_Byval e As System.Eventargs)_Handles btnDelete.ClickDim intPosition As Integerintposition =Me.Bindingcontext(ObjDataview),Position 1If Intposition 0 Thenintposition =0End IfSqlstr=“DELETE FROM User_Info Where User_Id ='amp。 Me.ComboBox1 . amp。 Me.TextBox3. Text. Trim amp。',User_Password= amp。 ',User_Name= ' amp。 'ElseSqlstr = UPDATE user_Info SET user_ID= amp。 ',User_type= ' amp。 _' amp。 Me.TextBox2. Text. Trim amp。 Me.TextBox1. Text. Trim amp。 _objCurrencyManager. Count'顯示當(dāng)前數(shù)據(jù)綁定的管理對(duì)象的數(shù)據(jù)位置 End SubPrivate Sub Form16_Load(ByVal sender As System.Object, _Byval e As System.EventArgs) Handles MyBase. Load FillDataView()BindsField()ShowCurrectPosition() = FalseEnd SubPrivate Sub btnLast_Click(ByVal sender As System.Object, _Byval e As System.Eventargs) _Handles btnLast.ClickobjCurrencyManager. Position = objCurrencyManager. Count – 1ShowCurrectPosition() '顯示最后一條記錄End Sub'*******************修改控件的************Private Sub btnUpdate_Click(ByVal sender As System.Object, _Byval e As System.Eventargs)_Handles Dim intPosition As Integer = objCurrencyManager. PositionOn Error Goto errorhandlerIf TextBox1.Text And TextBox2.Text And TextBox3.Text And Me. ThenIf TextBox5.Text = ThenSqlstr = UPDATE user_Info SET user_ID= amp。Dim usermanage As Form16Private Sub MenuItem43_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MenuItem43.ClickIf Not (usermanage Is Nothing) Then ’ 使此個(gè)窗體只能顯示出現(xiàn)一次usermanage.Dispose()End IfUsermanage =New Form16Usermanage.MdiParent = MeUsermanage.Show()End Sub 軟件的設(shè)計(jì)結(jié)果[1]用戶管理設(shè)置窗體設(shè)計(jì)代碼(已測(cè)試通過(guò)):Private Sub Filldataview()Try ObjDataview = Nothing'清空原來(lái)的數(shù)據(jù)視圖ObDataset = New DataSet'實(shí)例化一個(gè)數(shù)據(jù)集對(duì)象Cn.Open() '打開(kāi)數(shù)據(jù)庫(kù)連接ObjDataaAdpter =New SqlDataAdapter(Usersqlstr,Cn) '將數(shù)據(jù)庫(kù)的數(shù)據(jù)映射到數(shù)據(jù)適配器ObjDataAdpter.Fill(ObjDataSet,”User_Info”) '填充數(shù)據(jù)集的數(shù)據(jù)Objdataview =New Dataview (Objdataset.Tables(“User_Info”)) '初始化數(shù)據(jù)視圖Objcurrencymanager=Ctype (Me.BindingContext(ObjDataview),CurrencyManager) '獲取設(shè)置當(dāng)前窗體的綁定管理對(duì)象Cn.Close()'關(guān)閉數(shù)據(jù)連接,這一點(diǎn)很重要Objdataset =Nothing '清空數(shù)據(jù)集的數(shù)據(jù)CatchEnd TryEnd SubPrivate Sub Bindsfield()Me.Textbox1.DataBindings.Clear()Me.Textbox2.DataBindings.Clear()Me.Combobox1.DataBindings.Clear()Me.Textbox3.DataBindings.Clear()Me.Textbox5.DataBindings.Clear()'清除所有的數(shù)據(jù)綁定'否則不能顯示所有的數(shù)據(jù)而只能顯示修改后的數(shù)據(jù)Me.Textbox1.DataBindings.Add(“Text,Objdataview,”User_Id”)Me.Textbox2.DataBindings.Add(“Text,Objdataview,”User_Name”)Me.bobox1.DataBinding.Add(“Text,Objdataview,”User_Type”)Me.Textbox3.DataBindings.Add(“Text,Objdataview,”User_Password”)Me.Textbox5.DataBindings.Add(“Text,Objdataview,”User_Tel”) '重新進(jìn)行數(shù)據(jù)綁定End SubPrivate Sub ShowCurrectPosition()Me.TextBox6.Text = _objCurrencyManager. Position + 1amp。Private Sub Buttonl click(ByVal sender As , ByVal e As )Handles .User=Password=Admin=Sqlst=“SELECT*FROM userInfo WHERE UserName=”User AND UserPassword= Password and Usertype=AdminDim objDataRow AS DataRowTryObjDataRow=GetDataFromDB(sqlstr).tables(0).Rows(0)Catch+,“系統(tǒng)登錄失敗”)=””Exit SubEnd TryUsername=UserUsertype = adminDim frmmain As New Form1frmmain.Show()Me.Finalize()End Sub其返回的全局參數(shù):一個(gè)是用戶名(UserName),一個(gè)是管理的權(quán)限(Usertype)。像零售員換班管理、切換成管理用戶、修改口令等等都體現(xiàn)了輸入的人性化。其它的項(xiàng)目都是要人工輸入的,具有較大的靈活性。在此,編寫(xiě)了一個(gè)子過(guò)程(以顯示管理權(quán)限ComboBox為例子):Private Sub initialComboBo1( )Dim sql As StringDim cmd As SqlmandDim rd As SqlDataReaderDim I As IntegerTry( )( )sql=“select distinct Usertype form userInfo”cmd=New Sqlmand(sql,) rd=向ComboBox中添加數(shù)據(jù)Do While (rd(“Usertype”))LoopCmd=NothingCatch ex As ExceptionMsgBox()Finally()If = Then()End IfEnd TryEnd Sub界面上的管理權(quán)限與用戶名的項(xiàng)目都是可選擇的,!、修改、刪除用戶管理的。 輸入項(xiàng)下面這個(gè)窗體是中小型超市管理系統(tǒng)的登陸界面 根據(jù)程序的要求,用戶要根據(jù)ComboBox控件中的內(nèi)容進(jìn)行登陸,因此在窗體打開(kāi)時(shí),為了盡量減少用戶的輸入出境,和減少程序的出錯(cuò),ComboBox控件中就應(yīng)該有相應(yīng)的內(nèi)容,初始化組件以后加入如下代碼:initialComBol( ) 顯示管理權(quán)限的ComboBox。 功能此模塊的基本功能有:設(shè)置用戶管理權(quán)限、添加、修改、刪除用戶管理、零售員換班管理、用戶口令修改、超級(jí)管理員權(quán)限、零售員管理權(quán)限與管理員權(quán)限的切換管理、退出系統(tǒng)。零售員管理權(quán)限:零售員能夠使用的功能是:進(jìn)行前臺(tái)零售、零售員換班管理、退貨處理、登陸成管理員管理、登陸成超級(jí)管理員管理修改自身密碼及庫(kù)存商品的查詢(xún)、商品退貨的查詢(xún)、歷史進(jìn)貨存根的查詢(xún)、商品過(guò)期報(bào)廢的查詢(xún)、快過(guò)期商品的查詢(xún)、退貨庫(kù)存的管理等。詳細(xì)設(shè)計(jì)主要是考慮“怎樣實(shí)現(xiàn)”這個(gè)軟件 系統(tǒng),給出各個(gè)模塊的詳細(xì)過(guò)程必描述。 系統(tǒng)總體結(jié)構(gòu) 中小型超市管理系統(tǒng)系統(tǒng)管理模塊基本數(shù)據(jù)的錄入銷(xiāo)售商品管理庫(kù)存管理數(shù)據(jù)的統(tǒng)計(jì)與報(bào)表中小型超市管理系統(tǒng)模塊劃分系統(tǒng)管理模塊用戶權(quán)限管理用戶口令修改管理員撤換售貨員撤換退出系統(tǒng)系統(tǒng)管理模塊的子模塊劃分 基本數(shù)據(jù)錄入模塊供貨廠商統(tǒng)信息錄入使用商場(chǎng)基本信息錄入商品庫(kù)存信息錄入數(shù)據(jù)錄入模塊的子模塊劃分 數(shù)據(jù)的統(tǒng)計(jì)與報(bào)表當(dāng)天商品銷(xiāo)售統(tǒng)計(jì)時(shí)間段商品銷(xiāo)售統(tǒng)計(jì)某一種類(lèi)商品銷(xiāo)售統(tǒng)計(jì)某一零售的銷(xiāo)售統(tǒng)計(jì)員當(dāng)天客戶退貨統(tǒng)計(jì)時(shí)間段客戶退貨統(tǒng)計(jì)當(dāng)天退還廠家統(tǒng)計(jì)時(shí)間段退還廠家統(tǒng)計(jì)當(dāng)天過(guò)期報(bào)廢商品統(tǒng)計(jì)時(shí)間段過(guò)期報(bào)廢統(tǒng)計(jì)數(shù)據(jù)的統(tǒng)計(jì)與報(bào)表模塊劃分庫(kù)存管理庫(kù)存查詢(xún)A商品過(guò)期處理B退貨處理C更新庫(kù)存管理E庫(kù)存修該管理進(jìn)貨報(bào)表生成修改D商品的報(bào)廢處理D現(xiàn)庫(kù)存商品查詢(xún)歷史進(jìn)貨的查詢(xún)客戶退貨或退貨廠家查詢(xún)過(guò)期報(bào)廢查詢(xún)管理用戶的查詢(xún)商品的錄入商品已過(guò)期處理商品快過(guò)期處理退還廠家商品處理客戶退貨處理零售數(shù)據(jù)的修改更新現(xiàn)有的庫(kù)存商品修改更新進(jìn)貨數(shù)據(jù)的修改更新添加修改歷史進(jìn)貨表庫(kù)存管理的子模塊劃分基本數(shù)據(jù)流圖 任務(wù)的分配 ,所以負(fù)責(zé)完成了系統(tǒng)可行性分析\