浙大遠程計算機專業(yè)畢業(yè)論文格式規(guī)范參考_第1頁
浙大遠程計算機專業(yè)畢業(yè)論文格式規(guī)范參考_第2頁
浙大遠程計算機專業(yè)畢業(yè)論文格式規(guī)范參考_第3頁
浙大遠程計算機專業(yè)畢業(yè)論文格式規(guī)范參考_第4頁
浙大遠程計算機專業(yè)畢業(yè)論文格式規(guī)范參考_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、浙江大學遠程教育學院本科生畢業(yè)論文(設計)題 目用數(shù)據庫管理商品庫存 專 業(yè)計算機應用技術學習中心姓 名 學 號 指導教師 年月日摘要文章討論了基于MS SQL Server和PowerBuilder的C/S兩層數(shù)據庫應用程序開發(fā)。在微軟Windows操作系統(tǒng)環(huán)境下,服務器端安裝SQL Server,客戶端安裝PowerBuilder開發(fā)的數(shù)據庫應用程序,實現(xiàn)了簡單的收貨、發(fā)貨商品庫存管理。關鍵詞: 數(shù)據庫 程序設計 SQL PowerBuilder 收貨 發(fā)貨 庫存目 錄一、前言4二、應用系統(tǒng)運行平臺4(一)服務器端軟件環(huán)境4(二)客戶端軟件環(huán)境(含開發(fā)工具)4三、數(shù)據庫設計4(一)創(chuàng)建數(shù)據

2、庫4(二)創(chuàng)建數(shù)據庫用戶4(三)創(chuàng)建表和索引4(四)建立表之間的關系5(五)定義數(shù)據庫備份策略7四、應用程序設計7(一)需求分析71、訪談用戶72、需求說明書7(二)軟件設計71、概覽72、應用對象模塊83、用戶登錄模塊94、主界面模塊105、基礎代碼維護模塊116、收貨模塊157、發(fā)貨模塊198、庫存報表模塊21參考文獻一、 前言隨著計算機技術的發(fā)展,數(shù)據越來越重要,并且逐漸從程序中分離出來,至今已經形成了各種成熟的關系型數(shù)據庫系統(tǒng)。在這個過程中,數(shù)據庫的應用也越來越廣泛,特別是在企業(yè)管理領域,從早期的MIS系統(tǒng)到現(xiàn)在的ERP軟件和電子商務軟件,都離不開數(shù)據庫。數(shù)據庫應用程序的開發(fā)工具也由早

3、期的dbase、Foxbase發(fā)展到今天基于Web的面向對象的J2ee、.Net等開發(fā)平臺。業(yè)界領先的ERP軟件如SAP、Oracle等更是功能強大、龐大復雜,初始安裝就需要上百GB的磁盤空間。然而,有許多原理是相通的,在這里我以MS SQL Server數(shù)據庫管理系統(tǒng)和PowerBuilder開發(fā)工具創(chuàng)建一個庫存管理的簡單應用,以說明數(shù)據庫應用的基本框架。二、 應用系統(tǒng)運行平臺(一) 服務器端軟件環(huán)境操作系統(tǒng)可安裝Windows 2000 server(標準版或企業(yè)版)并打SP4補丁包或Windows Server 2003(標準版或企業(yè)版)并打SP2補丁包。數(shù)據庫系統(tǒng)安裝Microsoft

4、 SQL Server 2000(標準版或企業(yè)版)。(二) 客戶端軟件環(huán)境(含開發(fā)工具)操作系統(tǒng)可安裝Windows 2000 Professional版或Windows XP,并打上最新的補丁包,再安裝SQL Server 2000客戶端軟件和PowerBuilder 6.5。三、 數(shù)據庫設計(一) 創(chuàng)建數(shù)據庫通過SQL Server企業(yè)管理器創(chuàng)建一個名為Inventory的數(shù)據庫,接受默認數(shù)據文件和日志文件的設置(如果是生產系統(tǒng),還需考慮服務器性能并安排數(shù)據文件和日志文件到不同的磁盤陣列上)。(二) 創(chuàng)建數(shù)據庫用戶通過SQL Server企業(yè)管理器,在數(shù)據庫Inventory下創(chuàng)建用戶MS

5、A,并授予db_owner的角色。設置該用戶的密碼。(三) 創(chuàng)建表和索引創(chuàng)建操作員代碼表sys_opt,并將操作員代碼設為主鍵:CREATE TABLE SYS_OPT (CODE_OPT char (6) NOT NULL primary key,-操作員代碼NAME_OPT char (8) NOT NULL ,-操作員姓名PASSWORD char (10) NULL -密碼)GO在操作員代碼表中先增加一條記錄,用于管理員登錄:INSERT INTO SYS_OPT(CODE_OPT, NAME_OPT, PASSWORD)VALUES(admin,管理員,)GO創(chuàng)建倉庫代碼表list_

6、warehouse,并將倉庫代碼設為主鍵:CREATE TABLE LIST_WAREHOUSE (CK_NO char (4) NOT NULL PRIMARY KEY,-倉庫代碼CK_NAME char (20) NOT NULL ,-倉庫名稱CK_ADDRESS varchar (200) NULL -倉庫地址)GO創(chuàng)建物料代碼表list_material,并將物料代碼設為主鍵:CREATE TABLE LIST_MATERIAL (MATERIAL_NO char (4) NOT NULL PRIMARY KEY,-物料代碼MATERIAL_NAME char (20) NOT NUL

7、L, -物料名稱UNIT char (4) NOT NULL -計量單位)GO創(chuàng)建收發(fā)貨記錄表MATERIAL_ACCOUNT,并將單據號碼設為主鍵。因為收貨單與發(fā)貨單的結構非常相似,在這里用一張表來進行存儲,增加一個單據類型字段,用以區(qū)分是收貨單還是發(fā)貨單。這里還假設計量單位都與物料代碼表中的一致,所以不保存計量單位。為了簡單起見,在這里用系統(tǒng)自動產生的流水號來表示單據號。CREATE TABLE MATERIAL_ACCOUNT(-單據號碼設為主鍵和自動增長標識列RECORD_NO INT NOT NULL IDENTITY (1, 1) PRIMARY KEY,RECORD_TYPE C

8、HAR(2) NOT NULL,-單據類型(GR收貨,GI發(fā)貨)RECORD_DATE DATETIME NOT NULL,-制單日期CK_NO CHAR(4) NOT NULL,-倉庫代碼MATERIAL_NO CHAR(4) NOT NULL,-物料代碼AMOUNT DECIMAL(18, 3) NOT NULL,-數(shù)量CODE_OPT CHAR(6) NOT NULL-操作員代碼)GO為了提高性能,在表MATERIAL_ACCOUNT中分別以操作員代碼、倉庫代碼、物料代碼創(chuàng)建索引。而操作員代碼表、倉庫代碼表、物料代碼表則已經有系統(tǒng)自動按關鍵字創(chuàng)建的索引了。(四) 建立表之間的關系為了避免

9、在表MATERIAL_ACCOUNT中輸入無效的倉庫代碼、物料代碼和操作員代碼,分別在這幾列中創(chuàng)建外鍵約束,參照引用操作員代碼表、物料代碼表、倉庫代碼表。這樣,就建立了表MATERIAL_ACCOUNT和表SYS_OPT、LIST_WAREHOUSE、LIST_MATERIAL之間的關系。(五) 定義數(shù)據庫備份策略在這里僅僅使用簡單恢復模型,并設定每周六凌晨0點進行完全備份和每天晚上10點進行差異備份。四、 應用程序設計(一) 需求分析需求分析是軟件設計中非常重要的一個環(huán)節(jié),沒有經過詳細的需求分析就匆匆忙忙進行軟件開發(fā)是注定要失敗的。所以一定要花時間與用戶進行溝通交流,詳細了解客戶到底需要軟件

10、做到什么。在溝通交流過程中也可以大致告訴用戶軟件可以做到些什么、是怎樣做的。對用戶提出的一些不切實際的需求一定要以合理的方式明確地拒絕。經雙方討論并明確的需求要以書面的形式簽字確認。1、 訪談用戶訪談用戶是了解用戶需求的重要方式。需要跟公司不同層面的用戶訪談,了解公司的業(yè)務流程和各個環(huán)節(jié)的不同需求。對忙碌的管理人員和銷售員要提前預約,以合理安排客戶的時間。每次訪談后要進行訪談內容整理,以文檔的形式記錄下來。2、 需求說明書經過詳細的需求調研,最終形成需求說明書。需求說明書包含項目背景、項目目標任務、需求規(guī)定等內容,其中需求規(guī)定是重點。下面簡單列出本文的需求:(1) 倉庫按代碼進行管理,避免每次

11、輸入倉庫名稱增加額外工作量和多次輸入相同倉庫但名稱不一致。(2) 物料按代碼進行管理,避免每次輸入物料名稱增加額外工作量和多次輸入相同物料但名稱不一致。(3) 每次收貨、發(fā)貨都進行登記,以便統(tǒng)計庫存。(4) 每次發(fā)貨時,都要檢查庫存,避免出現(xiàn)客戶拿了提單到倉庫卻提不到貨。(5) 不同的操作人員有不同的登錄帳戶和密碼,普通用戶只能修改自己的密碼,管理員可以修改任何人的密碼。管理員可以創(chuàng)建、刪除、修改普通用戶。(6) 對進貨、發(fā)貨進行創(chuàng)建、更改操作后,保存時把操作員代碼保存到該記錄中,以便明確責任。(二) 軟件設計1、 概覽根據需求說明書進行軟件設計,把軟件的功能劃分為以下幾個主要模塊:應用對象模

12、塊(主程序):在PowerBuilder中,每個應用程序都有且只有一個應用對象,作為程序的入口,相當于C語言中的main函數(shù)。在這個模塊中主要完成建立數(shù)據庫連接等一系列初始化環(huán)境的建立。用戶登錄模塊:驗證用戶的登錄信息,拒絕非授權用戶使用系統(tǒng)。主界面模塊:顯示主窗口、主菜單,接受用戶的選擇,根據用戶的選擇調用相應的模塊?;A代碼模塊:進行基礎代碼維護和用戶維護。收貨模塊:進行收貨記錄的登記和修改刪除。發(fā)貨模塊:進行發(fā)貨記錄的登記和修改刪除。庫存報表模塊:進行查詢統(tǒng)計和庫存報表的打印。應用對象模塊(主程序)主窗口用戶登錄模塊身份驗證通過身份驗證不通過收貨模塊發(fā)貨模塊庫存報表模塊退出基礎代碼維護模

13、塊程序結束選擇退出2、 應用對象模塊創(chuàng)建全局變量,在Open事件中對事務對象SQLCA的幾個數(shù)據庫連接屬性進行賦值。在Close事件中進行退出程序前的一些清理操作。以下是部分Open事件的代碼及注釋:SQLCA.DBMS =MSS Microsoft SQL Server/數(shù)據庫系統(tǒng)類型SQLCA.Database =Inventory/數(shù)據庫名稱SQLCA.LogID =MSA/數(shù)據庫系統(tǒng)登錄名SQLCA.LogPass =123321/數(shù)據庫系統(tǒng)登錄密碼SQLCA.ServerName =Myserver/數(shù)據庫服務器Connect Using sqlca;/進行數(shù)據庫連接If sqlca

14、.sqlcode0 Then /如果連接失敗Close(w_connect)Beep(1)Messagebox(警告,運行本系統(tǒng)所需數(shù)據庫不能成功聯(lián)接!+&sqlca.sqlerrtext,Stopsign!)/出錯提示Halt/退出程序End ifOpen(W_login)/顯示登錄界面接下來,判斷登錄界面返回值,如果是1(成功登錄),打開主界面,否則退出程序。3、 用戶登錄模塊顯示用戶登錄窗口,在窗口中有兩個文本輸入框和兩個Button按鈕。兩個文本輸入框分別接受用戶名和密碼的輸入,并放入全局變量gs_user_code和局部變量ls_user_password中。兩個Button按鈕分別

15、是確認和取消按鈕。當用戶單擊取消按鈕時,關閉登錄窗口,返回值0。當用戶單擊確認按鈕時,進行身份驗證,如果身份驗證成功,關閉登錄窗口,返回值1;如果身份驗證不成功,提示錯誤信息,要求用戶重新輸入。以下是確認按鈕的Clicked事件的部分代碼:/根據輸入的用戶名從數(shù)據庫中讀取密碼select password into :ls_pswd from sys_opt where code_opt=:gs_user_code;/如果密碼是空值,則改為空字符串if isnull(ls_pswd) then ls_pswd= if ls_pswd ls_user_password then/密碼不匹配mes

16、sagebox(提示信息,用戶名或口令錯誤!,Exclamation!)returnend if4、 主界面模塊主界面顯示主窗口(W_main)、主菜單,接受用戶的選擇,根據用戶的選擇調用相應的模塊。choose case ls_selectcase code_maintain/基礎代碼維護opensheet(w_sheet_code,w_main,3,layered!)case goods_receipt/收貨opensheet(w_sheet_gr,w_main,3,layered!)case goods_issue/發(fā)貨opensheet(w_sheet_gi,w_main,3,laye

17、red!)case report/庫存報表opensheet(w_sheet_report,w_main,3,layered!)case quit/退出close(this)end choose5、 基礎代碼維護模塊基礎代碼維護模塊主要進行倉庫代碼、物料代碼、操作員代碼的維護。由于這三種基礎代碼的維護非常相似,只需設計一個界面(DataWindow 控件)就可以滿足。在基礎代碼維護模塊(W_sheet_code)中設計一個下拉菜單,菜單項分別是:倉庫代碼維護、物料代碼維護、操作員代碼維護、退出。當用戶進入該模塊(W_sheet_code)時如果選擇退出,則返回主界面(W_main);如果選擇其

18、他菜單,則分別將不同的參數(shù)傳遞給維護界面的窗口(W_enter_code)。維護界面窗口根據收到的不同參數(shù),分別連接不同的數(shù)據源(DataWindow),給予用戶維護。對于倉庫代碼、物料代碼維護,數(shù)據窗對象的設計相對比較簡單,這里就不贅述了。但進入操作員代碼維護界面時,需要根據當前登錄用戶進行判斷,如果當前登錄用戶的代碼是admin,就允許他/她創(chuàng)建、修改、刪除用戶記錄,當然包括密碼;如果不是,則僅僅允許他/她修改自己的密碼。有兩種方法可以進行實現(xiàn):一是創(chuàng)建兩個數(shù)據窗對象,二是創(chuàng)建一個數(shù)據窗對象,然后動態(tài)修改SQL語句。我認為第一種方法簡單可行,但缺點是今后修改數(shù)據窗時需要同時修改兩個數(shù)據窗。

19、這里我創(chuàng)建兩個數(shù)據窗對象,一個是管理員用的(d_enter_operator_admin),另一個是普通用戶用的(d_enter_operator_ordinary)。普通用戶使用的數(shù)據窗對象的操作員代碼和操作員姓名是只讀的,不能修改。當普通用戶進入操作員維護界面時,還要把創(chuàng)建、刪除按鈕disable掉。以下是部分菜單Clicked事件代碼:choose case ls_selectcase operator, warehouse, material/進入基礎代碼維護界面OpenWithParm(w_enter_code,ls_select)case quit/退出close(this)end

20、 choose以下是部分維護界面窗口Open事件代碼:ls_select = message.powerobjectparm/將外部傳入的參數(shù)保存CHOOSE CASE ls_select/根據傳入的參數(shù),分別連接不同的數(shù)據對象(數(shù)據源)到同一個/數(shù)據窗控件(界面)中CASE operator/操作員維護IF gs_user_code = admin THEN /如果當前用戶是admindw_1.dataobject = d_enter_opeartor_adminELSE/如果當前用戶是普通用戶dw_1.dataobject = d_enter_opeartor_ordinarycb_cre

21、ate.enabled = FALSE/使創(chuàng)建按鈕不起作用cb_delete.enabled = FALSE/使刪除按鈕不起作用END IFCASE warehouse/倉庫代碼維護dw_1.dataobject = d_enter_warehouseCASE material/物料代碼維護dw_1.dataobject = d_enter_materialEND CHOOSE6、 收貨模塊收貨模塊的設計是這樣的:窗口頂部的左側是一排按鈕,分別是創(chuàng)建、更改、刪除、顯示,窗口頂部的右側是開始日期(默認值為今天減30天)和截至日期(默認值為今天),窗口的下方默認是最近30天內收貨記錄的清單。如果需

22、要顯示不同時間段的收貨記錄清單,可以調整開始日期和截至日期來實現(xiàn)。創(chuàng)建、更改、顯示可以共用一個窗口,根據不同的傳入參數(shù)加以區(qū)分。修改開始日期和截至日期時,需要刷新列表。當更改收貨記錄并保存時或者刪除收貨記錄時,都需要判斷庫存是否為負數(shù),如果庫存出現(xiàn)負數(shù),說明程序是有問題的。這個問題在后面處理發(fā)貨記錄時也會碰到,所以把判斷庫存是否為負數(shù)做成一個函數(shù)(f_is_negative),傳入倉庫代碼和物料代碼,返回庫存是否為負數(shù)。在處理收貨記錄修改或刪除時,要在update語句執(zhí)行后,事務提交(commit)之前,執(zhí)行該函數(shù)。以下是修改收貨記錄保存時(cb_save按鈕的Clicked事件)部分代碼:I

23、f dw_1.update(true,false) = 1 Then/數(shù)據窗生產update語句成功If sqlca.sqlcode 0 Then/SQL返回錯誤碼RollBack Using sqlca;/事務回滾messagebox(提示信息,保存數(shù)據不成功!+sqlca.sqlerrtext)return -1Else/SQL返回碼0,update語句成功if f_is_negative(ls_ck_code,ls_material_code) then/如果產生負庫存RollBack Using sqlca;/事務回滾messagebox(提示信息,庫存不能為負數(shù),保存數(shù)據不成功!)r

24、eturn -1elseCommit Using sqlca;/提交事務dw_1.resetupdate ()messagebox(提示信息,保存數(shù)據成功!)End IfEnd ifElse/數(shù)據窗生產update語句時有錯誤,需要檢查數(shù)據窗代碼End if刪除收貨記錄時(cb_delete按鈕的Clicked事件)也需要同樣方法處理,這里不再詳細列出。以下是函數(shù)f_is_negative的定義:以下是函數(shù)f_is_negative的實現(xiàn):下面是cb_save按鈕的Clicked事件完整代碼:7、 發(fā)貨模塊發(fā)貨模塊與收貨模塊的設計相同,窗口頂部的左側是一排按鈕,分別是創(chuàng)建、更改、刪除、顯示,窗口頂部的右側是開始日期(默認值為今天減30天)和截至日期(默認值為今天),窗口的下方默認是最近30天內發(fā)貨記錄的清單。如果需要顯示不同時間段的發(fā)貨記錄清單,可以調整開始日期和截至日期來實現(xiàn)。創(chuàng)

溫馨提示

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

評論

0/150

提交評論