企業(yè)進銷存管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計本科論文_第1頁
企業(yè)進銷存管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計本科論文_第2頁
企業(yè)進銷存管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計本科論文_第3頁
企業(yè)進銷存管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計本科論文_第4頁
企業(yè)進銷存管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計本科論文_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

數(shù)據(jù)庫與信息管理技術(shù)設(shè)計報告設(shè)計名稱:企業(yè)進銷存管理系統(tǒng)專業(yè):xxxxxxxxx班級:xxxxxxxxxx學號:xxxxxxxx姓名:xx指導(dǎo)教師:xx2015年xx月xx日目錄一緒論 21.1 需求分析 31.2項目開發(fā)的目標 31.3.1操作系統(tǒng)及其數(shù)據(jù)庫 41.3.2編輯語言 4二系統(tǒng)分析與設(shè)計 42.1系統(tǒng)功能結(jié)構(gòu) 42.2系統(tǒng)總體流程圖 52.3系統(tǒng)所采用的架構(gòu): 6三數(shù)據(jù)庫設(shè)計 63.1創(chuàng)建數(shù)據(jù)庫 63.2創(chuàng)建數(shù)據(jù)表 73.3數(shù)據(jù)庫關(guān)系圖 123.4數(shù)據(jù)庫使用到的視圖 13四主程序設(shè)計 144.1登錄界面 144.2主窗體效果 144.3各模塊功能效果 14五、測試運行 19六、心得體會 23七、參考文獻 23附錄1:部分java核心代碼 23附錄2:數(shù)據(jù)庫設(shè)計相關(guān)代碼 43一緒論隨著國內(nèi)經(jīng)濟的高速發(fā)展,中小型的商品流通企業(yè)越來越多,其所經(jīng)營商品種類繁多,難以管理,而進銷存管理系統(tǒng)逐漸成為企業(yè)經(jīng)營和管理中的核心環(huán)節(jié),也是企業(yè)取得收益的關(guān)鍵。為了完善管理制度,增強企業(yè)的競爭力,因此必須開發(fā)出進銷存管理系統(tǒng),從而實現(xiàn)對商品管理的信息化。需求分析企業(yè)進銷存管理系統(tǒng)的主要工作,是對企業(yè)的采購、進貨、銷售和庫存以信息化的方式進行管理,最大限度地減少各個環(huán)節(jié)中可能出現(xiàn)的錯誤,有效減少盲目采購、降低采購成本、合理控制庫存、減少資金占用并提高市場靈敏度,使企業(yè)能夠合理安排進銷存的每個關(guān)鍵步驟,提升企業(yè)市場競爭力。針對這些問題,經(jīng)銷商對產(chǎn)品的進銷存合理化提出了更高的要求。通過上網(wǎng)查閱資料以及研究分析可知,企業(yè)進銷存管理系統(tǒng)應(yīng)具有以下功能:界面美觀大方、方便、快捷、操作靈活。通過主界面的按鈕快速實現(xiàn)人機交互。實現(xiàn)強大的進銷存管理,包括基本信息、采購、進貨銷售和庫存管理。能夠在不同的操作系統(tǒng)下運行,不局限于特定的平臺。提供庫存盤點功能。提供多條件查詢和模糊查詢功能。能夠提供方便快捷的服務(wù)。1.2項目開發(fā)的目標實現(xiàn)企業(yè)信息化管理是現(xiàn)代社會中小企業(yè)穩(wěn)步發(fā)展的必要條件,它可以提高企業(yè)的管理水平和工作效率,最大限度地減少手工操作帶來的失誤。進銷存管理的主要功能是實現(xiàn)企業(yè)進銷存的信息化管理,主要功能包括商品的采購、銷售和庫存,另外還需要提供統(tǒng)計查詢的功能,其中包括商品查詢、供應(yīng)商查詢、客戶查詢等。并且還應(yīng)達到以下的這些目標:靈活的人機交互界面,操作簡單方便,界面簡潔美觀??梢酝ㄟ^菜單、工具欄靈活操作。對進貨和銷售提供相應(yīng)的退貨管理功能。實現(xiàn)各種查詢,如單一條件查詢或多條件查詢等??梢噪S時修改系統(tǒng)口令??梢栽O(shè)置用戶的使用權(quán)限。系統(tǒng)最大限度地實現(xiàn)易安裝性、易維護性和已操作性。系統(tǒng)運行穩(wěn)定、安全可靠。1.3.1操作系統(tǒng)及其數(shù)據(jù)庫操作系統(tǒng):Windows8.1,數(shù)據(jù)庫管理軟件:MicrosoftSQLSERVER2012編程軟件:Eclipse1.3.2編輯語言前臺客戶端的開發(fā)使用的是java語言,里面嵌入了SQLSERVER數(shù)據(jù)庫操作的SQL語句。二系統(tǒng)分析與設(shè)計2.1系統(tǒng)功能結(jié)構(gòu)企業(yè)進銷存管理系統(tǒng)必須提供商品信息、供應(yīng)商信息和客戶信息的基礎(chǔ)信息,并提供強大的多條件搜索功能和商品的進貨、銷售和庫存管理功能。此外,每個用戶都有屬于自己的權(quán)限,不同的用戶對系統(tǒng)的操作不同。該系統(tǒng)還必須保證數(shù)據(jù)的安全性、完整性和準確性。本系統(tǒng)包括基礎(chǔ)信息、進貨管理、銷售管理、庫存管理、查詢統(tǒng)計、系統(tǒng)管理六大部分。系統(tǒng)機構(gòu)如下圖1所示:企業(yè)進銷存管理系統(tǒng)企業(yè)進銷存管理系統(tǒng)查詢統(tǒng)計庫存管理系統(tǒng)管理銷售管理進貨管理基礎(chǔ)信息管理查詢統(tǒng)計庫存管理系統(tǒng)管理銷售管理進貨管理基礎(chǔ)信息管理更改密碼權(quán)限管理操作員管理供應(yīng)商查詢商品查詢客戶查詢庫存價格調(diào)整庫存盤點銷售退貨銷售單進貨單進貨退貨客戶信息管理商品信息管理供應(yīng)商信息管理更改密碼權(quán)限管理操作員管理供應(yīng)商查詢商品查詢客戶查詢庫存價格調(diào)整庫存盤點銷售退貨銷售單進貨單進貨退貨客戶信息管理商品信息管理供應(yīng)商信息管理客戶信息添加客戶修改與刪除商品信息添加商品修改與刪除供應(yīng)商信息添加供應(yīng)商修改與刪除客戶信息添加客戶修改與刪除商品信息添加商品修改與刪除供應(yīng)商信息添加供應(yīng)商修改與刪除圖1企業(yè)進銷存管理系統(tǒng)功能結(jié)構(gòu)2.2系統(tǒng)總體流程圖系統(tǒng)管理查詢統(tǒng)計庫存管理銷售管理基礎(chǔ)信息管理進貨管理操作員否是管理員是否成功登錄用戶系統(tǒng)管理查詢統(tǒng)計庫存管理銷售管理基礎(chǔ)信息管理進貨管理操作員否是管理員是否成功登錄用戶 圖2進銷存系統(tǒng)流程圖2.3系統(tǒng)所采用的架構(gòu):本系統(tǒng)所采用的結(jié)構(gòu)是B/S架構(gòu),前臺是以客戶端的形式呈現(xiàn),后臺是以DBMS軟件作為服務(wù)器來處理客戶端發(fā)來的請求并進行處理。前臺客戶端登錄后按照界面提示完成相應(yīng)的操作,后臺的DBMS應(yīng)用則會按照前臺客戶端執(zhí)行的操作請求來執(zhí)行相應(yīng)的操作,從而達到對數(shù)據(jù)進行正確有效的管理。三數(shù)據(jù)庫設(shè)計3.1創(chuàng)建數(shù)據(jù)庫數(shù)據(jù)庫使企業(yè)進銷存管理系統(tǒng)的數(shù)據(jù)集合,是系統(tǒng)開發(fā)的首要環(huán)節(jié)。數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的好壞直接影響著系統(tǒng)的效率和性能。為了方便數(shù)據(jù)庫的創(chuàng)建,本系統(tǒng)使用MicrosoftSQLSERVER2012來創(chuàng)建數(shù)據(jù)庫,數(shù)據(jù)庫名稱為db_jxcmanager,創(chuàng)建完成后的效果如圖三。圖3SQLSERVER2012窗口3.2創(chuàng)建數(shù)據(jù)表在已經(jīng)創(chuàng)建好的數(shù)據(jù)庫jxc_manager中創(chuàng)建了13個數(shù)據(jù)表,其具體內(nèi)容如下所示:(包含在sqlserver中所建表的截圖)客戶信息表(tb_khinfo)企業(yè)進銷存管理系統(tǒng)將記錄所有的客戶信息,在銷售、退貨等操作時,將直接引用該客戶的實體屬性??蛻粜畔蛻艟幪?、客戶名稱、簡稱、地址、電話、郵政編碼、聯(lián)系人、聯(lián)系人電話、傳真、開戶行和賬號,表結(jié)構(gòu)如表4-1所示。表4-1tb_khinfo表結(jié)構(gòu)字段名稱類型說明idvarchar(50)客戶編號,主鍵khnamevarchar(50)客戶姓名jianvarchar(50)簡稱addressvarchar(100)地址bianmavarchar(50)郵政編碼telvarchar(50)電話faxvarchar(50)傳真lianvarchar(50)聯(lián)系人ltelvarchar(50)聯(lián)系人電話yinhangvarchar(60)開戶銀行zhanghaovarchar(60)賬號數(shù)據(jù)庫中所建的表:客戶信息表(tb_khinfo)供應(yīng)商信息表(tb_gysinfo)不同的供應(yīng)商可以為企業(yè)提供不同的商品,在商品信息中將引用商品供商的實體屬性。供應(yīng)商信息包括編號、名稱、簡稱、地址、電話、郵政編碼、傳真、聯(lián)系人、聯(lián)系電話、開戶銀行和E-mail地址,表結(jié)構(gòu)如表4-2所示。表4-2tb_gysinfo表結(jié)構(gòu)字段名類型說明idvarchar(20)供應(yīng)商編號,主鍵namevarchar(60)供應(yīng)商名稱jcvarchar(50)簡稱addressvarchar(100)地址bianmavarchar(50)郵政編碼telvarchar(50)聯(lián)系電話faxvarchar(50)傳真lianvarchar(50)聯(lián)系人ltelvarchar(50)聯(lián)系人電話yhvarchar(50)開戶銀行mailvarchar(50)E-mail地址數(shù)據(jù)庫中所建的表:供應(yīng)商信息表(tb_gysinfo)商品信息表(tb_spinfo)商品信息是進銷存管理系統(tǒng)中的核心信息,系統(tǒng)將維護商品的進貨、退貨、銷售、庫存等操作。商品信息包括商品編號、名稱、產(chǎn)地、單位、規(guī)格、包裝、批號、批準文號、簡稱和供應(yīng)商,表結(jié)構(gòu)如表4-3所示。表4-3tb_spinfo表結(jié)構(gòu)字段名類型說明idvarchar(50)商品編號,主鍵spnamejcvarchar(50)varchar(50)商品名稱簡稱cdvarchar(60)產(chǎn)地dwvarchar(50)單位ggvarchar(50)規(guī)格bzvarchar(50)包裝phvarchar(50)批號pzwhvarchar(50)批準文號memovarchar(90)簡稱gysnamevarchar(100)供應(yīng)商數(shù)據(jù)庫中所建的表:商品信息表(tb_spinfo)庫存信息表(tb_kucun)庫存商品信息包括商品編號、名稱、商品簡稱、產(chǎn)地、規(guī)格、包裝、單位、單價和庫存數(shù)量,表結(jié)構(gòu)如表4-4所示表4-4db_kucun表結(jié)構(gòu)字段名類型說明idvarchar(30)商品編號,主鍵spnamevarchar(50)商品名稱jcvarchar(50)簡稱cdvarchar(60)產(chǎn)地dwvarchar(50)單位ggvarchar(50)規(guī)格bzvarchar(50)包裝djmoney單價kcslint庫存數(shù)量數(shù)據(jù)庫中所建的表:庫存信息表(tb_kucun)進貨詳細表(tb_ruku_detail)進貨詳細表包括編號、進貨票號、商品編號、單價、進貨數(shù)量,表結(jié)構(gòu)如表4-5所示表4-5tb_ruku_detail表結(jié)構(gòu)字段名類型說明idint編號,主鍵,自增kcIDvarchar(30)進貨票號,外鍵spidvarchar(50)商品編號,外鍵,參考tb_spinfo中的iddjmoney單價slint進貨數(shù)量數(shù)據(jù)庫中所建的表:進貨詳細表(tb_ruku_detail)進貨主表(tb_ruku_main)進貨主要信息包括進貨票號、進貨總金額、驗收結(jié)論、供應(yīng)商名稱、進貨時間、經(jīng)手人、操作員、結(jié)算方式,表結(jié)構(gòu)如表4-6所示。表4-6tb_ruku_main表結(jié)構(gòu)字段名類型說明rkIDvarchar(30)進貨票號,主鍵jemoney進貨總價ysjlvarchar(50)驗收結(jié)論gysnamevarchar(100)供應(yīng)商名稱rkdatevarchar(50)進貨時間czyvarchar(30)操作員jsrvarchar(30)經(jīng)手人jsfsvarchar(10)結(jié)算方式數(shù)據(jù)庫中所建的表:庫存信息表(tb_ruku_main)用戶表(tb_userlist)用戶可以分為兩種權(quán)限,即操作員和管理員權(quán)限。用戶信息包括用戶姓名、用戶名、密碼和權(quán)限,表結(jié)構(gòu)如表4-7所示。表4-7tb_userlist表結(jié)構(gòu)字段名類型說明namevarchar(50)用戶姓名usernamevarchar(50)用戶名,主鍵passvarchar(50)密碼quanvarchar(2)權(quán)限,c表示操作員,a表示管理員數(shù)據(jù)庫中所建的表:庫存信息表(tb_userlist)進貨退貨詳細表(tb_rkth_detail)、銷售詳細表(tb_sell_detail)、銷售退貨詳細表(tb_xsth_detail)與進貨詳細表(tb_ruku_detail)字段相似,進貨退貨主表(tb_rkth_main)、銷售主表(tb_sell_main)、銷售退貨主表(tb_xsth_main)與進貨主表(tb_ruku_main)字段相似,不一一詳細列出具體看生成的sql語句查看3.3數(shù)據(jù)庫關(guān)系圖說明:tb_rkth_detail,tb_sell_detail,tb_xsth_detail,tb_ruku_detail四張表的spid都是參考tb_spinfo里的主鍵id來進行外鍵約束的,來保證商品信息表里的商品在銷售入庫中均能出現(xiàn)。tb_rkth_detail,tb_sell_detail等的詳細表里票號rkthID,sellID等是參考tb_rkth_main,tb_sell_main里的主鍵rkthID,sellID來進行外間約束的。3.4數(shù)據(jù)庫使用到的視圖在數(shù)據(jù)庫設(shè)計過程中,考慮到后面的查詢需要進行關(guān)聯(lián)幾張表。因此建立了幾個視圖選擇相關(guān)聯(lián)的三張表將其進行內(nèi)連接并選出需要輸出的信息,這樣在后面進行前臺查詢時使得檢索速度提升也可較為方便地顯示出所需要的信息。四主程序設(shè)計4.1登錄界面圖4-1登錄界面登錄默認用戶名為admin,密碼為admin。4.2主窗體效果圖4-2主窗體效果圖主窗體界面是系統(tǒng)的歡迎界面,該窗體采用導(dǎo)航面板綜合了系統(tǒng)菜單和工具欄的優(yōu)點,使得界面更加美觀,操作也更加地便捷。清晰地呈現(xiàn)了進銷存系統(tǒng)所有的功能便于用戶的使用。效果如圖4-2所示。4.3各模塊功能效果基礎(chǔ)信息管理圖4-3基礎(chǔ)信息管理選取基礎(chǔ)信息管理里的商品信息管理為例來進行說明,通過較為方便的文本編輯框來實現(xiàn)。用戶將信息在編輯框內(nèi)修改完成后直接點擊按鈕便實現(xiàn)相應(yīng)的功能,操作方便快捷??蛻粜畔⒐芾砗凸?yīng)商管理的界面與此例似。進貨管理進貨管理主要包括進貨單和進貨退貨兩個部分?,F(xiàn)以進貨退貨功能為例。進貨退貨功能主要負責記錄進貨管理中的退貨信息,界面效果如上圖所示。在選擇了退貨的商品之后,單擊【退貨】按鈕,將在表格中的商品退貨信息更新到數(shù)據(jù)庫中,從而使庫存的商品數(shù)量減少。入庫退貨程序界面如圖4-4所示銷售管理圖4-5銷售單界面銷售管理主要包括銷售單和銷售退貨兩個部分?,F(xiàn)以銷售單功能為例。銷售單功能主要負責記錄企業(yè)的商品銷售信息,可以單擊【添加】按鈕,在商品表中添加銷售的商品信息。在供應(yīng)商下拉列表框中選擇對應(yīng)的客戶,將會改變商品表中的商品記錄。銷售單程序界面如圖4-5所示。查詢統(tǒng)計圖4-6模糊查詢圖4-7顯示全部數(shù)據(jù)企業(yè)進銷存管理系統(tǒng)中的查詢統(tǒng)計模塊包括客戶查詢、商品查詢、供應(yīng)商查詢銷售查詢、銷售退貨查詢、入庫查詢、入庫退貨查詢功能??蛻舨樵児δ苤饕糜诓樵兿到y(tǒng)中的客戶信息,其查詢方式可以分為客戶全程匹配查詢和模糊查詢。程序界面如圖4-6和圖4-7所示。其中銷售查詢因為用到多表查詢因此將多表進行內(nèi)連接建立視圖視圖如數(shù)據(jù)庫設(shè)計中的視圖所示。庫存管理圖4-8價格調(diào)整界面企業(yè)進銷存管理系統(tǒng)中的庫存管理模塊包括庫存盤點和價格調(diào)整兩個功能,由于庫存盤點是將查詢庫存中的所有數(shù)據(jù)并顯示在商品表格中,主要以價格調(diào)整進行說明。價格調(diào)整的主要用于調(diào)整庫存中的單價,當用戶選擇了指定的商品,價格調(diào)整功能的界面將會顯示該商品在庫存中的單價、庫存數(shù)量、庫存金額、單位、產(chǎn)地等信息。程序界面如圖4-8所示。用戶可以修改商品單價并單擊【確定】按鈕,調(diào)整該商品的單價信息。系統(tǒng)管理圖4-9更新密碼界面用戶以管理員身份登錄時,才可以對系統(tǒng)管理模塊進行操作。企業(yè)進銷存管理系統(tǒng)中的系統(tǒng)管理模塊包括操作員管理、更新密碼和權(quán)限管理3個部分,其中操作員管理包括添加操作員和刪除操作員,由于這兩種操作實現(xiàn)較為簡單,重點說明更改密碼和權(quán)限管理。在進銷存管理系統(tǒng)中,管理員可以修改自己的密碼,但不可以修改操作員的密碼。程序界面如圖4-9所示。圖4-10權(quán)限管理界面企業(yè)進銷存管理系統(tǒng)中的用戶分為兩種權(quán)限:操作員和管理員,其中,管理員身份的用戶在用戶表中的權(quán)限標識為a,操作員身份的用戶在用戶表中權(quán)限標識為c。在權(quán)限管理界面中,當用戶選擇下拉列表框中的用戶時,該用戶的詳細信息將會填充界面中對應(yīng)的文本框。用戶可以選擇該用戶的權(quán)限,從而修改該用戶權(quán)限。程序及界面如圖4-10所示。五、測試運行(1)登錄程序界面如下圖5-1所示,程序默認用戶名和密碼分別為admin和admin。點擊登錄后程序連接入后臺數(shù)據(jù)庫進行用戶名和密碼校驗成功后進入主界面。圖5-1登錄界面(2)調(diào)試運行發(fā)現(xiàn)客戶新成功添加入數(shù)據(jù)庫。調(diào)試結(jié)果如上圖5-2所示。供應(yīng)商和商品信息管理與客戶操作調(diào)試結(jié)果類似就不一一展示。圖5-2用戶添加界面(3)調(diào)試運行發(fā)現(xiàn)正確將商品的入庫信息添加入數(shù)據(jù)庫。調(diào)試結(jié)果如圖5-3所示。圖5-3商品入庫管理(進貨單信息)(4)調(diào)試運行發(fā)現(xiàn)正確將商品的入庫商品的退貨信息正確添加入數(shù)據(jù)庫。調(diào)試結(jié)果如圖5-4所示。銷售管理調(diào)試與進貨管理調(diào)試結(jié)果類似。圖5-4商品入庫退貨管理(5)模糊查詢調(diào)試結(jié)果如下圖5-5所示,與數(shù)據(jù)庫索保存的信息一致。圖5-5供應(yīng)商信息模糊查詢(6)調(diào)試發(fā)現(xiàn)商品的價格正確進行了調(diào)整(從1000調(diào)至1050)并正確更新到了數(shù)據(jù)庫。調(diào)試結(jié)果如圖5-6所示。圖5-6商品價格調(diào)整(7)調(diào)試發(fā)現(xiàn)系統(tǒng)管理中的更改密碼正確實現(xiàn),并更新至數(shù)據(jù)庫中。調(diào)試結(jié)果圖5-7所示。圖5-7系統(tǒng)管理之密碼更改六、心得體會經(jīng)過課堂上的學習,掌握不少關(guān)于數(shù)據(jù)庫方面的知識,但是理論理解好了并不能說明自己已經(jīng)掌握好了這門學科,還需要進行實踐練習才能真正掌握。雖然先前進行過一些實驗,但只是熟悉了DBMS軟件的簡單使用還不是很熟練地理解一些方法和概念。而課程設(shè)計正好給我提供一個難能可貴機會去鞏固課堂知識并去結(jié)合入實踐去進行練習。經(jīng)過這次課設(shè)是自己對課堂上一些不是很理解的概念逐漸明白并掌握,這次課設(shè)自己使用的前臺開發(fā)語言是javaSwing和jdbc。通過課設(shè)使自己掌握掌握了一些原來Java課堂上沒有學到的方法并加以靈活應(yīng)用。最重要的一點是:通過課設(shè)是自己逐步建立其解決問題的基本步驟和解決方案這對以后的工作學習都有很大的幫助。完成一個較為完善的工程需要自己一步一個腳印去逐步完成不可能一蹴而就,而且語言這個東西得勤加練習才能熟練。七、參考文獻1.《數(shù)據(jù)庫系統(tǒng)概念》(機械工業(yè)出版社第六版)。2.《Java核心技術(shù)=1\*ROMANI》(機械工業(yè)出版社第九版).3.《java編程從基礎(chǔ)到應(yīng)用》(清華大學出版社)4.《java變相對象程序設(shè)計》(清華大學出版社第二版)5.《java編程思想》(機械工業(yè)出版社第四版)附錄1:部分java核心代碼1、登錄界面java核心代碼packagecom.lzw.login;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.KeyAdapter;importjava.awt.event.KeyEvent;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JPasswordField;importjavax.swing.JTextField;importjavax.swing.WindowConstants;importcom.lzw.JXCFrame;importcom.lzw.dao.Dao;importcom.lzw.model.TbUserlist;publicclassLoginextendsJFrame{ privateJLabeluserLabel; privateJLabelpassLabel; privateJButtonexit; privateJButtonlogin; privatestaticTbUserlistuser; publicLogin(){ setTitle("登錄企業(yè)進銷存管理系統(tǒng)!"); finalJPanelpanel=newLoginPanel(); panel.setLayout(null); getContentPane().add(panel); setBounds(300,200,panel.getWidth(),panel.getHeight()); userLabel=newJLabel(); userLabel.setText("用戶名:"); userLabel.setBounds(100,135,200,18); panel.add(userLabel); finalJTextFielduserName=newJTextField(); userName.setText("admin");//默認用戶名 userName.setBounds(150,135,200,18); panel.add(userName); passLabel=newJLabel(); passLabel.setText("密碼:"); passLabel.setBounds(100,165,200,18); panel.add(passLabel); finalJPasswordFielduserPassword=newJPasswordField(); userPassword.addKeyListener(newKeyAdapter(){ publicvoidKeyPressed(finalKeyEvente){ if(e.getKeyCode()==10) login.doClick(); } }); userPassword.setBounds(150,165,200,18); panel.add(userPassword); userPassword.setText("admin");//默認的密碼 login=newJButton(); login.addActionListener(newActionListener(){ publicvoidactionPerformed(finalActionEvente){ user=Dao.getUser(userName.getText(),userPassword.getText()); if(user.getUsername()==null||user.getName()==null){ userName.setText(null); userPassword.setText(null); return; } setVisible(false); newJXCFrame(); } }); login.setText("登錄"); login.setBounds(180,195,60,18); panel.add(login); exit=newJButton(); exit.addActionListener(newActionListener(){ publicvoidactionPerformed(finalActionEvente){ System.exit(0); } }); exit.setText("退出"); exit.setBounds(260,195,60,18); panel.add(exit); setVisible(true); setResizable(false);//設(shè)置窗體不可以自由改變大小 setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); //setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } publicstaticTbUserlistgetUser(){ returnuser; } publicstaticvoidsetUser(TbUserlistuser){ Login.user=user; } }2、主界面java核心代碼publicclassJXCFrame{ privateJPanelsysManagePanel; privateJDesktopPanedesktopPane; privateJFrameframe; privateJLabelbackLabel; //創(chuàng)建窗體的Map類型集合對象 privateMap<String,JInternalFrame>ifs=newHashMap<String,JInternalFrame>(); publicJXCFrame(){ frame=newJFrame("企業(yè)進銷存管理系統(tǒng)"); frame.getContentPane().setBackground(newColor(170,188,120)); frame.addComponentListener(newFrameListener()); frame.getContentPane().setLayout(newBorderLayout()); frame.setBounds(100,100,800,600); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); backLabel=newJLabel();//背景標簽 backLabel.setVerticalAlignment(SwingConstants.TOP); backLabel.setHorizontalAlignment(SwingConstants.CENTER); updateBackImage();//更新或初始化背景圖片 desktopPane=newJDesktopPane(); desktopPane.add(backLabel,newInteger(Integer.MIN_VALUE)); frame.getContentPane().add(desktopPane); JTabbedPanenavigationPanel=createNavigationPanel();//創(chuàng)建導(dǎo)航標簽面板 frame.getContentPane().add(navigationPanel,BorderLayout.NORTH); frame.setVisible(true); } publicstaticvoidmain(String[]args){ SwingUtilities.invokeLater(newRunnable(){ publicvoidrun(){ newLogin(); } }); } privateJTabbedPanecreateNavigationPanel(){//創(chuàng)建導(dǎo)航標簽面板的方法 JTabbedPanetabbedPane=newJTabbedPane(); tabbedPane.setFocusable(false); tabbedPane.setBackground(newColor(211,230,192)); tabbedPane.setBorder(newBevelBorder(BevelBorder.RAISED)); JPanelbaseManagePanel=newJPanel();//基礎(chǔ)信息管理面板 baseManagePanel.setBackground(newColor(215,223,194)); baseManagePanel.setLayout(newBoxLayout(baseManagePanel, BoxLayout.X_AXIS)); baseManagePanel.add(createFrameButton("客戶信息管理","KeHuGuanLi")); baseManagePanel.add(createFrameButton("商品信息管理","ShangPinGuanLi")); baseManagePanel.add(createFrameButton("供應(yīng)商信息管理","GysGuanLi")); JPaneldepotManagePanel=newJPanel();//庫存管理面板 depotManagePanel.setBackground(newColor(215,223,194)); depotManagePanel.setLayout(newBoxLayout(depotManagePanel, BoxLayout.X_AXIS)); depotManagePanel.add(createFrameButton("庫存盤點","KuCunPanDian")); depotManagePanel.add(createFrameButton("價格調(diào)整","JiaGeTiaoZheng")); JPanelsellManagePanel=newJPanel();//銷售管理面板 sellManagePanel.setBackground(newColor(215,223,194)); sellManagePanel.setLayout(newBoxLayout(sellManagePanel, BoxLayout.X_AXIS)); sellManagePanel.add(createFrameButton("銷售單","XiaoShouDan")); sellManagePanel.add(createFrameButton("銷售退貨","XiaoShouTuiHuo")); JPanelsearchStatisticPanel=newJPanel();//查詢統(tǒng)計面板 searchStatisticPanel.setBounds(0,0,600,41); searchStatisticPanel.setName("searchStatisticPanel"); searchStatisticPanel.setBackground(newColor(215,223,194)); searchStatisticPanel.setLayout(newBoxLayout(searchStatisticPanel, BoxLayout.X_AXIS)); searchStatisticPanel.add(createFrameButton("客戶信息查詢","KeHuChaXun")); searchStatisticPanel.add(createFrameButton("商品信息查詢","ShangPinChaXun")); searchStatisticPanel.add(createFrameButton("供應(yīng)商信息查詢", "GongYingShangChaXun")); searchStatisticPanel.add(createFrameButton("銷售信息查詢","XiaoShouChaXun")); searchStatisticPanel.add(createFrameButton("銷售退貨查詢", "XiaoShouTuiHuoChaXun")); searchStatisticPanel.add(createFrameButton("入庫查詢","RuKuChaXun")); searchStatisticPanel .add(createFrameButton("入庫退貨查詢","RuKuTuiHuoChaXun")); //searchStatisticPanel.add(createFrameButton("銷售排行","XiaoShouPaiHang")); JPanelstockManagePanel=newJPanel();//進貨管理面板 stockManagePanel.setBackground(newColor(215,223,194)); stockManagePanel.setLayout(newBoxLayout(stockManagePanel, BoxLayout.X_AXIS)); stockManagePanel.add(createFrameButton("進貨單","JinHuoDan")); stockManagePanel.add(createFrameButton("進貨退貨","JinHuoTuiHuo")); sysManagePanel=newJPanel();//系統(tǒng)管理面板 sysManagePanel.setBackground(newColor(215,223,194)); sysManagePanel .setLayout(newBoxLayout(sysManagePanel,BoxLayout.X_AXIS)); sysManagePanel.add(createFrameButton("用戶管理","CzyGL")); sysManagePanel.add(createFrameButton("更改密碼","GengGaiMiMa")); sysManagePanel.add(createFrameButton("權(quán)限管理","QuanXianManager")); tabbedPane.addTab("基礎(chǔ)信息管理",null,baseManagePanel,"基礎(chǔ)信息管理"); tabbedPane.addTab("進貨管理",null,stockManagePanel,"進貨管理"); tabbedPane.addTab("銷售管理",null,sellManagePanel,"銷售管理"); tabbedPane.addTab("查詢統(tǒng)計",null,searchStatisticPanel,"查詢統(tǒng)計"); tabbedPane.addTab("庫存管理",null,depotManagePanel,"庫存管理"); tabbedPane.addTab("系統(tǒng)管理",null,sysManagePanel,"系統(tǒng)管理"); returntabbedPane; } /***********************輔助方法**************************/ //為內(nèi)部窗體添加Action的方法 privateJButtoncreateFrameButton(StringfName,Stringcname){ StringimgUrl="res/ActionIcon/"+fName+".png"; StringimgUrl_roll="res/ActionIcon/"+fName +"_roll.png"; StringimgUrl_down="res/ActionIcon/"+fName +"_down.png"; Iconicon=newImageIcon(imgUrl); Iconicon_roll=null; if(imgUrl_roll!=null) icon_roll=newImageIcon(imgUrl_roll); Iconicon_down=null; if(imgUrl_down!=null) icon_down=newImageIcon(imgUrl_down); Actionaction=newopenFrameAction(fName,cname,icon); JButtonbutton=newJButton(action); button.setMargin(newInsets(0,0,0,0)); button.setHideActionText(true); button.setFocusPainted(false); button.setBorderPainted(false); button.setContentAreaFilled(false); if(icon_roll!=null) button.setRolloverIcon(icon_roll); if(icon_down!=null) button.setPressedIcon(icon_down); returnbutton; } //獲取內(nèi)部窗體的唯一實例對象 privateJInternalFramegetIFrame(StringframeName){ JInternalFramejf=null; if(!ifs.containsKey(frameName)){ try{ ClassfClass=Class.forName("ernalFrame."+frameName); Constructorconstructor=fClass.getConstructor(null); jf=(JInternalFrame)constructor.newInstance(null); ifs.put(frameName,jf); }catch(Exceptione){ e.printStackTrace(); } }else jf=ifs.get(frameName); returnjf; } //更新背景圖片的方法 privatevoidupdateBackImage(){ if(backLabel!=null){ intbackw=JXCFrame.this.frame.getWidth(); intbackh=frame.getHeight(); backLabel.setSize(backw,backh); backLabel.setText("<html><body><imagewidth='"+backw +"'height='"+(backh-110)+"'src=" +JXCFrame.this.getClass().getResource("welcome.jpg") +"'></img></body></html>"); } } //窗體監(jiān)聽器 privatefinalclassFrameListenerextendsComponentAdapter{ publicvoidcomponentResized(finalComponentEvente){ updateBackImage(); } } //主窗體菜單項的單擊事件監(jiān)聽器 protectedfinalclassopenFrameActionextendsAbstractAction{ privateStringframeName=null; privateopenFrameAction(){ } publicopenFrameAction(Stringcname,StringframeName,Iconicon){ this.frameName=frameName; putValue(Action.NAME,cname); putValue(Action.SHORT_DESCRIPTION,cname); putValue(Action.SMALL_ICON,icon); } publicvoidactionPerformed(finalActionEvente){ JInternalFramejf=getIFrame(frameName); //在內(nèi)部窗體閉關(guān)時,從內(nèi)部窗體容器ifs對象中清除該窗體。 jf.addInternalFrameListener(newInternalFrameAdapter(){ publicvoidinternalFrameClosed(InternalFrameEvente){ ifs.remove(frameName); } }); if(jf.getDesktopPane()==null){ desktopPane.add(jf); jf.setVisible(true); } try{ jf.setSelected(true); }catch(PropertyVetoExceptione1){ e1.printStackTrace(); } } } static{ try{ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); }catch(Exceptione){ e.printStackTrace(); } }}3、數(shù)據(jù)庫連接部分java核心代碼packagecom.lzw.dao;importjava.sql.Connection;importjava.sql.Date;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.ResultSetMetaData;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;importjava.util.Set;importernalFrame.guanli.Item;importcom.lzw.model.TbGysinfo;importcom.lzw.model.TbKhinfo;importcom.lzw.model.TbKucun;importcom.lzw.model.TbRkthDetail;importcom.lzw.model.TbRkthMain;importcom.lzw.model.TbRukuDetail;importcom.lzw.model.TbRukuMain;importcom.lzw.model.TbSellDetail;importcom.lzw.model.TbSellMain;importcom.lzw.model.TbSpinfo;importcom.lzw.model.TbUserlist;importcom.lzw.model.TbXsthDetail;importcom.lzw.model.TbXsthMain;publicclassDao{protectedstaticStringdbClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver";protectedstaticStringdbUrl="jdbc:sqlserver://localhost:1433;DatabaseName=db_jxcmanager;SelectMethod=Cursor";protectedstaticStringdbUser="sa";protectedstaticStringdbPwd="s;protectedstaticStringsecond=null;publicstaticConnectionconn=null;static{ try{ if(conn==null){ Class.forName(dbClassName).newInstance(); conn=DriverManager.getConnection(dbUrl,dbUser,dbPwd); } }catch(Exceptionee){ ee.printStackTrace(); }} privateDao(){ } //讀取所有客戶信息 publicstaticListgetKhInfos(){ Listlist=findForList("selectid,khnamefromtb_khinfo"); returnlist; } //讀取所有供應(yīng)商信息 publicstaticListgetGysInfos(){ Listlist=findForList("selectid,namefromtb_gysinfoorderbynameasc"); returnlist; } //讀取客戶信息 publicstaticTbKhinfogetKhInfo(Itemitem){ Stringwhere="khname='"+item.getName()+"'"; if(item.getId()!=null) where="id='"+item.getId()+"'"; TbKhinfoinfo=newTbKhinfo(); ResultSetset=findForResultSet("select*fromtb_khinfowhere" +where); try{ if(set.next()){ info.setId(set.getString("id").trim()); info.setKhname(set.getString("khname").trim()); info.setJian(set.getString("jian").trim()); info.setAddress(set.getString("address").trim()); info.setBianma(set.getString("bianma").trim()); info.setFax(set.getString("fax").trim()); info.setHao(set.getString("zhanghao").trim()); info.setLian(set.getString("lianxiren").trim()); info.setLtel(set.getString("ltel").trim()); info.setTel(set.getString("tel").trim()); info.setYinhang(set.getString("yinhang").trim()); } }catch(SQLExceptione){ e.printStackTrace(); } returninfo; } //讀取指定供應(yīng)商信息 publicstaticTbGysinfogetGysInfo(Itemitem){ Stringwhere="name='"+item.getName()+"'"; if(item.getId()!=null) where="id='"+item.getId()+"'"; TbGysinfoinfo=newTbGysinfo(); ResultSetset=findForResultSet("select*fromtb_gysinfowhere" +where); try{ if(set.next()){ info.setId(set.getString("id").trim()); info.setAddress(set.getString("address").trim()); info.setBianma(set.getString("bianma").trim()); info.setFax(set.getString("fax").trim()); info.setJc(set.getString("jc").trim()); info.setLian(set.getString("lianxiren").trim()); info.setLtel(set.getString("ltel").trim()); info.setName(set.getString("name").trim()); info.setTel(set.getString("tel").trim()); info.setMail(set.getString("mail").trim()); info.setYh(set.getString("yh").trim()); } }catch(SQLExceptione){ e.printStackTrace(); } returninfo; } //讀取用戶 publicstaticTbUserlistgetUser(Stringname,Stringpassword){ TbUserlistuser=newTbUserlist(); ResultSetrs=findForResultSet("select*fromtb_userlistwhereusername='" +name+"'"); try{ if(rs.next()){ user.setUsername(name); user.setPass(rs.getString("pass")); if(user.getPass().equals(password)){ user.setName(rs.getString("name")); user.setQuan(rs.getString("quan")); } } }catch(SQLExceptione){ e.printStackTrace(); } returnuser; } //執(zhí)行指定查詢 publicstaticResultSetquery(StringQueryStr){ ResultSetset=findForResultSet(QueryStr); returnset; } //執(zhí)行刪除 publicstaticintdelete(Stringsql){ returnupdate(sql); } //添加客戶信息的方法 publicstaticbooleanaddKeHu(TbKhinfokhinfo){ if(khinfo==null) returnfalse; returninsert("inserttb_khinfovalues('"+khinfo.getId()+"','" +khinfo.getKhname()+"','"+khinfo.getJian()+"','" +khinfo.getAddress()+"','"+khinfo.getBianma()+"','" +khinfo.getTel()+"','"+khinfo.getFax()+"','" +khinfo.getLian()+"','"+khinfo.getLtel()+"','" +khinfo.getYinhang()+"','"+khinfo.getHao()+"')"); } //修改客戶信息的方法 publicstaticintupdateKeHu(TbKhinfokhinfo){ returnupdate("updatetb_khinfosetjian='"+khinfo.getJian() +"',address='"+khinfo.getAddress()+"',bianma='" +khinfo.getBianma()+"',tel='"+khinfo.getTel()+"',fax='" +khinfo.getFax()+"',lian='"+khinfo.getLian()+"',ltel='" +khinfo.getLtel()+"',mail='"+"',yinhang='"+khinfo.getYinhang()+"',hao='" +khinfo.getHao()+"'whereid='"+khinfo.getId()+"')"); } //修改庫存的方法 publicstaticintupdateKucunDj(TbKucunkcInfo){ returnupdate("updatetb_kucunsetdj="+kcInfo.getDj() +"whereid='"+kcInfo.getId()+"'"); } //修改供應(yīng)商信息的方法 publicstaticintupdateGys(TbGysinfogysInfo){ returnupdate("updatetb_gysinfosetjc='"+gysInfo.getJc() +"',address='"+gysInfo.getAddress()+"',bianma='" +gysInfo.getBianma()+"',tel='"+gysInfo.getTel() +"',fax='"+gysInfo.getFax()+"',lian='"+gysInfo.getLian() +"',ltel='"+gysInfo.getLtel()+"',mail='" +gysInfo.getMail()+"',yh='"+gysInfo.getYh() +"'whereid='"+gysInfo.getId()+"'"); } //添加供應(yīng)商信息的方法 publicstaticbooleanaddGys(TbGysinfogysInfo){ if(gysInfo==null) returnfalse; returninsert("inserttb_gysinfovalues('"+gysInfo.getId()+"','" +gysInfo.getName()+"','"+gysInfo.getJc()+"','" +gysInfo.getAddress()+"','"+gysInfo.getBianma()+"','" +gysInfo.getTel()+"','"+gysInfo.getFax()+"','" +gysInfo.getLian()+"','"+gysInfo.getLtel()+"','" +gysInfo.getYh()+"','"+gysInfo.getMail()+"')"); } //添加商品 publicstaticbooleanaddSp(TbSpinfospInfo){ if(spInfo==null) returnfalse; returninsert("inserttb_spinfovalues('"+spInfo.getId()+"','" +spInfo.getSpname()+"','"+spInfo.getJc()+"','" +spInfo.getCd()+"','"+spInfo.getDw()+"','" +spInfo.getGg()+"','"+spInfo.getBz()+"','" +spInfo.getPh()+"','"+spInfo.getPzwh()+"','" +spInfo.getMemo()+"','"+spInfo.getGysname()+"')"); } //更新商品 publicstaticintupdateSp(TbSpinfospInfo){ returnupdate("updatetb_spinfosetjc='"+spInfo.getJc()+"',cd='" +spInfo.getCd()+"',dw='"+spInfo.getDw()+"',gg='" +spInfo.getGg()+"',bz='"+spInfo.getBz()+"',ph='" +spInfo.getPh()+"',pzwh='"+spInfo.getPzwh()+"',memo='" +spInfo.getMemo()+"',gysname='"+spInfo.getGysname() +"'whereid='"+spInfo.getId()+"'"); } //讀取商品信息 publicstaticTbSpinfogetSpInfo(Itemitem){ Stringwhere="spname='"+item.getName()+"'"; if(item.getId()!=null) where="id='"+item.getId()+"'"; ResultSetrs=findForResultSet("select*fromtb_spinfowhere" +where); TbSpinfospInfo=newTbSpinfo(); try{ if(rs.next()){ spInfo.setId(rs.getString("id").trim()); spInfo.setBz(rs.getString("bz").trim()); spInfo.setCd(rs.getString("cd").trim()); spInfo.setDw(rs.getString("dw").trim()); spInfo.setGg(rs.getString("gg").trim()); spInfo.setGysname(rs.getString("gysname").trim()); spInfo.setJc(rs.getString("jc").trim()); //spInfo.setMemo(rs.getString("memo").trim()); spInfo.setPh(rs.getString("ph").trim()); spInfo.setPzwh(rs.getString("pzwh").trim()); spInfo.setSpname(rs.getString("spname").trim()); } }catch(SQLExceptione){ e.printStackTrace(); } returnspInfo; } //獲取所有商品信息 publicsta

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論