版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 第一章 緒論</b></p><p> 1.1課題研究的背景介紹</p><p> 1.1.1社會現(xiàn)狀及發(fā)展動態(tài)</p><p> 隨著社會經(jīng)濟的不斷發(fā)展,企業(yè)規(guī)模越來越大,企業(yè)資產(chǎn)維護變得越來越困難,在手工管理方式下,財務(wù)人員在對資產(chǎn)進行折舊時,需要查閱上一個月的資產(chǎn)信息,根據(jù)上一個月的資產(chǎn)信息核算折舊資產(chǎn)
2、。如果企業(yè)資產(chǎn)很多,可以想像財務(wù)人員的工作難度,既要按時對資產(chǎn)進行折舊,又要保證數(shù)據(jù)的準確性,還要每月對資產(chǎn)進行折舊。所以一旦某個月的資產(chǎn)折舊有誤,就會影響到以后的資產(chǎn)折算。</p><p> 信息化的發(fā)展幫助企業(yè)解決了上述難題,計算機的使用使財務(wù)人員從繁重的勞動中解脫出來,以往需要對資產(chǎn)信息的一項一項核算、折舊,現(xiàn)在只需單擊一下按鈕,計算機便會自動完成企業(yè)所有資產(chǎn)的折舊,而且準確無誤。</p>
3、<p> 1.1.2選題依據(jù)和背景情況</p><p> 人類在發(fā)展,社會在進步,經(jīng)濟發(fā)展又是社會發(fā)展的一個重要標志和保障。隨著經(jīng)濟的發(fā)展,企業(yè)的競爭也越來越強。而信息化的發(fā)展進一步促進企業(yè)更好的發(fā)展,怎樣把科技應用與企業(yè)的發(fā)展,成為社會發(fā)展的一大趨勢。只有更好的利用信息的發(fā)展成果,讓企業(yè)更好的發(fā)展,更高科技的發(fā)展,為社會節(jié)省大量的人力,財力,而且保障企業(yè)信息的快捷,準確,達到高效率才是當前社會前進
4、的步伐。</p><p> 1.1.3課題研究目的及工程應用價值</p><p> 開發(fā)軟件的一個目的是使其具有強大的實用價值,即它可以滿足企業(yè)固定資產(chǎn)管理的需要。在一般的企業(yè)機構(gòu),其下屬的很多財務(wù)種類很多,要清晰明確的做好每一筆財務(wù)清單,實在是一件費力又費時的事。而這些數(shù)據(jù)對一個企業(yè)的發(fā)展來說是很重要又馬虎不得的。尋求一個針對中企業(yè)固定資產(chǎn)的管理軟件是必要的。</p>
5、<p> 這種管理軟件對硬件的要求很低,一般有一個比較簡單的服務(wù)器與PC機組成的網(wǎng)絡(luò)即可,再加上使用比較廉價、性能不錯的軟件,這樣就可以以較低的成本來實現(xiàn)一個足夠使用的功能,而這種模式也正滿足了那種中小型企業(yè)的要求。根據(jù)實際需要對這種管理軟件的開發(fā)是一種基于數(shù)據(jù)庫的資產(chǎn)管理軟件。</p><p> 1.2固定資產(chǎn)管理系統(tǒng)的概述</p><p> 當今時代是飛速發(fā)展的信息時代
6、。在各行各業(yè)中離不開信息處理,這正是計算機被廣泛應用于信息管理系統(tǒng)的環(huán)境。計算機的最大好處在于利用它能夠進行信息管理。使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。</p><p> 一個企業(yè)的良性發(fā)展,避免不了的要涉及到企業(yè)資產(chǎn)的有效管理。對于那些技術(shù)裝備密集型的企業(yè),固定資產(chǎn)的管理顯得尤為重要。傳統(tǒng)的固定資產(chǎn)管理模式無論從質(zhì)量上還是效率上,都難以適應經(jīng)營管理新形式的需要。因此,尋找一
7、種簡便、高效的管理手段成為必然。在充分研究分析企業(yè)固定資產(chǎn)管理的業(yè)務(wù)需求的基礎(chǔ)上,固定資產(chǎn)管理條碼解決方案把條碼引入固定資產(chǎn)管理中,開發(fā)了一套首碼固定資產(chǎn)管理條碼管理系統(tǒng),改變了固定資產(chǎn)清查數(shù)據(jù)的采集方式,解決固定資產(chǎn)實物清查的瓶頸問題,大大提高清查效率,同時也增加了固定資產(chǎn)的形態(tài)方面的管理,有效解決企業(yè)資產(chǎn)的管理難題,使企業(yè)更輕松、更有效地管理固定資產(chǎn)。如能在公司內(nèi)部建立固定資產(chǎn)管理,將使各級相關(guān)管理人員及有關(guān)領(lǐng)導快速查詢、統(tǒng)計固定資
8、產(chǎn)情況,實現(xiàn)合理配置資源、決策,提供依據(jù),提高工作效率。</p><p> 第二章 數(shù)據(jù)庫相關(guān)技術(shù)的介紹</p><p><b> 2.1數(shù)據(jù)庫的發(fā)展</b></p><p> 數(shù)據(jù)庫處理在信息系統(tǒng)的 研究 中一直是非常重要的主題,然而,近年來,隨著World Wide Web(WWW)的猛增及Internet技術(shù)的迅速發(fā)展,使得數(shù)據(jù)庫技
9、術(shù)之時成為最熱門技術(shù)之一。數(shù)據(jù)庫技術(shù)能使Internet 應用 超越具有早期應用特點的簡單的發(fā)布。Internet技術(shù)提供了一種向用戶發(fā)布數(shù)據(jù)庫 內(nèi)容 的標準化的訪問 方法 。這些技術(shù)沒有脫離經(jīng)典數(shù)據(jù)庫技術(shù)的要求。它們只是加重了數(shù)據(jù)庫技術(shù)的重要性。 數(shù)據(jù)庫的設(shè)計和開發(fā)及包括 藝術(shù) 有包括工程。理解用戶的需求,然后,把它們轉(zhuǎn)變?yōu)橛行У臄?shù)據(jù)庫設(shè)計是一個藝術(shù)過程。把設(shè)計轉(zhuǎn)變?yōu)閷嶋H的數(shù)據(jù)庫,并且這些數(shù)據(jù)庫帶有功能完備、高效能的應用,是一
10、個工程過程。 數(shù)據(jù)庫的目的是幫助人們跟蹤事務(wù)。經(jīng)典的數(shù)據(jù)庫應用涉及諸如訂單、顧客、工作、員工、學生、電話之類的項,或其它數(shù)據(jù)量較大、需要密起關(guān)注的事務(wù)。最近,由于數(shù)據(jù)庫的普及,數(shù)據(jù)庫技術(shù)已經(jīng)被應用到了新的領(lǐng)域,諸如用于Internet的數(shù)據(jù)庫或用于公司內(nèi)聯(lián)網(wǎng)的數(shù)據(jù)庫。數(shù)據(jù)庫也被越來越多地應用于生成和維護多媒體應用程序上。 計算機的數(shù)據(jù)處理應用,首先要把大量的信息以數(shù)據(jù)形式存放在存</p><p>
11、 數(shù)據(jù)管理技術(shù)的發(fā)展,與硬件(主要是外存)、軟件、計算機應用的范圍有密切的聯(lián)系。數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)過三個階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫階段。人工管理階段和文件系統(tǒng)階段都有著相當多的缺陷,諸如數(shù)據(jù)冗余性 ,數(shù)據(jù)不一致性以及數(shù)據(jù)聯(lián)系弱等等。也正是由于這些原因,促使人們研究新的數(shù)據(jù)管理技術(shù),從而產(chǎn)生了數(shù)據(jù)庫技術(shù)。 20世紀60年代末發(fā)生的三件大事,層次模型IMS系統(tǒng)的推出、關(guān)于網(wǎng)狀模型DBTG報告的發(fā)表以及關(guān)于關(guān)系模型
12、論文的連續(xù)發(fā)表標志著數(shù)據(jù)管理技術(shù)進入數(shù)據(jù)庫階段。進入70年代以后,數(shù)據(jù)庫技術(shù)得到迅速發(fā)展,開發(fā)了許多有效的產(chǎn)品并投入運行。數(shù)據(jù)庫系統(tǒng)克服了文件系統(tǒng)的缺陷,提供了對數(shù)據(jù)更高級更有效的管理。 當進入數(shù)據(jù)庫階段后,隨著數(shù)據(jù)管理規(guī)模一再擴大,數(shù)據(jù)量急劇增加,為了提高效率,開始時,人們只是對文件系統(tǒng)加以擴充,在應用文件中建立了許多輔助索引,形成倒排文件系統(tǒng)。但這并不能最終解決問題 。在20世紀60年代末,磁盤技術(shù)取得重要進展,具有數(shù)百兆容
13、量和快速存取的磁盤陸續(xù)進入市場,成本也不高,為數(shù)據(jù)庫技術(shù)的產(chǎn)生提供了良好的物質(zhì)條件。</p><p> 2.2數(shù)據(jù)庫階段的特點及優(yōu)點</p><p> ?。?)減少數(shù)據(jù)的重復(Redundancy can be reduced)</p><p> 當在一個非數(shù)據(jù)庫系統(tǒng)當中,每一個應用程序都有屬于他們自己的文件,由于無法有系統(tǒng)建立的數(shù)據(jù),因此常常會造成存儲數(shù)據(jù)的重
14、復與浪費。例如:在一家公司當中,人事管理程序與工資管理程序或許都會使用到職員與部門的信息或文件,而我們可以運用數(shù)據(jù)庫的方法,把這兩個文件整理起來,以減少多余的數(shù)據(jù),過度地占用存儲空間。 </p><p> (2)避免數(shù)據(jù)的不一致(Inconsistency can avoid)</p><p> 本項的特色,可以說是延伸前項的一個特點,要說明這樣的一個現(xiàn)象,
15、我們可以從下面這個實例來看:若是在同一家公司當中,職員甲在策劃部門工作,且職員甲的記錄同時被存放在數(shù)據(jù)庫的兩個地方,而數(shù)據(jù)庫管理系統(tǒng)卻沒有對這樣重要的情況加以控制,當其中一條數(shù)據(jù)庫被修改時,便會造成數(shù)據(jù)的不一致,但是,對于一個健全的數(shù)據(jù)庫管理系統(tǒng)而言,將會對這樣的情況加以控制,但有時并不需要刻意消除這種情形,應當視該數(shù)據(jù)庫的需求與效率來決定。 &
16、#160; </p><p> ?。?)數(shù)據(jù)共享(Data shared)</p><p> 對于數(shù)據(jù)共享的意義,并不是只有針對數(shù)據(jù)庫設(shè)計的應用程序,可以使用數(shù)據(jù)庫中的數(shù)據(jù),對于其他撰寫好的應用程序,同樣可以對相同數(shù)據(jù)庫當中的數(shù)據(jù)進行處理,進而達到數(shù)據(jù)共享的目的。</p><p> (
17、4)強化數(shù)據(jù)的標準化(Standard can be enforced)</p><p> 由數(shù)據(jù)庫管理系統(tǒng),對數(shù)據(jù)做出統(tǒng)籌性的管理,對于數(shù)據(jù)的格式與一些存儲上的標準進行控制,如此一來,對于不同的環(huán)境的數(shù)據(jù)交換(Data Interchange)上將有很大的幫助,也能提高數(shù)據(jù)處理的效率。</p><p> (5)實踐安全性的管理(Security restriction can be
18、applied)</p><p> 通過對數(shù)據(jù)庫完整的權(quán)限控制,數(shù)據(jù)庫管理者可以確認所有可供用戶存取數(shù)據(jù)的合法途徑渠道,并且可以事先對一些較重要或關(guān)鍵性的數(shù)據(jù)進行安全檢查,以確保數(shù)據(jù)存取時,能夠?qū)⑷魏尾划敁p毀的情形降至最低。</p><p> ?。?)完整性的維護(Integrity can be maintained)</p><p> 所謂完整性的問題,就是
19、要確認某條數(shù)據(jù)在數(shù)據(jù)庫當中,是正確無誤的。正如(2)所述,若是無法控制數(shù)據(jù)的不一致性,便會產(chǎn)生完整性不足的問題,所以,我們會發(fā)現(xiàn),當數(shù)據(jù)重復性高的時候,數(shù)據(jù)不完整的情形也會增加,當然,若是數(shù)據(jù)庫的功能完整,將會大大地提高數(shù)據(jù)完整性,也會增加數(shù)據(jù)庫的維護能力與維護簡便性。</p><p> ?。?)需求沖突會獲得平衡(Conflicting requirements can be balance)</p>
20、;<p> 在一個較大型的 企業(yè) 當中,用戶不同的需求,往往會造成系統(tǒng)或數(shù)據(jù)庫在設(shè)計上的困擾,但是一個合適的數(shù)據(jù)庫系統(tǒng),可以通過數(shù)據(jù)庫管理員的管理,將會有效地整理各方面的信息,對于一些較重要的應用程序,可以適時地提供較快速的數(shù)據(jù)存取方法與格式,以平衡多個用戶在需求上的沖突。</p><p> 2.3數(shù)據(jù)庫系統(tǒng)設(shè)計</p><p> 數(shù)據(jù)指標項則被稱為數(shù)據(jù)元素(data
21、element),這種關(guān)系落實到具體數(shù)據(jù)庫上就是基本表,而數(shù)據(jù)元素就是基本表中的一個字段(field)。規(guī)范化表達還規(guī)定在每一個基本表中必須定義一個數(shù)據(jù)元素為關(guān)鍵字(key),它可以唯一地標識出該表中其它相關(guān)的數(shù)據(jù)元素。在規(guī)范化理論中表是二維的,它有如下四個性質(zhì):在表中的任意一列上,數(shù)據(jù)項應屬于同一個屬性(如圖中每一列都存放著不同合同記錄的同一屬性數(shù)據(jù))。 表中所有行都是不相同的,不允許有重復組項出現(xiàn)(如圖中每一行都是一個不同的合同記錄
22、)。在表中,行的順序無關(guān)緊要(如圖中每行存的都是合同記錄,至于先放哪一個合同都沒關(guān)系)。 在表中,列的順序無關(guān)緊要,但不能重復(如圖中合同號和合同名誰先誰后都沒關(guān)系,但二者不可重復或同名)。</p><p> 第三章 固定資產(chǎn)管理系統(tǒng)設(shè)計分析</p><p><b> 3.1系統(tǒng)分析</b></p><p><b> 3.1.1
23、需求分析</b></p><p> 通過實際調(diào)查,要求本系統(tǒng)應具有以下優(yōu)良性能:</p><p> (1)由于操作人員的計算機知識有限,因此要求系統(tǒng)具有良好的人機界面。</p><p> ?。?)如果系統(tǒng)的使用對象較多,則要求具有良好的權(quán)限管理。</p><p> ?。?)方便數(shù)據(jù)查新,支持多條件查詢。</p>
24、<p> ?。?)在固定資產(chǎn)數(shù)據(jù)量大的情況下,支持分類顯示固定資產(chǎn)數(shù)據(jù)。</p><p> (5)當外界環(huán)境(停電、網(wǎng)絡(luò)病毒等)干擾本系統(tǒng)時,系統(tǒng)可以自動保護原始數(shù)據(jù)的安全。</p><p> ?。?)在相應的權(quán)限下,可以方便的刪除數(shù)據(jù),且保持數(shù)據(jù)的穩(wěn)定性。</p><p> ?。?)資產(chǎn)折舊核算自動完成,盡量減少人工干預。</p><
25、;p> ?。?)Excel導入/導出功能。</p><p> 3.1.2開發(fā)工具選擇</p><p> 本系統(tǒng)后臺數(shù)據(jù)庫采用Microsoft SQL Server 2000,前臺采用Microsoft公司的Visual Basic 6.0作為主要的開發(fā)工具,可與SQL Server 2000數(shù)據(jù)庫無縫鏈接。</p><p><b> 3.2總
26、體設(shè)計</b></p><p><b> 3.2.1項目規(guī)劃</b></p><p> 固定資產(chǎn)管理系統(tǒng)由設(shè)備管理、設(shè)備查詢、報表管理、用戶管理、系統(tǒng)管理等模塊組成,具體規(guī)劃如下:</p><p><b> ?。?)設(shè)備管理</b></p><p> 該模塊主要用于實現(xiàn)設(shè)備的增加、
27、刪除、借出借入登記、注銷、報廢等管理.</p><p><b> (2)設(shè)備查詢</b></p><p> 該模塊主要按提供部門,設(shè)備名,型號,價格,分類,購置日期,注銷日期等信息的查詢.</p><p><b> ?。?)報表管理</b></p><p> 該模塊主要實現(xiàn)設(shè)備登記卡,部門統(tǒng)計
28、表,注銷統(tǒng)計表,折舊統(tǒng)計表等信息管理.</p><p><b> ?。?)用戶管理</b></p><p> 該模塊主要實現(xiàn)新增用戶與刪除用戶等功能.</p><p><b> ?。?)系統(tǒng)管理</b></p><p> 該模塊主要提供修改密碼,退出系統(tǒng)等功能.</p><p
29、> 3.2.2 系統(tǒng)業(yè)務(wù)流程</p><p> 固定資產(chǎn)管理系統(tǒng)業(yè)務(wù)流程圖如圖4-1所示。</p><p> 3.2.3系統(tǒng)功能結(jié)構(gòu)</p><p> 固定資產(chǎn)管理系統(tǒng)功能結(jié)構(gòu)如圖4-2所示。</p><p><b> 3.3系統(tǒng)設(shè)計</b></p><p> 3.3.1 設(shè)計目
30、標</p><p> 本系統(tǒng)屬于中小型的數(shù)據(jù)庫系統(tǒng),可以對中小型企業(yè)固定資產(chǎn)進行有效的管理。通過本系統(tǒng)可以達到以下目標:</p><p> (1)靈活地運用表格傳遞信息。</p><p> (2)系統(tǒng)采用人機交互方式,界面美觀友好,信息查新靈便,數(shù)據(jù)庫存儲安全可靠。</p><p> ?。?)實施強大的后臺監(jiān)控功能。</p>
31、<p> ?。?)實現(xiàn)各種查詢,如定位查詢、模糊查詢等。</p><p> ?。?)與Excel表格實現(xiàn)導入與導出數(shù)據(jù)靈活。</p><p> ?。?)對用戶輸入的數(shù)據(jù)進行嚴格的數(shù)據(jù)檢驗,盡可能的避免人為錯誤。</p><p> ?。?)系統(tǒng)最大限度的實現(xiàn)了易安裝、易維護和易操作。</p><p> 3.3.2開發(fā)及運行環(huán)境&
32、lt;/p><p> ?。?)系統(tǒng)開發(fā)平臺:Microsoft Visual Basic 6.0</p><p> (2)系統(tǒng)開發(fā)數(shù)據(jù)庫:SQL Server 2000。</p><p> (3)運行平臺:Windows XP(SP2)/Windows 2000(SP4)/Windows Server 2003(SP1)。</p><p>
33、?。?)運行環(huán)境:Microsoft .NET Framework SDK v2.0。</p><p> ?。?)分辨率:最佳效果1024﹡768像素。</p><p> 3.3.3數(shù)據(jù)庫設(shè)計</p><p> 本系統(tǒng)采用SQL Server 2000作為后臺數(shù)據(jù)庫,數(shù)據(jù)庫名稱為Data.mdb,其中包含15張數(shù)據(jù)表。下面分別介紹。</p><
34、;p> (1)數(shù)據(jù)表概要說明</p><p> 為了是讀者對本系統(tǒng)后臺數(shù)據(jù)庫中數(shù)據(jù)表有一個更清晰地認識,在此設(shè)計了數(shù)據(jù)表樹型結(jié)構(gòu)圖,其中包含了對數(shù)據(jù)表的相關(guān)描述。</p><p> (2)數(shù)據(jù)庫E-R圖分析</p><p> 本系統(tǒng)根據(jù)上面設(shè)計規(guī)劃出:系統(tǒng)實體關(guān)系圖、固定資產(chǎn)信息實體、固定資產(chǎn)清理信息實體、資產(chǎn)名稱實體、資產(chǎn)類別實體、保管人員實體、存放
35、地點實體、使用部門實體、使用情況實體、增加方式實體、計量單位實體、清理方式實體。</p><p> 固定資產(chǎn)管理系統(tǒng)實體間關(guān)系E-R圖,如圖4-3和圖4-4所示。</p><p> 圖4-3 固定資產(chǎn)管理系統(tǒng)實體間關(guān)系E-R圖1</p><p> 圖4-4 固定資產(chǎn)管理系統(tǒng)實體間關(guān)系E-R圖2</p><p> 固定資產(chǎn)實體圖如圖
36、4-5所示。</p><p> 圖4-5固定資產(chǎn)信息實體圖</p><p> 固定資產(chǎn)清理信息實體圖,如圖4-6所示。</p><p> 固定資產(chǎn)名稱和資產(chǎn)類別實體圖,如圖4-7所示。</p><p> 固定資產(chǎn)保管人員和存放地點實體圖,如圖4-8所示。</p><p> 圖4-6 固定資產(chǎn)清理信息實體圖&l
37、t;/p><p> 圖4-7 固定資產(chǎn)名稱和資產(chǎn)類別實體圖</p><p> 圖4-8 固定資產(chǎn)保管人員和存放地點實體圖</p><p> 固定資產(chǎn)使用部門和使用情況實體圖,如圖4-9所示。</p><p> 圖4-9 固定資產(chǎn)使用部門和使用情況實體圖</p><p> 固定資產(chǎn)計量單位和增加方式實體圖,如圖
38、4-10所示。</p><p> 圖4-10 固定資產(chǎn)計量單位和增加方式實體圖</p><p> 固定資產(chǎn)清理方式實體圖,如圖4-11所示。</p><p> 圖4-11 固定資產(chǎn)清理方式實體圖</p><p> ?。?)主要數(shù)據(jù)表的結(jié)構(gòu)</p><p> 資產(chǎn)編號設(shè)置表主要用來存儲資產(chǎn)編號規(guī)則設(shè)置,tb_Ba
39、seDefaultNO(資產(chǎn)編號設(shè)置表)</p><p> 結(jié)構(gòu)如表4-1所示。</p><p> 表4-1 資產(chǎn)編號設(shè)置表</p><p> 資產(chǎn)類別表主要存儲資產(chǎn)類別信息,因為該表中的信息主要通過TreeView控件顯示,所以表的設(shè)計類似于遞歸法設(shè)計,tb_BaseZclb(資產(chǎn)類別表)結(jié)構(gòu)如表4-2所示。</p><p> 表
40、4-2 資產(chǎn)類別表</p><p> 資產(chǎn)名稱表主要存儲固定資產(chǎn)的名稱。tb_BaseZcmc(資產(chǎn)名稱表)結(jié)構(gòu)如表4-3所示。 </p><p> 表4-3 資產(chǎn)名稱表</p><p> 固定資產(chǎn)信息表主要存儲固定資產(chǎn)的基本信息。tb_zcMain(固定資產(chǎn)信息表)結(jié)構(gòu)如表4-4所示。 </p><p
41、> 表4-4 固定資產(chǎn)信息表</p><p> DataGridView表格屬性列表主要存儲系統(tǒng)主要窗體中顯示資產(chǎn)信息的DataGridView控件的相關(guān)屬性。tb_DataGridViewList(DataGridView表格屬性列表)結(jié)構(gòu)如表4-5所示。</p><p> 表4-5 DataGridView表格屬性列表</p><p> 固定資
42、產(chǎn)清理表主要保存已經(jīng)被清理的固定資產(chǎn)信息。tb_zcClear(固定資產(chǎn)清理表)結(jié)構(gòu)如表4-6所示。</p><p> 表4-6 固定資產(chǎn)清理表</p><p><b> 3.4技術(shù)準備</b></p><p> 3.4.1添加引用Excel動態(tài)鏈接庫</p><p> 開發(fā)資產(chǎn)折舊核算模塊時,為了實現(xiàn)將Dat
43、aGridView控件中數(shù)據(jù)導出到Excel文件中,需要引用Excel動態(tài)鏈接庫(Microsoft Excel 9.0 Object Library),這樣才可以通過C#語言靈活控制Excel,添加方法如下。</p><p> ?。?)在開發(fā)環(huán)境的菜單欄中選擇‘項目’/‘添加引用’,彈出‘添加引用窗體’。</p><p> ?。?)選擇‘COM’選項卡,在‘組件名稱’列表中選擇‘Micr
44、osoft Excel 9.0 Object Library’,單擊‘確定’按鈕,添加引用成功。</p><p> 3.4.2 MVC開發(fā)模式</p><p> Mode-View-Controller(即MVC)模式是為面向?qū)ο笳Z言Smalltalk-80發(fā)明的一種軟件設(shè)計模式,MVC模式不僅實現(xiàn)了功能模塊和顯示模塊的分離,同時還提高了應用系統(tǒng)的可維護性、可擴展性、可移植性和組件的可
45、重用性,至今已被廣泛應用。</p><p> MVC開發(fā)模式將基于用戶輸入域的建模、顯示和操作分為三個獨立的類,分別為模型、試圖、控制器。圖4-12描述了這三個對象之間的結(jié)構(gòu)關(guān)系。</p><p> 圖4-12 MVC類結(jié)構(gòu)</p><p><b> ?。?)模型</b></p><p> 模型用于管理應用程序域
46、的行為和數(shù)據(jù),并響應為獲取其狀態(tài)信息(通常來自視圖)而發(fā)出的請求,同時響應更改狀態(tài)的指令(通常來自控制器)。</p><p><b> (2)視圖</b></p><p> 視圖用于管理信息的顯示。</p><p><b> ?。?)控制器</b></p><p> 控制器用于解釋用戶的鼠標和
47、鍵盤的輸入,以通知模式或視圖進行相應的修改。</p><p> 第四章 固定資產(chǎn)管理系統(tǒng)應用詳細設(shè)計</p><p> 4.1用戶登陸及用戶設(shè)置模塊的實現(xiàn)</p><p> 4.1.1用戶登錄模塊</p><p> 考慮到系統(tǒng)的安全性,此系統(tǒng)設(shè)計了用戶登錄模塊。根據(jù)不同的用戶級別賦予他們不同的權(quán)限,這樣可以保證公司固定資產(chǎn)信息的數(shù)據(jù)庫
48、不會被隨意更改。</p><p><b> 登陸界面代碼設(shè)計:</b></p><p> Private Sub cmdOK_Click()</p><p> Dim strPwd As String</p><p> Dim rsPwd As ADODB.Recordset</p><p&g
49、t; Dim strLogin As String</p><p> strLogin = Trim(txtUserName.Text)</p><p> strPwd = Trim(txtPassword.Text)</p><p> If Len(strLogin) = 0 Then</p><p> MsgBox "
50、用戶名不能為空,請輸入用戶名"</p><p> txtUserName.SetFocus</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> If Len(strPwd) = 0 Then</p>&
51、lt;p> MsgBox "密碼不能為空,請輸入正確的密碼"</p><p> txtPassword.SetFocus</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> Set rsPwd =
52、gConn.Execute("SELECT pwd FROM tblUser WHERE login='" & Replace(strLogin, "'", "''") & "'")</p><p> If rsPwd.EOF Then</p><p>
53、 MsgBox "用戶名不正確,請重新輸入!"</p><p> ElseIf strPwd = rsPwd("pwd").value Then</p><p> '將代碼放在這里傳遞</p><p> '成功到 calling 函數(shù)</p><p> '設(shè)置全局變量時
54、最容易的</p><p> LoginSucceeded = True</p><p><b> Me.Hide</b></p><p><b> Else</b></p><p> MsgBox "無效的密碼,請重試!", , "登錄"</p&
55、gt;<p> txtPassword.SetFocus</p><p> SendKeys "{Home}+{End}"</p><p><b> End If</b></p><p> rsPwd.Close</p><p> Set rsPwd = Nothing<
56、/p><p><b> End Sub</b></p><p><b> 4.2系統(tǒng)主界面</b></p><p> 主窗體中主要包括設(shè)備管理、設(shè)備查詢、報表管理、用戶管理、系統(tǒng)管理等項目。界面設(shè)計簡單明了,方便用戶的訪問。</p><p><b> 主界面代碼設(shè)計:</b>
57、;</p><p> '執(zhí)行設(shè)備顯示列表操作</p><p> Private Sub tabMain_Click(PreviousTab As Integer)</p><p> Dim strSQL As String</p><p> Select Case tabMain.Tab</p><p>
58、;<b> Case 0</b></p><p> strSQL = "SELECT a.*,b.department,c.TypeName FROM (tblDevice AS A INNER JOIN tblDepartment AS B ON a.DeptNO=b.DeptNO) INNER JOIN tblTypeInfo C ON a.TypeNO=c.TypeNO
59、ORDER BY A.IID DESC"</p><p> Call fillDeviceGrid(grdDevice, strSQL)</p><p><b> Case 3</b></p><p> Call fillUserGrid</p><p> End Select</p>&
60、lt;p><b> End Sub</b></p><p> Private Sub fillDeviceGrid(grid As MSFlexGrid, Optional strSQL As String)</p><p> Dim rs As ADODB.Recordset</p><p> Dim strRowData As
61、 String</p><p> Dim rowindex As Integer</p><p> If Len(strSQL) = 0 Then</p><p> strSQL = "SELECT a.*,b.department,c.TypeName FROM (tblDevice AS A INNER JOIN tblDepartment AS
62、 B ON a.DeptNO=b.DeptNO) INNER JOIN tblTypeInfo C ON a.TypeNO=c.TypeNO ORDER BY A.IID DESC"</p><p><b> End If</b></p><p> rowindex = 1</p><p><b> With grid
63、</b></p><p> If .Tag = "" Then</p><p> Set rs = gConn.Execute(strSQL)</p><p><b> .Rows = 1</b></p><p> .Cols = 13</p><p>&l
64、t;b> .Row = 0</b></p><p><b> .Col = 0</b></p><p> .Text = "序號"</p><p><b> .Col = 1</b></p><p> .Text = "ID"<
65、;/p><p> .ColWidth(1) = 0</p><p><b> .Col = 2</b></p><p> .Text = "設(shè)備編號"</p><p><b> .Col = 3</b></p><p> .Text = "
66、設(shè)備名稱"</p><p><b> .Col = 4</b></p><p> .Text = "設(shè)備型號"</p><p><b> .Col = 5</b></p><p> .Text = "設(shè)備分類"</p><
67、p><b> .Col = 6</b></p><p> .Text = "所屬部門"</p><p><b> .Col = 7</b></p><p> .Text = "購買價格"</p><p><b> .Col = 8&l
68、t;/b></p><p> .Text = "折舊成本"</p><p><b> .Col = 9</b></p><p> .Text = "購買日期"</p><p><b> .Col = 10</b></p><p
69、> .Text = "狀態(tài)"</p><p><b> .Col = 11</b></p><p> .Text = "報廢日期"</p><p><b> .Col = 12</b></p><p> .Text = "注銷日期&q
70、uot;</p><p> Do Until rs.EOF</p><p> strRowData = rowindex & vbTab</p><p> strRowData = strRowData & rs("IID").value & vbTab</p><p> strRowDat
71、a = strRowData & rs("DeviceNO").value & vbTab</p><p> strRowData = strRowData & rs("DeviceName").value & vbTab</p><p> strRowData = strRowData & rs(&quo
72、t;DeviceModel").value & vbTab</p><p> strRowData = strRowData & rs("TypeName").value & vbTab</p><p> strRowData = strRowData & rs("Department").value &
73、amp; vbTab</p><p> strRowData = strRowData & rs("ProductPrice").value & vbTab</p><p> strRowData = strRowData & rs("Productcost").value & vbTab</p>&
74、lt;p> strRowData = strRowData & FormatDateTime(rs("PurchaseDate").value, vbLongDate) & vbTab</p><p> If rs("Status").value = 0 Then</p><p> strRowData = strRowD
75、ata & "在庫" & vbTab</p><p><b> Else</b></p><p> strRowData = strRowData & "借出" & vbTab</p><p><b> End If</b></p>
76、<p> strRowData = strRowData & rs("RejectDate").value & vbTab</p><p> strRowData = strRowData & rs("DisCardDate").value & vbTab</p><p> .AddItem strR
77、owData</p><p> rs.MoveNext</p><p> rowindex = rowindex + 1</p><p><b> Loop</b></p><p><b> rs.Close</b></p><p> Set rs = Nothin
78、g</p><p><b> .Tag = 1</b></p><p><b> End If</b></p><p><b> End With</b></p><p><b> End Sub</b></p><p>
79、 Private Sub fillUserGrid()</p><p> Dim rs As ADODB.Recordset</p><p> Dim strRowData As String</p><p> Dim rowindex As Integer</p><p> rowindex = 1</p><p
80、> With grdUser</p><p> If .Tag = "" Then</p><p> Set rs = gConn.Execute("SELECT * FROM tblUser ORDER BY UID DESC")</p><p><b> .Rows = 1</b><
81、;/p><p><b> .Cols = 4</b></p><p><b> .Row = 0</b></p><p><b> .Col = 0</b></p><p> .Text = "序號"</p><p> .Col
82、Width(0) = 500</p><p><b> .Col = 1</b></p><p> .ColWidth(1) = 0</p><p><b> .Col = 2</b></p><p> .Text = "用戶名"</p><p>
83、 .ColWidth(2) = 1500</p><p><b> .Col = 3</b></p><p> .Text = "用戶級別"</p><p> .ColWidth(3) = 3000</p><p> Do Until rs.EOF</p><p>
84、 strRowData = rowindex & vbTab</p><p> strRowData = strRowData & rs("UID").value & vbTab</p><p> strRowData = strRowData & rs("login").value & vbTab<
85、/p><p> Select Case rs("userlevel").value</p><p><b> Case -1</b></p><p> strRowData = strRowData & "系統(tǒng)管理員" & vbTab</p><p><b&
86、gt; Case 0</b></p><p> strRowData = strRowData & "普通用戶" & vbTab</p><p><b> Case 1</b></p><p> strRowData = strRowData & "數(shù)據(jù)操作員"
87、 & vbTab</p><p> End Select</p><p> .AddItem strRowData</p><p> rs.MoveNext</p><p> rowindex = rowindex + 1</p><p><b> Loop</b></p&
88、gt;<p><b> rs.Close</b></p><p> Set rs = Nothing</p><p><b> .Tag = 1</b></p><p><b> End If</b></p><p><b> End With
89、</b></p><p><b> End Sub</b></p><p> Private Function getDeptNo() As String</p><p> Dim str As String</p><p> Dim pos As Integer</p><p&g
90、t; With cboQDept</p><p> str = .List(.ListIndex)</p><p><b> End With</b></p><p> pos = InStr(str, "-")</p><p> getDeptNo = Left(str, pos - 1)
91、</p><p> End Function</p><p> Private Function getTypeNO() As String</p><p> Dim str As String</p><p> Dim pos As Integer</p><p> With cboQTypeNO</
92、p><p> str = .List(.ListIndex)</p><p><b> End With</b></p><p> pos = InStr(str, "-")</p><p> getTypeNO = Left(str, pos - 1)</p><p>
93、 End Function</p><p> 4.2.1設(shè)備增加管理界面</p><p> 設(shè)備增加管理界面代碼設(shè)計:</p><p> Private Sub cmdCancel_Click()</p><p> With theDevice</p><p> If .isDirty Then</p&
94、gt;<p> If MsgBox("你已經(jīng)更改數(shù)據(jù),是否做保存數(shù)據(jù)后再退出?", vbYesNo) = vbYes Then</p><p> If saveData() = False Then</p><p><b> Exit Sub</b></p><p><b> End If&l
95、t;/b></p><p><b> End If</b></p><p><b> End If</b></p><p><b> End With</b></p><p><b> Me.Hide</b></p><p
96、><b> End Sub</b></p><p> Private Sub cmdDelete_Click()</p><p> theDevice.deleteData (theDevice.iid)</p><p> isUpdate = True</p><p><b> Me.Hide
97、</b></p><p><b> End Sub</b></p><p> Private Sub cmdSave_Click()</p><p> If saveData() = True Then</p><p> isUpdate = True</p><p><
98、b> Me.Hide</b></p><p><b> End If</b></p><p><b> End Sub</b></p><p> Private Sub Form_Load()</p><p> Dim rs As ADODB.Recordset</
99、p><p> Dim strSQL As String</p><p> strSQL = "SELECT * FROM tblTypeInfo ORDER BY TypeNO"</p><p> Set rs = gConn.Execute(strSQL)</p><p><b> With rs</
100、b></p><p> Do Until .EOF</p><p> cboTypeNO.AddItem .Fields("TypeNO").value & "-" & .Fields("TypeName").value</p><p><b> .MoveNext&l
101、t;/b></p><p><b> Loop</b></p><p><b> End With</b></p><p> strSQL = "SELECT * FROM tblDepartment ORDER BY DeptNO"</p><p> Set rs
102、 = gConn.Execute(strSQL)</p><p><b> With rs</b></p><p> Do Until .EOF</p><p> cboDepartment.AddItem .Fields("DeptNO").value & "-" & .Field
103、s("Department").value</p><p><b> .MoveNext</b></p><p><b> Loop</b></p><p><b> End With</b></p><p><b> rs.Close&l
104、t;/b></p><p> Set rs = Nothing</p><p> isUpdate = False</p><p><b> End Sub</b></p><p> Public Sub loadDevice(iid As String)</p><p><b
105、> '顯示用戶數(shù)據(jù)</b></p><p> With theDevice</p><p> .loadDataByID iid</p><p> txtDeviceNo.Text = .DeviceNo</p><p> txtDeviceModel.Text = .DeviceModel</p&g
106、t;<p> txtDeviceName.Text = .DeviceName</p><p> setTypeIndex .TypeNo</p><p> setDeptIndex .DeptNo</p><p> txtPrice.Text = .ProductPrice</p><p> txtCost.Text
107、 = .ProductCost</p><p> dtPurchaseDate = .PurchaseDate</p><p> If .Status = 0 Then</p><p> lblStatus.Caption = "在庫"</p><p><b> Else</b></p&
108、gt;<p> lblStatus.Caption = "借出"</p><p><b> End If</b></p><p> If Len(.RejectDate) = 0 Then</p><p> dtReject.Visible = False</p><p><
109、;b> Else</b></p><p> dtReject.value = .RejectDate</p><p><b> End If</b></p><p> If Len(.DisCardDate) = 0 Then</p><p> dtDisCard.Visible = Fals
110、e</p><p><b> Else</b></p><p> dtDisCard.value = .DisCardDate</p><p><b> End If</b></p><p><b> End With</b></p><p>&
111、lt;b> End Sub</b></p><p> Private Sub setTypeIndex(TypeNo As String)</p><p> Dim pos As Integer</p><p> TypeNo = TypeNo & "-"</p><p> With c
112、boTypeNO</p><p> For pos = 0 To .ListCount - 1</p><p> If Left(.List(pos), Len(TypeNo)) = TypeNo Then</p><p> .ListIndex = pos</p><p><b> Exit For</b>&l
113、t;/p><p><b> End If</b></p><p><b> Next</b></p><p><b> End With</b></p><p><b> End Sub</b></p><p> Privat
114、e Sub setDeptIndex(DeptNo As String)</p><p> Dim pos As Integer</p><p> DeptNo = DeptNo & "-"</p><p> With cboDepartment</p><p> For pos = 0 To .ListC
115、ount - 1</p><p> If Left(.List(pos), Len(DeptNo)) = DeptNo Then</p><p> .ListIndex = pos</p><p><b> Exit For</b></p><p><b> End If</b></p
116、><p><b> Next</b></p><p><b> End With</b></p><p><b> End Sub</b></p><p> Private Function getTypeNO() As String</p><p>
117、; Dim str As String</p><p> Dim pos As Integer</p><p> With cboTypeNO</p><p> str = .List(.ListIndex)</p><p><b> End With</b></p><p> pos
118、 = InStr(str, "-")</p><p> getTypeNO = Left(str, pos - 1)</p><p> End Function</p><p> Private Function getDeptNo() As String</p><p> Dim str As String<
119、;/p><p> Dim pos As Integer</p><p> With cboDepartment</p><p> str = .List(.ListIndex)</p><p><b> End With</b></p><p> pos = InStr(str, "
120、;-")</p><p> getDeptNo = Left(str, pos - 1)</p><p> End Function</p><p> Public Sub setStatus()</p><p> If theDevice.iid = 0 Then</p><p> cmdDele
121、te.Enabled = False</p><p> dtReject.Visible = False</p><p> dtDisCard.Visible = False</p><p><b> End If</b></p><p><b> End Sub</b></p>
122、<p> Private Function saveData() As Boolean</p><p> Dim DeviceNo As String</p><p> Dim DeviceModel As String</p><p> Dim DeviceName As String</p><p> Dim Ty
123、peNo As String</p><p> Dim DeptNo As String</p><p> Dim Price As String</p><p> Dim Cost As String</p><p> Dim PurchaseDate As String</p><p> saveData
124、 = False</p><p> DeviceNo = Trim(txtDeviceNo.Text)</p><p> DeviceModel = Trim(txtDeviceModel.Text)</p><p> DeviceName = Trim(txtDeviceName.Text)</p><p> Price = Tri
125、m(txtPrice.Text)</p><p> Cost = Trim(txtCost.Text)</p><p> PurchaseDate = FormatDateTime(dtPurchaseDate.value, vbShortDate)</p><p> If Len(DeviceNo) = 0 Then</p><p>
126、 MsgBox "請輸入設(shè)備編號"</p><p> Exit Function</p><p><b> End If</b></p><p> If cboTypeNO.ListIndex < 0 Then</p><p> MsgBox "請選擇設(shè)備類型!"&
127、lt;/p><p> Exit Function</p><p><b> End If</b></p><p> If cboDepartment.ListIndex < 0 Then</p><p> MsgBox "請選擇設(shè)備所屬部門!"</p><p> E
128、xit Function</p><p><b> End If</b></p><p> If IsNumeric(Price) = False Then</p><p> MsgBox "請輸入正確的價格!"</p><p> Exit Function</p><p&
129、gt;<b> End If</b></p><p> If IsNumeric(Cost) = False Then</p><p> MsgBox "請輸入正確的成本!"</p><p> Exit Function</p><p><b> End If</b>&
130、lt;/p><p> If IsDate(PurchaseDate) = False Then</p><p> MsgBox "請輸入正確的購買日期!"</p><p> Exit Function</p><p><b> End If</b></p><p> Wi
131、th theDevice</p><p> .DeviceNo = DeviceNo</p><p> .DeviceModel = DeviceModel</p><p> .DeviceName = DeviceName</p><p> .TypeNo = getTypeNO()</p><p> .D
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 固定資產(chǎn)管理系統(tǒng)畢業(yè)論文
- 固定資產(chǎn)管理系統(tǒng)畢業(yè)論文
- 固定資產(chǎn)管理系統(tǒng)畢業(yè)論文
- 企業(yè)固定資產(chǎn)管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——固定資產(chǎn)管理系統(tǒng)設(shè)計與實現(xiàn)
- 畢業(yè)論文范文——固定資產(chǎn)管理系統(tǒng)
- 固定資產(chǎn)管理系統(tǒng)_畢業(yè)設(shè)計論文
- 固定資產(chǎn)管理系統(tǒng)畢業(yè)設(shè)計論文
- 畢業(yè)論文范文——高校固定資產(chǎn)管理系統(tǒng)
- 畢業(yè)論文范文——企業(yè)固定資產(chǎn)管理系統(tǒng)
- a固定資產(chǎn)管理系統(tǒng)論文畢業(yè)設(shè)計
- 企業(yè)固定資產(chǎn)管理系統(tǒng)畢業(yè)論文(含外文翻譯)
- 財會畢業(yè)論文--固定資產(chǎn)核算與管理
- 固定資產(chǎn)的折舊畢業(yè)論文
- 固定資產(chǎn)投資審計畢業(yè)論文
- 固定資產(chǎn)管理系統(tǒng)畢業(yè)設(shè)計
- 固定資產(chǎn)論文 固定資產(chǎn)管理論文
- 論固定資產(chǎn)折舊畢業(yè)論文
- 固定資產(chǎn)折舊畢業(yè)論文docx
- 論固定資產(chǎn)折舊畢業(yè)論文
評論
0/150
提交評論