Delphi超市管理系統(tǒng)_第1頁(yè)
Delphi超市管理系統(tǒng)_第2頁(yè)
Delphi超市管理系統(tǒng)_第3頁(yè)
Delphi超市管理系統(tǒng)_第4頁(yè)
Delphi超市管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第1章 概述1.1 課題研究的背景與意義1.1.1 系統(tǒng)的應(yīng)用背景自從我國(guó)成功加入wto以后,隨著信息化浪潮的日益臨近,超市的經(jīng)營(yíng)管理機(jī)制也正在發(fā)生著巨大的變化,超市要想在激烈的市場(chǎng)競(jìng)爭(zhēng)環(huán)境下生存下來(lái),就必須有效地利用人才和時(shí)間以及信息,使它們相結(jié)合而產(chǎn)生優(yōu)勢(shì),并進(jìn)行有效的超市內(nèi)部的改革以及倉(cāng)庫(kù)的管理。因此,借助現(xiàn)代化的信息技術(shù)和管理的理論,建立超市的信息管理系統(tǒng)已經(jīng)迫在眉睫。本系統(tǒng)根據(jù)商品管理的業(yè)務(wù)的范圍和工作的特點(diǎn),給系統(tǒng)設(shè)計(jì)了包括商品經(jīng)營(yíng)管理、人員管理、商情信息管理等,能夠及時(shí)、準(zhǔn)確地反映超市經(jīng)濟(jì)活動(dòng)狀態(tài),成為超市內(nèi)各級(jí)管理人員的有力工具。這樣可以大大的減輕超市工作人員的工作量,并且全面

2、的提高超市倉(cāng)庫(kù)管理的管理效率和服務(wù)質(zhì)量,它操作很方便,并且功能齊全,給用戶節(jié)省了不少的寶貴時(shí)間,將使超市的管理水平和業(yè)務(wù)水平躍上新的臺(tái)階。1.1.2 系統(tǒng)的開(kāi)發(fā)意義前些年,企業(yè)的進(jìn)貨管理主要都是采用手工管理,而這幾年,隨著我國(guó)社會(huì)主義市場(chǎng)經(jīng)濟(jì)體制的鞏固和發(fā)展,在商業(yè)的流通領(lǐng)域產(chǎn)生了一個(gè)空前的發(fā)展階段,而面對(duì)商界的激烈的競(jìng)爭(zhēng),很多企業(yè)規(guī)模的不斷擴(kuò)大,并且經(jīng)營(yíng)項(xiàng)目的不斷增加,使得手工的管理已經(jīng)不能夠滿足企業(yè)發(fā)展的需要了。而由于每天的銷售量的增加,導(dǎo)致進(jìn)貨的次數(shù)變得頻繁。而進(jìn)貨次數(shù)的增加,就不免在業(yè)務(wù)上、財(cái)務(wù)上會(huì)出現(xiàn)大量的問(wèn)題,進(jìn)而會(huì)造成庫(kù)存數(shù)目的混亂,并最終導(dǎo)致管理混亂,形成一個(gè)惡性的循環(huán)。所以為

3、了規(guī)范企業(yè)的內(nèi)部管理,并提高企業(yè)的業(yè)務(wù)管理水平,而讓企業(yè)更好地服務(wù)于顧客,人們開(kāi)始想用計(jì)算機(jī)來(lái)代替手工操作管理業(yè)務(wù)1。這次系統(tǒng)的開(kāi)發(fā),主要包括基礎(chǔ)信息管理、采購(gòu)信息管理和系統(tǒng)輔助管理三大模塊?;A(chǔ)信息管理主要是對(duì)系統(tǒng)中要用到一些基礎(chǔ)信息進(jìn)行維護(hù)和管理;采購(gòu)信息管理主要是對(duì)采購(gòu)業(yè)務(wù)進(jìn)行管理;系統(tǒng)輔助管理主要有系統(tǒng)數(shù)據(jù)備份和用戶賬號(hào)管理兩大功能。本信息管理系統(tǒng)的使用,使得企業(yè)的組織結(jié)構(gòu)更加的簡(jiǎn)化,使得傳統(tǒng)的企業(yè)中的物價(jià)、核算等部門(mén)的工作完全被計(jì)算機(jī)相關(guān)功能代替,這樣,就節(jié)省了這些部門(mén)的設(shè)備和人工費(fèi)用的支出。從而使企業(yè)獲得更大的經(jīng)濟(jì)效益。1.2 系統(tǒng)開(kāi)發(fā)的實(shí)驗(yàn)基礎(chǔ)與理論基礎(chǔ)1.2.1 系統(tǒng)開(kāi)發(fā)的實(shí)驗(yàn)

4、基礎(chǔ)對(duì)于技術(shù)的可行性:開(kāi)發(fā)連鎖超市信息管理系統(tǒng)(基于delphi),要求開(kāi)發(fā)人員都能夠熟練的運(yùn)用delphi等編程語(yǔ)言。目前的技術(shù)人員已經(jīng)掌握了這些編程語(yǔ)言。所以,本次系統(tǒng)的開(kāi)發(fā)在技術(shù)上是可行的。對(duì)于時(shí)間的可行性:開(kāi)發(fā)的時(shí)間大概需要四個(gè)月左右。前三個(gè)月,主要用于系統(tǒng)的分析、設(shè)計(jì)、實(shí)現(xiàn),而后面的時(shí)間則主要用于調(diào)試工作。對(duì)于資金的可行性:因?yàn)槟壳耙延须娔X設(shè)備,為開(kāi)發(fā)工作提供了所需的硬件基礎(chǔ),所以在開(kāi)發(fā)資金方面也是可行的。1.2.2 系統(tǒng)開(kāi)發(fā)的理論基礎(chǔ)信息管理系統(tǒng)是一個(gè)信息化、智能化以及具有先進(jìn)管理理念的集合體。但是由于管理它是一個(gè)動(dòng)態(tài)的過(guò)程,所以在它的運(yùn)行過(guò)程中還需要采取多種措施2。在管理中獲得的

5、經(jīng)濟(jì)效益是一種綜合的效益,而要對(duì)它來(lái)進(jìn)行直接的定量的分析是非常困難的,對(duì)于一般的新系統(tǒng),它們帶來(lái)的經(jīng)濟(jì)效益是明顯的,而信息管理系統(tǒng)最主要的表現(xiàn)就是減少了企業(yè)的管理費(fèi)用和人力資源的開(kāi)支。對(duì)于其它的一些繁瑣事物將都通過(guò)系統(tǒng)來(lái)加以分析和解決,這樣就不僅節(jié)省了大量的時(shí)間,而且還為企業(yè)的各項(xiàng)決策提供了可信的數(shù)據(jù)材料,必將為企業(yè)帶來(lái)巨大的經(jīng)濟(jì)效益3。1.3 本文主要內(nèi)容及組織結(jié)構(gòu)1.3.1主要內(nèi)容由于連鎖超市信息管理系統(tǒng)的工程量很大,本文只對(duì)其子系統(tǒng)基礎(chǔ)信息管理系統(tǒng)進(jìn)行詳細(xì)的研究和開(kāi)發(fā)?;A(chǔ)信息管理系統(tǒng)的主要組成模塊包括:登錄模塊、基礎(chǔ)信息設(shè)置模塊、采購(gòu)信息設(shè)置模塊和系統(tǒng)輔助管理模塊。對(duì)這些模塊進(jìn)行了詳細(xì)

6、的分析設(shè)計(jì)與實(shí)現(xiàn),并進(jìn)行了測(cè)試工作,最后結(jié)果顯示是可行的。因?yàn)閭鹘y(tǒng)的基礎(chǔ)信息管理是使用的各類表單來(lái)記錄的數(shù)據(jù),到最后還需要盤(pán)點(diǎn)或者統(tǒng)計(jì),這樣是十分耗費(fèi)時(shí)間和人力的。而采用基礎(chǔ)信息管理系統(tǒng)對(duì)貨物的進(jìn)出的情況進(jìn)行管理,則可以非常方便地做好各類統(tǒng)計(jì),并且給生產(chǎn)和銷售人員及時(shí)提供相關(guān)貨物信息4。這個(gè)系統(tǒng)主要實(shí)現(xiàn)了基礎(chǔ)信息管理的自動(dòng)化,其中主要包括商品的添加、刪除、查詢和修改的操作,以及廠商和職員的相關(guān)信息的管理,例如:對(duì)于廠商的信息管理、職員所屬部門(mén)的管理。這個(gè)系統(tǒng)使用了sql server2000作為后臺(tái)的數(shù)據(jù)庫(kù)來(lái)管理系統(tǒng),并且在前端使用了 ado組件來(lái)訪問(wèn)實(shí)際的數(shù)據(jù)庫(kù)內(nèi)容。1.3.2 組織結(jié)構(gòu)第一

7、章 概述,介紹本系統(tǒng)的研究背景,超市信息管理系統(tǒng)的發(fā)展趨勢(shì),本系統(tǒng)開(kāi)發(fā)的意義以及系統(tǒng)開(kāi)發(fā)的基礎(chǔ)。第二章 開(kāi)發(fā)技術(shù)分析與研究,包括系統(tǒng)開(kāi)發(fā)模式分析,開(kāi)發(fā)工具delphi概述,delphi中常用組件的屬性及事件,數(shù)據(jù)庫(kù)組件的用法,ado 組件的用法等。第三章 系統(tǒng)的概要設(shè)計(jì)及分析,包括系統(tǒng)功能模塊設(shè)計(jì),系統(tǒng)流程分析。第四章 系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn),包括數(shù)據(jù)庫(kù)的設(shè)計(jì),系統(tǒng)工程框架的創(chuàng)建,基礎(chǔ)數(shù)據(jù)模塊設(shè)計(jì),采購(gòu)信息管理模塊設(shè)計(jì),系統(tǒng)輔助管理模塊設(shè)計(jì)。第五章 系統(tǒng)的測(cè)試,包括系統(tǒng)的運(yùn)行流程,系統(tǒng)各個(gè)窗體的詳細(xì)測(cè)試。第2章 開(kāi)發(fā)技術(shù)分析與研究2.1 開(kāi)發(fā)模式的分析目前,用于信息管理系統(tǒng)的開(kāi)發(fā)工具有很多,如開(kāi)

8、發(fā)本系統(tǒng)所用到的delphi,此外,還有諸如vb、vc、asp.net等等,而使用delphi開(kāi)發(fā)信息管理系統(tǒng)的優(yōu)點(diǎn)就是,它的界面很容易實(shí)現(xiàn),語(yǔ)法結(jié)構(gòu)也較簡(jiǎn)單,而它的缺點(diǎn)就是不能很好的實(shí)現(xiàn)b/s或者c/s的模式,而相比之下,asp.net的優(yōu)點(diǎn)就是比較容易實(shí)現(xiàn)b/s模式,這些都是由語(yǔ)言自身的特點(diǎn)來(lái)決定的。如今,在國(guó)內(nèi)外比較流行的兩種開(kāi)發(fā)模式分別是:b/s模式和c/s模式。b/s是brower/server的縮寫(xiě),客戶機(jī)上只要安裝一個(gè)瀏覽器(browser),如netscape navigator或internet explorer,服務(wù)器安裝oracle、sybase、informix或sql

9、 server等數(shù)據(jù)庫(kù)。瀏覽器通過(guò)web server 同數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互;c/s是client/server的縮寫(xiě),服務(wù)器通常采用高性能的pc、工作站或小型機(jī),并采用大型數(shù)據(jù)庫(kù)系統(tǒng),如oracle、sybase、informix或sql server。客戶端需要安裝專用的客戶端軟件。c/s 架構(gòu)的優(yōu)點(diǎn)主要是:第一、其應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)的負(fù)荷比較輕。第二、它的數(shù)據(jù)的儲(chǔ)存管理功能是比較透明的。但是c/s架構(gòu)軟件的缺點(diǎn)是:其維護(hù)的成本比較大且投資也比較大,其次,對(duì)于傳統(tǒng)的c/s結(jié)構(gòu)的軟件,需要對(duì)不同的操作系統(tǒng)開(kāi)發(fā)不同版本的軟件,而由于產(chǎn)品的更新?lián)Q代速度非常快,帶來(lái)很大的更新工作要做。所以,它的代

10、價(jià)是很高的,相對(duì)很低的效率使得其已經(jīng)不適應(yīng)工作的需要了。特別是在像java這樣的跨平臺(tái)語(yǔ)言出現(xiàn)了以后,b/s架構(gòu)模式更是強(qiáng)烈的沖擊了c/s架構(gòu),并且對(duì)它形成了巨大的挑戰(zhàn)。b/s架構(gòu)軟件的優(yōu)點(diǎn)主要是:第一、其維護(hù)和升級(jí)方式比較簡(jiǎn)單,第二、它的成本降低了,使得選擇變得更多一些5。本系統(tǒng)是一個(gè)c/s模式的系統(tǒng),本系統(tǒng)使用了delphi7.0 的許多面向?qū)ο蟮慕M件,比如:adodataset組件、adotable組件等,系統(tǒng)中還有sql命令語(yǔ)句的應(yīng)用、跨表的查詢、分組的統(tǒng)計(jì)以及分組篩選等關(guān)鍵技術(shù)。還有諸如建立主副明細(xì)表等等相關(guān)技術(shù)。要讓系統(tǒng)的管理具有良好的可操作性,系統(tǒng)的功能具有可擴(kuò)充性,并且盡量使系

11、統(tǒng)的功能完善,這就是設(shè)計(jì)軟件系統(tǒng)的核心思想6。用戶在進(jìn)入系統(tǒng)之前都要進(jìn)行權(quán)限的檢測(cè),而在執(zhí)行各大模塊的相關(guān)功能時(shí)侯,也需要對(duì)操作的權(quán)限進(jìn)行判定和限制,系統(tǒng)的幾個(gè)模塊之間的關(guān)系也是密切的聯(lián)系的7。2.2 開(kāi)發(fā)工具delphi 7.0概述世界著名的borland公司開(kāi)發(fā)的delphi 7.0是一種可視化的軟件開(kāi)發(fā)工具為我們提供了一種方便、快捷的windows應(yīng)用程序開(kāi)發(fā)工具,它使用了microsoft windows圖形用戶界面的許多先進(jìn)特性和設(shè)計(jì)思想。delphi被稱為是第四代的編程語(yǔ)言,因?yàn)樗哂泻?jiǎn)單、高效、功能強(qiáng)大等特點(diǎn)。我們把delphi和vc相比,delphi更簡(jiǎn)單、更易于掌握,而在功能

12、上面卻是絲毫不遜色的;和vb相比,delphi功能更強(qiáng)大、更實(shí)用。可以說(shuō)delphi同時(shí)兼?zhèn)淞藇c功能強(qiáng)大的特點(diǎn)和vb簡(jiǎn)單易學(xué)的特點(diǎn)。delphi一直都是程序員最喜歡的編程工具。對(duì)于delphi它具有以下的特點(diǎn),它是基于窗體的和采用了面向?qū)ο蟮姆椒ǎ鋼碛懈咚俚木幾g器,并且還有強(qiáng)大的數(shù)據(jù)庫(kù)支持,它與windows平臺(tái)編程緊密的結(jié)合,還有成熟的組件技術(shù)。然而最重要的還得是object pascal語(yǔ)言,它才是一切的根本。object pascal語(yǔ)言是在pascal語(yǔ)言的基礎(chǔ)之上發(fā)展起來(lái)的,它簡(jiǎn)單易學(xué)8。在delphi語(yǔ)言中,提供了多種開(kāi)發(fā)工具,其中包括集成環(huán)境、圖像編輯,還有各種開(kāi)發(fā)數(shù)據(jù)庫(kù)的應(yīng)

13、用程序,比如:desktopdatabase expert等。并且除此之外,delphi還允許用戶掛接其它的應(yīng)用程序開(kāi)發(fā)工具,比如:掛接borland公司的資源編輯器resourse workshop等。delphi有很多的優(yōu)勢(shì),特別是它在數(shù)據(jù)庫(kù)方面的特長(zhǎng)顯得特別突出,因?yàn)樗m應(yīng)于多種數(shù)據(jù)庫(kù)的結(jié)構(gòu),它不僅適合客戶機(jī)/服務(wù)器模式,它還支持多層數(shù)據(jù)結(jié)構(gòu)模式,它擁有高效率的數(shù)據(jù)庫(kù)管理系統(tǒng)以及新一代的先進(jìn)的數(shù)據(jù)庫(kù)引擎,它還具有最新的數(shù)據(jù)分析手段,并且其還提供了大量的企業(yè)組件供開(kāi)發(fā)者使用。2.3 delphi中常用組件通用屬性及事件delphi中每個(gè)組件都有自己的屬性、事件和方法,而可視組件存在著一些共

14、性的屬性和事件??梢暯M件的通用屬性如表2-1所示。表2-1 通用屬性屬性設(shè)置說(shuō)明anchors適用于大部分組件。當(dāng)組件的父窗口的大小發(fā)生變化時(shí),該屬性值描述了組件的各邊與父窗口邊框的位置。參數(shù)有akleft,aktop,akbottom和akright,把這些參數(shù)值設(shè)為true后,分別說(shuō)明組件的左邊、上邊、底邊和右邊相對(duì)父窗口的左、上、底、右邊框的距離不變borderwidth適用于窗口組件,定義窗口組件的寬度boundsrect適用于所有組件,定義組件的邊框矩形,只用于運(yùn)行時(shí)caption適用于大部分組件,說(shuō)明組件的標(biāo)題constraints適用于所有組件,確定組件改變大小時(shí)的最大尺寸和最小

15、尺寸color適用于大部分組件,確定組建的表面或者背景顏色enable適用于所有組件,確定組件的功能是否被禁用font適用于所有組件,確定組件內(nèi)字體name適用于所有組件,組建的名稱,要區(qū)別于captionpopupmenu適用于所有組件,定義當(dāng)用戶在組件上單擊鼠標(biāo)右鍵時(shí)的彈出菜單visible適用于所有組件,確定組件是否可見(jiàn)可視組件的通用事件如表2-2所示。表2-2 通用事件屬性設(shè)置說(shuō)明onchange適用于多數(shù)組件,在對(duì)象或其內(nèi)數(shù)據(jù)發(fā)生變化時(shí),如編輯框中的文本發(fā)生改變時(shí)onclick適用于多數(shù)組件,此事件發(fā)生在用戶鼠標(biāo)左鍵單擊組件時(shí)ondblclick適用于多數(shù)組件,此事件發(fā)生在用戶鼠標(biāo)雙

16、擊組件時(shí)onenter適用于所有組件,此事件發(fā)生在當(dāng)此組件為激活狀態(tài)時(shí)onexit適用于所有組件,此事件發(fā)生在當(dāng)此組件失去焦點(diǎn)時(shí)2.4 數(shù)據(jù)庫(kù)控件的用法delphi使用可視化的控件創(chuàng)建數(shù)據(jù)庫(kù)應(yīng)用程序,數(shù)據(jù)庫(kù)控件都具備一定的屬性,程序設(shè)計(jì)人員在設(shè)計(jì)過(guò)程中設(shè)置控件的多種屬性,也可以在程序運(yùn)行過(guò)程中通過(guò)程序來(lái)設(shè)置部件的各種屬性。2.4.1 ado控件的使用ado控件又稱ado組件,最常用的ado對(duì)象是連接(connection)、命令(command)和數(shù)據(jù)集(recordset)對(duì)象,這些對(duì)象被相應(yīng)的封裝成為對(duì)應(yīng)的控件放置在ado控件面板上,ado控件板如圖2-1所示。圖2-1 ado數(shù)據(jù)集訪問(wèn)控

17、件板在delphi的ado面板中一共有7個(gè)主要組件,它們分別是:(1)adoconnection組件:adoconnection組件封裝了ado連接對(duì)象,利用adoconnection組件來(lái)連接ado數(shù)據(jù)存儲(chǔ)。通過(guò)設(shè)置組件的屬性,使得單個(gè)adoconnection組件所提供的連接可以被多個(gè)ado命令或數(shù)據(jù)集所共享。adoconnection組件允許客戶端控制數(shù)據(jù)存儲(chǔ)的屬性和條件。使用adoconnection組件可以控制記錄枷鎖、記錄指針類型、隔離級(jí)別和連接超時(shí)等。該組件在它所連接的數(shù)據(jù)庫(kù)中提供事務(wù)管理和恢復(fù)原數(shù)據(jù)等操作。(2)adodataset組件:adodataset組件時(shí)最常用的ado

18、數(shù)據(jù)集組件。adodataset組件具有從一個(gè)或多個(gè)ado數(shù)據(jù)源中找到結(jié)果集的功能。結(jié)果集可以直接從數(shù)據(jù)表中讀取,也可以通過(guò)sql語(yǔ)句從一個(gè)或多個(gè)數(shù)據(jù)表得到。在使用之前,必須連接adodataset組件至某個(gè)數(shù)據(jù)源??梢酝ㄟ^(guò)該組件的connectionstring屬性寫(xiě)入相關(guān)連接字符,也可以在連接屬性中指定通過(guò)adoconnection組件已經(jīng)建立的連接。使用adodataset組件的commandtext屬性找到所需的數(shù)據(jù)集,可以指定一個(gè)數(shù)據(jù)表名,也可以寫(xiě)入sql語(yǔ)句(只限于select查詢語(yǔ)句)。adodataset組件沒(méi)有處理sql語(yǔ)句的數(shù)據(jù)操縱語(yǔ)言的功能,因?yàn)樗荒芊祷亟Y(jié)果集。(3)a

19、dotable組件:adotable組件主要是用于操作和提取單個(gè)基表的數(shù)據(jù),adotable組件也可以直接連接到數(shù)據(jù)庫(kù),還可以通過(guò)adoconnection連接到數(shù)據(jù)庫(kù)。(4)adoquery組件:adoquery組件用來(lái)在底層的ado數(shù)據(jù)源中應(yīng)用sql語(yǔ)言。使用該控件可以訪問(wèn)多個(gè)表。使用select語(yǔ)句從ado數(shù)據(jù)源的數(shù)據(jù)表中讀取數(shù)據(jù)。在ado數(shù)據(jù)源的數(shù)據(jù)表或其他源數(shù)據(jù)對(duì)象中執(zhí)行insert、delete、update、alter table以及create table等操作。(5)adostoredproc組件:當(dāng)客戶機(jī)端應(yīng)用程序要使用數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程時(shí),要使用adostoredproc

20、組件。一個(gè)存儲(chǔ)過(guò)程是一組sql命令語(yǔ)句的集合,作為源數(shù)據(jù)的一部分存儲(chǔ)在數(shù)據(jù)庫(kù)中,根據(jù)服務(wù)器上與數(shù)據(jù)庫(kù)相關(guān)的任務(wù)指示執(zhí)行,并把執(zhí)行結(jié)果返回給客戶端。(6)adocommand組件:adocommand組件描述了ado命令對(duì)象。利用adocommand空間可以通過(guò)ado提供者來(lái)實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)。adocommand組件執(zhí)行的是commandtext屬性中的指定的命令,命令可能在執(zhí)行過(guò)程中需要某些參數(shù),如果命令包括有關(guān)參數(shù),則必須在parameters屬性中指定,命令通過(guò)調(diào)用execute方法執(zhí)行有關(guān)命令。adocommand組件使用組件對(duì)象去連接一個(gè)數(shù)據(jù)源(通過(guò)它的連接屬性)或者直接連接到數(shù)據(jù)源,前提

21、是連接信息在connectionstring屬性中被指定。adocommand組件常常被用于執(zhí)行sql命令或者執(zhí)行一個(gè)不返回結(jié)果集的存儲(chǔ)過(guò)程。通過(guò)執(zhí)行adocommand組件的execute方法可能返回一個(gè)結(jié)果集。為了使用這些結(jié)果集,需要一個(gè)獨(dú)立的ado數(shù)據(jù)集組件。(7)rdsconnection組件:rdsconnection組件是連接一個(gè)進(jìn)程或一臺(tái)計(jì)算機(jī)傳遞到另一個(gè)進(jìn)程或計(jì)算機(jī)的數(shù)據(jù)集合。2.4.2 tdatasource控件與tdbgrid控件tdatasource控件與tdbgrid控件在數(shù)據(jù)庫(kù)開(kāi)發(fā)中經(jīng)常是成對(duì)出現(xiàn)的。作為數(shù)據(jù)感應(yīng)控件,tdbgrid控件的主要作用是通過(guò)tdatasou

22、rce控件連接數(shù)據(jù)集(如tadoquery),以各種方式顯示數(shù)據(jù)庫(kù)中的數(shù)據(jù),并提供客戶端瀏覽的界面。tdatasource控件對(duì)象tdatasource控件時(shí)不可視的,是聯(lián)系數(shù)據(jù)感應(yīng)控件(tdbgrid)和數(shù)據(jù)集(tadoquery)的橋梁,它位于數(shù)據(jù)訪問(wèn)控件板上,如圖2-2所示。圖2-2 數(shù)據(jù)訪問(wèn)控件板及tdatasource控件通過(guò)查看控件tdatasource的state屬性值可以確定與一個(gè)數(shù)據(jù)源控件相連的數(shù)據(jù)集控件的當(dāng)前狀態(tài)。數(shù)據(jù)集控件的當(dāng)前狀態(tài)表明了對(duì)數(shù)據(jù)集的相應(yīng)操作。利用數(shù)據(jù)源控件可以更好的協(xié)調(diào)各個(gè)數(shù)據(jù)感應(yīng)控件,保持和數(shù)據(jù)集的一致,一般來(lái)說(shuō)對(duì)tdatasource編寫(xiě)代碼很少。使用

23、時(shí)設(shè)置好dataset屬性之后,即可以將tdatasource控件指定為數(shù)據(jù)感應(yīng)控件的datasource屬性值。tdbgrid控件是顯示和編輯數(shù)據(jù)庫(kù)中表的重要控件,它是在數(shù)據(jù)庫(kù)應(yīng)用程序中使用最多最為靈活的一個(gè)控件,利用該控件可以設(shè)計(jì)一個(gè)靈活的用戶界面。2.4.3 tclientdataset控件與tdatasetprovider控件對(duì)數(shù)據(jù)庫(kù)的操作封裝成類后,使用tclientdataset控件和tdatasetprovider控件來(lái)顯示數(shù)據(jù)的查詢結(jié)果就很方便。通過(guò)tclientdataset控件可以建立客戶端的應(yīng)用程序,且數(shù)據(jù)執(zhí)行效率較高,但tclientdataset控件不能和數(shù)據(jù)庫(kù)自動(dòng)連

24、接,程序中必須指定tclientdataset控件如何獲取數(shù)據(jù)。一般情況下,tclientdataset控件獲取數(shù)據(jù)的方式主要有三種:從本地文件中獲取、從本地的另外一個(gè)數(shù)據(jù)集對(duì)象中獲取以及通過(guò)iappserver接口來(lái)獲取。在實(shí)際應(yīng)用tclientdataset控件時(shí)一般使用控件的屬性較多,而該控件的事件很少應(yīng)用。tdatasetprovider控件基于數(shù)據(jù)集為應(yīng)用程序中的其他控件提供數(shù)據(jù),并將對(duì)數(shù)據(jù)的更新傳回?cái)?shù)據(jù)集或者數(shù)據(jù)集相關(guān)的數(shù)據(jù)庫(kù)服務(wù)器。tdatasetprovider控件通常用于為tclientdataset控件提供數(shù)據(jù),可以是應(yīng)用程序的一部分,也可以被放置在多層數(shù)據(jù)庫(kù)應(yīng)用服務(wù)器上,

25、以充做遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)器和客戶端數(shù)據(jù)集的中介。2.5 本章小結(jié)本章是對(duì)系統(tǒng)開(kāi)發(fā)技術(shù)分析與研究,在開(kāi)發(fā)模式上采用c/s架構(gòu),并對(duì)開(kāi)發(fā)工具delphi進(jìn)行了深入的研究。本系統(tǒng)使用sql server2000作為后臺(tái)的數(shù)據(jù)庫(kù)來(lái)管理系統(tǒng),在前端使用ado組件來(lái)訪問(wèn)實(shí)際的數(shù)據(jù)庫(kù)內(nèi)容。所以對(duì)基本的 sql 語(yǔ)句需要熟悉,比如添加、查詢、修改和刪除記錄語(yǔ)句等等。而對(duì)delphi中的數(shù)據(jù)庫(kù)組件的使用,也需要了解掌握。這些都是本系統(tǒng)中需要使用的相關(guān)知識(shí),熟練運(yùn)用這些知識(shí),有利于系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)。第3章 系統(tǒng)概要設(shè)計(jì)及分析3.1 系統(tǒng)功能模塊設(shè)計(jì)基礎(chǔ)信息管理系統(tǒng)的主要組成模塊包括:登錄模塊、基礎(chǔ)信息設(shè)置模塊、采購(gòu)信

26、息設(shè)置模塊和系統(tǒng)輔助管理模塊四大模塊。商品基本信息廠商基本信息職員基本信息進(jìn)貨價(jià)格控制廠單錄入系統(tǒng)數(shù)據(jù)備份用戶賬號(hào)管理超市管理信息系統(tǒng)基礎(chǔ)數(shù)據(jù)設(shè)置采購(gòu)信息管理系統(tǒng)輔助管理最終實(shí)現(xiàn)功能模塊如圖3-1所示。圖3-1 系統(tǒng)功能模塊圖1.基礎(chǔ)信息管理基礎(chǔ)信息管理主要是對(duì)系統(tǒng)中要用到一些基礎(chǔ)信息進(jìn)行維護(hù)和管理,包括商品基本信息、廠商基本信息和職員基本信息?;拘畔⒐芾硪獙?shí)現(xiàn)以下的功能:添加、刪除、查詢和修改商品基礎(chǔ)信息,包括商品編號(hào)、商品名稱、供應(yīng)商編號(hào)和商品重量等。添加、刪除、查詢和修改廠商基礎(chǔ)信息,包括商品的供應(yīng)商信息,包括廠商編號(hào)、廠商名稱,廠商地址、聯(lián)系方式等。添加、刪除、查詢和修改職員基礎(chǔ)信息

27、,包括職員的編號(hào)、名稱、所在部門(mén)、聯(lián)系方式等。2.采購(gòu)信息管理采購(gòu)信息管理主要是對(duì)采購(gòu)業(yè)務(wù)進(jìn)行管理,包括采購(gòu)業(yè)務(wù)中所涉及到的價(jià)格控制、詢價(jià)以及廠單的錄入。采購(gòu)信息管理要實(shí)現(xiàn)的功能有:進(jìn)貨價(jià)格控制,通過(guò)錄入進(jìn)貨價(jià)格和價(jià)格參數(shù)指定商品的銷售價(jià)格;廠單信息錄入,對(duì)采購(gòu)的商品信息進(jìn)行錄入操作。3.系統(tǒng)輔助管理系統(tǒng)輔助管理主要有系統(tǒng)數(shù)據(jù)備份和用戶賬號(hào)管理兩大主要功能。3.2 系統(tǒng)流程分析第一、用戶啟動(dòng)系統(tǒng),系統(tǒng)首先將進(jìn)行初始化。第二、系統(tǒng)將激活登陸口令界面,供用戶進(jìn)行登錄驗(yàn)證。第三、驗(yàn)證成功后,用戶便進(jìn)入系統(tǒng),根據(jù)管理的需要,超市管理信息系統(tǒng)有系統(tǒng)管理員和普通用戶兩種登錄賬號(hào),不同的登錄賬號(hào)具有不同的操

28、作權(quán)限,系統(tǒng)將通過(guò)事件驅(qū)動(dòng)機(jī)制來(lái)激活相應(yīng)的功能模塊,并且執(zhí)行其相應(yīng)的功能。驗(yàn)證失敗重新登錄普通用戶1.查詢基礎(chǔ)數(shù)據(jù),包括商品信息、廠商信息和職員信息2.查詢商品價(jià)格信息3.查詢單據(jù)信息4.進(jìn)行銷售排行統(tǒng)計(jì)5.修改自己的賬號(hào)1.可以進(jìn)行基礎(chǔ)數(shù)據(jù)、采購(gòu)信息、銷售信息的添加、修改、刪除和查詢操作2.管理所有用戶賬號(hào)3.系統(tǒng)數(shù)據(jù)備份啟動(dòng)程序用戶登錄用戶權(quán)限系統(tǒng)管理員系統(tǒng)流程圖如圖3-2所示圖3-2 系統(tǒng)流程圖3.3 本章小結(jié)本章是對(duì)超市信息管理系統(tǒng)的概要設(shè)計(jì),畫(huà)出了系統(tǒng)功能模塊圖,對(duì)系統(tǒng)的處理流程做了一些分析。對(duì)于系統(tǒng)的功能模塊設(shè)計(jì),依照需求分析,將系統(tǒng)分為四大主要模塊:分別是登錄模塊、基礎(chǔ)信息設(shè)置模

29、塊、采購(gòu)信息設(shè)置模塊和系統(tǒng)輔助管理模塊四大模塊。并且對(duì)每個(gè)模塊的內(nèi)部做了具體的設(shè)計(jì),每個(gè)模塊包含那些子模塊,都進(jìn)行了分析。第4章 系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)包括超市管理信息系統(tǒng)數(shù)據(jù)庫(kù)的創(chuàng)建、數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)的設(shè)計(jì)。4.1.1 創(chuàng)建數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)可以在企業(yè)管理器中直接創(chuàng)建,也可以在查詢分析器中通過(guò)輸入代碼來(lái)創(chuàng)建,在查詢分析器中輸入以下代碼:create database trademgon(name=trademg, /設(shè)置數(shù)據(jù)庫(kù)名稱/以下設(shè)置數(shù)據(jù)數(shù)據(jù)文件的路徑、大小filename=c:programfilesmicrosoft sql servermssqldatatrad

30、emg.mdf,size=10mb,maxsize=50mb,filegrowth=10mb)/以下設(shè)置數(shù)據(jù)庫(kù)日志文件的路徑、大小log on(name=trademg_log,filename= c:programfilesmicrosoft sql servermssqldatatrademg_log.ldf,size=10mb,maxsize=50mb,filegrowth=5mb)4.1.2 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)根據(jù)系統(tǒng)設(shè)計(jì)的要求對(duì)數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)進(jìn)行設(shè)計(jì)。設(shè)計(jì)時(shí)既要考慮到前面的系統(tǒng)設(shè)計(jì)階段提出的要求,又要考慮到數(shù)據(jù)庫(kù)設(shè)計(jì)的一些規(guī)則,如關(guān)鍵字的設(shè)置和外鍵的設(shè)置等。本系統(tǒng)包含9張表:商品信

31、息表(cominfo)、商品銷售價(jià)格控制表(saleprice)、商品進(jìn)貨價(jià)格控制表(purprice)、廠商信息表(corpinfo)、客單信息明細(xì)表(custlistinfo)、廠單信息主表(corplist)、廠單信息明細(xì)表(corplistinfo)、職員信息表(operinfo)和用戶賬號(hào)表(usertable)。(1)商品信息表cominfo,記錄商品的主要信息,結(jié)構(gòu)如表4-1所示。表4-1 表cominfo的結(jié)構(gòu)編號(hào)字段名稱數(shù)據(jù)類型說(shuō)明1comidvarchar(10)商品編號(hào),關(guān)鍵字2comnamevarchar(20)商品名稱3unitvarchar(6)商品單位4weigh

32、tfloat商品重量5corpidvarchar(3)廠商編號(hào)6remarkvarchar(255)備注(2)商品銷售價(jià)格控制表saleprice,對(duì)商品的銷售價(jià)格進(jìn)行設(shè)置。結(jié)構(gòu)如表4-2所示。表4-2 表saleprice的結(jié)構(gòu)編號(hào)字段名稱數(shù)據(jù)類型說(shuō)明1comidvarchar(10)商品編號(hào),關(guān)鍵字2outpricemaxfloat最大銷售價(jià)格3outpriceminfloat最小銷售價(jià)格(3)商品進(jìn)貨價(jià)格控制表purprice,是對(duì)商品的進(jìn)貨價(jià)格及其允許的利潤(rùn)率進(jìn)行設(shè)置,結(jié)構(gòu)如表4-3所示。表4-3 表purprice的結(jié)構(gòu)編號(hào)字段名稱數(shù)據(jù)類型說(shuō)明1comidvarchar(10)商品編

33、號(hào),關(guān)鍵字2inpricefloat進(jìn)貨價(jià)格3ratemaxfloat最大利潤(rùn)率4rateminfloat最小利潤(rùn)率(4)廠商信息表corpinfo,記錄商品所對(duì)應(yīng)廠商的基本信息,結(jié)構(gòu)如表4-4所示。表4-4 表corpinfo的結(jié)構(gòu)編號(hào)字段名稱數(shù)據(jù)類型說(shuō)明1corpidvarchar(3)廠商編號(hào),關(guān)鍵字2corpnamevarchar(30)廠商名稱3linkmanvarchar(10)聯(lián)系人4linkphonevarchar(12)聯(lián)系電話5addressvarchar(50)地址6faxvarchar(12)傳真(5)銷售信息表custlistinfo,主要記錄商品的銷售情況,結(jié)構(gòu)如表

34、4-5所示。表4-5 表custlistinfo的結(jié)構(gòu)編號(hào)字段名稱數(shù)據(jù)類型說(shuō)明1recordnoint記錄號(hào),關(guān)鍵字2comidvarchar(10)商品編號(hào)3comnumint商品數(shù)量4moneyfloat金額5operatorvarchar(10)經(jīng)手人6datedatetime銷售日期(6)廠單信息主表corplist,廠單是指進(jìn)貨時(shí)與商品附在一起的單據(jù),其主要內(nèi)容有兩項(xiàng):廠單主信息和廠單明細(xì)信息。廠單主信息是指廠單信息主表所記錄的信息,廠單信息主表的結(jié)構(gòu)如表4-6所示。表4-6 表corplist的結(jié)構(gòu)編號(hào)字段名稱數(shù)據(jù)類型說(shuō)明1corplistidvarchar(12)廠單編號(hào),關(guān)鍵字

35、2corplistdatedatetime進(jìn)貨日期3operatorvarchar(10)經(jīng)手人4corpidvarchar(3)廠商編號(hào)5givedatedatetime支付日期(7)廠單信息明細(xì)表corplistinfo,主要紀(jì)錄廠單明細(xì)信息,結(jié)構(gòu)如表4-7所示。表4-7 表corplistinfo的結(jié)構(gòu)編號(hào)字段名稱數(shù)據(jù)類型說(shuō)明1recordnoint記錄號(hào),關(guān)鍵字2corplistidvarchar(12)廠單編號(hào)3comidvarchar(10)商品編號(hào)4comnumint商品數(shù)量5moneyfloat金額6comtimesvarchar(5)商品進(jìn)貨批次號(hào)(8)職員信息表operin

36、fo,主要記錄公司職員的基本信息,結(jié)構(gòu)如表4-8所示。表4-8 表operinfo的結(jié)構(gòu)編號(hào)字段名稱數(shù)據(jù)類型說(shuō)明1operidvarchar(5)職員編號(hào),關(guān)鍵字2opernamevarchar(10)職員姓名3departmentvarchar(20)所在部門(mén)4linkphonevarchar(12)聯(lián)系電話(9)用戶賬號(hào)表usertable,主要是對(duì)不同級(jí)別賬號(hào)進(jìn)行設(shè)置,結(jié)構(gòu)如表4-9所示。表4-9 表usertable的結(jié)構(gòu)編號(hào)字段名稱數(shù)據(jù)類型說(shuō)明1usernamevarchar(20)用戶名2userpwdvarchar(20)用戶密碼3userlevelvarchar(15)用戶級(jí)別

37、4.2 系統(tǒng)工程框架的創(chuàng)建系統(tǒng)框架包括創(chuàng)建工程項(xiàng)目、啟動(dòng)畫(huà)面、登錄窗體、數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)、系統(tǒng)主界面和工程項(xiàng)目的屬性設(shè)置等。4.2.1 創(chuàng)建工程項(xiàng)目及數(shù)據(jù)庫(kù)連接類工程項(xiàng)目創(chuàng)建的工程名為trademg.dpr。數(shù)據(jù)庫(kù)連接類可以通過(guò)拖放控件直接實(shí)現(xiàn),選擇filenewdata module9,將該data module取名為trade_datemod,其界面布局如圖4-1所示。圖4-1 trade_datamod的界面布局圖trade_datamod中使用的控件及其屬性設(shè)置如表4-10所示。表4-10 數(shù)據(jù)庫(kù)連接類使用的控件及其屬性設(shè)置對(duì)象屬性屬性值adocon(adoconnection控件)co

38、nnectionstring(連接到服務(wù)器上的trademg數(shù)據(jù)庫(kù)上)report_ado1(adoquery控件)connectionadocondsp1(datasetprovider控件)datasetadoq1adoq1(adoquery控件)connectionadoconadoq2(adoquery控件)connectionadocon4.2.2 數(shù)據(jù)表操作類的設(shè)計(jì)本系統(tǒng)中,對(duì)數(shù)據(jù)庫(kù)的連接和操作都被封裝成類,類名都以大寫(xiě)的“t”開(kāi)頭,后面加上對(duì)應(yīng)數(shù)據(jù)表名,類的單元文件名為數(shù)據(jù)表名后加上后綴名“_unit”,例如數(shù)據(jù)表名為cominfo,對(duì)應(yīng)的類名為tcominfo,對(duì)應(yīng)的單元文件為

39、cominfo_unit。每張數(shù)據(jù)表的操作都可以封裝到對(duì)應(yīng)類的方法和過(guò)程中,在使用類時(shí)要先實(shí)例化,使用完后要將實(shí)例釋放。4.2.3 創(chuàng)建啟動(dòng)畫(huà)面新建窗體firstfrm作為啟動(dòng)畫(huà)面,啟動(dòng)畫(huà)面中控件的設(shè)置如表4-11所示。表4-11 窗體firstfrm的控件使用及其設(shè)置對(duì)象屬性屬性取值formnamefirstfrmborderstylebsnonelabel1caption超市信息管理系統(tǒng)label2caption正在啟動(dòng)系統(tǒng),請(qǐng)稍候label3captionimage1picture(選取準(zhǔn)備好的圖片)alignalclient在窗體的oncreate事件中輸入以下代碼,以在啟動(dòng)畫(huà)面上顯示

40、啟動(dòng)時(shí)的日期:label3.caption:=今天是+datetostr(now);打開(kāi)“project”菜單,選擇“view source”項(xiàng),在“application.initialize;”后添加以下內(nèi)容:firstfrm:=tfirstfrm.create(application); /動(dòng)態(tài)創(chuàng)建啟動(dòng)畫(huà)面firstfrm.show; /顯示啟動(dòng)畫(huà)面firstfrm.update ; /更新啟動(dòng)畫(huà)面顯示sleep(2000); /調(diào)用windows函數(shù)所以要在uses里加windows接著在“application.run;”語(yǔ)句之前添加以下內(nèi)容。firstfrm.hide; /隱藏啟動(dòng)

41、畫(huà)面firstfrm.free; /釋放啟動(dòng)畫(huà)面4.2.4 創(chuàng)建登錄窗體新建窗體loginfrm作為登錄窗體的界面,用戶通過(guò)在登錄窗體中輸入正確的用戶名和密碼后即可進(jìn)入系統(tǒng)。登錄窗體的布局效果如圖4-2所示。圖4-2 登錄窗體布局效果圖登錄窗體調(diào)用了tusertable類,因此要在窗體代碼的uses語(yǔ)句中添加tusertable類的單元文件usertable_unit。同時(shí)要在窗體代碼private下聲明該窗體所調(diào)用類的實(shí)例名:privateusertable:tusertable;登錄窗體中主要實(shí)現(xiàn)對(duì)登錄用戶賬號(hào)的驗(yàn)證,該操作可以通過(guò)“確定”按鈕的onclick事件來(lái)實(shí)現(xiàn),代碼如下:proc

42、edure tloginfrm.button1click(sender: tobject);var b1:bool;beginuser1:=tusertable.create ; try /判斷用戶名是否存在b1:=user1.userrec(edit1.text);exceptloginfrm.hide;databaselink.show; exit;end;if b1=false thenbeginapplication.messagebox(對(duì)不起,沒(méi)有這個(gè)用戶名!,提示:,mb_ok);exit;endelsebeginif user1.getuserpwd(edit1.text)=e

43、dit2.text thenbegin userlevel:= user1.getuserlevel(edit1.text); if user1.getuserlevel(edit1.text)=系統(tǒng)管理員 then begin loginfrm.hide ; mainfrm.show; end else begin loginfrm.hide ;mainfrm.n1.enabled :=false;mainfrm.n12.enabled :=false;mainfrm.n4.enabled :=false;mainfrm.n21.enabled :=false;mainfrm.show; e

44、nd;endelsebeginapplication.messagebox(對(duì)不起,你的密碼不對(duì)!,提示:,mb_ok);edit2.setfocus ;end;end;end;登錄系統(tǒng)時(shí)既要檢查用戶名是否存在,還要驗(yàn)證密碼是否正確,并獲取用戶的權(quán)限供后面窗體調(diào)用。4.2.5 連接數(shù)據(jù)庫(kù)并創(chuàng)建用戶表新建窗體databaselink作為連接數(shù)據(jù)庫(kù)并初始化數(shù)據(jù)表的用戶操作界面。初次運(yùn)行系統(tǒng)時(shí)可以通過(guò)該用戶界面連接到相應(yīng)的數(shù)據(jù)庫(kù),并對(duì)用戶數(shù)據(jù)表進(jìn)行創(chuàng)建和初始化。窗體的布局效果如圖4-3所示。圖4-3 數(shù)據(jù)庫(kù)連接窗體數(shù)據(jù)庫(kù)連接窗體主要是連接數(shù)據(jù)庫(kù)并在指定數(shù)據(jù)庫(kù)里創(chuàng)建表。這里設(shè)計(jì)了用戶數(shù)據(jù)表生成文件tr

45、adetable.txt(創(chuàng)建數(shù)據(jù)表的腳本文件),連接數(shù)據(jù)庫(kù)時(shí)通過(guò)執(zhí)行該文件的代碼即可創(chuàng)建并初始化用戶數(shù)據(jù)表。創(chuàng)建用戶數(shù)據(jù)表的腳本語(yǔ)句存放在文本文件中,所以執(zhí)行這些腳本語(yǔ)句時(shí)需要讀取文本文件的內(nèi)容,函數(shù)代碼如下:function gettextfromfile(afile : string; var returnstring : string) : boolean;var filestream : tfilestream;begin if not fileexists(afile) then exit; filestream := tfilestream.create(afile,fmopen

46、read); try if filestream.size 0 then begin setlength(returnstring,filestream.size); filestream.read(returnstring1,filestream.size); result := true; end; finally filestream.free;end;end;讀出腳本語(yǔ)句后,程序需要連接數(shù)據(jù)庫(kù),并在指定的數(shù)據(jù)庫(kù)中執(zhí)行腳本以創(chuàng)建表,從而完成數(shù)據(jù)庫(kù)的初始化。該過(guò)程在連接數(shù)據(jù)庫(kù)窗體的“連接”按鈕中實(shí)現(xiàn),實(shí)現(xiàn)代碼如下:procedure tdatabaselink.button1click(s

47、ender: tobject);var strcreatedb:string;begin user1:=tusertable.create ; try setupfile:=tinifile.create(extractfiledir(application.exename)+setup.ini); setupfile.writestring(system,username,edit1.text); setupfile.writestring(system,userpwd,edit2.text); setupfile.writestring(system,servername,edit3.te

48、xt); setupfile.writestring(system,database,edit4.text); if gettextfromfile(extractfiledir(application.exename)+tradetable.txt, strcreatedb) then begin /執(zhí)行創(chuàng)建數(shù)據(jù)表的過(guò)程 user1.createtable(strcreatedb); end; login.userlevel:=系統(tǒng)管理員; mainfrm.show; databaselink.close; except application.messagebox(數(shù)據(jù)庫(kù)連接失敗,請(qǐng)確認(rèn)無(wú)

49、誤后重試!,提示:) end;end;當(dāng)數(shù)據(jù)庫(kù)連接窗體打開(kāi)后首先查看當(dāng)前目錄下是否有保存參數(shù)設(shè)置的ini文件存在,如果有直接獲取參數(shù)設(shè)置而不需用戶進(jìn)行參數(shù)設(shè)置,其實(shí)現(xiàn)方法是在連接數(shù)據(jù)庫(kù)窗體的oncreate事件中輸入以下代碼:procedure tdatabaselink.formcreate(sender: tobject);begin setupfile:=tinifile.create(extractfiledir(application.exename)+setup.ini); edit1.text:=setupfile.readstring(system,user_name,); e

50、dit2.text:=setupfile.readstring(system,user_pwd,); edit3.text:=setupfile.readstring(system,servername,); edit4.text:=setupfile.readstring(system,database,);end;4.2.6 創(chuàng)建系統(tǒng)主界面第一次運(yùn)行系統(tǒng)需要成功連接數(shù)據(jù)庫(kù)后再進(jìn)入系統(tǒng)主界面。以后每次運(yùn)行時(shí),只需要在登錄窗體中輸入正確的用戶名和密碼后就可以進(jìn)入系統(tǒng)主界面。通過(guò)系統(tǒng)主界面用戶可以切換到各個(gè)子模塊中進(jìn)行具體的操作。新建窗體mainfrm作為系統(tǒng)主界面的窗體,其布局效果如圖4-4所

51、示。圖4-4 系統(tǒng)主界面窗體布局窗體中使用的主要控件及其屬性設(shè)置如表4-12所示。表4-12 窗體mainfrm空間使用及其屬性設(shè)置對(duì)象屬性屬性值label1caption超市信息管理系統(tǒng)mainmenu1items(屬性值見(jiàn)后各功能菜單)image1picture(選取準(zhǔn)備好的圖片)alignalclient系統(tǒng)主界面主要是設(shè)置整個(gè)系統(tǒng)的功能菜單,通過(guò)雙擊mainmenu1控件就可以進(jìn)行菜單的編輯。超市信息管理系統(tǒng)的菜單設(shè)置如表4-13所示。表4-13 超市信息管理系統(tǒng)菜單設(shè)置captionname基本數(shù)據(jù)設(shè)置n1商品基本信息n7廠商基本信息n9職員基本信息n10采購(gòu)信息管理n2進(jìn)貨價(jià)格控制

52、n23廠單信息錄入n12銷售信息管理n3銷售報(bào)價(jià)單n13銷售信息錄入n14單據(jù)信息變更n4廠單信息變更n16信息統(tǒng)計(jì)查詢n5商品信息查詢n17單據(jù)信息查詢n18銷售排行統(tǒng)計(jì)n8系統(tǒng)輔助管理n6系統(tǒng)數(shù)據(jù)備份n20用戶賬號(hào)添加n21用戶賬號(hào)維護(hù)n11注銷本系統(tǒng)n15退出系統(tǒng)n224.3 基礎(chǔ)數(shù)據(jù)設(shè)置模塊基礎(chǔ)數(shù)據(jù)設(shè)置模塊通過(guò)商品基本信息界面、廠商基本信息界面和職員基本信息界面實(shí)現(xiàn)4.3.1 商品基本信息界面新建窗體shangpinfrm作為商品基本信息界面,其界面布局如圖4-5所示。圖4-5 商品基本信息界面布局商品基本信息界面主要是對(duì)商品的基本信息進(jìn)行維護(hù)管理,包括添加、刪除、查詢和修改功能,商品

53、基本信息界面調(diào)用tcominfo類和tcorpinfo類,因此需要在uses語(yǔ)句里加上這兩個(gè)類的單元文件cominfo_unit和corpinfo_unit。同時(shí)要聲明這兩個(gè)類的實(shí)例:private cominfo:tcominfo; corpinfo:tcorpinfo;當(dāng)窗體被調(diào)用時(shí),需要進(jìn)行一些初始化操作,實(shí)現(xiàn)代碼如下:procedure tshangpinfrm.formactivate(sender: tobject);begincominfo:=tcominfo.create;corpinfo:=tcorpinfo.create ;combobox1.items:=corpinfo

54、.getcorpidlist();shang_clientdataset.data:=cominfo.comallrecs();end;4.3.2 廠商基本信息界面新建窗體corpfrm作為廠商基本信息界面,其界面布局如圖4-6所示。圖4-6 廠商基本信息界面布局廠商基本信息界面主要是對(duì)廠商的基本信息進(jìn)行維護(hù)管理,包括添加、刪除、查詢和修改功能,廠商基本信息界面調(diào)用tcorpinfo類,因此需要在uses語(yǔ)句里加上tcorpinfo類的單元文件corpinfo_unit。同時(shí)要聲明這個(gè)類的實(shí)例:private corpinfo:tcorpinfo;進(jìn)入窗體后自動(dòng)顯示所有廠商的信息列表,同時(shí)在窗體創(chuàng)建時(shí)要?jiǎng)?chuàng)建引用類的實(shí)例,實(shí)現(xiàn)代碼如下:procedure tcorpfrm.formcreate(sender: tobject);begincorpinfo:=tcorpinfo.create;corp_clientdataset.data:=corpinfo.corprecs();end;4.3.3 職員基本信息界面新建窗體operfrm作為職員基本信

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論