第一篇:銷(xiāo)售庫(kù)存管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 程序運(yùn)行說(shuō)明
程序運(yùn)行說(shuō)明
1、運(yùn)行環(huán)境
本系統(tǒng)源程序是在Windows XP下開(kāi)發(fā)的,用戶(hù)只有在Windows XP下正確配置程序所需的運(yùn)行環(huán)境后,才能使用源程序。軟件開(kāi)發(fā)平臺(tái)如下:
(1)操作系統(tǒng):Windows XP(2)數(shù) 據(jù) 庫(kù):SQLServer 2000
(3)開(kāi)發(fā)工具:MyEclipse2、安裝步驟
(1)SQLServer 2000的安裝
從網(wǎng)上下載SQLServer 2000。然后雙擊進(jìn)行解壓,找到解壓包中的setup.bat文件。
雙擊打開(kāi)該文件文件可以開(kāi)始安裝,會(huì)出現(xiàn)安裝提示框,點(diǎn)擊“下一步”,然后出現(xiàn)軟件的許可證協(xié)議,點(diǎn)擊“同意”,再點(diǎn)擊“下一步”,然后選擇安裝的目錄(一般默認(rèn)在C盤(pán))可以根據(jù)自己的情況更改安裝目錄,然后就直接點(diǎn)擊“下一步”,在選擇用戶(hù)是選擇本地用戶(hù),用戶(hù)名和密碼均設(shè)為“sa”。然后就直接點(diǎn)擊“下一步”,直至完成安裝。
(2)MyEclipse安裝
從網(wǎng)上下載MyEclipse。雙擊解壓,按照安裝程序的指引步驟就可以正確安裝本軟件。
(3)附加數(shù)據(jù)庫(kù)
打開(kāi)Microsoft SQL Server 2000,把控制臺(tái)左側(cè)目錄逐層展開(kāi),會(huì)看到“數(shù)據(jù)庫(kù)”這個(gè)文件夾,右擊該文件夾選擇“所有任務(wù)”,單擊“附加數(shù)據(jù)庫(kù)”該項(xiàng)。此時(shí)會(huì)彈出“附加數(shù)據(jù)庫(kù)”對(duì)話(huà)框,選擇打開(kāi)App_Date文件夾,從中選擇“.MDF”選擇完成后,單擊“確定”按鈕。返回“附加數(shù)據(jù)庫(kù)”對(duì)話(huà)框,單擊“確定”按鈕,系統(tǒng)自動(dòng)彈出提示信息“附加數(shù)據(jù)庫(kù)順利完成”,單擊“確定”按鈕。3 程序登錄名和密碼
用戶(hù)名:admin
密碼:123
第二篇:醫(yī)院藥品庫(kù)存管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
醫(yī)院藥品庫(kù)存管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
專(zhuān)業(yè)班級(jí):計(jì)算機(jī)科學(xué)與技術(shù)2092班
學(xué)生姓名:蘇勇
指導(dǎo)老師:鄭剛
摘要
藥房是醫(yī)院最繁忙的科室之一,無(wú)論門(mén)診還是住院藥房,面臨著大量取藥的患者和家屬,工作人員都在忙于事物性工作。各種原因造成藥品上的差錯(cuò)不能及時(shí)發(fā)現(xiàn)和糾正,管理中的混亂現(xiàn)象也就不可避免。大型醫(yī)院藥房藥品數(shù)量繁多,采購(gòu)和發(fā)放的帳目登記是一件很繁瑣的事情而且藥品的價(jià)格經(jīng)常調(diào)整,退貨現(xiàn)象時(shí)有發(fā)生,使賬目工作更加復(fù)雜,呈報(bào)準(zhǔn)確庫(kù)存資金和匯總某一期資金流動(dòng)情況,其統(tǒng)計(jì)工作更是十分困難。醫(yī)療質(zhì)量的提高和重病患者的搶救,與藥品供應(yīng)有著密切的關(guān)系。為了解決這個(gè)矛盾,實(shí)現(xiàn)科學(xué)化、現(xiàn)代化的醫(yī)院藥房藥品的管理,我們?cè)谶@里來(lái)研究與開(kāi)發(fā)醫(yī)院藥品庫(kù)存管理系統(tǒng),并用于實(shí)踐。
根據(jù)當(dāng)前社會(huì)現(xiàn)狀和技術(shù)發(fā)展的不斷進(jìn)步,我們應(yīng)用現(xiàn)有的技術(shù)和環(huán)境,開(kāi)發(fā)了醫(yī)院藥品庫(kù)存管理系統(tǒng),不僅要提高醫(yī)院的經(jīng)濟(jì)效益,而且要使醫(yī)院信息管理工作盡快達(dá)到規(guī)范化、制度化、科學(xué)化,最終要實(shí)現(xiàn)醫(yī)院信息技術(shù)全電子無(wú)紙化和膠片管理的最終目標(biāo)。
關(guān)鍵字:醫(yī)院藥品庫(kù)存管理系統(tǒng);VB;SQL Server 2000;E-R
引言
本軟件是一個(gè)醫(yī)院藥品庫(kù)存管理系統(tǒng),是醫(yī)院信息系統(tǒng)中的一個(gè)重要組成部分。它不僅涉及的數(shù)據(jù)量巨大,而且要求具有極高的準(zhǔn)確性、安全性和保密性,其建設(shè)成果的好壞直接關(guān)系到整個(gè)醫(yī)院醫(yī)務(wù)工作人員工作效率和數(shù)據(jù)的安全性。為此,本軟件嚴(yán)格遵循軟件工程規(guī)定的設(shè)計(jì)方法和步驟,采用面向?qū)ο蟮拈_(kāi)發(fā)、分析技術(shù),對(duì)系統(tǒng)進(jìn)行了深入細(xì)致的研究。本文介紹了面向?qū)ο蟮拈_(kāi)發(fā)工具VB6.0以及數(shù)據(jù)庫(kù)SQL Server的使用。重點(diǎn)闡述本系統(tǒng)的開(kāi)發(fā)過(guò)程,詳細(xì)地論述了一個(gè)系統(tǒng)開(kāi)發(fā)應(yīng)有的步驟:系統(tǒng)分析(系統(tǒng)背景分析、系統(tǒng)初步調(diào)查、系統(tǒng)可行性研究、現(xiàn)行系統(tǒng)的詳細(xì)調(diào)查)、系統(tǒng)設(shè)計(jì)(包括系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)詳細(xì)設(shè)計(jì))和系統(tǒng)實(shí)施。
采用面向?qū)ο蠓椒ń⒌南到y(tǒng)具有較強(qiáng)的應(yīng)變能力,各組成部分可重用性好。并且面向?qū)ο蠓椒ㄔ谙到y(tǒng)分析、設(shè)計(jì)和實(shí)施階段均采用以對(duì)象為基本單元的統(tǒng)一的模型,使開(kāi)發(fā)各階段之間具有良好的銜接。本文所敘述的內(nèi)容以及程序代碼都是醫(yī)院庫(kù)存管理中之常見(jiàn)問(wèn)題。
第三篇:數(shù)據(jù)庫(kù)課程設(shè)計(jì)——庫(kù)存銷(xiāo)售管理系統(tǒng)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)
實(shí)驗(yàn)報(bào)告
姓名:黃世增
班級(jí):計(jì)算機(jī)1403
學(xué)號(hào):14116403051.實(shí)驗(yàn)名稱(chēng)
使用Visual Basic 6.0和SQL Server 2014開(kāi)發(fā)庫(kù)存銷(xiāo)售管理系統(tǒng)
2.實(shí)驗(yàn)?zāi)康?/p>
使用Visual Basic 6.0開(kāi)發(fā)工具開(kāi)發(fā)一個(gè)庫(kù)存銷(xiāo)售管理系統(tǒng),該系統(tǒng)采用SQL Server 2014數(shù)據(jù)庫(kù)保存庫(kù)存貨物信息,數(shù)據(jù)庫(kù)中包括貨物出入庫(kù)信息和商品銷(xiāo)售等信息。該系統(tǒng)包括系統(tǒng)登錄、貨物出入庫(kù)管理、商品銷(xiāo)售管理和商品統(tǒng)計(jì)管理等功能,通過(guò)這些功能實(shí)現(xiàn)對(duì)庫(kù)存中貨物信息和銷(xiāo)售信息進(jìn)行管理。
系統(tǒng)主要實(shí)現(xiàn)以下目標(biāo):
? 實(shí)現(xiàn)系統(tǒng)登錄及修改用戶(hù)密碼的功能。? 對(duì)庫(kù)存貨物的出入庫(kù)信息進(jìn)行管理。? 對(duì)商品的銷(xiāo)售信息進(jìn)行管理。
? 根據(jù)銷(xiāo)售日期統(tǒng)計(jì)商品的銷(xiāo)售數(shù)據(jù)。
3.實(shí)驗(yàn)步驟 3.1 設(shè)計(jì)數(shù)據(jù)庫(kù)
建立一個(gè)名為“DB_KCGL”的數(shù)據(jù)庫(kù),根據(jù)前述的主要功能目標(biāo),需要建立3個(gè)數(shù)據(jù)表(關(guān)系):
(1)貨物的出入庫(kù)信息:保存貨物的出入庫(kù)信息
? id:庫(kù)存貨物信息的編號(hào),主碼,建議長(zhǎng)度為18的numeric類(lèi)型。? tb_title:庫(kù)存貨物的名稱(chēng),建議長(zhǎng)度為50的varchar類(lèi)型。? tb_style:庫(kù)存貨物的類(lèi)型,建議長(zhǎng)度為50的varchar類(lèi)型。? tb_nums:庫(kù)存貨物的數(shù)量,建議為整型int。? tb_values:庫(kù)存貨物的價(jià)格,實(shí)數(shù)類(lèi)型real。
? tb_date:庫(kù)存貨物的入庫(kù)日期,時(shí)間日期類(lèi)型datetime。
? tb_mark:庫(kù)存貨物的備注信息,建議長(zhǎng)度為50的varchar類(lèi)型。
(2)商品的銷(xiāo)售信息:保存商品的銷(xiāo)售信息
? id:商品銷(xiāo)售信息的編號(hào),主碼,建議長(zhǎng)度為18的numeric類(lèi)型。
? ? ? ? tb_title:銷(xiāo)售商品的名稱(chēng),建議長(zhǎng)度為50的varchar類(lèi)型。tb_nums:建議為整型int。
tb_values:銷(xiāo)售商品的總價(jià),浮點(diǎn)類(lèi)型float。
tb_date:商品銷(xiāo)售的日期,時(shí)間日期類(lèi)型datetime。
(3)系統(tǒng)用戶(hù)的信息:保存系統(tǒng)用戶(hù)的信息
? id:用戶(hù)信息的編號(hào),主碼,建議長(zhǎng)度為18的numeric類(lèi)型。? tb_name:用戶(hù)名稱(chēng),建議長(zhǎng)度為50的varchar類(lèi)型。
? tb_pas:用戶(hù)的密碼信息,建議長(zhǎng)度為50的varchar類(lèi)型。
3.2 設(shè)計(jì)連接數(shù)據(jù)庫(kù)的模塊
需要首先建立一個(gè)連接數(shù)據(jù)庫(kù)的模塊,這樣應(yīng)用程序才能與數(shù)據(jù)庫(kù)中的數(shù)據(jù)表取得連接,將數(shù)據(jù)信息從數(shù)據(jù)表中讀出到應(yīng)用程序中或通過(guò)應(yīng)用程序保存到數(shù)據(jù)表中。
為此,建立一個(gè)負(fù)責(zé)數(shù)據(jù)庫(kù)連接的模塊如下:
(1)選擇“工程”菜單下的“添加模塊”命令,在應(yīng)用程序中添加一個(gè)模塊Module1。(2)Module1模塊的實(shí)現(xiàn)如下: '數(shù)據(jù)連接模塊
Public MyStrs As String Public DB_AdoRs As New ADODB.Recordset
'后添加一個(gè)記錄集對(duì)象 Public DB_AdoRs1 As New ADODB.Recordset
'后添加一個(gè)記錄集對(duì)象 Public DB_AdoRs2 As New ADODB.Recordset
'后添加一個(gè)記錄集對(duì)象 Public Function Cnn()As ADODB.Connection
'定義連接字符串函數(shù)
Set Cnn = New ADODB.Connection
Cnn.Open “Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DB_KCGL;Data Source=.” End Function Public Sub Main()
MyStrs = “Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security
Info=False;Initial Catalog=DB_KCGL;Data Source=.”
'顯示系統(tǒng)登錄窗體
Form1.Show End Sub(3)這里需要將程序的入口設(shè)置為模塊中的Main()函數(shù)。選擇“工程”菜單下的“工程屬性”命令,在“通用”標(biāo)簽中進(jìn)行相應(yīng)設(shè)置。
3.3 系統(tǒng)登陸模塊設(shè)計(jì)
在本庫(kù)存銷(xiāo)售管理系統(tǒng)中,只有授權(quán)用戶(hù)(管理員)可以登錄并進(jìn)行庫(kù)存和銷(xiāo)售信息管理與維護(hù),因此需要一個(gè)系統(tǒng)登錄界面,防止非法用戶(hù)登錄到系統(tǒng)中,從而保證了應(yīng)用程序的安全性和可靠性。
3.3.1 登錄窗體設(shè)計(jì)
設(shè)計(jì)如下的登錄窗體,在窗體中要添加一個(gè)ADO控件,命名為Adodc1。
(1)登錄窗體啟動(dòng)之后,需要將系統(tǒng)用戶(hù)的信息數(shù)據(jù)表中的所有用戶(hù)名稱(chēng)信息添加到窗體的ComboBox控件的Op_Name屬性中,即實(shí)現(xiàn)在“操作員名稱(chēng)”下拉列表中可以出現(xiàn)系統(tǒng)當(dāng)前的操作員信息,供登錄用戶(hù)選擇。Private Sub Form_Load()'使用代碼連接數(shù)據(jù)庫(kù)與數(shù)據(jù)表
Adodc1.ConnectionString = MyStrs
Adodc1.RecordSource = “select * from 系統(tǒng)的用戶(hù)信息”
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
Adodc1.Recordset.MoveFirst
Op_Name.Clear
'在添加數(shù)據(jù)時(shí),首先清空控件中的內(nèi)容
Do While Adodc1.Recordset.EOF = False
'將操作員信息添加到下拉列表框控件當(dāng)中
Op_Name.AddItem(Adodc1.Recordset.Fields(“tb_name”))
Adodc1.Recordset.MoveNext
Loop
End If End Sub
(2)當(dāng)用戶(hù)在“操作員名稱(chēng)”下拉列表中選擇操作員的名稱(chēng),并且在“操作員密碼”文本框輸入正確的密碼之后,單擊“確定”按鈕將登錄到系統(tǒng)中,否則將無(wú)法登錄系統(tǒng)。具體實(shí)現(xiàn)如下:
Private Sub Cmd_Ok_Click()Adodc1.RecordSource = “select * from Tb_User where tb_name ='” & Op_Name.Text & “'” Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
MPassword = Adodc1.Recordset.Fields(“tb_pas”)
If Txt_Password.Text = MPassword Then
'判斷數(shù)據(jù)的密碼是否正確
Name1 = Op_Name.Text
Frm_Main.StatusBar1.Panels.Item(2).Text = “當(dāng)前操作員: ” + Adodc1.Recordset.Fields(“tb_name”)
Frm_Main.Show
'通過(guò)身份驗(yàn)證則顯示主窗體,登錄到系統(tǒng)當(dāng)中
Unload Me
Else
MsgBox “密碼不正確,請(qǐng)您確認(rèn)后重新輸入”, , “提示信息”
Txt_Password.Text = “"
Txt_Password.SetFocus
End If
Else
MsgBox ”對(duì)不起 沒(méi)有此用戶(hù)的信息“, , ”提示信息“
Op_Name.Text = ”“
Txt_Password.Text = ”“
End If End Sub 3.4 系統(tǒng)主界面的實(shí)現(xiàn)
3.4.1 主界面設(shè)計(jì)
(1)在工程中添加一個(gè)窗體,將窗體命名為Frm_main,將窗體Caption屬性設(shè)置為“庫(kù)存管理系統(tǒng)”。
(2)添加一個(gè)Toolbar控件,工具欄由“修改密碼”、“庫(kù)存管理”、“商品銷(xiāo)售”、“銷(xiāo)售統(tǒng)計(jì)”和“退出系統(tǒng)”5個(gè)按鈕組成。(3)添加一個(gè)StatusBar控件,使得狀態(tài)欄中能夠顯示登錄操作員姓名和當(dāng)前系統(tǒng)時(shí)間等信息。
(4)在主窗體上添加一個(gè)時(shí)鐘控件,用于顯示系統(tǒng)當(dāng)前日期和時(shí)間信息。
(5)在主窗體上添加一個(gè)Label標(biāo)簽控件,將其Caption屬性設(shè)置為“庫(kù)存管理系統(tǒng)”。
3.4.2 代碼實(shí)現(xiàn)
(1)窗體啟動(dòng)時(shí),在窗體的狀態(tài)欄中將顯示當(dāng)前系統(tǒng)的日期信息: Private Sub Form_Load()
StatusBar1.Panels.Item(3).Text = Format(Now, ”yyyy年mm月dd日“)End Sub
(2)單擊窗口工具欄按鈕時(shí),將會(huì)調(diào)用系統(tǒng)的各個(gè)子功能模塊: Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Index
Case 1
Frm_Pas.Show
'修改密碼
Case 2
Frm_Inout.Show '庫(kù)存管理
Case 3
Frm_Sale.Show
'商品銷(xiāo)售
Case 4
Frm_Stat.Show
'銷(xiāo)售統(tǒng)計(jì)
Case 5
End
'退出系統(tǒng)
End Select End Sub
(3)在時(shí)鐘控件的Timer事件中添加如下代碼,實(shí)現(xiàn)在狀態(tài)欄中顯示當(dāng)前系統(tǒng)時(shí)間的功能: Private Sub Timer1_Timer()
StatusBar1.Panels.Item(4).Text = Time End Sub
(4)再向狀態(tài)欄中添加公司名稱(chēng),操作員和公司網(wǎng)址信息。
系統(tǒng)主窗體的運(yùn)行界面如下圖所示:
3.5 出入庫(kù)管理模塊的設(shè)計(jì)與實(shí)現(xiàn)
該模塊主要是記錄和維護(hù)庫(kù)存中的貨物信息,其中包括對(duì)貨物信息的刪除、修改和保存等方面的功能。
3.5.1 窗體界面設(shè)計(jì)
(1)在工程中添加一個(gè)窗體,命名為Frm_Inout,將窗體Caption設(shè)置為“出入庫(kù)管理”。(2)在窗體上添加相應(yīng)的控件,如下圖所示。
(3)通過(guò)“工程”菜單下的“部件”命令將DataGrid數(shù)據(jù)表格控件添加到工具箱中,然后在窗體上添加1個(gè)數(shù)據(jù)表格控件DataGrid1。
(4)在窗體上添加一個(gè)ADO控件Adodc1,同時(shí)將DataGrid1的數(shù)據(jù)源屬性DataSource設(shè)置為Adodc1。
3.5.2 程序代碼實(shí)現(xiàn)
(1)窗口載入時(shí),將數(shù)據(jù)庫(kù)中商品表數(shù)據(jù)讀出。Private Sub Form_Load()
Adodc1.ConnectionString = MyStrs
Adodc1.RecordSource = ”select * from 貨物的出入庫(kù)信息 order by id“
Adodc1.Refresh
AddTitle End Sub
其中,AddTitle函數(shù)用于向DataGrid1添加表頭,實(shí)現(xiàn)如下: '添加數(shù)據(jù)庫(kù)字段標(biāo)題的事件過(guò)程 Private Sub AddTitle()
DataGrid1.Columns.Item(0).Caption = ”編號(hào)“
DataGrid1.Columns.Item(1).Caption = ”名稱(chēng)“
DataGrid1.Columns.Item(2).Caption = ”類(lèi)型“
DataGrid1.Columns.Item(3).Caption = ”數(shù)量“
DataGrid1.Columns.Item(4).Caption = ”單價(jià)“
DataGrid1.Columns.Item(5).Caption = ”入庫(kù)日期“
DataGrid1.Columns.Item(6).Caption = ”備注“
End Sub
(2)點(diǎn)擊“添加”按鈕,清空編輯框,讓用戶(hù)輸入新的待添加內(nèi)容 Private Sub Command1_Click()'清空文本框中的內(nèi)容
Text1.Text = ”“
Text2.Text = ”“
Text3.Text = ”“
Text4.Text = ”“
Text5.Text = ”“
Text6.Text = ”“
Text1.SetFocus End Sub(3)點(diǎn)擊“刪除”按鈕,刪除選中當(dāng)前記錄。Private Sub Command2_Click()'刪除庫(kù)存信息
c = MsgBox(”確認(rèn)要?jiǎng)h除該信息嗎“, 17, ”提示信息“)
If c = vbOK Then
'如果有錯(cuò)誤則執(zhí)行錯(cuò)誤處理
On Error Resume Next
Set DB_AdoRs = Cnn.Execute(”Delete from 貨物的出入庫(kù)信息 where id='“ + Text1.Text + ”'“)MsgBox ”數(shù)據(jù)刪除成功“, 64, ”提示信息“
'刪除后刷新數(shù)據(jù)信息
Adodc1.RecordSource = ”select * from 貨物的出入庫(kù)信息 order by id“
Adodc1.Refresh
AddTitle
End If
Text1.Text = ”“
Text2.Text = ”“
Text3.Text = ”“
Text4.Text = ”“
Text5.Text = ”“
Text6.Text = ”“
End Sub
(4)點(diǎn)擊“修改”按鈕,修改當(dāng)前的記錄信息。Private Sub Command3_Click()'修改庫(kù)存信息
c = MsgBox(”確認(rèn)修改信息嗎“, 33, ”提示信息“)
If c = vbOK Then
'
On Error Resume Next
Set DB_AdoRs = Cnn.Execute(”UPDATE 貨物的出入庫(kù)信息 SET tb_title='“ + Text2 + ”',tb_style='“ + Text3 + ”',tb_nums='“ + Text4 + ”',tb_values='“ _
+ Text5 + ”',tb_mark='“ + Text6 + ”' where id='“ + Text1.Text + ”'“)
MsgBox ”數(shù)據(jù)修改成功“, 64, ”提示信息“
Adodc1.RecordSource = ”select * from 貨物的出入庫(kù)信息 order by id“
Adodc1.Refresh
AddTitle
End If End Sub(5)點(diǎn)擊“保存”按鈕,將保存文本框中輸入的貨物信息。Private Sub Command4_Click()If Text1.Text = ”“ Or Text2.Text = ”“ Or Text3.Text = ”“ Or Text4.Text = ”“ Or Text5.Text = ”“ Or Text6.Text = ”“ Then
MsgBox ”保存的數(shù)據(jù)信息不能為空“, 48, ”提示信息“
Else
DB_AdoRs.Open ”select * from 貨物的出入庫(kù)信息 where tb_title='“ + Text2.Text + ”'“, Cnn, adOpenKeyset
If DB_AdoRs.RecordCount > 0 Then
'判斷要保存的信息是否已經(jīng)存在
MsgBox ”該貨物信息信息已經(jīng)存在“, 48, ”提示信息“
DB_AdoRs.Close
Else
DB_AdoRs.Close
c = MsgBox(”確認(rèn)保存信息嗎“, 33, ”提示信息“)
If c = vbOK Then
'如果選擇的是“確定”按鈕則保存信息
Set DB_AdoRs = Cnn.Execute(”insert into 貨物的出入庫(kù)信息 values(“ & Text1 & ”,'“ & Text2 & ”','“ & Text3 & ”',“ & Text4 & ”,“ _
& Text5 & ”,'“ & Date & ”','“ & Text6 & ”')“)
MsgBox ”信息保存成功“, 64, ”提示信息“
Else
End If
'保存數(shù)據(jù)后刷新數(shù)據(jù)信息
Adodc1.RecordSource = ”select * from 貨物的出入庫(kù)信息 order by id“
Adodc1.Refresh
AddTitle
End If
End If End Sub(6)點(diǎn)擊退出,銷(xiāo)毀當(dāng)前窗口。Private Sub Command6_Click()
Unload Me End Sub
(7)單擊DataGrid1中的相應(yīng)記錄,會(huì)在窗體左側(cè)的各個(gè)編輯框中顯示相應(yīng)的內(nèi)容。Private Sub DataGrid1_Click()'On Error Resume Next
If Adodc1.Recordset.RecordCount > 0 Then
Text1.Text = Adodc1.Recordset.Fields(0)
Text2.Text = Adodc1.Recordset.Fields(1)
Text3.Text = Adodc1.Recordset.Fields(2)
Text4.Text = Adodc1.Recordset.Fields(3)
Text5.Text = Adodc1.Recordset.Fields(4)
Text6.Text = Adodc1.Recordset.Fields(6)
End If End Sub
窗體的運(yùn)行界面如下圖所示:
3.6 商品銷(xiāo)售模塊的設(shè)計(jì)與實(shí)現(xiàn)
在“商品銷(xiāo)售管理”窗口中的“銷(xiāo)售商品”下拉列表中選擇要銷(xiāo)售的商品之后,該商品的基本信息將顯示在窗體中相應(yīng)的文本框中,在輸入銷(xiāo)售數(shù)量和實(shí)收金額后,單擊“確認(rèn)銷(xiāo)售”按鈕完成銷(xiāo)售商品的操作。
3.6.1 窗體界面設(shè)計(jì)
(1)在工程中添加一個(gè)窗體,命名為Frm_Sale,將Caption屬性設(shè)置為“商品銷(xiāo)售管理”。(2)在窗體上添加相應(yīng)的控件,如下圖所示。
(3)通過(guò)“工程”菜單下的“部件”命令將DataGrid數(shù)據(jù)表格控件添加到工具箱中,然后在窗體上添加1個(gè)數(shù)據(jù)表格控件DataGrid1。
(4)在窗體上添加2個(gè)ADO控件Adodc1和Adodc2,同時(shí)將DataGrid1的數(shù)據(jù)源屬性DataSource設(shè)置為Adodc2。
3.6.2 程序代碼實(shí)現(xiàn)
(1)窗體啟動(dòng)時(shí),將商品庫(kù)存中的貨物名稱(chēng)信息添加到下拉列表中,然后再將商品銷(xiāo)售的數(shù)據(jù)信息顯示在DataGrid1控件中。Private Sub Form_Load()Adodc2.ConnectionString = MyStrs
Adodc2.RecordSource = ”select * from 商品的銷(xiāo)售信息 order by id“
Adodc2.Refresh
AddTitle
'使用代碼連接數(shù)據(jù)庫(kù)與數(shù)據(jù)表
Adodc1.ConnectionString = MyStrs
Adodc1.RecordSource = ”select * from 貨物的出入庫(kù)信息“
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
Adodc1.Recordset.MoveFirst
Combo1.Clear
'在添加數(shù)據(jù)時(shí),首先清空控件中的內(nèi)容
Do While Adodc1.Recordset.EOF = False
'將貨物出入庫(kù)信息添加到下拉列表框控件當(dāng)中
Combo1.AddItem(Adodc1.Recordset.Fields(”tb_title“))
Adodc1.Recordset.MoveNext
Loop
End If End Sub Private Sub AddTitle()
DataGrid1.Columns.Item(0).Caption = ”編號(hào)“
DataGrid1.Columns.Item(1).Caption = ”名稱(chēng)“
DataGrid1.Columns.Item(2).Caption = ”銷(xiāo)售數(shù)量“
DataGrid1.Columns.Item(3).Caption = ”銷(xiāo)售總價(jià)“
DataGrid1.Columns.Item(4).Caption = ”銷(xiāo)售日期“ End Sub(2)選擇下拉列表中的商品之后,該商品的詳細(xì)信息將顯示在窗體中相對(duì)應(yīng)的文本框中。'商品詳細(xì)信息
Private Sub Combo1_Click()Adodc1.RecordSource = ”select * from 貨物的出入庫(kù)信息 where tb_title ='“ & Combo1.Text & ”'“ Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
Text1.Text = Adodc1.Recordset.Fields(”id“)
Text2.Text = Adodc1.Recordset.Fields(”tb_style“)
Text3.Text = Adodc1.Recordset.Fields(”tb_nums“)
Text4.Text = Adodc1.Recordset.Fields(”tb_values“)
Text5.Text = Adodc1.Recordset.Fields(”tb_mark“)
End If
'清空文本框中的內(nèi)容
Text6.Text = ”“
Text7.Text = ”“
Text8.Text = ”“
Text9.Text = ”“
End Sub
(3)單擊“確認(rèn)銷(xiāo)售”按鈕,將完成銷(xiāo)售商品的操作。
(4)當(dāng)用戶(hù)輸入銷(xiāo)售數(shù)量后并將輸入焦點(diǎn)移開(kāi)后,需要實(shí)時(shí)更新商品詳細(xì)信息中的數(shù)量信息,即在原有數(shù)量的基礎(chǔ)上減去用戶(hù)輸入的銷(xiāo)售數(shù)量。(3)和(4)的代碼:
Private Sub Command1_Click()
Adodc1.ConnectionString = MyStrs
Adodc1.RecordSource = ”select * from 貨物的出入庫(kù)信息 where tb_title ='“ & Combo1.Text & ”'“
Adodc1.Refresh
Dim a As Integer
Dim b As Integer
a = Val(Text7.Text)
b = Val(Text4.Text * Text6.Text)
If Text6.Text = ”“ Or Text7.Text = ”“ Then
MsgBox ”請(qǐng)補(bǔ)全信息!“, 64, ”提示信息“
Else
If a < b Then
MsgBox ”信息輸入有誤,請(qǐng)重新輸入!“, 64, ”提示信息“
Else
Text8.Text = Text4.Text * Text6.Text
Text9.Text = Text7.TextText6.Text
Adodc1.Recordset.Update
Set DB_AdoRs = Cnn.Execute(”insert into 商品的銷(xiāo)售信息 values('“ & Adodc2.Recordset.RecordCount + 1 & ”','“ & Combo1.Text & ”','“ & Text6 & ”',“ & Text8 & ”,'“ & Date & ”')“)
Set DB_AdoRs = Cnn.Execute(”UPDATE 貨物的出入庫(kù)信息 SET tb_nums = '“ & Text3 & ”' where id= '“ & Text1 & ”'“)
MsgBox ”銷(xiāo)售成功!“, 64, ”提示信息“
Adodc2.RecordSource = ”select * from 商品的銷(xiāo)售信息 “
Adodc2.Refresh
AddTitle
End If
End If End Sub
窗體的運(yùn)行結(jié)果如下圖所示:
3.7 銷(xiāo)售統(tǒng)計(jì)模塊的設(shè)計(jì)與實(shí)現(xiàn)
該模塊主要實(shí)現(xiàn)統(tǒng)計(jì)商品銷(xiāo)售信息的功能。選擇商品的銷(xiāo)售日期和銷(xiāo)售商品的名稱(chēng)之后,在下面的DataGrid數(shù)據(jù)表格控件中就會(huì)顯示查詢(xún)的數(shù)據(jù)結(jié)果信息,同時(shí)統(tǒng)計(jì)出銷(xiāo)售商品的總數(shù)量和總價(jià)格。
3.7.1 窗體界面設(shè)計(jì)
(1)添加一個(gè)窗體,命名為Frm_Stat,將窗體的Caption屬性設(shè)置為“銷(xiāo)售統(tǒng)計(jì)”。(2)在窗體上添加控件情況如后圖。
(3)在窗體上添加一個(gè)數(shù)據(jù)表格控件DataGrid1。
(4)在窗體上添加2個(gè)ADO控件Adodc1和Adodc2,同時(shí)將DataGrid1的數(shù)據(jù)源屬性DataSource設(shè)置為Adodc2。
銷(xiāo)售統(tǒng)計(jì)窗體的設(shè)計(jì)界面如下圖所示。
3.7.2 程序代碼實(shí)現(xiàn)
(1)在啟動(dòng)窗體時(shí),將貨物的名稱(chēng)信息添加到下拉列表控件中,然后再將商品銷(xiāo)售的數(shù)據(jù)信息顯示在表格控件中。
(2)在日期時(shí)間控件DTPicker1的Change事件下添加如下的程序代碼,實(shí)現(xiàn)根據(jù)選擇條件統(tǒng)計(jì)商品銷(xiāo)售信息的功能。
(3)在日期Combo1控件的Click事件下添加如下的程序代碼,實(shí)現(xiàn)根據(jù)選擇條件統(tǒng)計(jì)商品銷(xiāo)售信息的功能。
Private Sub Combo1_Click()Adodc2.RecordSource = ”select * from 商品的銷(xiāo)售信息 where tb_title ='“ & Combo1.Text & ”' and tb_date ='“ & DTPicker1.Value & ”' “ Adodc2.Refresh AddTitle Dim n, m As Integer n = 0 m = 0 Do While Not Adodc2.Recordset.EOF n = n + Adodc2.Recordset.Fields(2).Value m = m + Adodc2.Recordset.Fields(3).Value Adodc2.Recordset.MoveNext Loop Text1.Text = n
Text2.Text = m End Sub
Private Sub DTPicker1_Change()Adodc2.RecordSource = ”select * from 商品的銷(xiāo)售信息 where tb_title ='“ & Combo1.Text & ”' and tb_date ='“ & DTPicker1.Value & ”' “ Adodc2.Refresh AddTitle Dim n, m As Integer n = 0 m = 0 Do While Not Adodc2.Recordset.EOF n = n + Adodc2.Recordset.Fields(2).Value m = m + Adodc2.Recordset.Fields(3).Value Adodc2.Recordset.MoveNext Loop Text1.Text = n Text2.Text = m End Sub
Private Sub Form_Load()
Adodc2.ConnectionString = MyStrs
Adodc2.RecordSource = ”select * from 商品的銷(xiāo)售信息 where tb_title ='“ & Combo1.Text & ”' and tb_date ='“ & DTPicker1.Value & ”' order by id“
Adodc2.Refresh
AddTitle
'使用代碼連接數(shù)據(jù)庫(kù)與數(shù)據(jù)表
Adodc1.ConnectionString = MyStrs
Adodc1.RecordSource = ”select * from 貨物的出入庫(kù)信息 “
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
Adodc1.Recordset.MoveFirst
Combo1.Clear
'在添加數(shù)據(jù)時(shí),首先清空控件中的內(nèi)容
Do While Adodc1.Recordset.EOF = False
'將商品銷(xiāo)售信息添加到下拉列表框控件當(dāng)中
Combo1.AddItem(Adodc1.Recordset.Fields(”tb_title“))
Adodc1.Recordset.MoveNext
Loop
End If End Sub
Private Sub AddTitle()
DataGrid1.Columns.Item(0).Caption = ”編號(hào)“
DataGrid1.Columns.Item(1).Caption = ”名稱(chēng)“
DataGrid1.Columns.Item(2).Caption = ”銷(xiāo)售數(shù)量“
DataGrid1.Columns.Item(3).Caption = ”銷(xiāo)售總價(jià)“
DataGrid1.Columns.Item(4).Caption = ”銷(xiāo)售日期“ End Sub
窗體的運(yùn)行結(jié)果如下:
3.8 修改密碼模塊的設(shè)計(jì)與實(shí)現(xiàn)
3.8.1 窗體界面設(shè)計(jì)
(1)添加一個(gè)窗體,命名為Frm_Pas,將Caption屬性設(shè)置為“密碼修改”。(2)在窗體上加入一個(gè)ADO控件Adodc1。(3)設(shè)計(jì)窗體的界面如下圖。
3.8.2 程序代碼實(shí)現(xiàn)
(1)載入窗口時(shí)連接操作員信息數(shù)據(jù)表 Private Sub Form_Load()'使用代碼連接數(shù)據(jù)庫(kù)與數(shù)據(jù)表
Adodc1.ConnectionString = MyStrs
Adodc1.RecordSource = ”select * from 系統(tǒng)用戶(hù)的信息“
Adodc1.Refresh End Sub
(2)當(dāng)點(diǎn)擊“確定”按鈕時(shí),首先判斷用戶(hù)輸入的用戶(hù)名和原密碼信息是否正確,如果正確并且兩次輸入的新密碼一致,就將用戶(hù)密碼修改為新密碼。Private Sub Command1_Click()Adodc1.RecordSource = ”select * from 系統(tǒng)用戶(hù)的信息 where tb_name ='“ & Text1.Text & ”'“ Adodc1.Refresh
If Text1.Text = ”“ Then
MsgBox ”請(qǐng)輸入用戶(hù)名!“, 48, ”提示信息“
Text1.SetFocus
Else
If Text2.Text = ”“ Then
MsgBox ”請(qǐng)輸入舊密碼!“, 48, ”提示信息“
Text2.SetFocus
Else
If Text3.Text = ”“ Then
MsgBox ”請(qǐng)輸入新密碼!“, 48, ”提示信息“
Text3.SetFocus
Else
If Text4.Text = ”“ Then
MsgBox ”請(qǐng)確認(rèn)新密碼!“, 48, ”提示信息“
Text4.SetFocus
Else
If Adodc1.Recordset.RecordCount > 0 Then
MPassword = Adodc1.Recordset.Fields(”tb_pas“)
If Text2.Text = MPassword And Text3.Text = Text4.Text Then
'判斷數(shù)據(jù)的密碼是否正確
Set DB_AdoRs = Cnn.Execute(”UPDATE 系統(tǒng)用戶(hù)的信息 SET tb_pas='“ + Text3.Text + ”' where tb_name='“ + Text1.Text + ”'“)
MsgBox ”密碼已修改!“, 48, ”提示信息“
Unload Me
Else
If Text2.Text <> MPassword Then
MsgBox ”密碼不正確,請(qǐng)您確認(rèn)后重新輸入!“, 64, ”提示信息“
Text2.Text = ”“
Text3.Text = ”“
Text4.Text = ”“
Text2.SetFocus
Else
MsgBox ”兩次輸入的新密碼不一致,請(qǐng)重新輸入!“, 64, ”提示信息“
Text3.Text = ”“
Text4.Text = ”“
Text3.SetFocus
End If
End If
Else
If Text1.Text <> ”“ Then
MsgBox ”對(duì)不起 沒(méi)有此用戶(hù)的信息!“, 64, ”提示信息“
Text1.Text = ”“
Text2.Text = ”“
Text3.Text = ”“
Text4.Text = ”"
Text1.SetFocus
End If
End If
End If
End If
End If
End If End Sub
(3)當(dāng)用戶(hù)點(diǎn)擊“取消”時(shí),關(guān)閉密碼修改對(duì)話(huà)框。Private Sub Command2_Click()
End End Sub
窗體的運(yùn)行結(jié)果如下:
4.實(shí)驗(yàn)總結(jié)
通過(guò)這兩星期的學(xué)習(xí),加深了我對(duì)數(shù)據(jù)庫(kù)的認(rèn)識(shí),懂得了如何去應(yīng)用數(shù)據(jù)庫(kù),也對(duì)Visual Basic有了一定的了解了,雖然設(shè)計(jì)的過(guò)程中并不是那么的順利,但經(jīng)過(guò)查找相關(guān)的資料后,問(wèn)題一步一步地解決了,相信對(duì)我以后的學(xué)習(xí)有一定的幫助。
第四篇:庫(kù)存管理系統(tǒng)的與設(shè)計(jì)介紹
庫(kù)存管理系統(tǒng)的分析與設(shè)計(jì)
目 錄 第一章 導(dǎo)言 ………………………………………………………(2)
1.1問(wèn)題的提出 ……………………………………………………(2)
1.2本文研究路線(xiàn) …………………………………………………(3)
第二章 庫(kù)存管理系統(tǒng)研究概述 …………………………………(4)
2.1傳統(tǒng)企業(yè)庫(kù)存管理存在的問(wèn)題 ………………………………(4)
2.2企業(yè)庫(kù)存管理系統(tǒng)的特點(diǎn) ……………………………………(5)
2.3企業(yè)庫(kù)存管理系統(tǒng)應(yīng)用解決方案 ……………………………(5)
第三章 庫(kù)存管理系統(tǒng)分析與設(shè)計(jì)…………………………………(6)
3.1企業(yè)庫(kù)存管理系統(tǒng)功能需求簡(jiǎn)介 ……………………………(6)
3.2功能需求描述 …………………………………………………(6)3.3系統(tǒng)業(yè)務(wù)流程 …………………………………………………(10)
3.4庫(kù)存管理流程 …………………………………………………(11)3.5系統(tǒng)的主要模塊 ………………………………………………(11)3.6系統(tǒng)邏輯結(jié)構(gòu) …………………………………………………(12)
3.7系統(tǒng)平臺(tái)選擇 …………………………………………………(14)3.8數(shù)據(jù)庫(kù)設(shè)計(jì) ……………………………………………………(15)3.9數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) …………………………………………………(15)
第四章 庫(kù)存統(tǒng)計(jì)分析庫(kù)模塊
…………………………………(16)4.1畢業(yè)設(shè)計(jì)課題目標(biāo)與意義 ……………………………………(16)
4.2統(tǒng)計(jì)分析模塊功能 ……………………………………………(16)
4.3統(tǒng)計(jì)查詢(xún)流程圖 ………………………………………………(17)4.4設(shè)計(jì)總結(jié) ………………………………………………………(18)
4.5謝詞 ……………………………………………………………(18)
第五章 參考文獻(xiàn) …………………………………………………(19)
[摘要]
庫(kù)存管理系統(tǒng)是生產(chǎn)、計(jì)劃和控制的基礎(chǔ)。本系統(tǒng)通過(guò)對(duì)倉(cāng)庫(kù)、貨位等帳務(wù)管理及入/出庫(kù)類(lèi)型、入/出庫(kù)單據(jù)的管理,及時(shí)反映各種物資的倉(cāng)儲(chǔ)、流向情況,為生產(chǎn)管理和成本核算提供依據(jù)。通過(guò)庫(kù)存分析,為管理及決策人員提供庫(kù)存資金占用情況、物資積壓情況、短缺/超儲(chǔ)情況、ABC分類(lèi)情況等不同的統(tǒng)計(jì)分析信息.通過(guò)對(duì)批號(hào)的跟蹤,實(shí)現(xiàn)專(zhuān)批專(zhuān)管,保證質(zhì)量跟蹤的貫通。通過(guò)清倉(cāng)盤(pán)庫(kù)管理,保證帳面與實(shí)物一致,為計(jì)劃及決策人員提供實(shí)時(shí)準(zhǔn)確的存貨信息,以便及時(shí)調(diào)整生產(chǎn),保證企業(yè)各項(xiàng)生產(chǎn)經(jīng)營(yíng)活動(dòng)的順利進(jìn)行。
本系統(tǒng)與其他子系統(tǒng)如采購(gòu)、銷(xiāo)售、生產(chǎn)等.只有和其它子系統(tǒng)結(jié)合起來(lái)運(yùn)行時(shí),才能對(duì)整個(gè)企業(yè)的產(chǎn)、供、銷(xiāo)、人、財(cái)、物實(shí)行全面的管理,以最快的速度獲取最新的信息,最終提高企業(yè)的經(jīng)濟(jì)效益。
[關(guān)鍵字] 出入庫(kù)、貨位、流水帳、統(tǒng)計(jì)分析、盤(pán)點(diǎn)、ABC分類(lèi)
第一章 導(dǎo) 言
1.1問(wèn)題的提出
當(dāng)今企業(yè)競(jìng)爭(zhēng)范圍的擴(kuò)大,要求在企業(yè)的各個(gè)方面加強(qiáng)管理,并要求企業(yè)有更高的信息化集成,要求對(duì)企業(yè)的整體資源進(jìn)行集成管理,而不僅僅對(duì)制造資源進(jìn)行集成管理。因此,信息管理系統(tǒng)與理論僅停留在對(duì)制造部分的信息集成與理論研究上是遠(yuǎn)遠(yuǎn)不夠的。企業(yè)之間既是競(jìng)爭(zhēng)對(duì)手,又是合作伙伴,信息管理要求擴(kuò)大到整個(gè)供應(yīng)鏈的管理。隨著現(xiàn)代管理思想和方法的提出和發(fā)展,如JIT(Just ln Time——及時(shí)生產(chǎn))、TQC(TotalQualityControl——全面質(zhì)量管理)、OPT(OptimizedProduction Technology——優(yōu)化生產(chǎn)技術(shù))及DRP(Distribution Resource lanning——分銷(xiāo)資源計(jì)劃)等,又相繼出現(xiàn)了MES(ManufacturingExecuteSystem——制造執(zhí)行系統(tǒng))、AMS(Agile Manufacturing System——敏捷制造系統(tǒng))等現(xiàn)代管理思想。MRP-II逐步吸收和融合其它先進(jìn)思想來(lái)完善和發(fā)展自身理論。20世紀(jì)90年代MRP-II發(fā)展到了一個(gè)新的階段:ERP(EnterpriseResourcePlanning——企業(yè)資源計(jì)劃)。簡(jiǎn)要地說(shuō)企業(yè)的所有資源包括3大流:物流、資金流和信息流。ERP也就是對(duì)這3種資源進(jìn)行全面集成管理的管理信息系統(tǒng)。概括地說(shuō),ERP是建立在信息技術(shù)基礎(chǔ)上,利用現(xiàn)代企業(yè)的先進(jìn)管理思想,全面地集成了企業(yè)的所有資源信息,并為企業(yè)提供決策、計(jì)劃、控制與經(jīng)營(yíng)業(yè)績(jī)?cè)u(píng)估的全方位和系統(tǒng)化的管理平臺(tái)。ERP系統(tǒng)是一種管理理論和管理思想,不僅僅是信息系統(tǒng)。它利用企業(yè)的所有資源,包括內(nèi)部資源與外部市場(chǎng)資源,為企業(yè)制造產(chǎn)品或提供服務(wù)創(chuàng)造最優(yōu)的解決方案,最終達(dá)到企業(yè)的經(jīng)營(yíng)目標(biāo)。ERP融合了離散型生產(chǎn)和流程型生產(chǎn)的特點(diǎn),擴(kuò)大了管理的范圍,更加靈活或“柔性”地開(kāi)展業(yè)務(wù)活動(dòng),實(shí)時(shí)地響應(yīng)市場(chǎng)需求。總之,ERP極大地?cái)U(kuò)展了業(yè)務(wù)管理的范圍及深度,包括質(zhì)量、設(shè)備、分銷(xiāo)、運(yùn)輸、多任務(wù)廠管理、數(shù)據(jù)采集接口等。ERP的管理范圍涉及企業(yè)的所有供需過(guò)程,是對(duì)供應(yīng)鏈的全面管理和企業(yè)運(yùn)作的供需鏈結(jié)構(gòu)的全面管理。
為了加強(qiáng)管理,提高企業(yè)的信息化水平,福州臺(tái)鉆廠計(jì)劃引入ERP系統(tǒng),并委托我院對(duì)其實(shí)施ERP系統(tǒng)提供幫助。
1.2本文研究路線(xiàn)
庫(kù)存管理系統(tǒng)是生產(chǎn)、計(jì)劃和控制的基礎(chǔ)。庫(kù)存管理系統(tǒng)是通過(guò)對(duì)倉(cāng)庫(kù)、貨位、入出庫(kù)類(lèi)型與入出庫(kù)單據(jù)的管理,及時(shí)反映物資的倉(cāng)儲(chǔ)、流向情況,為生產(chǎn)管理和成本核算提供依據(jù)。并通過(guò)庫(kù)存分析,為管理及決策人員提供庫(kù)存資金占用情況、物資短缺(超儲(chǔ))情況、ABC分類(lèi)情況等不同的分析信息。通過(guò)清倉(cāng)盤(pán)庫(kù)管理,保證帳面與實(shí)物一致,為計(jì)劃及決策人員提供實(shí)時(shí)準(zhǔn)確的存貨信息,以便及時(shí)調(diào)整生產(chǎn),保證企業(yè)各項(xiàng)生產(chǎn)經(jīng)營(yíng)活動(dòng)的順利進(jìn)行。
第二章 企業(yè)庫(kù)存管理系統(tǒng)研究概述
2.1傳統(tǒng)企業(yè)庫(kù)存管理存在的問(wèn)題
庫(kù)存管理是企業(yè)管理(本文以制造業(yè)企業(yè)為例)的重要組成部分。在企業(yè)生產(chǎn)經(jīng)營(yíng)活動(dòng)中,庫(kù)存管理既必須保證生產(chǎn)車(chē)間對(duì)原材料、零部件需求,又直接影響采購(gòu)、銷(xiāo)售部門(mén)的購(gòu)、銷(xiāo)活動(dòng)。為盤(pán)活企業(yè)流動(dòng)資金,加快資金周轉(zhuǎn),在保障供給的前提下,最大限度地降低壓庫(kù)資金,直接牽動(dòng)著企業(yè)的經(jīng)營(yíng)效益。根據(jù)對(duì)我國(guó)眾多制造業(yè)企業(yè)的庫(kù)存管理情況所作的調(diào)查和參考有關(guān)資料,發(fā)現(xiàn)目前制造業(yè)企業(yè)在庫(kù)存管理方面普遍存在著如下問(wèn)題:
(1)不能及時(shí)獲得庫(kù)存信息。在企業(yè)運(yùn)作過(guò)程中,有時(shí)必須獲知各種零部件當(dāng)前的庫(kù)存量,但由于零部件種類(lèi)多、數(shù)量大,需要進(jìn)行仔細(xì)地核算,這不僅費(fèi)時(shí),而且易出錯(cuò),從而影響企業(yè)快速有效地運(yùn)轉(zhuǎn)。
(2)庫(kù)存信息不夠準(zhǔn)確。倉(cāng)庫(kù)管理員根據(jù)各種送貨單、退貨單、收料單、發(fā)料單、領(lǐng)料單和退料單進(jìn)行物料的入庫(kù)、出庫(kù)搬運(yùn)后,要隨時(shí)修改庫(kù)存信息和借、欠料信息,以便反映庫(kù)存狀況。工作中的主要問(wèn)題是,由于零部件種類(lèi)多、數(shù)量大,使得庫(kù)存記錄和實(shí)際庫(kù)存時(shí)常不是嚴(yán)格一致的。因而需要通過(guò)盤(pán)點(diǎn)來(lái)糾正差錯(cuò),這既耽誤時(shí)間,工作量又大。
(3)無(wú)法及時(shí)了解發(fā)料和生產(chǎn)用料情況。在工令單下達(dá)后,由于零部件與生產(chǎn)線(xiàn)的關(guān)系復(fù)雜,根據(jù)送料員的個(gè)人經(jīng)驗(yàn)給各配料點(diǎn)送料時(shí),常缺少發(fā)料、用料記錄和相關(guān)信息,經(jīng)常出現(xiàn)生產(chǎn)線(xiàn)缺料才知道需要送料的情況,導(dǎo)致生產(chǎn)和用料發(fā)生混亂,無(wú)法了解發(fā)料和生產(chǎn)用料的實(shí)際情況。
市場(chǎng)需求日益多樣化和個(gè)性化,產(chǎn)品更新?lián)Q代的周期越來(lái)越短,這就要求制造業(yè)企業(yè)必須改變庫(kù)存管理現(xiàn)狀。
2.2企業(yè)庫(kù)存管理系統(tǒng)的特點(diǎn)
因?yàn)閭鹘y(tǒng)企業(yè)庫(kù)存管理存在以上的問(wèn)題難于適應(yīng)現(xiàn)代庫(kù)存管理要求,所以現(xiàn)代企業(yè)庫(kù)存管理系統(tǒng)要具有以下的特點(diǎn):
1.科學(xué)的庫(kù)存管理流程
存貨的種類(lèi)不同,所涉及的業(yè)務(wù)環(huán)節(jié)及它們所組成的業(yè)務(wù)流程也各有差異。一般而言,存貨業(yè)務(wù)包括到貨處理、保管和發(fā)放三個(gè)主要部分。通暢的業(yè)務(wù)流程是保障高效庫(kù)存管理的基礎(chǔ),應(yīng)具備優(yōu)化、無(wú)冗余、并行作業(yè)的基本屬性。
2.科學(xué)的組織結(jié)構(gòu) 科學(xué)的組織結(jié)構(gòu)確保了業(yè)務(wù)流程的高效執(zhí)行,明確了工廠、存儲(chǔ)區(qū)域、倉(cāng)庫(kù)編碼、倉(cāng)儲(chǔ)種類(lèi)以及倉(cāng)儲(chǔ)箱之間的合理關(guān)系。
3.進(jìn)行物料代碼化管理
物料種類(lèi)繁多,在庫(kù)存管理過(guò)程中極易發(fā)生混亂的問(wèn)題。IT技術(shù)與層次編碼技術(shù)的結(jié)合為物料的高效管理提供了可能。這種編碼技術(shù)將所有存貨按照層次和類(lèi)別進(jìn)行編碼的唯一形管理,編碼的組成部分包括存貨的型號(hào)、規(guī)格、尺寸等內(nèi)容。它具有易讀和易記的特點(diǎn),使得管理者只需知道貨物的編碼,就可以了解該物料的所有信息,以便在每日的煩雜管理中,保持規(guī)范、有序的狀態(tài)。
2.3企業(yè)庫(kù)存管理系統(tǒng)應(yīng)用解決方案
一般的操作步驟為:
(1)企業(yè)采購(gòu)部采購(gòu)商品后,填制采購(gòu)入庫(kù)單,并將商品發(fā)送給倉(cāng)庫(kù),辦理入庫(kù)。
倉(cāng)庫(kù)收到采購(gòu)部門(mén)的商品后,辦理入庫(kù)業(yè)務(wù),并對(duì)入庫(kù)后的采購(gòu)入庫(kù)單進(jìn)行審核,然后將已審核的采購(gòu)入庫(kù)單反傳給企業(yè)采購(gòu)部門(mén),以便企業(yè)采購(gòu)部門(mén)了解商品的在途情況。
(3)企業(yè)銷(xiāo)售商品后,開(kāi)據(jù)銷(xiāo)售出庫(kù)單,操作員或業(yè)務(wù)員拿著銷(xiāo)售出庫(kù)單到倉(cāng)庫(kù)中提貨或倉(cāng)庫(kù)根據(jù)銷(xiāo)售出庫(kù)單發(fā)貨。
第三章 企業(yè)庫(kù)存管理系統(tǒng)分析與設(shè)計(jì)
3.1企業(yè)庫(kù)存管理系統(tǒng)功能需求簡(jiǎn)介
庫(kù)存管理系統(tǒng)通過(guò)對(duì)倉(cāng)庫(kù)、貨位、入出庫(kù)類(lèi)型與入出庫(kù)單據(jù)的管理,通過(guò)庫(kù)存分析、清倉(cāng)盤(pán)庫(kù)管理來(lái)實(shí)現(xiàn)對(duì)企業(yè)庫(kù)存的管理,全面監(jiān)控企業(yè)商品的進(jìn)、出、存等各種狀況,以滿(mǎn)足現(xiàn)代企業(yè)的庫(kù)存管理需要。
1.具有進(jìn)行期初建帳、系統(tǒng)盤(pán)點(diǎn)、數(shù)據(jù)備份等的系統(tǒng)初始化功能;
2.能夠進(jìn)行企業(yè)物料基礎(chǔ)數(shù)據(jù)的設(shè)置(包括倉(cāng)庫(kù)、貨物、部門(mén)、項(xiàng)目等的設(shè)置);
3.可以根據(jù)企業(yè)實(shí)際情況,進(jìn)行倉(cāng)庫(kù)管理,如出庫(kù)、入庫(kù)、盤(pán)點(diǎn)操作等;
4.對(duì)庫(kù)存貨物可進(jìn)行數(shù)據(jù)查詢(xún),如出入庫(kù)統(tǒng)計(jì)查詢(xún)、項(xiàng)目資金分析統(tǒng)計(jì)等;
3.2功能需求描述
1.系統(tǒng)初始
基礎(chǔ)數(shù)據(jù):倉(cāng)庫(kù)信息、存放地點(diǎn)、構(gòu)成信息、庫(kù)存常用數(shù)據(jù)等。
系統(tǒng)支持基礎(chǔ)數(shù)據(jù)的查詢(xún)、打印、增加、修改、刪除等操作。
編碼方案:定義貨物分類(lèi)、庫(kù)存屬性、部門(mén)、子類(lèi)等的編碼方案。
2.日常業(yè)務(wù):
(1)采購(gòu)入庫(kù)單 采購(gòu)入庫(kù)單一般指采購(gòu)原材料驗(yàn)收入庫(kù)時(shí),所填制的入庫(kù)單據(jù);企業(yè)一般指商品進(jìn)貨入庫(kù)時(shí),填制的入庫(kù)單。采購(gòu)入庫(kù)單是企業(yè)入庫(kù)單據(jù)的主要部分,因此在本系統(tǒng)中,采購(gòu)入庫(kù)單也是日常業(yè)務(wù)的主要原始單據(jù)之一。
(2)材料出庫(kù)單 材料出庫(kù)單是企業(yè)領(lǐng)用材料時(shí),所填制的出庫(kù)單據(jù)。材料出庫(kù)單是企業(yè)出庫(kù)單據(jù)的主要部分,因此在本系統(tǒng)中,材料出庫(kù)單也是進(jìn)行日常業(yè)務(wù)處理和記帳的主要原始單據(jù)之一。
(3)產(chǎn)成品入庫(kù)單 產(chǎn)成品入庫(kù)單是指產(chǎn)成品驗(yàn)收入庫(kù)時(shí),所填制的入庫(kù)單據(jù)。產(chǎn)成品入庫(kù)單是以企業(yè)入庫(kù)單據(jù)的主要部分。
(4)銷(xiāo)售出庫(kù)單 銷(xiāo)售出庫(kù)單是指產(chǎn)成品銷(xiāo)售出庫(kù)時(shí),所填制的出庫(kù)單據(jù)。銷(xiāo)售出庫(kù)單也是企業(yè)出庫(kù)單據(jù)的主要部分,因此在本系統(tǒng)中,銷(xiāo)售出庫(kù)單也是進(jìn)行日常業(yè)務(wù)處理和記帳的主要原始單據(jù)之一。
(5)其他入庫(kù)單 企業(yè)的其他入庫(kù)單是指除采購(gòu)入庫(kù)、產(chǎn)成品入庫(kù)之外的其他入庫(kù)業(yè)務(wù),如調(diào)撥入庫(kù)、盤(pán)盈入庫(kù)、形態(tài)轉(zhuǎn)換入庫(kù)等業(yè)務(wù)形成的入庫(kù)單。
(6)其他出庫(kù)單 企業(yè)的其他出庫(kù)指除銷(xiāo)售出庫(kù)、材料出庫(kù)之外的其他出庫(kù)業(yè)務(wù),如調(diào)撥出庫(kù)、盤(pán)虧出庫(kù)、形態(tài)轉(zhuǎn)換出庫(kù)等。
(7)調(diào)撥:管理倉(cāng)庫(kù)間的實(shí)物轉(zhuǎn)移和分銷(xiāo)意義上的倉(cāng)庫(kù)分配、調(diào)撥業(yè)務(wù),屬轉(zhuǎn)移事務(wù)類(lèi)型。
(8)形態(tài)轉(zhuǎn)換:某種物品在加工或存儲(chǔ)過(guò)程中,由于加工或環(huán)境的原因,使其形態(tài)和名稱(chēng)發(fā)生變化,這時(shí)需處理形態(tài)轉(zhuǎn)換業(yè)務(wù),調(diào)整庫(kù)存帳。
(9)反沖:對(duì)于生產(chǎn)環(huán)節(jié)在制品及不入庫(kù)半成品業(yè)務(wù),系統(tǒng)按照產(chǎn)品結(jié)構(gòu)管理實(shí)現(xiàn)原材料與在制品、半成品對(duì)沖處理功能,實(shí)現(xiàn)在制品、半成品管理。
(10)盤(pán)點(diǎn)單
在日常物品收發(fā)、保管過(guò)程中,由于計(jì)量錯(cuò)誤、檢驗(yàn)疏忽、管理不善、自然損耗、核算錯(cuò)誤等原因,有時(shí)會(huì)發(fā)生物品的盤(pán)盈、盤(pán)虧和毀損現(xiàn)象,從而造成物品帳實(shí)不相符。為了保護(hù)企業(yè)流動(dòng)資產(chǎn)的安全和完整,做到帳實(shí)相符,企業(yè)必須對(duì)物品進(jìn)行定期或不定期的清查。確定企業(yè)各種物品的實(shí)際庫(kù)存量,并與帳面記錄相核對(duì),查明物品盤(pán)盈、盤(pán)虧和毀損的數(shù)量以及造成的原因,并據(jù)以編制物品盤(pán)點(diǎn)報(bào)告表,按規(guī)定程序,報(bào)有關(guān)部門(mén)審批。物品盤(pán)盈、盤(pán)虧和毀損,在查明原因、分清責(zé)任、按規(guī)定程序報(bào)經(jīng)有關(guān)部門(mén)批準(zhǔn)后,應(yīng)進(jìn)行相應(yīng)的帳務(wù)處理,調(diào)整物品帳的實(shí)存數(shù),使物品的帳面記錄與庫(kù)存實(shí)物核對(duì)相符。物品盤(pán)點(diǎn)報(bào)告表,是證明企業(yè)物品盤(pán)盈、盤(pán)虧和毀損,據(jù)以調(diào)整物品實(shí)存數(shù)的書(shū)面憑證,經(jīng)企業(yè)領(lǐng)導(dǎo)批準(zhǔn)后,即可作為原始憑證入帳。但是,物品的盤(pán)盈、盤(pán)虧和毀損必須在按規(guī)定程序報(bào)經(jīng)有關(guān)部門(mén)批準(zhǔn)后才能進(jìn)行處理。
3.庫(kù)存分析:
(1)安全庫(kù)存報(bào)警
通過(guò)對(duì)各種物品當(dāng)前庫(kù)存量和安全庫(kù)存量的對(duì)比分析,對(duì)超過(guò)或低于安全庫(kù)存量的物品進(jìn)行報(bào)警,并可查詢(xún)當(dāng)前庫(kù)存量等于安全庫(kù)存量的物品。安全庫(kù)存預(yù)警輸出的內(nèi)容包括物品、物品的安全庫(kù)存量、當(dāng)前庫(kù)存量及當(dāng)前庫(kù)存量與安全庫(kù)存量的差。各物品的安全庫(kù)存量取自物品檔案中各物品的安全庫(kù)存量,當(dāng)前庫(kù)存量為各物品所有倉(cāng)庫(kù)的現(xiàn)存量之和,差量=當(dāng)前庫(kù)存量-安全庫(kù)存量。
(2)短缺物品查詢(xún)
通過(guò)對(duì)各種物品當(dāng)前庫(kù)存量和最低庫(kù)存量對(duì)比分析,當(dāng)前庫(kù)存量低于最低庫(kù)存量的物品表示短缺物品。短缺物品查詢(xún)輸出的內(nèi)容包括物品、各物品的最低庫(kù)存量、當(dāng)前庫(kù)存量及短缺量。各物品的最低庫(kù)存量取自物品檔案中各物品的最低庫(kù)存量,當(dāng)前庫(kù)存量為各物品所有倉(cāng)庫(kù)的現(xiàn)存量之和,短缺量=最低庫(kù)存量-當(dāng)前庫(kù)存量。
(3)呆滯積壓物品
系統(tǒng)提供呆滯積壓物品的分析方法是按物品周轉(zhuǎn)率分析的。當(dāng)前庫(kù)存量與最高庫(kù)存量或安全庫(kù)存量比較,周轉(zhuǎn)率低于呆滯積壓標(biāo)準(zhǔn)且超過(guò)最高庫(kù)存量(或安全庫(kù)存量)的物品為積壓物品,周轉(zhuǎn)率低于呆滯積壓標(biāo)準(zhǔn)且未超過(guò)最高庫(kù)存量(或安全庫(kù)存量)的物品為呆滯物品。呆滯積壓物品分析輸出的內(nèi)容包括物品、各物品的最高庫(kù)存量(或安全庫(kù)存量)、當(dāng)前庫(kù)存量、短缺量、周轉(zhuǎn)率、周轉(zhuǎn)率與最低周轉(zhuǎn)率(呆滯積壓標(biāo)準(zhǔn))的差、狀態(tài)(表示該物品是呆滯物品還是積壓物品)。物品的呆滯積壓標(biāo)準(zhǔn)在【物品檔案】中設(shè)置。呆滯積壓標(biāo)準(zhǔn)是操作員設(shè)置的每一物品的最低周轉(zhuǎn)率,低于此周轉(zhuǎn)率的物品就是呆滯積壓的物品。當(dāng)前庫(kù)存量為該物品所有倉(cāng)庫(kù)的現(xiàn)存量之和超儲(chǔ)量=當(dāng)前庫(kù)存量-最高庫(kù)存量(或安全庫(kù)存量)物品周轉(zhuǎn)率=一定期間內(nèi)物品的已消耗量÷一定期間內(nèi)物品的平均庫(kù)存量平均庫(kù)存量=一定期間內(nèi)物品每天的平均庫(kù)存量之和÷天數(shù) 每天的平均庫(kù)存量=(當(dāng)天的期初結(jié)存數(shù)量+當(dāng)天的期末結(jié)存數(shù)量)÷2 已消耗量=一定期間內(nèi)該物品的出庫(kù)數(shù)量 差率=周轉(zhuǎn)率-呆滯積壓標(biāo)準(zhǔn) 狀態(tài):超儲(chǔ)量大于零且差率小于零的物品為積壓物品,狀態(tài)為積壓;超儲(chǔ)量小于等于零且差率小于零的物品為呆滯物品,狀態(tài)為呆滯;超儲(chǔ)量小于等于零且差率大于等于零的物品為非呆滯積壓物品,狀態(tài)為空。
4.統(tǒng)計(jì)分析:
(1)收發(fā)存匯總表
反映倉(cāng)庫(kù)各物品各種收發(fā)類(lèi)別的收入、發(fā)出及結(jié)存情況。收發(fā)存匯總表是按倉(cāng)庫(kù)進(jìn)行分頁(yè)查詢(xún)的。一頁(yè)顯示一個(gè)倉(cāng)庫(kù)的收發(fā)存匯總表。倉(cāng)庫(kù)的收發(fā)存匯總表通過(guò)匯總功能查詢(xún)。收發(fā)存匯總表輸出的內(nèi)容包括倉(cāng)庫(kù)、物品、自由項(xiàng)、期初結(jié)存數(shù)量(件數(shù))、各種入庫(kù)類(lèi)別的入庫(kù)數(shù)量(件數(shù))、各種出庫(kù)類(lèi)別的出庫(kù)數(shù)量(件數(shù))、期末結(jié)存數(shù)量(件數(shù))。
期末結(jié)存數(shù)量=期初結(jié)存數(shù)量+各種入庫(kù)類(lèi)別的入庫(kù)數(shù)量-各種出庫(kù)類(lèi)別的出庫(kù)數(shù)量。
期末結(jié)存件數(shù)=期初結(jié)存件數(shù)+各種入庫(kù)類(lèi)別的入庫(kù)件數(shù)-各種出庫(kù)類(lèi)別的出庫(kù)件數(shù)。
(2)業(yè)務(wù)類(lèi)型收發(fā)存匯總表
反映倉(cāng)庫(kù)各物品各種業(yè)務(wù)類(lèi)型的收入、發(fā)出及結(jié)存情況。系統(tǒng)提供的業(yè)務(wù)類(lèi)型包括:采購(gòu)、銷(xiāo)售、產(chǎn)品入庫(kù)、材料出庫(kù)、盤(pán)盈入庫(kù)、盤(pán)虧出庫(kù)、其他入庫(kù)、其他出庫(kù)。業(yè)務(wù)類(lèi)型匯總表是按倉(cāng)庫(kù)進(jìn)行分頁(yè)查詢(xún)的。一頁(yè)顯示一個(gè)倉(cāng)庫(kù)的業(yè)務(wù)類(lèi)型匯總表。業(yè)務(wù)類(lèi)型匯總表輸出的內(nèi)容包括倉(cāng)庫(kù)、物品、期初結(jié)存數(shù)量(件數(shù))、各種業(yè)務(wù)類(lèi)型的入庫(kù)數(shù)量(件數(shù))、各種業(yè)務(wù)類(lèi)型的出庫(kù)數(shù)量(件數(shù))、期末結(jié)存數(shù)量(件數(shù))。
期末結(jié)存數(shù)量=期初結(jié)存數(shù)量+各種業(yè)務(wù)類(lèi)型的入庫(kù)數(shù)量-各種業(yè)務(wù)類(lèi)型的出庫(kù)數(shù)量。
期末結(jié)存件數(shù)=期初結(jié)存件數(shù)+各種業(yè)務(wù)類(lèi)型的入庫(kù)件數(shù)-各種業(yè)務(wù)類(lèi)型的出庫(kù)件數(shù)。
(3)收發(fā)類(lèi)別匯總表
反映倉(cāng)庫(kù)各物品各種收發(fā)類(lèi)別的入庫(kù)或出庫(kù)的情況。收發(fā)類(lèi)別匯總表是按倉(cāng)庫(kù)進(jìn)行分頁(yè)查詢(xún)的。一頁(yè)顯示一個(gè)倉(cāng)庫(kù)的收發(fā)類(lèi)別匯總表。收發(fā)類(lèi)別匯總表輸出的內(nèi)容包括倉(cāng)庫(kù)、物品、用戶(hù)所選入庫(kù)類(lèi)別的入庫(kù)數(shù)量(件數(shù))或用戶(hù)所選出庫(kù)類(lèi)別的出庫(kù)數(shù)量(件數(shù)反映各供貨單位供應(yīng)的物品的收入、發(fā)出及結(jié)存情況。
3.3系統(tǒng)業(yè)務(wù)流程
系統(tǒng)的業(yè)務(wù)流程主要包括三個(gè)部分:采購(gòu)、部門(mén)領(lǐng)料和庫(kù)存盤(pán)點(diǎn)。
1.采購(gòu)的業(yè)務(wù)流程是:①計(jì)劃部門(mén)制定物資需求單,評(píng)審,如果評(píng)審?fù)ㄟ^(guò),根據(jù)倉(cāng)庫(kù)庫(kù)存情況平衡采購(gòu),然后制定采購(gòu)單。②對(duì)采購(gòu)單進(jìn)行評(píng)審,如果評(píng)審?fù)ㄟ^(guò),則可以簽定采購(gòu)合同進(jìn)行采購(gòu)。③到貨后,進(jìn)行登記并入庫(kù)。
2.部門(mén)領(lǐng)料的流程很簡(jiǎn)單,各部門(mén)主要通過(guò)倉(cāng)庫(kù)領(lǐng)取物資,只需要填寫(xiě)部門(mén)領(lǐng)料單即可。
3.庫(kù)存盤(pán)點(diǎn)用于登記倉(cāng)庫(kù)中物質(zhì)的養(yǎng)活和增加情況,并使實(shí)際庫(kù)存和數(shù)據(jù)庫(kù)中的庫(kù)存數(shù)目保持一致。
3.4庫(kù)存管理流程
庫(kù)存管理主要是對(duì)庫(kù)存貨物的入庫(kù)、出庫(kù)、查詢(xún)統(tǒng)計(jì)、盤(pán)點(diǎn)等進(jìn)行控制和管理,以便及時(shí)了解庫(kù)存情況,達(dá)到降低庫(kù)存量、提高取貨備貨效率。
庫(kù)存管理的具體內(nèi)容有:基礎(chǔ)數(shù)據(jù)維護(hù)、系統(tǒng)設(shè)置、入庫(kù)操作、出庫(kù)操作、查詢(xún)操作、統(tǒng)計(jì)分析、盤(pán)點(diǎn)操作、報(bào)表輸出等。
3.系統(tǒng)的主要模塊
3.6系統(tǒng)邏輯結(jié)構(gòu)
庫(kù)存管理系統(tǒng)
1、庫(kù)存系統(tǒng)管理
(1)庫(kù)存管理數(shù)據(jù)
(2)庫(kù)存物料主文件維護(hù)
(3)庫(kù)存代碼定義
A、倉(cāng)庫(kù)貨位代碼維護(hù)
B、入出庫(kù)類(lèi)型定義
(4)用戶(hù)管理
2、庫(kù)存貨位管理
(1)倉(cāng)庫(kù)主文件維護(hù)
(2)貨位主文件維護(hù)
(3)庫(kù)存貨位綜合查詢(xún)
(4)庫(kù)存空貨位查詢(xún)
3、庫(kù)存流水帳管理
(1)入出庫(kù)數(shù)據(jù)登錄
(2)庫(kù)存流水帳查詢(xún)
(3)歷史流水帳處理
(4)歷史流水帳查詢(xún)
(5)主帳月末結(jié)轉(zhuǎn)處理
4、庫(kù)存統(tǒng)計(jì)分析
(1)庫(kù)存主帳查詢(xún)
(2)庫(kù)存積壓分析
(3)短缺超儲(chǔ)分析(項(xiàng)目)
(4)ABC分類(lèi)處理
(5)短缺超儲(chǔ)分析(時(shí)間)
(6)車(chē)間月領(lǐng)料查詢(xún)
5、清倉(cāng)盤(pán)庫(kù)處理
(1)打印盤(pán)庫(kù)清單
(2)實(shí)際盤(pán)庫(kù)錄入
(3)打印盤(pán)盈盤(pán)虧表
具體如下:
1.庫(kù)存代碼定義
建立合理的代碼體系是有效地使用計(jì)算機(jī)進(jìn)行庫(kù)存管理的基礎(chǔ)。本功能模塊旨在讓用戶(hù)對(duì)倉(cāng)庫(kù)有關(guān)信息進(jìn)行編碼定義,包括對(duì)倉(cāng)庫(kù)、倉(cāng)庫(kù)管理方式、倉(cāng)庫(kù)口令、入出庫(kù)類(lèi)型及不同入出庫(kù)類(lèi)型對(duì)各種數(shù)據(jù)的影響等的定義,并提供庫(kù)存資金圖及庫(kù)存資金歷史曲線(xiàn)。
2.庫(kù)存貨位管理
可以對(duì)按貨位管理的倉(cāng)庫(kù),實(shí)現(xiàn)貨位信息跟蹤,描述其存放的物品品種、數(shù)量。允許同一物品存放在多個(gè)倉(cāng)庫(kù)、多個(gè)貨位,同一貨位允許存放1種物品。
3.庫(kù)存流水帳管理
本模塊對(duì)于每日發(fā)生的每筆入/出庫(kù)活動(dòng)進(jìn)行登錄,并提供對(duì)庫(kù)存數(shù)據(jù)的增加、刪除、查詢(xún)功能,保證帳上數(shù)據(jù)的正確.當(dāng)數(shù)據(jù)量過(guò)于龐大時(shí),提供歷史流水帳處理,減少在線(xiàn)流水帳數(shù)據(jù),提高查詢(xún)速度。
4.庫(kù)存統(tǒng)計(jì)分析
本模塊旨在幫助管理人員進(jìn)行各種庫(kù)存統(tǒng)計(jì)分析,加強(qiáng)庫(kù)存控制,減少庫(kù)存積壓、減少物品報(bào)廢和資金占用,從而提高經(jīng)濟(jì)效益。可以對(duì)各車(chē)間(分廠)領(lǐng)料數(shù)量及生定產(chǎn)量(已入庫(kù)部分)進(jìn)行查詢(xún)及維護(hù).可以進(jìn)行多種統(tǒng)計(jì),如可按供應(yīng)商、銷(xiāo)售客戶(hù)、部門(mén)(車(chē)間)分別進(jìn)行出入庫(kù)進(jìn)行統(tǒng)計(jì).可按不同的人出庫(kù)類(lèi)型進(jìn)行分別統(tǒng)計(jì)。可進(jìn)行短缺超儲(chǔ)分析、物資積壓分析、ABC分類(lèi)處理及資金占用分析,還可對(duì)車(chē)間月產(chǎn)量,車(chē)間月領(lǐng)料進(jìn)行查詢(xún)。主帳管理統(tǒng)計(jì):以月為單位描述各倉(cāng)庫(kù)庫(kù)存物品的倉(cāng)儲(chǔ)信息及倉(cāng)儲(chǔ)累計(jì)信息,包括各種物品的現(xiàn)有庫(kù)存、累計(jì)人出庫(kù)數(shù)量及期初數(shù)量。庫(kù)存帳務(wù)結(jié)轉(zhuǎn)處理:將前一階段的數(shù)據(jù),轉(zhuǎn)移到歷史文件保存起來(lái),并將前一階段的期末數(shù)據(jù)結(jié)轉(zhuǎn)為下一階段的期初數(shù)據(jù)。
5.清倉(cāng)盤(pán)庫(kù)管理
用于倉(cāng)庫(kù)的定期或不定期的盤(pán)點(diǎn)工作,提供盤(pán)庫(kù)清單,當(dāng)盤(pán)庫(kù)數(shù)據(jù)錄入后,打印盤(pán)盈盤(pán)虧數(shù)據(jù)表,并自動(dòng)修改各帳務(wù)。
6.庫(kù)存系統(tǒng)管理
包括庫(kù)存子系統(tǒng)的數(shù)據(jù)初始化,數(shù)據(jù)備份,數(shù)據(jù)恢復(fù),數(shù)據(jù)排序,數(shù)據(jù)庫(kù)數(shù)據(jù)整理等。
3.7系統(tǒng)平臺(tái)選擇
1.軟件平臺(tái)
本系統(tǒng)前臺(tái)用delphi7.0編寫(xiě),oracle 8.1.7作為后臺(tái)數(shù)據(jù)庫(kù)。
2.硬件平臺(tái)
(1)服務(wù)器端:
服務(wù)器主要用來(lái)運(yùn)行數(shù)據(jù)庫(kù)管理系統(tǒng)ORACLE,需要WINDOS2000(含SERVERS版)、NT、XP、LINUX或更高版本;同時(shí)要把本管理系統(tǒng)的數(shù)據(jù)庫(kù)導(dǎo)入到ORACLE數(shù)據(jù)庫(kù)中。
(2)客戶(hù)機(jī):
客戶(hù)機(jī)主要運(yùn)行本系統(tǒng)的前臺(tái)程序:同時(shí)設(shè)置好數(shù)據(jù)庫(kù)連接參數(shù)。客戶(hù)機(jī)需要WIN95/98或者WIN NT4.0、WIN2000、XP。該系統(tǒng)可運(yùn)行于windows 98、ME、2000、NT、XP的機(jī)子上,前臺(tái)用delphi7.0編寫(xiě),oracle 8.1.7作為后臺(tái)數(shù)據(jù)庫(kù)。
3.網(wǎng)絡(luò)平臺(tái)
本系統(tǒng)采用二層C/S結(jié)構(gòu),二層C/S結(jié)構(gòu)的客戶(hù)機(jī)/服務(wù)器(Client/Server)是在網(wǎng)絡(luò)基礎(chǔ)上,以數(shù)據(jù)庫(kù)管理系統(tǒng)為后緩,以微機(jī)作為工作站的一種系統(tǒng)結(jié)構(gòu)。其關(guān)鍵點(diǎn)在于“一分為二”,即把數(shù)據(jù)存取與應(yīng)用程序分離開(kāi),分別由數(shù)據(jù)庫(kù)(Server端)及工作站(Client端)來(lái)執(zhí)行,從而明顯地既保證整個(gè)系統(tǒng)的運(yùn)行性能,又增加了系統(tǒng)的易開(kāi)發(fā)性、可擴(kuò)充性和可維護(hù)性。
3.8數(shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)庫(kù)設(shè)計(jì)包括了數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)ER圖設(shè)計(jì)和SQL腳本編程。其中數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)重點(diǎn)在設(shè)計(jì)表的字段和約束。數(shù)據(jù)庫(kù)ER圖設(shè)計(jì)重點(diǎn)在設(shè)計(jì)數(shù)據(jù)庫(kù)表之間的關(guān)系。設(shè)計(jì)完后就可以編寫(xiě)SQL腳本,就創(chuàng)建數(shù)據(jù)庫(kù)了。
3.9數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)是開(kāi)發(fā)應(yīng)用系統(tǒng)中非常重要的一個(gè)環(huán)節(jié),數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的好壞將直接關(guān)系到程序的后期開(kāi)發(fā)效率及開(kāi)發(fā)的成敗,因此在具體編寫(xiě)代碼前,一定要作好數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)工作。設(shè)計(jì)一個(gè)好的數(shù)據(jù)結(jié)構(gòu)需要良好的應(yīng)用系統(tǒng)需求分析,另一方面設(shè)計(jì)的經(jīng)驗(yàn)也是很重要的因素。
每個(gè)表應(yīng)有主關(guān)鍵字,其他數(shù)據(jù)元素與主關(guān)鍵字一一對(duì)應(yīng),在確實(shí)沒(méi)有主關(guān)鍵時(shí)候,則加入一個(gè)ID字段。ID字段是一個(gè)自加類(lèi)型的字段,可以用它來(lái)作為主關(guān)鍵字。
注:由于選擇了ORACLE來(lái)作為后臺(tái)數(shù)據(jù)庫(kù),但由于ORACLE沒(méi)有自加類(lèi)型數(shù)據(jù)類(lèi)型,所以使用了序列器來(lái)產(chǎn)生新ID。
CREATE SEQUENCE WZGL
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE
有了序列器再加上觸發(fā)器就完全可以自動(dòng)產(chǎn)生新ID了,不過(guò)我們并不使用觸發(fā)器來(lái)自動(dòng)產(chǎn)生新ID,而是自己來(lái)得到ID。如:SELECT WZGL.NEXTVAL FROM DUAL 來(lái)獲得新ID。
第四章 庫(kù)存統(tǒng)計(jì)分析庫(kù)模塊
4.1畢業(yè)設(shè)計(jì)課題目標(biāo)與意義
庫(kù)存管理系統(tǒng)是生產(chǎn)、計(jì)劃和控制的基礎(chǔ)。庫(kù)存管理系統(tǒng)設(shè)計(jì)的總體目標(biāo)是通過(guò)對(duì)倉(cāng)庫(kù)、貨位、入出庫(kù)類(lèi)型與入出庫(kù)單據(jù)的管理,及時(shí)反映物資的倉(cāng)儲(chǔ)、流向情況,為生產(chǎn)管理和成本核算提供依據(jù)。并通過(guò)庫(kù)存分析,為管理及決策人員提供庫(kù)存資金占用情況、物資短缺(超儲(chǔ))情況、ABC分類(lèi)情況等不同的分析信息。通過(guò)清倉(cāng)盤(pán)庫(kù)管理,保證帳面與實(shí)物一致,為計(jì)劃及決策人員提供實(shí)時(shí)準(zhǔn)確的存貨信息,以便及時(shí)調(diào)整生產(chǎn),保證企業(yè)各項(xiàng)生產(chǎn)經(jīng)營(yíng)活動(dòng)的順利進(jìn)行。
本人目標(biāo):完成庫(kù)存管理系統(tǒng)中的庫(kù)存統(tǒng)計(jì)分析模塊,以幫助管理人員進(jìn)行各種庫(kù)存統(tǒng)計(jì)分析,加強(qiáng)庫(kù)存控制,減少庫(kù)存積壓。可對(duì)各車(chē)間的領(lǐng)料數(shù)量及生產(chǎn)量進(jìn)行維護(hù)及查詢(xún)。可按物料及車(chē)間進(jìn)行入出庫(kù)統(tǒng)計(jì),打印出統(tǒng)計(jì)報(bào)表。
4.2統(tǒng)計(jì)分析模塊功能
1.統(tǒng)計(jì)查詢(xún)功能
統(tǒng)計(jì)查詢(xún)管理模塊可以對(duì)庫(kù)存產(chǎn)品進(jìn)行各種類(lèi)型的統(tǒng)計(jì)和查詢(xún),從而使用戶(hù)能夠全
面地了解庫(kù)存狀況,具體可以實(shí)現(xiàn)以下功能:
A、產(chǎn)品出入庫(kù)統(tǒng)計(jì)查詢(xún),生成進(jìn)貨、銷(xiāo)售、庫(kù)存、資金流動(dòng)、綜合分析等多種報(bào)表,從不同角度了解企業(yè)的經(jīng)營(yíng)情況;
B、單據(jù)、報(bào)表都可以打印,打印格式可以靈活定義;
2.資金占用分析功能
具有資金占用分析功能,如資金占用分析、項(xiàng)目資金占用分析、ABC分析等數(shù)據(jù)分析與跟蹤;提供庫(kù)存資金占用情況分布圖,庫(kù)存成本比例等,可以實(shí)時(shí)反應(yīng)庫(kù)存信息,以協(xié)助作出合理的庫(kù)存決策。
3.庫(kù)存預(yù)警功能
庫(kù)存預(yù)警:設(shè)定每種商品庫(kù)存上、下限,隨時(shí)查詢(xún)短缺或積壓的商品,庫(kù)存預(yù)警是指對(duì)庫(kù)存中接近或超過(guò)臨界值的產(chǎn)品進(jìn)行報(bào)警。在產(chǎn)品信息中,包含產(chǎn)品的合理數(shù)量范圍和有限期限。產(chǎn)品數(shù)量小于合理數(shù)量的下限稱(chēng)為短線(xiàn)產(chǎn)品;數(shù)量大于合理數(shù)量的上限稱(chēng)為超儲(chǔ)。產(chǎn)品出現(xiàn)短線(xiàn)、超儲(chǔ)、接近或超過(guò)有效期限需要報(bào)警。
庫(kù)存預(yù)警管理模塊可以實(shí)現(xiàn)以下功能:
A、庫(kù)存產(chǎn)品數(shù)量報(bào)警
B、庫(kù)存產(chǎn)品失效報(bào)警
4.3 統(tǒng)計(jì)查詢(xún)流程圖
4.4設(shè)計(jì)總結(jié):
本次的設(shè)計(jì)存在著一些不足的地方,如網(wǎng)絡(luò)平臺(tái)的二層C/S結(jié)構(gòu)存在以下的缺點(diǎn):
在兩層C/S結(jié)構(gòu)中,客房端應(yīng)用程序直接連接數(shù)據(jù)庫(kù)服務(wù)器,這樣數(shù)據(jù)庫(kù)服務(wù)器將消耗一定的資源以處理與客房端的連接工作。隨著連接工作的頻繁發(fā)生,數(shù)據(jù)庫(kù)服務(wù)器的運(yùn)行效率將會(huì)不斷下降。
在兩層C/S結(jié)構(gòu)中,只有惟一一個(gè)在線(xiàn)的數(shù)據(jù)庫(kù)服務(wù)器,這種結(jié)構(gòu)將成為妨礙系統(tǒng)可靠性的重大隱患。如果數(shù)據(jù)庫(kù)服務(wù)器因?yàn)槟撤N原因而停止工作,那么整個(gè)系統(tǒng)將趨于癱瘓。
兩層C/S結(jié)構(gòu)應(yīng)用程序的分布比較麻煩,需要一些*.dll支持,另外每個(gè)客戶(hù)端還需要配置ODBC或BDE。
4.5 謝詞
在這個(gè)系統(tǒng)開(kāi)發(fā)過(guò)程中,本人增強(qiáng)了團(tuán)體意識(shí),對(duì)一些軟件開(kāi)發(fā)模式有了一定的認(rèn)識(shí),學(xué)會(huì)了如何進(jìn)行小組式的開(kāi)發(fā)一個(gè)綜合系統(tǒng),在此本人特向給了很多指導(dǎo)意見(jiàn)的老師表示感謝!也感謝本組成員對(duì)本人的關(guān)心
幫助。因?yàn)楸鞠到y(tǒng)所涉及的內(nèi)容非常廣泛并且比較復(fù)雜,加上時(shí)間的倉(cāng)促,盡管本組竭盡全力來(lái)保證系統(tǒng)的可靠性和完善性,但是還有一些不足之處,懇請(qǐng)老師批評(píng)指正。
第五章 參考文獻(xiàn)
1.《Delphi6.0程序員開(kāi)發(fā)指南》
機(jī)械工業(yè)出版社
李
維
編譯
2.《Delphi6.0企業(yè)級(jí)解決方案應(yīng)用剖析》
機(jī)械工業(yè)出版社
劉
藝
編著
3.《Oracle 8.X For Windwos NT 實(shí)用教程》 清華大學(xué)出版社
翁正科 王新英
編著 4.《數(shù)據(jù)庫(kù)系統(tǒng)原理教程》
清華大學(xué)出版社
陳
紅 王
珊
編著
5.《Delphi6.0程序設(shè)計(jì)教程》
冶金工業(yè)出版社
李光明
編著
7.《深入學(xué)習(xí)Delphi編程》
社
靜
海
編著
8.《Delphi 7高效數(shù)據(jù)庫(kù)程序設(shè)計(jì)》
社
李
維
編著
中國(guó)鐵道出版機(jī)械工業(yè)出版
第五篇:汽車(chē)銷(xiāo)售管理系統(tǒng)實(shí)現(xiàn)與維護(hù)實(shí)驗(yàn)報(bào)告
電子科技大學(xué)
標(biāo)準(zhǔn)實(shí)驗(yàn)報(bào)告
數(shù)據(jù)庫(kù)原理綜合實(shí)驗(yàn)
電子科技大學(xué)教務(wù)處制表
(實(shí)驗(yàn))課程名稱(chēng)電子科技大學(xué)
實(shí)驗(yàn)報(bào)告
學(xué)生姓名: 學(xué)號(hào):
指導(dǎo)教師:蔡運(yùn)娟
實(shí)驗(yàn)地點(diǎn):電子政務(wù)可視化再現(xiàn)實(shí)驗(yàn)室實(shí)驗(yàn)時(shí)間:2017年6月4日
一、實(shí)驗(yàn)室名稱(chēng):
二、實(shí)驗(yàn)項(xiàng)目名稱(chēng):數(shù)據(jù)庫(kù)實(shí)現(xiàn)與維護(hù)
三、實(shí)驗(yàn)學(xué)時(shí):4
四、實(shí)驗(yàn)原理:
五、實(shí)驗(yàn)?zāi)康模?/p>
掌握數(shù)據(jù)庫(kù)管理系統(tǒng)的安裝、使用和維護(hù);掌握在數(shù)據(jù)庫(kù)管理系統(tǒng)中創(chuàng)建數(shù)據(jù)庫(kù)及對(duì)數(shù)據(jù)庫(kù)進(jìn)行維護(hù)和數(shù)據(jù)查詢(xún)的基本方法;培養(yǎng)動(dòng)手能力。
六、實(shí)驗(yàn)內(nèi)容:
①建庫(kù),命令方式及快捷菜單方式; ②建表,命令方式及快捷菜單方式; ③修改表結(jié)構(gòu),快捷菜單方式; ④數(shù)據(jù)關(guān)系圖,快捷菜單方式
⑤數(shù)據(jù)編輯:快捷菜單方式輸入測(cè)試數(shù)據(jù),數(shù)據(jù)的增刪改命令各2句,增刪改時(shí)專(zhuān)門(mén)測(cè)試有參照關(guān)系的表之間數(shù)據(jù)增刪改的關(guān)聯(lián)變化。⑥數(shù)據(jù)的查詢(xún),查詢(xún)功能及其實(shí)現(xiàn)(6個(gè))⑦創(chuàng)建視圖,使用視圖(2個(gè))⑧觸發(fā)器建立及測(cè)試(1個(gè))
七、實(shí)驗(yàn)器材(設(shè)備、元器件):計(jì)算機(jī)、Microsoft Visio2013軟件
八、實(shí)驗(yàn)步驟:
建庫(kù)、建表:如果所建表屬性列有參照關(guān)系時(shí)要先建有別參照關(guān)系的表、建視圖、設(shè)置觸發(fā)器
九、實(shí)驗(yàn)數(shù)據(jù)及結(jié)果分析:
1、建庫(kù):
命令語(yǔ)句如下(命令行占地內(nèi)容較大,詳情見(jiàn)附件1)快捷菜單方式如下:
2、建表:
命令語(yǔ)句如下(見(jiàn)附件2)
3、修改表結(jié)構(gòu):
4、數(shù)據(jù)庫(kù)關(guān)系圖: ①整體數(shù)據(jù)庫(kù)關(guān)系圖:
②某一部分放大數(shù)據(jù)庫(kù)關(guān)系圖:
5、數(shù)據(jù)編輯 ①所有表:
②數(shù)據(jù)的增刪改命令: a、快捷方式輸入測(cè)試數(shù)據(jù):
b、數(shù)據(jù)的增加
當(dāng)插入數(shù)據(jù)到業(yè)務(wù)處理表中,外碼的值事先在相應(yīng)表中沒(méi)有定義,但是任然可以在聯(lián)系表中插入數(shù)據(jù)。如示例中,在訂單結(jié)算表中插入’pi00000008’,’sp00000001’,’c0001’,但是’pi0000000008’在支付通知單中沒(méi)有相應(yīng)記錄,但是插入操作仍可執(zhí)行。(觸發(fā)器?)
c、數(shù)據(jù)的修改
當(dāng)修改列數(shù)據(jù)為另一個(gè)表的外鍵時(shí)會(huì)提示錯(cuò)誤信息,如在訂單結(jié)算業(yè)務(wù)邏輯中供應(yīng)商號(hào)和出納員編號(hào)是當(dāng)前表的外鍵,當(dāng)修改操作設(shè)計(jì)以上兩個(gè)屬性列時(shí)就會(huì)出現(xiàn)錯(cuò)誤信息:
當(dāng)修改操作為涉及到主鍵時(shí)就不會(huì)彈出錯(cuò)誤信息,但是所修改項(xiàng)也不會(huì)變,例如當(dāng)前訂單結(jié)算表中數(shù)據(jù)為如下所示
當(dāng)在支付通知單表中把支付通知單號(hào)pi00000001改為pi00000007時(shí),雖然支付通知單表內(nèi)的數(shù)據(jù)項(xiàng)會(huì)更改,但是訂單結(jié)算業(yè)務(wù)表中支付通知單號(hào)還為原來(lái)的pi00000001.(要用觸發(fā)器?)
d、數(shù)據(jù)的刪除: 同樣,當(dāng)試圖刪除出納員時(shí),因?yàn)槌黾{員編號(hào)作為訂單結(jié)算外鍵的存在,不能成功刪除,彈出錯(cuò)誤信息:
在試圖刪除支付通知單號(hào)為’pi00000001’的支付通知單時(shí),雖然成功刪除了指定支付通知單內(nèi)容,但是在訂單結(jié)算業(yè)務(wù)中,關(guān)于’pi00000001’的記錄仍然存在:
6、數(shù)據(jù)的查詢(xún): ①查詢(xún)所有供應(yīng)商信息:
②查詢(xún)供應(yīng)商信息及該供應(yīng)商倉(cāng)庫(kù)存貨信息:
③查詢(xún)擁有倉(cāng)庫(kù)數(shù)量>3個(gè)的供應(yīng)商號(hào):
④按庫(kù)存遞增順序查詢(xún)所有供應(yīng)商倉(cāng)庫(kù)庫(kù)存信息
⑤查詢(xún)供應(yīng)商號(hào)為’sp00000001’的供應(yīng)商已存在的訂單結(jié)算業(yè)務(wù)細(xì)節(jié):
⑥查詢(xún)倉(cāng)庫(kù)號(hào)為’wh00000001’的倉(cāng)庫(kù)歷史入庫(kù)記錄:
7、創(chuàng)建視圖,使用視圖
①供應(yīng)商基本信息及對(duì)應(yīng)存貨信息視圖: 視圖的創(chuàng)建:
視圖的查詢(xún):
②汽車(chē)經(jīng)銷(xiāo)商經(jīng)理合同查詢(xún)視圖:
8、觸發(fā)器建立及測(cè)試
①觸發(fā)器設(shè)置:該觸發(fā)器設(shè)置到入庫(kù)單表上,當(dāng)有插入操作時(shí)響應(yīng)觸發(fā)器,觸發(fā)器首先判斷插入的入庫(kù)單涉及到的倉(cāng)庫(kù)號(hào)和入庫(kù)車(chē)輛名稱(chēng)是否在倉(cāng)庫(kù)存貨信息中存在對(duì)應(yīng)記錄。如果存在,則把入庫(kù)車(chē)輛數(shù)累加到車(chē)輛名稱(chēng)對(duì)應(yīng)的庫(kù)存數(shù)量上;如果不存在,就新插入一條記錄到倉(cāng)庫(kù)存貨信息表中。(觸發(fā)器代碼見(jiàn)附件3)
②觸發(fā)器測(cè)試: a、插入一條已經(jīng)在倉(cāng)庫(kù)存貨信息表中有記錄的車(chē)輛信息: 插入前:
插入命令: 插入后:
b、插入一條之前在倉(cāng)庫(kù)存貨信息表中沒(méi)有記錄的車(chē)輛信息: 插入命令:
插入后:
9、分離和附加數(shù)據(jù)庫(kù): ①分離:
②附加:
十、實(shí)驗(yàn)結(jié)論:
本次實(shí)驗(yàn)完成了汽車(chē)銷(xiāo)售管理系統(tǒng)數(shù)據(jù)庫(kù)的建立,包括41個(gè)表的創(chuàng)建、2個(gè)視圖的創(chuàng)建以及1個(gè)觸發(fā)器的設(shè)置。當(dāng)前數(shù)據(jù)庫(kù)能夠完成表的增刪改操作及基本的查詢(xún)操作。
十一、總結(jié)及心得體會(huì):
隨著這次實(shí)驗(yàn)接近尾聲,汽車(chē)銷(xiāo)售管理系統(tǒng)數(shù)據(jù)庫(kù)的功能實(shí)現(xiàn)大體完成,因?yàn)闀r(shí)間有限,在數(shù)據(jù)庫(kù)實(shí)現(xiàn)階段只創(chuàng)建了兩個(gè)視圖和一個(gè)觸發(fā)器,在數(shù)據(jù)庫(kù)的物理設(shè)計(jì)階段也沒(méi)有建索引等更多的內(nèi)容。沒(méi)有更加完整的完成這次實(shí)驗(yàn)也算一個(gè)遺憾。通過(guò)這次實(shí)驗(yàn),掌握了設(shè)計(jì)數(shù)據(jù)庫(kù)的整體流程,從需求分析到概念設(shè)計(jì)再到邏輯設(shè)計(jì),到最后的數(shù)據(jù)庫(kù)實(shí)現(xiàn),差不多每一步都花費(fèi)了很多時(shí)間去完成.其中需求分析階段在我看來(lái)是最花費(fèi)時(shí)間同時(shí)也是最需要引起注意的一步,它不僅在前期需要投入很多的精力去調(diào)查研究,而且隨著數(shù)據(jù)庫(kù)設(shè)計(jì)的進(jìn)行階段,還需要不斷的對(duì)需求分析得出的表、字典進(jìn)行更新修改。最后的數(shù)據(jù)庫(kù)實(shí)現(xiàn)階段一定是最有成就感的,因?yàn)榻?jīng)過(guò)了前期那么多的努力終于把數(shù)據(jù)庫(kù)建好同時(shí)一些簡(jiǎn)單的功能也都可以實(shí)現(xiàn)了。總體來(lái)說(shuō)通過(guò)這學(xué)期這門(mén)課程的學(xué)習(xí),自己能夠更好的把理論上學(xué)到的東西用在實(shí)際的項(xiàng)目中,在整個(gè)過(guò)程中鍛煉了自己快速查閱信息和快速學(xué)習(xí)的能力。
十二、對(duì)本實(shí)驗(yàn)過(guò)程及方法、手段的改進(jìn)建議:
在本次實(shí)驗(yàn)中設(shè)置觸發(fā)器那一步需要用到一些SQL語(yǔ)句,有很多都是沒(méi)有學(xué)過(guò)的,常常有想法但是不知道怎么用SQL語(yǔ)言實(shí)現(xiàn)。所以建議老師以后在上數(shù)據(jù)庫(kù)理論課的時(shí)候適當(dāng)加一些SQL語(yǔ)言編程的部分。報(bào)告評(píng)分: 指導(dǎo)教師簽字:
附件一(T-SQL語(yǔ)句建數(shù)據(jù)庫(kù)):
create database jx_database on primary(name=jinx, filename='D:jx_databasejinx.mdf', size=1024mb, maxsize=2048mb, filegrowth=50mb)log on(name=jinx_log, filename='D:jx_databasejinx_log.ldf', size=512mb, maxsize=1024mb, filegrowth=50mb)附件二(T-SQL語(yǔ)句建表): use carsale go create table 汽車(chē)經(jīng)銷(xiāo)商
(汽車(chē)經(jīng)銷(xiāo)商號(hào) char(10)primary key check(汽車(chē)經(jīng)銷(xiāo)商號(hào) like'cs[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 汽車(chē)經(jīng)銷(xiāo)商名稱(chēng) nchar(50)not null, 汽車(chē)經(jīng)銷(xiāo)商聯(lián)系電話(huà) char(11)not null check(汽車(chē)經(jīng)銷(xiāo)商聯(lián)系電話(huà) like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 汽車(chē)經(jīng)銷(xiāo)商地址 nchar(100)not null)go
use carsale go create table 客戶(hù)(客戶(hù)號(hào)
char(10)
primary
key
check(客
戶(hù)
號(hào)
like'cst[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 客戶(hù)姓名 nchar(8)not null, 性別 nchar(2)check(性別='男' or 性別='女')default '男', 年齡 int not null check(年齡>0 and 年齡<100), 客戶(hù)地址 nchar(100), 客戶(hù)聯(lián)系電話(huà) char(11)not null check(客戶(hù)聯(lián)系電話(huà) like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))go
use carsale go create table 車(chē)輛
(發(fā)動(dòng)機(jī)編號(hào) char(17)primary key, 車(chē)輛名稱(chēng) nchar(50)not null, 車(chē)輛售價(jià) float not null check(車(chē)輛售價(jià)>0 and 車(chē)輛售價(jià)<100000000), 車(chē)輛類(lèi)型 nchar(20)not null)go
use carsale go create table 供應(yīng)商(供應(yīng)商號(hào)
char(10)
primary
key
check(供
應(yīng)
商
號(hào)
like'sp[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 供應(yīng)商名稱(chēng) nchar(50)not null, 供應(yīng)商聯(lián)系電話(huà) char(11)not null check(供應(yīng)商聯(lián)系電話(huà) like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 供應(yīng)商地址 nchar(100)not null, 貨源信息 text not null)go
use carsale go create table 市場(chǎng)專(zhuān)員
(市場(chǎng)專(zhuān)員編號(hào) char(5)primary key check(市場(chǎng)專(zhuān)員編號(hào) like's[0-9][0-9][0-9][0-9]'), 市場(chǎng)專(zhuān)員聯(lián)系電話(huà) char(11)not null check(市場(chǎng)專(zhuān)員聯(lián)系電話(huà) like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))go
use carsale go create table 采購(gòu)員
(采購(gòu)員編號(hào) char(5)primary key check(采購(gòu)員編號(hào) like'b[0-9][0-9][0-9][0-9]'), 采購(gòu)員聯(lián)系電話(huà) char(11)not null check(采購(gòu)員聯(lián)系電話(huà) like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))go
use carsale go create table 銷(xiāo)售顧問(wèn)
(銷(xiāo)售顧問(wèn)編號(hào) char(5)primary key check(銷(xiāo)售顧問(wèn)編號(hào) like'sc[0-9][0-9][0-9]'), 銷(xiāo)售顧問(wèn)聯(lián)系電話(huà) char(11)not null check(銷(xiāo)售顧問(wèn)聯(lián)系電話(huà) like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
use carsale go create table 出納員
(出納員編號(hào) char(5)primary key check(出納員編號(hào) like'c[0-9][0-9][0-9][0-9]'), 出納員聯(lián)系電話(huà) char(11)not null check(出納員聯(lián)系電話(huà) like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
use carsale go create table 會(huì)計(jì)員
(會(huì)計(jì)員編號(hào) char(5)primary key check(會(huì)計(jì)員編號(hào) like'a[0-9][0-9][0-9][0-9]'), 會(huì)計(jì)員聯(lián)系電話(huà) char(11)not null check(會(huì)計(jì)員聯(lián)系電話(huà) like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))go
use carsale go create table 庫(kù)存管理員
(庫(kù)存管理員編號(hào) char(5)primary key check(庫(kù)存管理員編號(hào) like'wh2[0-9][0-9]'), 庫(kù)存管理員聯(lián)系電話(huà) char(11)not null check(庫(kù)存管理員聯(lián)系電話(huà) like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))go
use carsale go create table 出入庫(kù)管理員
(出入庫(kù)管理員編號(hào) char(5)primary key check(出入庫(kù)管理員編號(hào) like'wh2[0-9][0-9]'), 出入庫(kù)管理員聯(lián)系電話(huà) char(11)not null check(出入庫(kù)管理員聯(lián)系電話(huà) like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))go
use carsale go create table 售后員
(售后員編號(hào) char(5)primary key check(售后員編號(hào) like'asc[0-9][0-9]'), 售后員聯(lián)系電話(huà) char(11)not null check(售后員聯(lián)系電話(huà) like'1[3-6][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))go
use carsale go create table 倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào)
char(10)
primary
key
check(倉(cāng)
庫(kù)
號(hào)
like'wh[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 倉(cāng)庫(kù)存貨信息 text)go
use carsale go create table 采購(gòu)數(shù)據(jù)單
(采購(gòu)數(shù)據(jù)單號(hào) char(10)primary key check(采購(gòu)數(shù)據(jù)單號(hào) like'pc[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 采購(gòu)數(shù)據(jù)單日期 smalldatetime not null, 采購(gòu)數(shù)據(jù)單內(nèi)容 text)go
use carsale go create table 庫(kù)存預(yù)警單
(庫(kù)存預(yù)警單號(hào) char(10)primary key check(庫(kù)存預(yù)警單號(hào) like'sw[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 庫(kù)存預(yù)警單日期 smalldatetime, 庫(kù)存預(yù)警單內(nèi)容 text)go
use carsale go create table 車(chē)輛訂購(gòu)單(車(chē)輛訂購(gòu)
單
號(hào)
char(10)
check(車(chē)
輛
訂
購(gòu)
單like'od[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 采購(gòu)員編號(hào) char(5)check(采購(gòu)員編號(hào) like'b[0-9][0-9][0-9][0-9]'), 供應(yīng)商號(hào)
char(10)
check(供
應(yīng)
商like'sp[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 訂購(gòu)日期 smalldatetime, 訂購(gòu)車(chē)型 nchar(50)not null, 訂購(gòu)車(chē)輛數(shù) smallint check(訂購(gòu)車(chē)輛數(shù) between 0 and 32767), 訂購(gòu)金額 float check(訂購(gòu)金額 between 0.0 and 100000000.0), primary key(車(chē)輛訂購(gòu)單號(hào)), foreign key(采購(gòu)員編號(hào))references 采購(gòu)員(采購(gòu)員編號(hào)), foreign key(供應(yīng)商號(hào))references 供應(yīng)商(供應(yīng)商號(hào)))go
use carsale go create table 貨物清單(貨物清單
號(hào)
char(10)
check(貨
物
清
單like'gl[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 供應(yīng)商號(hào)
char(10)
check(供
應(yīng)
商like'sp[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 汽車(chē)經(jīng)銷(xiāo)商
號(hào)
char(10)
check
(汽
車(chē)
經(jīng)
銷(xiāo)
商like'cs[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 發(fā)貨日期 smalldatetime, 發(fā)貨車(chē)型 nchar(50)not null,號(hào)
號(hào)
號(hào)
號(hào)
號(hào) 發(fā)貨車(chē)輛數(shù) smallint check(發(fā)貨車(chē)輛數(shù) between 0 and 32767)primary key(貨物清單號(hào)), foreign key(供應(yīng)商號(hào))references 供應(yīng)商(供應(yīng)商號(hào)), foreign key(汽車(chē)經(jīng)銷(xiāo)商號(hào))references 汽車(chē)經(jīng)銷(xiāo)商(汽車(chē)經(jīng)銷(xiāo)商號(hào)))go
use carsale go create table 入庫(kù)單(入庫(kù)單
號(hào)
char(10)
check(入
庫(kù)
單
號(hào)
like'iw[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 倉(cāng)庫(kù)號(hào) char(10)check(倉(cāng)庫(kù)號(hào) like'wh[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 入庫(kù)單日期 smalldatetime, 入庫(kù)車(chē)型 nchar(50)not null, 入庫(kù)車(chē)輛數(shù) smallint check(入庫(kù)車(chē)輛數(shù) between 0 and 32767), primary key(入庫(kù)單號(hào)), foreign key(倉(cāng)庫(kù)號(hào))references 倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào)))go
use carsale go create table 出庫(kù)單(出庫(kù)單
號(hào)
char(10)
check(出
庫(kù)
單
號(hào)
like'ow[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 倉(cāng)庫(kù)號(hào) char(10)check(倉(cāng)庫(kù)號(hào) like'wh[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 客戶(hù)號(hào) char(10)check(客戶(hù)號(hào) like'cst[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 出庫(kù)單日期 smalldatetime, 出庫(kù)車(chē)型 nchar(50)not null, 出庫(kù)車(chē)輛數(shù) smallint check(出庫(kù)車(chē)輛數(shù) between 0 and 32767), primary key(出庫(kù)單號(hào)), foreign key(倉(cāng)庫(kù)號(hào))references 倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào)), foreign key(客戶(hù)號(hào))references 客戶(hù)(客戶(hù)號(hào)))go
use carsale go create table 支付通知單(支付通知
單
號(hào)
char(10)
check(支
付
通
知
單like'pi[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 供應(yīng)商號(hào)
char(10)
check(供
應(yīng)
商like'sp[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 汽車(chē)經(jīng)銷(xiāo)商
號(hào)
char(10)
check(汽
車(chē)
經(jīng)
銷(xiāo)
商like'cs[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 支付通知單明細(xì) text, 支付訂單金額 float check(支付訂單金額 between 0.0 and 100000000.0), primary key(支付通知單號(hào)), foreign key(供應(yīng)商號(hào))references 供應(yīng)商(供應(yīng)商號(hào)), foreign key(汽車(chē)經(jīng)銷(xiāo)商號(hào))references 汽車(chē)經(jīng)銷(xiāo)商(汽車(chē)經(jīng)銷(xiāo)商號(hào)))go
use carsale go create table 合同(合同
號(hào)
char(10)
check(合同like'sl[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 客戶(hù)號(hào) char(10)check(客戶(hù)號(hào) like'cst[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 銷(xiāo)售顧問(wèn)編號(hào) char(5)check(銷(xiāo)售顧問(wèn)編號(hào) like's[0-9][0-9][0-9][0-9]'), 銷(xiāo)售日期 smalldatetime not null, 發(fā)動(dòng)機(jī)編號(hào) char(17)not null, 銷(xiāo)售車(chē)型 nchar(50)not null,號(hào)號(hào)號(hào)號(hào)
銷(xiāo)售車(chē)輛數(shù) smallint check(銷(xiāo)售車(chē)輛數(shù) between 0 and 32767), 銷(xiāo)售金額 float check(銷(xiāo)售金額 between 0.0 and 100000000.0), primary key(合同號(hào)), foreign key(客戶(hù)號(hào))references 客戶(hù)(客戶(hù)號(hào)), foreign key(銷(xiāo)售顧問(wèn)編號(hào))references 銷(xiāo)售顧問(wèn)(銷(xiāo)售顧問(wèn)編號(hào)), foreign key(發(fā)動(dòng)機(jī)編號(hào))references 車(chē)輛(發(fā)動(dòng)機(jī)編號(hào)))go
use carsale go create table 客戶(hù)評(píng)價(jià)單
(客戶(hù)評(píng)價(jià)單號(hào) char(10)primary key check(客戶(hù)評(píng)價(jià)單號(hào) like'el[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 客戶(hù)滿(mǎn)意度 smallint not null check(客戶(hù)滿(mǎn)意度 between 0 and 100), 客戶(hù)建議 text)go
use carsale go create table 發(fā)票(發(fā)票號(hào)
char(10)
primary
key
check(發(fā)
票
號(hào)
like'rcp[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 發(fā)票日期 smalldatetime not null, 汽車(chē)經(jīng)銷(xiāo)商
號(hào)
char(10)
check
(汽
車(chē)
經(jīng)
銷(xiāo)
商
號(hào)
like'cs[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 客戶(hù)號(hào) char(10)check(客戶(hù)號(hào) like'cst[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 發(fā)票內(nèi)容 text not null, foreign key(汽車(chē)經(jīng)銷(xiāo)商號(hào))references 汽車(chē)經(jīng)銷(xiāo)商(汽車(chē)經(jīng)銷(xiāo)商號(hào)), foreign key(客戶(hù)號(hào))references 客戶(hù)(客戶(hù)號(hào)))go
use carsale go create table 收據(jù)(收據(jù)號(hào)
char(10)
primary
key
check(收
據(jù)
號(hào)
like'acq[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 收據(jù)日期 smalldatetime not null, 供應(yīng)商號(hào)
char(10)
check(供
應(yīng)
商
號(hào)
like'sp[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 汽車(chē)經(jīng)銷(xiāo)商
號(hào)
char(10)
check
(汽
車(chē)
經(jīng)
銷(xiāo)
商
號(hào)
like'cs[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 收據(jù)內(nèi)容 text not null, foreign key(供應(yīng)商號(hào))references 供應(yīng)商(供應(yīng)商號(hào)), foreign key(汽車(chē)經(jīng)銷(xiāo)商號(hào))references 汽車(chē)經(jīng)銷(xiāo)商(汽車(chē)經(jīng)銷(xiāo)商號(hào)))go
/*use carsale go create table 庫(kù)存檢查
(庫(kù)存預(yù)警單號(hào) char(10)primary key check(庫(kù)存預(yù)警單號(hào) like'sw[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 庫(kù)存管理員編號(hào) char(5)not null check(庫(kù)存管理員編號(hào) like'wg[0-9][0-9][0-9]'))go
use carsale go create table 市場(chǎng)分析
(市場(chǎng)專(zhuān)員編號(hào) char(5)primary key check(市場(chǎng)專(zhuān)員編號(hào) like'b[0-9][0-9][0-9][0-9]'), 采購(gòu)數(shù)據(jù)單號(hào) char(10)not null check(采購(gòu)數(shù)據(jù)單號(hào) like'pc[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))go */
use carsale go create table 匯總整理(庫(kù)存預(yù)警
單
號(hào)
char(10)
check(庫(kù)
存
預(yù)
警
單
號(hào)
like'sw[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 采購(gòu)數(shù)據(jù)單
號(hào)
char(10)
check(采
購(gòu)
數(shù)
據(jù)
單
號(hào)
like'pc[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 車(chē)輛訂購(gòu)單
號(hào)
char(10)
check(車(chē)
輛
訂
購(gòu)
單
號(hào)
like'od[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), primary key(庫(kù)存預(yù)警單號(hào),采購(gòu)數(shù)據(jù)單號(hào),車(chē)輛訂購(gòu)單號(hào)))go
use carsale go create table 車(chē)輛訂購(gòu)
(車(chē)輛訂購(gòu)單號(hào) char(10)not null check(車(chē)輛訂購(gòu)單號(hào) like'od[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 供應(yīng)商號(hào)
char(10)
not
null
check(供
應(yīng)
商
號(hào)
like'sp[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 采購(gòu)員編號(hào) char(5)not null check(采購(gòu)員編號(hào) like'b[0-9][0-9][0-9][0-9]'), 發(fā)動(dòng)機(jī)編號(hào) char(17)not null, primary key(車(chē)輛訂購(gòu)單號(hào),供應(yīng)商號(hào),采購(gòu)員編號(hào),發(fā)動(dòng)機(jī)編號(hào)))go
use carsale go create table 訂單交付
(發(fā)動(dòng)機(jī)編號(hào) char(17)not null, 貨物清單
號(hào)
char(10)
check(貨
物
清
單
號(hào)
like'gl[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 供應(yīng)商號(hào)
char(10)
not
null
check(供
應(yīng)
商
號(hào)
like'sp[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), primary key(發(fā)動(dòng)機(jī)編號(hào),貨物清單號(hào)), foreign key(供應(yīng)商號(hào))references 供應(yīng)商(供應(yīng)商號(hào)))go
use carsale go create table 訂貨信息復(fù)核(入庫(kù)單號(hào)
char(10)
primary
key
check(入
庫(kù)
單
號(hào)
like'iw[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 貨物清單號(hào)
char(10)
not
null
check(貨
物
清
單
號(hào)
like'gl[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 出入庫(kù)管理員編號(hào) char(5)not null check(出入庫(kù)管理員編號(hào) like'wh2[0-9][0-9]'), foreign key(貨物清單號(hào))references 貨物清單(貨物清單號(hào)), foreign key(出入庫(kù)管理員編號(hào))references 出入庫(kù)管理員(出入庫(kù)管理員編號(hào)))go
use carsale go create table 車(chē)輛入庫(kù)(入庫(kù)單
號(hào)
char(10)
check(入
庫(kù)
單
號(hào)
like'iw[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 倉(cāng)庫(kù)號(hào) char(10)check(倉(cāng)庫(kù)號(hào) like'wh[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 出入庫(kù)管理員編號(hào) char(5)not null check(出入庫(kù)管理員編號(hào) like'wh2[0-9][0-9]'), primary key(入庫(kù)單號(hào),倉(cāng)庫(kù)號(hào)), foreign key(出入庫(kù)管理員編號(hào))references 出入庫(kù)管理員(出入庫(kù)管理員編號(hào)))go
use carsale go create table 訂單結(jié)算
(支付通知單號(hào) char(10)primary key check(支付通知單號(hào) like'pi[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 供應(yīng)商號(hào)
char(10)
not
null
check(供
應(yīng)
商
號(hào)
like'sp[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 出納員編號(hào) char(5)not null check(出納員編號(hào) like'c[0-9][0-9][0-9][0-9]'), foreign key(供應(yīng)商號(hào))references 供應(yīng)商(供應(yīng)商號(hào)), foreign key(出納員編號(hào))references 出納員(出納員編號(hào)))go
use carsale go create table 客戶(hù)汽車(chē)訂購(gòu)
(客戶(hù)號(hào) char(10)check(客戶(hù)號(hào) like'cst[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 客戶(hù)汽車(chē)訂
單
號(hào)
char(10)
check(客
戶(hù)
汽
車(chē)
訂
單
號(hào)
like'od[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 銷(xiāo)售顧問(wèn)編號(hào) char(5)check(銷(xiāo)售顧問(wèn)編號(hào) like's[0-9][0-9][0-9][0-9]'), primary key(客戶(hù)號(hào),客戶(hù)汽車(chē)訂單號(hào)), foreign key(銷(xiāo)售顧問(wèn)編號(hào))references 銷(xiāo)售顧問(wèn)(銷(xiāo)售顧問(wèn)編號(hào)))go
use carsale go create table 組成
(發(fā)動(dòng)機(jī)編號(hào) char(17)primary key, 客戶(hù)汽車(chē)訂單號(hào) char(12)check(客戶(hù)汽車(chē)訂單號(hào)
like'cstod[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), foreign key(客戶(hù)汽車(chē)訂單號(hào))references 客戶(hù)汽車(chē)訂單(客戶(hù)汽車(chē)訂單號(hào)))go
use carsale go create table 庫(kù)存檢查(發(fā)動(dòng)機(jī)編號(hào) char(17), 取貨單號(hào)
char(10)
not
null
check(取
貨
單
號(hào)
like'pu[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 客戶(hù)汽車(chē)訂
單
號(hào)
char(12)
check(客
戶(hù)
汽
車(chē)
訂
單
號(hào)
like'cstod[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), foreign key(取貨單號(hào))references 取貨單(取貨單號(hào)), foreign key(客戶(hù)汽車(chē)訂單號(hào))references 客戶(hù)汽車(chē)訂單(客戶(hù)汽車(chē)訂單號(hào)))go
use carsale go create table 簽訂合同(合同號(hào)
char(10)
primary
key
check(合同
號(hào)
like'sl[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 客戶(hù)號(hào)
char(10)
not
null
check(客
戶(hù)
號(hào)
like'cst[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 銷(xiāo)售顧問(wèn)編號(hào) char(5)not null check(銷(xiāo)售顧問(wèn)編號(hào) like's[0-9][0-9][0-9][0-9]'), 客戶(hù)汽車(chē)訂
單
號(hào)
char(12)
check(客
戶(hù)
汽
車(chē)
訂
單
號(hào)
like'cstod[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), foreign key(客戶(hù)號(hào))references 客戶(hù)(客戶(hù)號(hào)), foreign key(銷(xiāo)售顧問(wèn)編號(hào))references 銷(xiāo)售顧問(wèn)(銷(xiāo)售顧問(wèn)編號(hào)), foreign key(客戶(hù)汽車(chē)訂單號(hào))references 客戶(hù)汽車(chē)訂單(客戶(hù)汽車(chē)訂單號(hào)))go
use carsale go create table 銷(xiāo)售結(jié)算
(會(huì)計(jì)員編號(hào) char(5)primary key check(會(huì)計(jì)員編號(hào) like'a[0-9][0-9][0-9][0-9]'), 取貨單號(hào)
char(10)
not
null
check(取
貨
單
號(hào)
like'pu[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), foreign key(取貨單號(hào))references 取貨單(取貨單號(hào)))go
use carsale go create table 取貨(取貨單編號(hào)
char(10)primary key check(取貨單編號(hào)
like'pu[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 客戶(hù)號(hào)
char(10)
not
null
check(客
戶(hù)
號(hào)
like'cst[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 出入庫(kù)管理員編號(hào) char(5)not null check(出入庫(kù)管理員編號(hào) like'wh2[0-9][0-9]'), foreign key(客戶(hù)號(hào))references 客戶(hù)(客戶(hù)號(hào)), foreign key(出入庫(kù)管理員編號(hào))references 出入庫(kù)管理員(出入庫(kù)管理員編號(hào)))go
use carsale go create table 客戶(hù)評(píng)價(jià)(客戶(hù)號(hào)
char(10)
primary
key
check(客
戶(hù)
號(hào)
like'cst[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 客戶(hù)評(píng)價(jià)單號(hào) char(10)not null check(客戶(hù)評(píng)價(jià)單號(hào) like'el[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), 售后員編號(hào) char(5)not null check(售后員編號(hào) like'asc[0-9][0-9]'), foreign key(客戶(hù)評(píng)價(jià)單號(hào))references 客戶(hù)評(píng)價(jià)單(客戶(hù)評(píng)價(jià)單號(hào)), foreign key(售后員編號(hào))references 售后員(售后員編號(hào)))go
附件三(T-SQL語(yǔ)句建立觸發(fā)器):
USE [carsale] GO /****** Object: Trigger [dbo].[i_w] Script Date: 06/04/2017 20:15:45 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER TRIGGER [dbo].[i_w] on [dbo].[入庫(kù)單] for insert as if update(入庫(kù)單號(hào))print '入庫(kù)成功!!' begin declare @wh char(10)declare @name nchar(50)declare @num int select @wh=倉(cāng)庫(kù)號(hào),@name=入庫(kù)車(chē)輛名稱(chēng),@num=入庫(kù)車(chē)輛數(shù) from Inserted if exists(select * from 倉(cāng)庫(kù)存貨信息,Inserted where 倉(cāng)庫(kù)存貨信息.車(chē)輛名稱(chēng)=Inserted.入庫(kù)車(chē)輛名稱(chēng) and Inserted.倉(cāng)庫(kù)號(hào) in(倉(cāng)庫(kù)存貨信息.倉(cāng)庫(kù)號(hào)))update 倉(cāng)庫(kù)存貨信息
set 倉(cāng)庫(kù)存貨信息.倉(cāng)庫(kù)號(hào)=Inserted.倉(cāng)庫(kù)號(hào),倉(cāng)庫(kù)存貨信息.車(chē)輛名稱(chēng)=Inserted.入庫(kù)車(chē)輛名稱(chēng),倉(cāng)庫(kù)存貨信息.庫(kù)存數(shù)量=倉(cāng)庫(kù)存貨信息.庫(kù)存數(shù)量+Inserted.入庫(kù)車(chē)輛數(shù) from 倉(cāng)庫(kù)存貨信息,Inserted where 倉(cāng)庫(kù)存貨信息.倉(cāng)庫(kù)號(hào)=Inserted.倉(cāng)庫(kù)號(hào) else insert into 倉(cāng)庫(kù)存貨信息
values(@wh,'4',@name,@num)end