【正文】
擊添加事件響應(yīng) AddHandler , _ New MouseEventHandler(AddressOf DGDoubleClick) AddHandler , _ New EventHandler(AddressOf dgdGoodInfo_DoubleClick) 39。 Private Sub dgdGoodInfo_MouseDown(ByVal sender As Object, _ ByVal e As MouseEventArgs) Handles 39。 strSQL += () + %39。為 MyCombo添加 TextChanged事件響應(yīng) AddHandler , AddressOf Ctrls_TextChanged 39。 = Then ( ) End If 39。判斷 DataSet11的數(shù)據(jù)是否有變化 39。 供貨商資料維護(hù)功能和客戶資料功能的實現(xiàn)與此類似,采用同樣的方法步驟實現(xiàn)的。 (五)實現(xiàn)進(jìn)貨功能 進(jìn)貨功能是指從供貨商處進(jìn)貨,增加庫存并同時產(chǎn)生應(yīng)付款。通過 SqlDataAdapter1更新數(shù)據(jù)庫數(shù)據(jù) (DataSet11) (商品清單 ). _ = (數(shù)據(jù)修改成功 !) Else (無修改的數(shù)據(jù) !) End If Catch ex As Exception (修改的數(shù)據(jù)出錯 ) End Try 26 ElseIf Is tbbDel Then Try 39。其列號為 4,所以這里用 = 4 判斷。清空 MyCombo () 39。重新填充 DataSet11 (DataSet11) End Sub .NET 的 DataGrid 的列只支持兩種樣式:一種是 DataGridTextColumn,表現(xiàn)為單元格時是一個 TextBox。判斷兩次單擊時間是否小于雙擊的時間間隔 If ( _ ()) Then 39。設(shè)置設(shè)置 DataGrid中奇數(shù)行的背景色 = = False 39。獲得 DataGrid數(shù)據(jù)源表的列數(shù) Dim numCols As Integer = _ (商品清單 ).() 22 Dim i As Integer 39。出現(xiàn)的生成數(shù)據(jù)集 ]對話框中(如圖 ),選擇 [新建 ]單選按鈕,然后單擊 [確定 ]按鈕。 (四)實現(xiàn)商品資料維護(hù)功能 新建一個窗體,將其 Name 屬性位置為“ frmGoodsInfo” 并在窗體上分別添加一個ImageList 控件,一個 ToolBar 控件,一個 Label 控件,一個 TextBox 控件,一個 Button控件,一個 GroupBox 控件和一個 DataGrid 控件。獲得用戶的密碼級用戶名 = (0)(密碼 ) = (0)(姓名 ) End If 19 39。 Private Sub txbUserId_LostFocus(ByVal sender As Object, _ ByVal e As ) Handles 39。用于返回登陸結(jié)果 Public bResult As Boolean = False 39。 _ + server=localhost。 (二)創(chuàng)建數(shù)據(jù)訪問模塊 16 因為各個窗體均需要對數(shù)據(jù)庫進(jìn)行訪問,可以把數(shù)據(jù)庫的一些操作通過一個類實現(xiàn),這樣可以使對數(shù)據(jù)庫的訪問更加簡單。獲得 frmMain窗體的子窗體的數(shù)量 Dim i As Integer = 39。建庫腳本如下: CREATE PROCEDURE sf_進(jìn)貨單 記賬人 char(10) = NULL AS Begin transaction INSERT INTO 庫存庫(貨號,倉庫,庫存數(shù)量,庫存金額,庫存單價) SELECT DISTINCT , , 0, 0, 0 FROM 進(jìn)貨單明細(xì) AS J left join 庫存庫 as k on ( = and =號 ) Where is null UPDATA 庫存庫 SET 庫存單價 =case when 庫存數(shù)量 =0 or (庫存數(shù)量 +數(shù)量 ALL)=0 then 進(jìn)價 Else (庫存金額 +稅價合計 ALL)/(庫存數(shù)量 +數(shù)量 ALL) end, 庫存數(shù)量 =庫存數(shù)量 +數(shù)量 ALL, 庫存金額 =case when 庫存數(shù)量 =0 or(庫存數(shù)量 +數(shù)量 ALL) =0 then 進(jìn)價 +(庫存數(shù)量 +數(shù)量 ALL) Else (庫存金額 +稅價合計 ALL) end, 最新進(jìn)價 =進(jìn)價 FROM ( SELECT 倉庫,貨號,‘?dāng)?shù)量 ALL’ =sum(進(jìn)貨數(shù)量),‘進(jìn)價’ =sum(稅價合計) / sum(進(jìn)貨數(shù)量),‘稅價合計 ALL’ =sum(稅價合計) FROM 進(jìn)貨單明細(xì) GROUP BY 倉庫,貨號) AS LSJ WHERE 庫存庫 .倉庫 = AND 庫存庫 .貨號 = INSERT INTO 應(yīng)付款(編號,進(jìn)貨單號,貨號,進(jìn)貨商號,數(shù)量,進(jìn)貨單價,金額,進(jìn)貨日期,狀態(tài)) SELECT ‘付’ +, , , ,進(jìn)貨數(shù)量,進(jìn)價, ,進(jìn)貨日期,‘應(yīng)付’ FROM 進(jìn)貨單明細(xì) as as b Where = INSERT INTO 進(jìn)貨單歷史 SELECT * FROM 進(jìn)貨單 INSERT INTO 進(jìn)貨單明細(xì)歷史 SELECT * FROM 進(jìn)貨單明細(xì) Delete from 進(jìn)貨單明細(xì) Delete from 進(jìn)貨單 Commit 14 Go CREATE PROCEDURE sf_銷售單 記賬人 char(10) = NULL AS Begin transaction UPDATA 庫存庫 SET 庫存數(shù)量 =庫存數(shù)量 數(shù)量 ALL,庫存金額 =庫存單價 * (庫存數(shù)量 數(shù)量 ALL) FROM( SELECT 倉庫,貨號,‘?dāng)?shù)量 ALL’ =sum(銷售數(shù)量) FROM 進(jìn)貨 單明細(xì) GROUP BY 倉庫,貨號) AS LSJ WHERE 庫存庫 .倉庫 = AND 庫存庫 .貨號 = INSERT INTO 應(yīng)付款(編號,銷售單號,貨號,客戶編號,數(shù)量,銷售價,金額,銷售日期,狀態(tài)) SELECT ‘收’ +, , , ,銷售數(shù)量,銷售價, 合計,進(jìn)貨日期,‘應(yīng)收’ FROM 銷售單明細(xì) as as b Where = INSERT INTO 銷售單歷史 SELECT * FROM 銷售單 INSERT INTO 銷售單明細(xì)歷史 SELECT * FROM 銷售單明細(xì) Delete from 銷售單明細(xì) Delete from 銷售單 Commit Go 四 .窗體設(shè)計 (一)創(chuàng)建系統(tǒng)主窗體 ,并將其對應(yīng)的文件更名為 ,為其添加一個主菜單( MainMenu)控件。數(shù)據(jù)的結(jié)構(gòu)將影響整個管理機制的應(yīng)用,而且一但建立以后要修改常會出現(xiàn)麻煩。 第二步,打開系統(tǒng)的主界面,根據(jù)相應(yīng)的操作,分別跳入不同的步驟,共有五種不同的選擇。因此這 3張表和其他表間的關(guān)系是 1: N的關(guān)系。 5. 系統(tǒng)管理:管理用戶權(quán)限,用于設(shè)置各操作員使用系統(tǒng)的權(quán)限,為了方便設(shè)置,一般的應(yīng)用系統(tǒng)都是可以將操作人員分組的,將通用的權(quán)限賦予整個組,個別的權(quán)限單獨賦予個人,這樣可以大大減少權(quán)限管理的工作量。 system design 3 超市進(jìn)銷存系統(tǒng) 第一章 緒論 一 應(yīng)用背景 隨著企業(yè)的發(fā)展,以及軟件開發(fā)的逐步成熟,進(jìn)銷存系統(tǒng)使得原來繁重而又容易出錯的進(jìn)銷存管理變得簡單而有條理。 是單機版應(yīng)用程序 。 1. 資料管理:管理商品信息,供貨商信息和客戶信息,分別用于維護(hù)企業(yè)所經(jīng)營 商品的基本信息,供貨商及客戶的基本信息。本系統(tǒng)給 出了一套較完善的易學(xué)易用的進(jìn)銷存管理系統(tǒng)。 圖 進(jìn)銷存管理系統(tǒng) ER圖 其他實體與基本信息表間的對應(yīng)關(guān)系都是類似的。 銷售管理:在該模塊中可以對銷售單的記錄進(jìn)行一定條件下的查詢。 DBMS 通常由數(shù)據(jù)字典,數(shù)據(jù)描述語言及其編譯程序,數(shù)據(jù)操縱(查詢)語言及其編譯程序,數(shù)據(jù)庫管理例行程序等部分組成。整個程序的入口 Public Shared Sub Main() 39。不存在名為 Name的子窗體 False Return False End Function [商品資料維護(hù) ]的 Click事件添加相應(yīng)函數(shù)。 Imports Imports Imports Public Class DataBase 39。打開數(shù)據(jù)庫連接 () End If End Sub Public Sub Close() 39。登陸的用戶密碼 Private UserPwd As String = 為文本 txbUserId,txbPwd分別添加 KeyPress時間相應(yīng)函數(shù)。 _ + () + 39。判斷用戶輸入密碼的合法性 If () = () _ And UserPwd Then 39。 2.[數(shù)據(jù)鏈接屬性 ]對話框設(shè)置完畢后單機 [確定 ]按鈕返回到 [數(shù)據(jù)適配器配置向?qū)?],單擊[下一步 ]按鈕繼續(xù),要求選擇查詢類型(如圖 ),直接使用默認(rèn)的 [使用 SQL 語句 ]選項。用于判斷雙擊是否關(guān)閉 Public bClose = False 39。設(shè)置 NullText屬性為空 = 39。設(shè)置 dgdGoodInfo的數(shù)據(jù)源 = (商品清單 ).TableName = _ (商品清單 ).DefaultView End Sub 為按鈕 dgdGoodInfo 的 DoubleClick 事件添加事件相應(yīng)代碼。如果商品拼音不為空進(jìn)行查詢 39。 39。 Private Sub Ctrls_TextChanged(ByVal sender As Object, _ ByVal e As ) 39。設(shè)置 MyCombo的 Visible, Width屬性 = False = 0 End Sub Private Sub dgdGoodInfo_CurrentCellChanged(ByVal sender _ As Object, ByVal e As ) Handles _ If = 4 Then = False = 0 25 = = = _ () amp。如果用戶確認(rèn)要刪除記錄 If (你確認(rèn)要刪除此條記錄嗎? , _ Confirm, ) _ = Then