【圖書館報紙管理系統(tǒng)的設(shè)計與實現(xiàn)11000字(論文)】_第1頁
【圖書館報紙管理系統(tǒng)的設(shè)計與實現(xiàn)11000字(論文)】_第2頁
【圖書館報紙管理系統(tǒng)的設(shè)計與實現(xiàn)11000字(論文)】_第3頁
【圖書館報紙管理系統(tǒng)的設(shè)計與實現(xiàn)11000字(論文)】_第4頁
【圖書館報紙管理系統(tǒng)的設(shè)計與實現(xiàn)11000字(論文)】_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

-PAGE2-圖書館報紙管理系統(tǒng)的設(shè)計與實現(xiàn)目錄TOC\o"1-3"\h\z第1章引言 1第2章系統(tǒng)實現(xiàn)的理論基礎(chǔ) 22.1VISUALBASIC6.0簡介 22.2ACCESS數(shù)據(jù)庫介紹 22.3ADO技術(shù) 32.4SQL語言 42.5本章小結(jié) 5第3章系統(tǒng)需求和可行性分析 63.1系統(tǒng)介紹 63.2系統(tǒng)面向的用戶群體 63.3系統(tǒng)的功能性需求 73.4系統(tǒng)的非功能性需求 83.4.1用戶界面需求 83.4.2軟硬件環(huán)境需求 83.4.3軟件質(zhì)量需求 83.5可行性分析報告 83.5.1技術(shù)可行性 83.5.2時間、設(shè)備可能性 83.5.3系統(tǒng)工作量 83.5.4代碼工作量 83.5.5文檔要求 93.6開發(fā)環(huán)境與項目規(guī)劃 93.6.1開發(fā)環(huán)境 93.7軟件界面設(shè)計標準與規(guī)范 93.7.1編寫目的 93.7.2界面設(shè)計思想 93.7.3界面設(shè)計原則 93.8本章小結(jié) 9第4章系統(tǒng)設(shè)計 104.1系統(tǒng)分析 104.2數(shù)據(jù)庫設(shè)計 114.2.1系統(tǒng)流程圖 114.2.2各模塊的E-R圖設(shè)計: 114.3系統(tǒng)功能介紹 164.4本章小結(jié) 20第5章系統(tǒng)實現(xiàn) 215.1系統(tǒng)實現(xiàn)關(guān)鍵代碼 215.2系統(tǒng)主界面代碼 215.3添加商品界面代碼 245.4進貨統(tǒng)計界面代碼 285.5員工管理界面代碼 325.6本章小結(jié) 35第6章結(jié)束語 36第7章致謝 37參考文獻 38第1章引言本軟件使用MicrosoftVisualBasic6.0進行編寫。數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展源于對于數(shù)據(jù)的組織和管理。數(shù)據(jù)庫技術(shù)是數(shù)據(jù)管理的技術(shù),它隨著數(shù)據(jù)管理任務(wù)的需要而產(chǎn)生于20世紀60年代中期。這是一門綜合性技術(shù),涉及操作系統(tǒng),數(shù)據(jù)結(jié)構(gòu),算法設(shè)計和程序設(shè)計等知識。數(shù)據(jù)庫技術(shù)的基本思想是對數(shù)據(jù)實行集中,統(tǒng)一,獨立的管理,用戶可以最大限度的共享數(shù)據(jù)資源。數(shù)據(jù)庫系統(tǒng)實際上是一個應(yīng)用系統(tǒng),它是在計算機硬,軟件系統(tǒng)支持下,由用戶,數(shù)據(jù)庫管理系統(tǒng),存儲在存儲設(shè)備上的數(shù)據(jù)和數(shù)據(jù)庫應(yīng)用程序構(gòu)成的數(shù)據(jù)處理系統(tǒng)。數(shù)據(jù)庫系統(tǒng)是由數(shù)據(jù),數(shù)據(jù)庫管理系統(tǒng),應(yīng)用程序,用戶組成。數(shù)據(jù)庫的特點:1.實現(xiàn)數(shù)據(jù)共享2.實現(xiàn)數(shù)據(jù)獨立3.減少了數(shù)據(jù)冗余度4.避免了數(shù)據(jù)不一致性5.加強了對數(shù)據(jù)的保護。數(shù)據(jù)庫應(yīng)用系統(tǒng)(DATABASEAPPLICATIONSYSTEMSDBAS)包括管理信息系統(tǒng)開放式信息服務(wù)系統(tǒng)一個數(shù)據(jù)庫應(yīng)用系統(tǒng)通常是由數(shù)據(jù)庫和應(yīng)用程序兩部分組成,它們是在數(shù)據(jù)庫管理系統(tǒng)支持下設(shè)計和開發(fā)出來的。第2章系統(tǒng)需求和可行性分析2.1系統(tǒng)介紹本系統(tǒng)定位于中小型書店、個體書店,暫時考慮單機環(huán)境下的實現(xiàn);操作系統(tǒng)選擇目前常用的Windows2000/xp。系統(tǒng)性質(zhì)為MIS(管理信息系統(tǒng))或財務(wù)軟件。本系統(tǒng)采用會員制管理,系統(tǒng)功能應(yīng)包含進書管理、售書管理、退貨管理、庫存管理、統(tǒng)計分析、相關(guān)人員管理等。系統(tǒng)界面力求簡潔、易用,在標準化的基礎(chǔ)上考慮界面的美觀和新穎。2.2系統(tǒng)面向的用戶群體系統(tǒng)面向中小型書店、個體書店,用戶群體為這些書店的經(jīng)理、采購員/倉庫管理員、圖書館報紙人員等。2.3系統(tǒng)的功能性需求圖2-1系統(tǒng)功能模塊圖功能序號功能名稱功能說明供應(yīng)商管理,包含供應(yīng)商信息的登記、修改等報紙資料管理,包含報紙資料的添加、修改等新書入庫管理,登記新書的來源、數(shù)量、單價、金額等庫存統(tǒng)計,分門別類統(tǒng)計報紙現(xiàn)有庫存量、入庫時間等進貨記錄查詢,查詢歷次進貨記錄退貨登記,登記供應(yīng)商、報紙種類、退貨的數(shù)量等退貨記錄查詢,查詢歷次退貨記錄圖書館報紙管理,登記銷售的種類、數(shù)量、單價等員工管理,包含員工帳號的創(chuàng)建、修改、刪除等個人資料、密碼管理,提供修改個人資料、密碼的工具2.4系統(tǒng)的非功能性需求2.4.1用戶界面需求簡潔、易用、易懂,美觀、大方、標準,具備一定的兼容性。2.4.2軟硬件環(huán)境需求軟件環(huán)境:兼容當前主流操作系統(tǒng)Windows95/98/NT/Me/2000/XP等。硬件環(huán)境:386以上計算機,打印機等。2.4.3軟件質(zhì)量需求易用、健壯、兼容性好、運行穩(wěn)定、有一定安全保障。2.5可行性分析報告2.5.1技術(shù)可行性系統(tǒng)的性質(zhì)為MIS或財務(wù)軟件,因而數(shù)據(jù)庫的設(shè)計與操縱是系統(tǒng)設(shè)計的核心。我經(jīng)過老師的指導(dǎo)后具備一定的系統(tǒng)分析與設(shè)計能力,熟悉數(shù)據(jù)庫的設(shè)計與操縱;指導(dǎo)老師鄭祺多年從事數(shù)據(jù)庫的教學與研究工作,因而該系統(tǒng)的實現(xiàn)在技術(shù)上是可行的。2.5.2時間、設(shè)備可能性系統(tǒng)設(shè)計與開發(fā)工作預(yù)計耗時三至四個月,在預(yù)定時間內(nèi)能夠保證按時完成任務(wù)。實驗設(shè)備如:計算機、打印機、掃描儀等不足,上機任務(wù)可以完成,打印機、掃描儀的實驗根據(jù)具體條件暫時延緩執(zhí)行。2.5.3系統(tǒng)工作量該系統(tǒng)的工作量相對于我個人來說很大,必須保證按進度完成任務(wù)。實際工作量預(yù)計超過三個月(每天2-3小時)。如包含軟件維護及技術(shù)文檔的整理、制作,工作量將更大。2.5.4代碼工作量預(yù)計需40天左右。2.5.5文檔要求依據(jù)國家《計算機軟件產(chǎn)品開發(fā)文件編制指南》和《現(xiàn)代軟件工程》的理論與原則編制標準的軟件技術(shù)文檔。2.6開發(fā)環(huán)境與項目規(guī)劃2.6.1開發(fā)環(huán)境前臺開發(fā)環(huán)境:MicrosoftVisualBasic6.0后臺數(shù)據(jù)庫環(huán)境:MicrosoftAccess2008/20072.7軟件界面設(shè)計標準與規(guī)范2.7.1編寫目的制定界面設(shè)計標準規(guī)范的目的是為了規(guī)范和統(tǒng)一軟件界面設(shè)計制定軟件界面設(shè)計標準與規(guī)范。2.7.2界面設(shè)計思想首先考慮標準化,在標準化的基礎(chǔ)上進行界面的美工設(shè)計。2.7.3界面設(shè)計原則簡單易用、簡潔明了、兼容性好、標準、規(guī)范。2.8本章小結(jié)本章主要對于開發(fā)軟件所需要的必要條件和設(shè)備做了基本的需求性和可行性分析。對軟件開發(fā)的要求和理論基礎(chǔ)也有了基本的介紹。在系統(tǒng)需求性分析當中,闡述了圖書館報紙管理環(huán)節(jié)中的各種銜接關(guān)系,以及在圖書館報紙管理中所需要面對的各類問題與解決方法。第3章系統(tǒng)設(shè)計3.1系統(tǒng)分析作為一個圖書館報紙管理系統(tǒng),其功能是實現(xiàn)進銷存公司或個人企業(yè)進銷存管理的系統(tǒng)化、規(guī)范化和自動化。本系統(tǒng)主要要完成的功能有:(1)交易管理:包括進貨登記、銷貨登記、退貨登記等。其中進貨登記中還包含進貨商登記,如過是新的進貨廠商,可以直接在此登記入庫。進貨和進銷存的主要交易都是在此進行。每次交易(包括進貨、銷貨和退貨)都需要對報紙名稱、生產(chǎn)廠商、報紙型號、單價、數(shù)量、總金額、交易日期、經(jīng)手業(yè)務(wù)員編號等各項記錄。在交易過程中,程序的編寫盡可能的方便員工進行交易,比如:進貨登記時,如果報紙編號相同,則自動添加該報紙的其它屬性;銷貨登記時,用戶只要輸入報紙編號,該報紙的其它屬性即可自動出現(xiàn)。退貨登記時,只要輸入正確的銷貨編號,其進銷存信息也將自動列出,盡量的方便了用戶的操作,同時對于登錄的員工編號程序也自動的將其列在進貨登記、銷貨登記中,已防止員工進行非正常的交易。(2)進貨統(tǒng)計:包括今日進貨統(tǒng)計、本月進貨統(tǒng)計、本季度進貨統(tǒng)計、本季度進貨統(tǒng)計、本年度進貨統(tǒng)計等。其中每次進貨統(tǒng)計都是按進貨廠商和進貨總金額統(tǒng)計顯示的。使用一個表格顯示所選時間段的全部進貨數(shù)據(jù),包括進貨編號、報紙名稱等。再使用另一個表格顯示分別從各個廠商進貨的金額,還有一個文本框用于顯示次時間段的進貨總金額。(3)銷貨統(tǒng)計:包括今日進銷存統(tǒng)計、本月進銷存統(tǒng)計、本季度進銷存統(tǒng)計、本年度進銷存統(tǒng)計等,其中每次進銷存統(tǒng)計都是按生產(chǎn)廠商和進銷存總金額統(tǒng)計顯示的。使用一個表格顯示所選時間段的全部進銷存數(shù)據(jù),包括銷貨編號、報紙名稱等。再使用另一個表格顯示分別從各個廠商進貨的金額,還有一個文本框用于顯示次時間段的進銷存總金額。(4)查看數(shù)據(jù)表:實現(xiàn)各種數(shù)據(jù)表的瀏覽,包括進貨表,報紙庫存表、進銷存表、退貨表、員工表、進貨商表等。對于員工表管理員還可以對其進行刪除或添加用戶操作。(5)系統(tǒng)管理:包括更換用戶、修改密碼、退出系統(tǒng)等。更換用戶的操作方便了用戶的使用,同時更加方便了管理員對于系統(tǒng)數(shù)據(jù)的查詢,可以做到隨時查看,以使管理員對帳目一目了然,同時方便了普通用戶的交接班使用本系統(tǒng)。修改密碼和退出系統(tǒng)都是對于系統(tǒng)管理的輔助功能,再這里就不詳細說明了。(6)其它窗體:包括主窗體、登錄窗體、系統(tǒng)初始化窗體。主窗體就是將各個模塊的大意列在菜單中,然后通過每一個菜單將其它的窗體逐個對應(yīng)的連到主窗體中。登錄窗體為本系統(tǒng)的啟動窗體,其功能是讓合法的用戶使用本系統(tǒng),已防止其它的非法人員使用該系統(tǒng)。并對登錄的用戶做一下權(quán)限的區(qū)別:分為管理員和普通員工。系統(tǒng)初始化窗體的主要目的是:在本系統(tǒng)的試運行階段成功后是管理員可以直接把除了員工表以外的所有數(shù)據(jù)表的內(nèi)容清零。登錄窗體中設(shè)計了一個權(quán)限,可以區(qū)分是員工登錄還是管理員登錄,如果是管理員則提示是否進行系統(tǒng)初始化,否則直接進入主窗體。3.2數(shù)據(jù)庫設(shè)計3.2.1系統(tǒng)流程圖圖3-1系統(tǒng)流程圖3.2.2各模塊的E-R圖設(shè)計:交易管理模塊:用于管理報紙的進貨,進銷存,退貨登記的操作。實體E-R圖如下:圖3-2交易管理模塊E-R圖進貨統(tǒng)計管理:主要用于對報紙每日,每月,第季度,每年的進貨情況進行統(tǒng)計管理,此功能只有以管理員的身份進入時才為可用狀態(tài)。實體E-R圖如下:圖3-3進貨統(tǒng)計管理E-R圖進銷存統(tǒng)計管理:主要用于對報紙每日,每月,第季度,每年的進銷存情況進行統(tǒng)計管理,此功能只有以管理員的身份進入時才為可用狀態(tài)。實體E-R圖如下:圖3-4進銷存統(tǒng)計管理E-R圖查看數(shù)據(jù)表:主要能查看進貨表,報紙信息表,進銷存表,退貨表等進行查看,以實現(xiàn)對報紙信息的及時了解。實體E-R圖如下:圖3-5查看數(shù)據(jù)表E-R圖上面提到的各種功能的實現(xiàn)都離不開數(shù)據(jù)庫的支持,因此數(shù)據(jù)庫設(shè)計作為本系統(tǒng)設(shè)計的一部分不可缺少。開發(fā)本系統(tǒng)中使用的數(shù)據(jù)庫系統(tǒng)是WindowsAccess2000。從上面的功能分析不難看出本系統(tǒng)需要建立以下幾個數(shù)據(jù)表:buy表(進貨表)、goods表(現(xiàn)存報紙表)、sell表(進銷存表)、retreat表(退貨表)、employee表(員工表)、manufacturer表(進貨商表)。由于數(shù)據(jù)量比較小,所以這些數(shù)據(jù)表都存在一個數(shù)據(jù)庫下:sellsystem.mdb下面對各個數(shù)據(jù)表的結(jié)構(gòu)做一下簡單介紹:在系統(tǒng)的數(shù)據(jù)庫設(shè)計中,進貨表、銷貨表、報紙庫存表和退貨表涉及了交易管理三個子菜單的絕大部分數(shù)據(jù),是本系統(tǒng)數(shù)據(jù)庫的核心,所以將對其部分表的設(shè)置列表顯示。manufacturer表(進貨商表)中包括有廠商編號、廠商名稱、聯(lián)系人姓名、電話、廠商地址等字段,表略。employee(員工表)中包括有員工編號、員工姓名、員工密碼、員工電話、員工地址等字段,表略。buy表(進貨表)中包括有進貨編號、報紙編號、報紙名稱、生產(chǎn)廠商、型號、數(shù)量、進貨價、進貨年、進貨月、進貨日、總金額、業(yè)務(wù)員編號等。設(shè)計該數(shù)據(jù)表的主要目的是方便管理員的查看,使系統(tǒng)的數(shù)據(jù)管理能夠更加層次化。具體設(shè)置如表3-1所示。表3-1buy表字段名數(shù)據(jù)類型說明是否為空是否主鍵進貨編號文本字段大小為20否報紙名稱文本字段大小為50否生產(chǎn)廠商文本字段大小為50否型號文本字段大小為20否數(shù)量數(shù)字長整型否進貨價貨幣貨幣否進貨年數(shù)字整型進貨月數(shù)字整型進貨日數(shù)字整型業(yè)務(wù)員編號文本字段大小為20否是總金額貨幣貨幣否goods表(現(xiàn)存報紙表)中包括有報紙編號、生產(chǎn)廠商、報紙名稱、型號、進貨價、銷貨價、數(shù)量、進貨年、進貨月、進貨日、業(yè)務(wù)員編號、總金額等字段。具體設(shè)置如表3-2所示。表3-2goods表字段名數(shù)據(jù)類型說明是否為空是否主鍵報紙編號文本字段大小為20否是報紙名稱文本字段大小為50否生產(chǎn)廠商文本字段大小為50否型號文本字段大小為20否數(shù)量數(shù)字長整型否進貨價貨幣貨幣銷貨價貨幣貨幣retreat表(退貨表)中包括有退貨編號、銷貨編號、生產(chǎn)廠商、報紙名稱、型號、單價、數(shù)量、總金額、退貨年、退貨月、退貨日、業(yè)務(wù)員編號等。具體設(shè)置如表3-3所示。表3-3retreat表字段名數(shù)據(jù)類型說明是否為空是否主鍵退貨編號文本字段大小為20否是銷貨編號文本字段大小為20否報紙名稱文本字段大小為50否生產(chǎn)廠商文本字段大小為50否型號文本字段大小為20否單價貨幣貨幣否數(shù)量數(shù)字長整型否總金額貨幣貨幣退貨年數(shù)字整型退貨月數(shù)字整型退貨日數(shù)字整型業(yè)務(wù)員編號文本字段大小為20否sell表(銷貨表)中包括有銷貨編號、報紙編號、報紙名稱、生產(chǎn)廠商、型號、數(shù)量等字段。具體設(shè)置如表3-4所示。表3-4sell表字段名數(shù)據(jù)類型說明是否為空是否主鍵銷貨編號數(shù)字字段大小為20否否商品編號數(shù)字字段大小為20否否商品名稱文本字段大小為50否生產(chǎn)廠商文本字段大小為50否型號文本字段大小為20否單價貨幣貨幣否數(shù)量數(shù)字整型否總金額貨幣貨幣銷售年數(shù)字整型銷售月數(shù)字整型銷售日數(shù)字整型銷售時數(shù)字整型銷售分數(shù)字整型銷售秒數(shù)字整型業(yè)務(wù)員編號文本字段大小為20是employee表(員工表)中包括有員工編號、姓名、密碼、電話、地址等字段。具體設(shè)置如表3-5所示。表3-5employee表字段名數(shù)據(jù)類型說明是否為空是否主鍵員工編號數(shù)字整型否是員工姓名文本字段長度30否員工密碼文本字段長不得小于3位否員工電話數(shù)字整型否員工地址文本字段長度50否manufacturer表(廠商聯(lián)系表)中包括有廠商編號、名稱、聯(lián)系人姓名、電話、廠商地址等字段。具體設(shè)置如表3-6所示。表3-6manufacturer表字段名數(shù)據(jù)類型說明是否為空鍵值廠商編號數(shù)字整型否是廠商名稱文本字段大小為50否聯(lián)系人姓名文本字段大小為20否電話數(shù)字長整型否廠商地址文本字段大小為50否3.3系統(tǒng)功能介紹(1)登錄窗體該登錄窗體對用戶登錄做了一個簡單的判斷,如果是管理員登錄則可進入初始化界面,然后再進入主界面。具體做法是:先在窗體級中定義一個記錄集,用于打開employee表,打開后將該表中的字段:員工姓名,依次加到combo1中。全加入后關(guān)閉記錄集,然后對combo1和text1中的內(nèi)容做一下簡單判斷:如果combo1和text1中的數(shù)據(jù)正好和employee表中的某個記錄相同,則通過登錄窗體,否則提示用戶用戶名或密碼有誤。在通過登錄窗體中還要對用戶名做一下判斷:如果是管理員登錄,則進入系統(tǒng)初始化窗體,如果是普通用戶登錄,則進入主界面。(2)初始化窗體,該初始化窗體為本系統(tǒng)的使用者提供了試運行服務(wù),如果使用者試運行后決定正式使用,可以通過管理員登錄本窗體對系統(tǒng)進行初始化,即清空試運行階段的所有進銷存數(shù)據(jù)。具體實現(xiàn)過程為:定義5個記錄集,其每一個記錄集控制一個數(shù)據(jù)表的打開與關(guān)閉操作,其記錄集的取名與數(shù)據(jù)表相近:rs_sell,rs_buy,rs_goods,rs_retreat,rs_manufacturer.當管理員點擊是標簽時,先出現(xiàn)一個消息框,問管理員是否真的要進行初始化。如果是,則5個記錄集依次連接到5個數(shù)據(jù)表上,然后對每個數(shù)據(jù)表的內(nèi)容進行刪除操作。具體刪除方法為:先對表的狀態(tài)進行判斷,如果某個數(shù)據(jù)表的內(nèi)容為空,則直接關(guān)閉記錄集,以免多步操作數(shù)據(jù)表出現(xiàn)錯誤;如果該數(shù)據(jù)表不為空,則依次刪除該數(shù)據(jù)表的每一個記錄,對于每一個數(shù)據(jù)表都要做此判斷,并且每打開一個新的數(shù)據(jù)表都要關(guān)閉上一個數(shù)據(jù)表,這樣操作起來層次顯得比較清晰,而且維護起來也比較方便。(3)主窗體,主窗體的建立十分簡單,只需將所要實現(xiàn)的功能編輯成菜單即可。該窗體的運行過程為:用戶首先進入登錄窗體,如果是管理員登錄,則先進入初始化窗體,經(jīng)過判斷是否需要初始化后,進入主窗體。其權(quán)限為:銷貨統(tǒng)計、進貨統(tǒng)計、查看數(shù)據(jù)表和系統(tǒng)管理。其權(quán)限的設(shè)置使管理員能夠方便的查看任何時間段內(nèi)的所有信息,還可以對員工表進行管理。如果是普通用戶登錄,則直接進入主窗體,其授予的權(quán)限只有交易管理和系統(tǒng)管理,也就是說員工只能負責對報紙進行如庫登記、銷貨登記和退貨登記,另外在一個員工對本系統(tǒng)使用的整個期間內(nèi),進貨登記、銷貨登記和退貨登記三個窗體中的顯示的業(yè)務(wù)員編號都由系統(tǒng)自動給出的該員工的員工編號。(4)進貨登記窗體,本窗體用來實現(xiàn)報紙進貨功能,將進貨信息添加到buy表,再將該信息選擇性的加入goods表。如果是新的進貨廠商,可以在此入庫登記。其具體實現(xiàn)過程如下所述:先在窗體級變量中定義三個記錄集:rs_buy,rs_goods,rs_manufacture用來控制三個數(shù)據(jù)表:buy表,goods表,manufacturer表。在用戶點擊添加報紙中的添加入庫操作之前,程序先會檢查是否有用戶是否有個別屬性為空,并做出提示。然后將報紙?zhí)砑拥絙uy表中,再添加到goods表。在添加到goods表時,程序會先判斷該報紙編號是否已經(jīng)存在,如果存在則直接將該添加信息的數(shù)量加到goods表中相應(yīng)的記錄上。為此,進貨編號、報紙編號是buy表、goods表中不可重復(fù)的屬性。為方便用戶操作,程序特在報紙編號的文本框:text2的Change事件中做了一個判斷,即如果該報紙編號存在的話直接顯示該報紙的其他屬性。另外,對于總金額文本框也是由數(shù)量和進貨價兩個文本框的Change事件計算入內(nèi)的。如果是新的進貨商,可以將它的信息添加到進貨商表。其過程和上面所說的添加到buy表基本相同,這里就不做介紹了。(5)銷貨登記窗體,本窗體主要功能是對報紙進行進銷存,首先對員工輸入的銷貨信息進行完整條件的判斷,條件符合后進行進銷存。然后將進銷存信息存入sell表,并對goods表的數(shù)量做相應(yīng)修改。具體實現(xiàn)過程為:先在窗體集中定義兩個記錄集:rs_sell,rs_goods,用來控制兩個數(shù)據(jù)表:sell表和goods表。在銷貨窗體中,如果用戶輸入的報紙編號已經(jīng)存在,則該報紙的其它屬性將隨著text2(即報紙編號)的Change事件出現(xiàn)在其對應(yīng)的位置上。而進銷存日期和業(yè)務(wù)員編號已經(jīng)是程序默認給出的系統(tǒng)時間和登錄員工的編號。在判斷沒有空缺屬性后該報紙將順利添加如庫,而且該報紙在goods表中的數(shù)量也將隨之做相應(yīng)的改變,使goods表和sell表的總和保持原來goods表中的數(shù)量值。(6)退貨窗體,本窗體的功能是實現(xiàn)報紙退貨功能,當人為判斷某報紙可以退貨時即可將該報紙退貨。其數(shù)據(jù)庫實現(xiàn)為:先將該信息加入retreat表,然后從sell表中減掉,最后對goods表的數(shù)量做一下調(diào)整即可。其具體實現(xiàn)過程是:先在窗體集中定義三個記錄集:rs_sell,rs_goods,rs_retreat用來控制三個數(shù)據(jù)表:sell表、goods和retreat表。在退貨窗體中,如果用戶輸入的銷貨編號存在,則關(guān)于該報紙的進銷存信息將依次出現(xiàn)在相應(yīng)的對話框中。退貨成功后,該退貨信息先添加到退貨表,然后將其退貨數(shù)量從相應(yīng)的sell表中減掉,并添加到goods表中。(7)進貨統(tǒng)計菜單,進貨統(tǒng)計菜單下有4個子菜單,分別是今日進貨統(tǒng)計、本月進貨統(tǒng)計、本季度進貨統(tǒng)計、今年進貨統(tǒng)計。由于他們的界面非常相似,本程序中使用了一個SSTab控件以選項卡的形式在一個窗體中實現(xiàn)以上4個子菜單。這樣做使窗體顯得更加美觀。項目添加了必要的控件之后,開始進行界面設(shè)計。先在窗體上添加一個SSTab控件,單擊鼠標右鍵在快捷菜單中選擇“屬性”命令。將其選項卡的數(shù)目定為4個,標題分別為:今日進貨、本月進貨、本季度進貨、本年度進貨。由于每個選項卡的界面都一樣,現(xiàn)以“今日進貨”選項卡為例,加入兩個datagrid控件,兩個Adodc控件,一個Label控件,一個textbox控件和8個command控件。其中兩個Adodc的數(shù)據(jù)源連接都是才用的相對路徑與sellsystem的buy表連接的,兩個Adodc連接的SQL語句分別如下:select*frombuyselect生產(chǎn)廠商,sum(總金額)as各廠商進貨總金額frombuygroupby生產(chǎn)廠商。(8)銷貨統(tǒng)計窗體,進銷存統(tǒng)計菜單下有4個子菜單,分別是今日銷貨、本月銷貨、本季度銷貨、今年銷貨。由于它們的界面非常相似,本程序中使用一個SSTab控件以選項卡形式在一個窗體中實現(xiàn)4個子菜單。其界面設(shè)計和窗體說明與進貨統(tǒng)計大同小異,也一樣一個選項卡為例進行說明,現(xiàn)以“今日銷貨”為例:加入兩個datagrid控件,兩個Adodc控件,一個Label控件,一個textbox控件和8個command控件。其中兩個Adodc的數(shù)據(jù)源連接都是采用的相對路徑與sell表連接的,兩個Adodc連接的SQL語句分別如下:select*fromsell select生產(chǎn)廠商,sum(總金額)as各廠商銷貨總金額fromsellgroupby生產(chǎn)廠商。(9)查看進貨表,其界面的設(shè)計比較簡單,只是一個datagrid控件,一個Adodc控件(已隱藏)和四個Command控件。本窗體的主要設(shè)計在于其四個命令按鈕在進貨表為空時不可用。(10)查看進貨表,本窗體的主要設(shè)計目的是設(shè)置一個查詢報紙庫存表的條件。具體操作為:為查詢現(xiàn)存報紙表設(shè)立了一個簡單的查詢條件,一個是直接顯示現(xiàn)存的全部報紙表,一個是按條件對現(xiàn)存報紙進行查詢,用戶可以根據(jù)自己需要按報紙名稱或生產(chǎn)廠商分別進行查找。該窗體的實現(xiàn)是要在窗體集的變量中設(shè)置一個記錄集rs_goods,用來控制goods表,然后將記錄集在打開窗體時的select語句設(shè)為與本窗體的text1和text2有關(guān)的SQL語句。然后讓現(xiàn)存報紙表顯示出來。(11)管理員工表,本窗體的制作目的在于方便對管理員用戶的管理,本節(jié)前面曾經(jīng)提過系統(tǒng)初始化的功能,但其初始化并不能對員工表進行操作,當管理員登錄本系統(tǒng)時,可以訪問此窗體,對用戶表進行維護。但不能對管理員進行刪除操作,此操作已被本人屏蔽。(12)更換用戶功能,在一個報紙進銷存公司可能會存在員工交接班的現(xiàn)象,為了方便用戶交接班的操作順利進行,在系統(tǒng)管理模塊中做了一個更換用戶子菜單,該子菜單便順利的實現(xiàn)了此功能,而且它也方便了管理員的登錄管理。(13)修改密碼,為了方便用戶使用,在本模塊中還設(shè)置了一個修改密碼窗體,該窗體主要包括一個用戶名輸入、一個原密碼輸入和兩個新密碼輸入。此窗體實現(xiàn)的功能是顯而易見的,方便了用戶的操作,增加了系統(tǒng)使用的安全性。具體做法是:先要求用戶將四個必填項填寫完整,然后對兩個新密碼進行相同判斷,如果相同,則將記錄集rs_employee打開,對用戶名和原密碼進行核對,如果相同,就將老密碼替換為新密碼。3.4本章小結(jié)對于本圖書館報紙管理系統(tǒng)功能的實現(xiàn),重點和難點有以下幾處:交易管理模塊:在本模塊中,對于報紙的進貨、銷貨和退貨操作時,都要注意其操作過程中報紙數(shù)量及其它屬性的變化,本人在制做此模塊時,采用了指導(dǎo)教師的提供給我的思想:進貨登記時,將進貨信息添加到進貨表中。然后對報紙庫存表的編號進行判斷,如果進貨信息的報紙編號存在,則將報紙庫存表中相應(yīng)記錄的報紙數(shù)量做對應(yīng)調(diào)整;如果報紙編號不存在,則直接將進貨信息添加到報紙庫存表中。銷貨登記時,先將報紙的銷貨信息添加到銷貨表中,然后將報紙庫存表中響應(yīng)的報紙的數(shù)量做相對調(diào)整,保證報紙數(shù)量的一致性。退貨登記時將退貨信息添加到退貨表中,然后將退貨數(shù)量從進銷存表中減掉,最后將退貨數(shù)量加到報紙庫存表中。在本系統(tǒng)管理員登錄時,顯示給管理員的第一個界面:系統(tǒng)初始化也是本系統(tǒng)的又一大功能特色,其實現(xiàn)過程中要嚴格控制每一個記錄集對相應(yīng)數(shù)據(jù)表的打開與關(guān)閉操作。第4章系統(tǒng)實現(xiàn)4.1系統(tǒng)實現(xiàn)關(guān)鍵代碼本章是對圖書館報紙管理系統(tǒng)進行全面實現(xiàn)和部分頁面和執(zhí)行代碼,目的在于屏蔽掉系統(tǒng)無法識別的多種非法操作。以防止在用戶對本系統(tǒng)進行使用時錯誤操作造成系統(tǒng)出錯。4.2系統(tǒng)主界面代碼圖4-1系統(tǒng)主界面rs_buy.Closestrfctotal="select生產(chǎn)廠商,sum(總金額)as各廠商進貨總金額frombuywhere進貨年="&inty&"and進貨月="&intm&"groupby生產(chǎn)廠商"rs_fctotal.Openstrfctotal,cnn,adOpenKeyset,adLockPessimisticfrmBuyall.Adodc6.RecordSource=strfctotalfrmBuyall.Adodc6.RefreshfrmBuyall.DataGrid6.ReBindrs_fctotal.Closestrtotal="selectsum(總金額)as進貨總金額frombuywhere進貨年="&inty&"and進貨月="&intm&""rs_total.Openstrtotal,cnn,adOpenKeysetm,adLockPessimisticfrmBuyall.Text2.Text=rs_total.Fields("進貨總金額")rs_total.CloseEndSub……rs_buy.Closestrfctotal="select生產(chǎn)廠商,sum(總金額)as各廠商進貨總金額frombuywhere進貨年="&inty&"and進貨月="&intm&"and進貨日="&intd&"groupby生產(chǎn)廠商"rs_fctotal.Openstrfctotal,cnn,adOpenKeyset,adLockPessimisticfrmBuyall.Adodc4.RecordSource=strfctotalfrmBuyall.Adodc4.RefreshfrmBuyall.DataGrid4.ReBindrs_fctotal.Closestrtotal="selectsum(總金額)as進貨總金額frombuywhere進貨年="&inty&"and進貨月="&intm&"and進貨日="&intd&""rs_total.Openstrtotal,cnn,adOpenKeysetm,adLockPessimisticfrmBuyall.Text1.Text=rs_total.Fields("進貨總金額")rs_total.CloseEndSub……frmSellall.Showstrsell="select*fromsellwhere進銷存年="&inty&"and進銷存月="&intm&""rs_sell.Openstrsell,cnn,adOpenKeyset,adLockPessimisticfrmSellall.Adodc2.RecordSource=strsellfrmSellall.Adodc2.RefreshfrmSellall.DataGrid2.ReBindIfrs_sell.EOF=TrueThenfrmSellall.Adodc6.RecordSource=strsellfrmSellall.Adodc6.RefreshfrmSellall.DataGrid6.ReBindMsgBox"您本月沒有進銷存記錄!",WEBOKOnly+WEBInformation,"注意"……EndIfrs_sell.Closestrfctotal="select生產(chǎn)廠商,sum(總金額)as各廠商進銷存總金額fromsellwhere進銷存年="&inty&"and進銷存月="&intm&"groupby生產(chǎn)廠商"rs_fctotal.Openstrfctotal,cnn,adOpenKeyset,adLockPessimisticfrmSellall.Adodc6.RecordSource=strfctotalfrmSellall.Adodc6.RefreshfrmSellall.DataGrid6.ReBindrs_fctotal.Closestrtotal="selectsum(總金額)as進銷存總金額fromsellwhere進銷存年="&inty&"and進銷存月="&intm&""rs_total.Openstrtotal,cnn,adOpenKeysetm,adLockPessimisticfrmSellall.Text2.Text=rs_total.Fields("進銷存總金額")rs_total.CloseEndSubstrfctotal="select生產(chǎn)廠商,sum(總金額)as各廠商進銷存總金額fromsellwhere進銷存年="&inty&"and進銷存月between"&(intm-2)&"and"&intm&"groupby生產(chǎn)廠商"rs_fctotal.Openstrfctotal,cnn,adOpenKeyset,adLockPessimisticfrmSellall.Adodc6.RecordSource=strfctotalfrmSellall.Adodc6.RefreshfrmSellall.DataGrid6.ReBindrs_fctotal.Closestrtotal="selectsum(總金額)as進銷存總金額fromsellwhere進銷存年="&inty&"and進銷存月between"&(intm-2)&"and"&intm&""rs_total.Openstrtotal,cnn,adOpenKeysetm,adLockPessimisticfrmSellall.Text3.Text=rs_total.Fields("進銷存總金額")rs_total.Closeintm=Month(Date)EndSub……frmSellall.Showstrsell="select*fromsellwhere進銷存年="&inty&"and進銷存月="&intm&"and進銷存日="&intd&""rs_sell.Openstrsell,cnn,adOpenKeyset,adLockPessimisticfrmSellall.Adodc1.RecordSource=strsellfrmSellall.Adodc1.RefreshfrmSellall.DataGrid1.ReBindIfrs_sell.EOF=TrueThenfrmSellall.Adodc4.RecordSource=strsellfrmSellall.Adodc4.RefreshfrmSellall.DataGrid4.ReBindMsgBox"您今日沒有進銷存記錄!",WEBOKOnly+WEBInformation,"注意"……4.3添加商品界面代碼圖4-2添加商品界面'在通用中定義的有關(guān)連接數(shù)據(jù)表的記錄集Dimrs_goodsAsNewADODB.RecordsetDimrs_buyAsNewADODB.RecordsetDimrs_manufacturerAsNewADODB.RecordsetDimstr_goodsAsStringDimstr_buyAsStringDimstr_manufacturerAsStringDimNumgooodsAsIntegerPrivateSubCommand1_Click()……'下面是對進貨表進行添加記錄操作!str_buy="select*frombuywhere進貨編號='"&Text1.Text&"'"rs_buy.Openstr_buy,cnn,adOpenStatic,adLockOptimistic'打開進貨表Ifrs_buy.EOF=TrueThenrs_buy.AddNewrs_buy.Fields("進貨編號")=Text1.Textrs_buy.Fields("報紙名稱")=Text3.Textrs_buy.Fields("生產(chǎn)廠商")=Text4.Textrs_buy.Fields("型號")=Text4.Textrs_buy.Fields("數(shù)量")=Val(Text6.Text)rs_buy.Fields("進貨價")=Val(Text7.Text)rs_buy.Fields("進貨年")=Text9.Textrs_buy.Fields("進貨月")=Text10.Textrs_buy.Fields("進貨日")=Text11.Textrs_buy.Fields("業(yè)務(wù)員編號")=Text12.Textrs_buy.Fields("總金額")=Val(Text13.Text)rs_buy.Updaters_buy.Close……'下面是對報紙庫存表進行入庫操作!DimsqlAsStringsql="select*fromgoodswhere報紙編號='"&Text2.Text&"'"rs_goods.Opensql,cnn,adOpenStatic,adLockOptimisticIfrs_goods.EOF=TrueThenrs_goods.Closestr_goods="select*fromgoods"rs_goods.Openstr_goods,cnn,adOpenStatic,adLockOptimistic'打開庫存表rs_goods.AddNewrs_goods.Fields("報紙編號")=Text2.Textrs_goods.Fields("報紙名稱")=Text3.Textrs_goods.Fields("生產(chǎn)廠商")=Text4.Textrs_goods.Fields("型號")=Text4.Textrs_goods.Fields("數(shù)量")=Val(Text6.Text)rs_goods.Fields("進貨價")=Val(Text7.Text)rs_goods.Fields("銷貨價")=Val(Text8.Text)rs_goods.UpdateMsgBox"報紙入庫成功",WEBOKOnly+WEBExclamation,""rs_goods.Close……'下面是對進貨商表進行入庫操作!str_manufacturer="select*frommanufacturerwhere廠商編號='"&Text14.Text&"'"rs_manufacturer.Openstr_manufacturer,cnn,adOpenStatic,adLockOptimisticIfrs_manufacturer.EOF=TrueThenrs_manufacturer.AddNewrs_manufacturer.Fields("廠商編號")=Text14.Textrs_manufacturer.Fields("廠商名稱")=Text14.Textrs_manufacturer.Fields("聯(lián)系人姓名")=Text16.Textrs_manufacturer.Fields("電話")=Text17.Textrs_manufacturer.Fields("廠商地址")=Text18.Textrs_manufacturer.UpdateMsgBox"添加廠商成功",WEBOKOnly+WEBExclamation,""rs_manufacturer.CloseElseMsgBox"該編號已存在,請確認!",WEBOKOnly+WEBInformation,""Text14.Text=""Text14.SetFocusrs_manufacturer.CloseExitSubEndIfEndSub……PrivateSubText2_Change()'如果報紙編號存在,則直接出現(xiàn)本報紙的相關(guān)數(shù)據(jù)str_goods="select*fromgoodswhere報紙編號='"&Text2.Text&"'"rs_goods.Openstr_goods,cnn,adOpenStatic,adLockOptimisticText3.Text=rs_goods.Fields("報紙名稱")Text4.Text=rs_goods.Fields("生產(chǎn)廠商")Text4.Text=rs_goods.Fields("型號")Text7.Text=rs_goods.Fields("進貨價")Text8.Text=rs_goods.Fields("銷貨價")rs_goods.CloseEndSub4.4進貨統(tǒng)計界面代碼圖4-3進貨統(tǒng)計界面……PrivateSubForm_Load()inty=Year(Date)intm=Month(Date)intd=Day(Date)DimstrAsStringstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path&"\sellsystem.mdb;"'Adodc1的相對路徑連接Adodc1.ConnectionString=strAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select*frombuywhere進貨年="&inty&"and進貨月="&intm&"and進貨日="&intd&""Adodc1.RefreshSetDataGrid1.DataSource=Adodc1DataGrid1.Refresh'Adodc2的相對路徑連接Adodc2.ConnectionString=strAdodc2.CommandType=adCmdTextAdodc2.RecordSource="select*frombuywhere進貨年="&inty&"and進貨月="&intm&""Adodc2.RefreshSetDataGrid2.DataSource=Adodc2DataGrid2.Refresh'Adodc3的相對路徑連接SelectCaseintmCaseIs<4intm=3CaseIs<7intm=6CaseIs<10intm=9CaseIs>10intm=12EndSelectAdodc3.ConnectionString=strAdodc3.CommandType=adCmdTextAdodc3.RecordSource="select*frombuywhere進貨年="&inty&"and進貨月between"&(intm-2)&"and"&intm&""Adodc3.RefreshSetDataGrid3.DataSource=Adodc3DataGrid3.Refreshintm=Month(Date)'Adodc4的相對路徑連接Adodc4.ConnectionString=strAdodc4.CommandType=adCmdTextAdodc4.RecordSource="select*frombuywhere進貨年="&inty&""Adodc4.RefreshSetDataGrid4.DataSource=Adodc4DataGrid4.Refresh'Adodc5的相對路徑連接Adodc4.ConnectionString=strAdodc4.CommandType=adCmdTextAdodc4.RecordSource="select生產(chǎn)廠商,sum(總金額)as各廠商進貨總金額frombuywhere進貨年="&inty&"and進貨月="&intm&"and進貨日="&intd&"groupby生產(chǎn)廠商"Adodc4.RefreshSetDataGrid4.DataSource=Adodc5DataGrid4.Refresh'Adodc6的相對路徑連接Adodc6.ConnectionString=strAdodc6.CommandType=adCmdTextAdodc6.RecordSource="select生產(chǎn)廠商,sum(總金額)as各廠商進貨總金額frombuywhere進貨年="&inty&"and進貨月="&intm&"groupby生產(chǎn)廠商"Adodc6.RefreshSetDataGrid6.DataSource=Adodc6DataGrid6.Refresh'Adodc7的相對路徑連接SelectCaseintmCaseIs<4intm=3CaseIs<7intm=6CaseIs<10intm=9CaseIs>10intm=12EndSelectAdodc7.ConnectionString=strAdodc7.CommandType=adCmdTextAdodc7.RecordSource="select生產(chǎn)廠商,sum(總金額)as各廠商進貨總金額frombuywhere進貨年="&inty&"and進貨月between"&(intm-2)&"and"&intm&"groupby生產(chǎn)廠商"Adodc7.RefreshSetDataGrid7.DataSource=Adodc7DataGrid7.Refreshintm=Month(Date)'Adodc8的相對路徑連接Adodc8.ConnectionString=strAdodc8.CommandType=adCmdTextAdodc8.RecordSource="select生產(chǎn)廠商,sum(總金額)as各廠商進貨總金額frombuywhere進貨年="&inty&"groupby生產(chǎn)廠商"Adodc8.RefreshSetDataGrid8.DataSource=Adodc8DataGrid8.RefreshEndSub4.5員工管理界面代碼圖4-4員工管理界面注冊用戶的屏蔽操作:PrivateSubCommand5_Click()IfText1.Text=""ThenMsgBox"請輸入用戶名!",WEBOKOnly+WEBInformation,"提示"Text1.SetFocusExitSubElseIfText2.Text=""ThenMsgBox"請輸入用戶編號!",WEBOKOnly+WEBInformation,"提示"Text2.SetFocusExitSubElseIfText3.Text=""ThenMsgBox"請輸入密碼!",WEBOKOnly+WEBInformation,"提示"Text3.SetFocusExitSubElseIfText4.Text=""ThenMsgBox"請輸入確認密碼!",WEBOKOnly+WEBInformation,"提示"Text4.SetFocusExitSubElseIfText4.Text=""ThenMsgBox"請輸入聯(lián)系電話!",WEBOKOnly+WEBInformation,"提示"Text4.SetFocusExitSubElseIfText6.Text=""ThenMsgBox"請輸入聯(lián)系地址!",WEBOKOnly+WEBInformation,"提示"Text6.SetFocusExitSubEndIfIfLen(Text3.Text)<3OrLen(Text3.Text)>8ThenMsgBox"密碼長度不符合要求!",WEBOKOnly+WEBInformation,"提示"Text3.Text=""Text3.SetFocusExitSubEndIfIfText3.Text<>Text4.TextThenMsgBox"兩次輸入的密碼不一致!",WEBOKOnly+WEBInformation,"注意"Text3.Text=""Text4.Text=""Text3.SetFocusExitSubEndIf用戶添加成功的入庫操作:strempl="select*fromemployeewhere員工編號='"&Text1.Text&"'"rs_empl.Openstrempl,cnn,adOpenKeyset,adLockOptimisticIfrs_empl.EOF=TrueThenrs_empl.AddNewrs_empl.Fields("員工編號")=Text

溫馨提示

  • 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

提交評論