




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、ktv管理信息系統(tǒng)的設(shè)計與實現(xiàn)1緒論1.1開發(fā)的背景和意義隨著社會的發(fā)展和人民生活水平的提高,人們對精神文化生活的需求也在不斷地增加。ktv的出現(xiàn)和發(fā)展在一定程度上滿足了人們的這種需求,所以ktv行業(yè)迅速崛起并且占據(jù)了重要的市場。同時,在這個信息經(jīng)濟飛速發(fā)展的時代,計算機管理軟件已經(jīng)成為各個行業(yè)主要的管理工具,通過計算機管理軟件的管理,可以大大提高管理的效率、安全性和準(zhǔn)確性。當(dāng)然,在ktv行業(yè)的日常管理中,它的管理人員也同樣希望通過信息化的管理來提高工作效率、降低運營成本、規(guī)范經(jīng)營模式,大大提高自身的服務(wù)檔次,提升了企業(yè)的管理水平,從而增強企業(yè)的競爭力,達到管理的系統(tǒng)化、規(guī)范化和自動化。1.2
2、開發(fā)工具的選擇(1)sql server 簡介sql server 是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng)。它最初是由microsoft sybase 和ashton-tate兩家公司共同開發(fā),于1988 年推出了第一個os/2 版本。在windows nt 推出后,microsoft與sybase 在sql server 的開發(fā)上就分道揚鑣了。microsoft 將sql server 移植到windows nt系統(tǒng)上,專注于開發(fā)推廣sql server 的windows nt 版本。sybase 則較專注于sql server在unix 操作系統(tǒng)上的應(yīng)用。sql server 2000, 是micros
3、oft 公司推出的sql server 數(shù)據(jù)庫管理系統(tǒng)的新版本。該版本繼承了sql server 7.0 版本的優(yōu)點,同時又比它增加了許多更先進的功能,具有使用方便、可伸縮性好、與相關(guān)軟件集成程度高等優(yōu)點??煽缭綇倪\行microsoft windows 98 的膝上型電腦,到運行microsoft windows 2000 的大型多處理器的服務(wù)器等多種平臺使用。sql server 2000 的常見版本有企業(yè)版、標(biāo)準(zhǔn)版、個人版和開發(fā)者版。其主要用于程序員開發(fā)應(yīng)用程序時,需要sql server 2000 作為數(shù)據(jù)存儲設(shè)備。數(shù)據(jù)管理技術(shù)的發(fā)展,與硬件(主要是外存)、軟件、計算機應(yīng)用的范圍有密切的
4、聯(lián)系。數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)過三個階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫階段。人工管理階段和文件系統(tǒng)階段都有著相當(dāng)多的缺陷,諸如數(shù)據(jù)冗余性 ,數(shù)據(jù)不一致性以及數(shù)據(jù)聯(lián)系弱等等。也正是由于這些原因,促使人們研究新的數(shù)據(jù)管理技術(shù),從而產(chǎn)生了數(shù)據(jù)庫技術(shù)。當(dāng)今數(shù)據(jù)庫處理在信息系統(tǒng)的研究中一直是非常重要的主題,尤其是近年來,隨著計算機管理系統(tǒng)的迅速發(fā)展,使得數(shù)據(jù)庫技術(shù)之時成為最熱門技術(shù)之一。數(shù)據(jù)庫的設(shè)計和開發(fā)既包括藝術(shù)又包括工程。理解用戶的需求,然后,把它們轉(zhuǎn)變?yōu)橛行У臄?shù)據(jù)庫設(shè)計是一個藝術(shù)過程。把設(shè)計轉(zhuǎn)變?yōu)閷嶋H的數(shù)據(jù)庫,并且這些數(shù)據(jù)庫帶有功能完備、高效能的應(yīng)用,是一個工程過程。在數(shù)據(jù)庫技術(shù)中,我們用模型的
5、概念描述數(shù)據(jù)庫的結(jié)構(gòu)與語義,對現(xiàn)實世界進行抽象,表示實體類型及實體間聯(lián)系的模型稱為“數(shù)據(jù)模型” 。目前廣泛使用的數(shù)據(jù)模型分為兩種類型:一種是獨立于計算機系統(tǒng)的模型,完全不涉及信息在系統(tǒng)中的表示,只是用來描述某個特定組織所關(guān)心的信息結(jié)構(gòu),這類模型稱為“概念數(shù)據(jù)模型” 。概念模型用于建立信息世界的數(shù)據(jù)模型,強調(diào)其語義表達功能,應(yīng)該概念簡單、清晰,易于用戶理解,它是現(xiàn)實世界的第一層抽象,是用戶和數(shù)據(jù)庫設(shè)計人員之間進行交流的工具。其中使用廣泛的模型是“實體聯(lián)系模型” 。另一種數(shù)據(jù)模型是直接面向數(shù)據(jù)庫的邏輯結(jié)構(gòu),它是現(xiàn)實世界的第二層抽象。這類模型涉及到計算機系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng),又稱為“結(jié)構(gòu)數(shù)據(jù)模型”
6、。本系統(tǒng)采用了關(guān)系模型,關(guān)系模型主要是用二維表格結(jié)構(gòu)表達實體集,利用主鍵和外鍵的連接進行表與表之間的連接。關(guān)系模型是由若干個關(guān)系模式組成的集合。關(guān)系模式相當(dāng)于記錄類型,它的實例稱為關(guān)系,每個關(guān)系實際上是一張二維表格。關(guān)系模型和層次、網(wǎng)狀模型的最大判別是用關(guān)鍵碼而不是用指針導(dǎo)航數(shù)據(jù),表格簡單、用戶易懂。用戶對數(shù)據(jù)庫的使用,是通過數(shù)據(jù)庫管理系統(tǒng)提供的語言來實現(xiàn)的。關(guān)系數(shù)據(jù)庫管理系統(tǒng)幾乎都提供關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言sql。sql 的全稱是structured query language,即結(jié)構(gòu)化查詢語言。sql語句可以從關(guān)系數(shù)據(jù)庫中獲得數(shù)據(jù),也可以建立數(shù)據(jù)庫、添加數(shù)據(jù)、修改數(shù)據(jù)。1986年ansi采用
7、sql語言作為關(guān)系數(shù)據(jù)庫系統(tǒng)的標(biāo)準(zhǔn)語言,后被國際化標(biāo)準(zhǔn)組織(iso)采納為國際標(biāo)準(zhǔn)。sql語言使用方便、功能豐富、簡潔易學(xué),因此得到廣泛地應(yīng)用。例如關(guān)系數(shù)據(jù)庫產(chǎn)品db2、oracle等都實現(xiàn)了sql語言。這時,其它數(shù)據(jù)庫產(chǎn)品廠家也紛紛推出各自的支持sql的軟件或者與sql的接口軟件。這樣sql語言很快被整個計算機界所認(rèn)可。sql語言是一種非過程化語言,它一次處理一個記錄集合,對數(shù)據(jù)提供自動導(dǎo)航。sql語言允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對單個記錄進行操作。sql語言不要求用戶指定數(shù)據(jù)的存取方法,而是使用查詢優(yōu)化器,由系統(tǒng)決定對指定數(shù)據(jù)存取的最快速手段。當(dāng)設(shè)計者在關(guān)系表上定義了索引時,系統(tǒng)會
8、自動利用索引進行快速檢索,用戶不需知道表上是否有索引或者有什么類型的索引等細(xì)節(jié)。(2)visual basic 簡介visual basic是一種由微軟公司推出的可視化開發(fā)工具,是windows環(huán)境下最受歡迎的程序設(shè)計工具之一。visual basic不僅繼承了早期basic所具有的簡單易用的特點,而且其編程系統(tǒng)采用了面向?qū)ο蠛蜁r間驅(qū)動的編程機制,用一種巧妙的方法把windows的編程復(fù)雜性封裝起來,提供了一種所見即所得的可視化界面設(shè)計方法。vb擁有圖形用戶界面(gui)和快速應(yīng)用程序開發(fā)(rad)系統(tǒng),可以輕易的使用dao、rdo、ado連接數(shù)據(jù)庫,或者輕松的創(chuàng)建activex控件。程序員可
9、以輕松的使用vb提供的組件快速建立一個應(yīng)用程序。ado(activex data object,activex數(shù)據(jù)對象)是一個基于ole db之上的對象模型,包含了所有可以被ole db標(biāo)準(zhǔn)接口描述的數(shù)據(jù)類型,通過ado內(nèi)部的屬性和方法提供統(tǒng)一的數(shù)據(jù)訪問接口方法。ado對象模型具有可擴展性,當(dāng)把數(shù)據(jù)庫上層應(yīng)用程序移植到不同的數(shù)據(jù)庫平臺上時,只需更換連接數(shù)據(jù)庫的驅(qū)動程序,而不需要對上層應(yīng)用程序作任何修改。ado向visual basic程序員提供了許多好處,包括易于使用、熟悉的界面、高速度以及較低的內(nèi)存占用時綜上我采用sql server 2000數(shù)據(jù)庫和visual basic來實現(xiàn)該ktv管
10、理信息系統(tǒng)。2.需求分析和開發(fā)環(huán)境2.1 用戶需求分析通過調(diào)查,根據(jù)用戶的需要,系統(tǒng)應(yīng)該具有以下功能:l 對ktv管理信息系統(tǒng)的登陸用戶進行分類以及權(quán)限設(shè)置。l 展示ktv管理信息系統(tǒng)的主要界面。l 可以對房間信息進行查看功能,并且可以對其房間進行添加、修改、刪除等操作。l 提供對會員信息進行查看功能,并且可以對其房間進行添加、修改、刪除等操作。l 提供開房、預(yù)定、維修、打掃和結(jié)帳功能。l 提供預(yù)定單明細(xì)表、開房單明細(xì)表、維修單明細(xì)表。l 提供帳單、房間和會員查詢功能。l 提供用戶權(quán)限設(shè)置功能。l 提供用戶管理功能。l 提供密碼修改功能。l 提供用戶查詢功能。l 系統(tǒng)退出。2.2 可行性分析該
11、系統(tǒng)適用于中小型ktv的日常管理。界面簡潔直觀、功能齊全、操作方便。通過該軟件可以對房間、會員、用戶進行基本管理,同時可以很方便的對房間的基本業(yè)務(wù)進行操作,如開房、預(yù)定、結(jié)帳、打掃和維修。同時通過對不同用戶進行權(quán)限設(shè)置,增加了數(shù)據(jù)的安全性。2.3 開發(fā)環(huán)境(1)硬件平臺:q cpu:p41.8ghz 內(nèi)存:256mb以上(2)軟件平臺:q 操作系統(tǒng):windows xp/windows 2000q 數(shù)據(jù)庫:sql server 20003.總體設(shè)計3.1 功能模塊劃分ktv管理信息系統(tǒng)是一個典型的數(shù)據(jù)庫和vb綜合的開發(fā)應(yīng)用程序,該系統(tǒng)包括五個功能模塊:基本信息功能模塊、基本業(yè)務(wù)功能模塊、查詢統(tǒng)
12、計功能模塊、系統(tǒng)設(shè)置功能模塊和退出系統(tǒng)功能模塊。如圖3-1所示:基本信息ktv管理信息系統(tǒng)基本業(yè)務(wù)查詢統(tǒng)計系統(tǒng)設(shè)置退出系統(tǒng)房間信息會員信息預(yù)定開房結(jié)帳維修打掃房間管理查詢預(yù)訂單明細(xì)表開房單明細(xì)表維修單明細(xì)表基本信息查詢帳單查詢房間查詢房間狀態(tài)查詢房間類型查詢會員查詢用戶權(quán)限設(shè)置用戶管理密碼設(shè)置用戶查詢圖3-1 ktv管理信息系統(tǒng)的功能模塊3.2邏輯結(jié)構(gòu)設(shè)計3.2.1數(shù)據(jù)庫表詳細(xì)信息本系統(tǒng)涉及到的表分別是結(jié)帳單信息表(checkinfo)、會員信息表(memberinfo)、預(yù)定單信息表(destineinfo)、維修單歷史表(repairhistroy)、維修單信息表(repairinfo)、
13、開房單歷史表(openroomhistroy)、房間信息表(roominfo)、用戶登陸信息表(userinfo)和房間消費信息表(roomconsumed)。各個表的詳細(xì)信息如下:表1 結(jié)帳單信息表checkinfo字段名字段說明數(shù)據(jù)類型字段長度必填字段主鍵checkid結(jié)帳單編號char4是是roomid房間編號char2是否roomtype房間類型varchar10否否roomprice房間價格float8否否clientname客戶名稱varchar10否否agio折扣int4否否openroomtime開房時間datetime8是否endtime結(jié)帳時間datetime8是否prep
14、ay預(yù)付金額float8否否paymade付款方式varchar10否否roommoney消費金額float8是否opendate開房日期datetime8是否memberid會員編號char3否否表2 會員信息表memberinfo字段名字段說明數(shù)據(jù)類型字段長度必填字段主鍵memberid會員編號char3是是membername會員姓名varchar8否否tel1固定電話varchar20否否tel2手機varchar20否否address地址varchar30否否signcheck簽單額度int4是否consumedtime消費次數(shù)int4是否consumedintegal消費積分flo
15、at8是否remake備注varchar50否否表3 預(yù)定單信息表destineinfo字段名字段說明數(shù)據(jù)類型字段長度必填字段主鍵destineid預(yù)定單編號char4是是clientname客戶名稱varchar10否否roomid房間編號char2是否roomtype房間類型varchar8否否roomprice房間價格float8否否clienttel客戶電話varchar20否否clientcount人數(shù)int4否否openroomdate開房日期datetime8是否openroomtime開房時間datetime8是否waitor操作員varchar10否否prepay預(yù)付金額fl
16、oat8否否remake備注varchar50否否destinedate預(yù)定日期datetime8是否memberid會員編號char3否否表4 維修單歷史表repairhistroy字段名字段說明數(shù)據(jù)類型字段長度必填字段主鍵repairhisid維修單編號char3是是roomid房間編號char2是否remake維修緣由varchar50否否remakeafter維修結(jié)果varchar50否否表5 維修單信息表repairinfo字段名字段說明數(shù)據(jù)類型字段長度必填字段主鍵repairid維修單編號char3是是roomid房間編號char2是否remake維修緣由varchar50否否表6
17、 開房單歷史表openroomhistroy字段名字段說明數(shù)據(jù)類型字段長度必填字段主鍵orhistroyid結(jié)帳單編號char4是是roomid房間編號char2是否roomtype房間類型varchar10否否roomprice房間價格float8否否clientname客戶名稱varchar10否否agio折扣int4否否openroomtime開房時間datetime8是否endtime結(jié)帳時間datetime8是否paymade付款方式varchar10否否roommoney消費金額float8是否opendate開房日期datetime8是否memberid會員編號char3否否表7
18、 房間信息表roominfo字段名字段說明數(shù)據(jù)類型字段長度必填字段主鍵roomid房間編號char2是是roomname房間名稱varchar20否否roomtype房間類型varchar10否否roomprice價格float8是否roomstate房間狀態(tài)char6否否表8 用戶登陸信息表userinfo字段名字段說明數(shù)據(jù)類型字段長度必填字段主鍵userid用戶idchar2是是username用戶姓名varchar8否否userpwd用戶密碼varchar10是否usertype用戶權(quán)限代碼int4否否remake用戶類型varchar8否否表9 房間消費信息表roomconsumed字
19、段名字段說明數(shù)據(jù)類型字段長度必填字段主鍵roomconsumedid開房單編號char4是是roomid房間編號char2是否roomtype房間類型varchar10否否roomprice房間價格float8否否clientcount人數(shù)int4否否clientname客戶名稱varchar10否否opentime開房時間datetime8是否clienttel客戶電話varchar20否否prepay預(yù)付金額float8否否agio折扣int4否否paymade付款方式varchar10否否opendate開房日期datetime8是否remake備注varchar50否否memberid
20、會員編號char3否否3.2.2數(shù)據(jù)庫總體結(jié)構(gòu)本系統(tǒng)采用了sql server 2000作為后臺數(shù)據(jù)庫的開發(fā)工具,本系統(tǒng)數(shù)據(jù)庫名稱為“ktvdb”, 其中共包含9張表。各個表之間的關(guān)系如圖3-2。 圖3-2 數(shù)據(jù)庫ktvdb聯(lián)系3.2.3系統(tǒng)中數(shù)據(jù)庫的連接在本系統(tǒng)中,都是通過ado控件來與后臺數(shù)據(jù)庫進行連接的。下面是系統(tǒng)中的登陸界面中所涉及到連接數(shù)據(jù)庫的代碼:連接數(shù)據(jù)庫sqlstr=provide=sqloledb.1;persist ecurity info=false;&userid=sa;initialcatalog=ktvdb;data source=(local) set g_dbc
21、onn = new adodb.connection 建立無源數(shù)據(jù)庫連接g_dbconn.connectionstring=driver=sqlserver;server=(local);userid=sa;pwd=;database=ktvdbg_dbconn.open在該連接代碼中,數(shù)據(jù)庫連接的服務(wù)器名稱為local,數(shù)據(jù)庫名稱為ktvdb,當(dāng)系統(tǒng)中使用到了相應(yīng)的表時,再通過代碼與該表進行連接,再通過sql語句對數(shù)據(jù)庫進行相應(yīng)的操作。4.系統(tǒng)的設(shè)計與實現(xiàn)4.1 系統(tǒng)的功能模塊介紹該系統(tǒng)主要包括以下功能模塊:l 用戶登錄:實現(xiàn)對用戶的登錄驗證,并且根據(jù)用戶的權(quán)限來判斷功能按鈕的顯示與否。l
22、基本信息:其中包括用戶信息和會員信息,并且對相應(yīng)的信息進行添加、刪除、修改等操作。l 基本業(yè)務(wù):包括預(yù)定、開房、維修和打掃功能。同時當(dāng)用戶選定某個房間時,通過鼠標(biāo)右擊可以調(diào)出相應(yīng)的彈出菜單,這樣就使操作更加方便快捷了。l 房間管理:在房間管理中,用戶可以通過查看預(yù)定單明細(xì)表來了解當(dāng)前的預(yù)定信息、通過查看開房單明細(xì)表來了解正處于開房狀態(tài)的房間信息和通過查看維修單明細(xì)表來了解正在處于維修狀態(tài)的房間的詳細(xì)信息。l 查詢統(tǒng)計:在查詢統(tǒng)計中可以對帳單、房間和會員通過關(guān)鍵字進行具體的查詢。l 系統(tǒng)設(shè)置:在系統(tǒng)設(shè)置中包括用戶權(quán)限設(shè)置、用戶管理、密碼設(shè)置和用戶查詢等功能。l 退出系統(tǒng):關(guān)閉所有界面,退出系統(tǒng)。
23、4.2系統(tǒng)的各個功能界面設(shè)計與實現(xiàn)在對ktv管理信息系統(tǒng)的功能進行簡單介紹以后,下面就根據(jù)系統(tǒng)主界面菜單欄的順序來分別介紹每個功能界面的設(shè)計與實現(xiàn)。4.2.1登錄界面在進入系統(tǒng)主界面之前,首先要進入登陸界面,如圖4-1。圖4-1 系統(tǒng)登錄界面在該系統(tǒng)中設(shè)計了三種用戶,即管理員(1)、高級用戶(2)和普通用戶(0)。其中管理員具有最高權(quán)限,能夠執(zhí)行所有操作;高級用戶不可以進行用戶信息的修改;普通用戶除不可以進行用戶信息的修改外,還不可以對房間信息和會員信息進行任何修改。在登陸界面中通過sql語句與數(shù)據(jù)庫建立連接以后,在用戶輸入用戶id和用戶密碼后,系統(tǒng)將接收到的數(shù)據(jù)與數(shù)據(jù)庫中userinfo表中
24、的記錄進行比較,從而確定是否登陸成功。并將記錄用戶的權(quán)限(g_logineduser.type),以便交給主界面、會員信息窗體和房間信息窗來判斷用戶對各種功能的使用權(quán)限。4.2.2系統(tǒng)主界面菜單欄當(dāng)用戶信息的用戶id和密碼與數(shù)據(jù)庫userinfo中的信息想匹配時,則進入系統(tǒng)的主界面,如圖4-2:各個房間以相應(yīng)的狀態(tài)圖標(biāo)顯示顯示各種房間狀態(tài)的房間個數(shù)圖4-2 系統(tǒng)主界面在系統(tǒng)主界面中,我們可以看到在最上方是菜單欄,用戶可以通過菜單欄中的各個選項來選擇相應(yīng)的操作。在主界面中,所有的房間都以自己的狀態(tài)圖標(biāo)的形式顯示出來。在主界面的下方可以看到處于各種房間狀態(tài)的房間個數(shù)。主界面中最主要的是將所有房間顯
25、示在界面中和將處于各種狀態(tài)的房間個數(shù)在主界面的下方顯示出來。將所有房間以房間狀態(tài)的圖標(biāo)顯示出來是通過showroomstatus函數(shù)來實現(xiàn)的。函數(shù)在數(shù)據(jù)庫roominfo中讀取房間編號、房間狀態(tài)和房間名稱的信息,通過房間編號來判定在msflexgrid控件中顯示的位置,然后通過房間狀態(tài)來確定所顯示的圖片文件。showroomstatus函數(shù)的代碼如下:function showroomstatus() dim strroomname as string dim strroomstate as string dim iroomid as integer dim dr as new adodb.r
26、ecordset 定義新的ado對象 dim str as string dim irecord as integer dim i as integer 清空房間圖標(biāo)準(zhǔn)備重新顯示 msflexgrid1.clear 在數(shù)據(jù)庫中讀取房間信息,確定房間編號、房間狀態(tài)和房間名稱。str = select roomid,roomname,roomstate from roominfo dr.open str, g_dbconn, adopenstatic, adlockoptimistic irecord = dr.recordcount dr.movefirst for i = 0 to ireco
27、rd if dr.eof then exit function end if iroomid = dr(roomid).value strroomname = trim(dr(roomname).value) strroomstate = trim(dr(roomstate).value) 通過房間編號來確定顯示的位置if (iroomid mod 10) 0 then me.msflexgrid1.row = int(iroomid / 10) me.msflexgrid1.col = (iroomid mod 10) - 1) elseif (iroomid mod 10) = 0 the
28、n me.msflexgrid1.row = int(iroomid / 10) - 1 me.msflexgrid1.col = 9 end if 根據(jù)房間狀態(tài)讀取所要顯示的圖片文件select case strroomstate case 空房 如果房間狀態(tài)為空房 msflexgrid1.cellpicturealignment = flexaligncentertop set me.msflexgrid1.cellpicture = loadrespicture(kongfang, vbresbitmap) msflexgrid1.text = strroomname case 占用 m
29、sflexgrid1.cellpicturealignment = flexaligncentertop set me.msflexgrid1.cellpicture = loadrespicture(zhanyong, vbresbitmap) msflexgrid1.text = strroomname case 維修 msflexgrid1.cellpicturealignment = flexaligncentertop set me.msflexgrid1.cellpicture = loadrespicture(weixiu, vbresbitmap) msflexgrid1.te
30、xt = strroomname case 預(yù)定 msflexgrid1.cellpicturealignment = flexaligncentertop set me.msflexgrid1.cellpicture = loadrespicture(yuding, vbresbitmap) msflexgrid1.text = strroomname case 打掃 msflexgrid1.cellpicturealignment = flexaligncentertop set me.msflexgrid1.cellpicture = loadrespicture(dasao, vbre
31、sbitmap) msflexgrid1.text = strroomname end select dr.movenext next i dr.closeend functio 定義函數(shù)結(jié)束在主界面的下方顯示處于各種房間狀態(tài)的房間個數(shù)是通過showroomcount函數(shù)來實現(xiàn)的。代碼如下:function showroomcount() 定義函數(shù) dim rscount as new recordset 定義新的記錄集對象 dim str as string str = select roomid from roominfo where & roomstate=空房查找空房 rscount.
32、open str, g_dbconn, adopenstatic, adlockoptimistic在標(biāo)簽中顯示空房“” 間,其中多少間是通過rscount的recordcount方法來計算的me.labelkfcount.caption = 空房: & rscount.recordcount & 間 rscount.close str = select roomid from roominfo where & roomstate=占用 rscount.open str, g_dbconn, adopenstatic, adlockoptimistic me.labelzycount.capt
33、ion = 占用: & rscount.recordcount & 間 rscount.close str = select roomid from roominfo where & roomstate=預(yù)定 rscount.open str, g_dbconn, adopenstatic, adlockoptimistic me.labelydcount.caption = 預(yù)訂: & rscount.recordcount & 間 rscount.close str = select roomid from roominfo where & roomstate=維修 rscount.ope
34、n str, g_dbconn, adopenstatic, adlockoptimistic me.labelwxcount.caption = 維修: & rscount.recordcount & 間 rscount.close str = select roomid from roominfo where & roomstate=打掃 rscount.open str, g_dbconn, adopenstatic, adlockoptimistic me.labeldscount.caption = 打掃: & rscount.recordcount & 間 rscount.clos
35、eend function同時在主界面中,我使用了time控件,它的功能是在一段時間內(nèi)更新一次showroomstatus和showroomcount()函數(shù),以隨時顯示最新的房間信息,在這里我設(shè)置了五秒更新一次。4.2.3房間信息管理界面在基本信息的下拉菜單中有房間信息選項,單擊它就可以查看各個房間的詳細(xì)信息,如圖4-3所示:圖4-3 房間信息界面房間信息界面將所有房間的信息都詳細(xì)的顯示在dategrid控件中,用戶可以對房間進行添加、刪除和修改操作。在這里要注意,當(dāng)刪除房間時,只能刪除沒有過任何使用記錄的房間,因為其它表中有其相關(guān)的記錄,如果要刪除,必須先將所有相關(guān)記錄刪除。窗體中的添加、
36、修改和刪除只對管理員和高級用戶有效。對于普通用戶,只能顯示房間信息,無法實現(xiàn)添加、修改和刪除操作,這三個按鈕都變成灰色無法使用。這是因為在房間信息窗體的設(shè)計過程中,通過login窗體中記錄的g_logineduser.type信息已經(jīng)知道該用戶的權(quán)限,在該窗體form的load事件中,已經(jīng)設(shè)置普通用戶是不能進行添加、刪除和修改操作的。房間信息窗體的load事件的代碼:private sub form_load() me.top = (screen.height - me.height) / 2 垂直方向居中 me.left = (screen.width - me.height) / 2 水平
37、方向居中 if g_logineduser.type = 0 then 如果用戶的權(quán)限為0,即普通用戶時,添加、刪除和修改三個按鈕顯示為灰。me.command1.enabled = false me.command2.enabled = false me.command3.enabled = false end if 設(shè)置adodc連接字符串 adodc1.connectionstring = g_dbconn adodc1.commandtype = adcmdtable adodc1.recordsource = roominfo 連接的數(shù)據(jù)庫 設(shè)置grid 與 adodc1關(guān)聯(lián),使其顯
38、示當(dāng)前的房間信息 set datagrid1.datasource = adodc1end sub4.2.4會員信息管理界面在基本信息中,選擇下拉菜單中的會員信息就可以查看所有會員的基本信息。如圖4-4所示。圖6 會員信息界面會員信息窗體能顯示會員的詳細(xì)信息,并有添加會員、修改會員信息、刪除會員的功能。窗體中的添加、修改和刪除功能也同樣只針對管理員和高級用戶有效。其實現(xiàn)和房間信息的實現(xiàn)技術(shù)相同,連接的表是memberinfo。4.2.5預(yù)定、開房、結(jié)帳、維修和打掃界面在該系統(tǒng)中,所涉及到的房間業(yè)務(wù)包括預(yù)定、開房、結(jié)帳、維修和打掃。下面將分別介紹其功能的實現(xiàn)。(1)預(yù)定用戶可以通過預(yù)定單在預(yù)定單
39、明細(xì)表(destineinfo)中添加新的預(yù)定信息。在預(yù)定單中,通過選擇會員單選框來從會員信息表中讀取會員信息,并且自動生成可選的會員編號,并且通過選擇的會員編號顯示會員姓名、客戶電話。同理,如果選擇了房間編號,則系統(tǒng)自動填充房間類型和房間價格。預(yù)定單界面如圖4-5,當(dāng)選擇會員單選框時的預(yù)定單界面如圖4-6:圖4-5 預(yù)定單界面圖 圖4-6 有會員信息的預(yù)定界面自動生成下拉列表框中的代碼如下:private sub form_load() dim dbstr as string dim adddestineid as new adodb.recordset 建立新的ado對象 dim i as
40、 integer dim sdestinedid as string界面顯示位置 me.top = (screen.height - me.height) / 2 垂直方向居中 me.left = (screen.width - me.height) / 2 水平方向居中 隱藏會員信息和預(yù)訂單編號信息 me.label1.visible = false me.combmemid.visible = false me.label2.visible = false 當(dāng)前日期 me.labeldate.caption = date 自動生成預(yù)定單編號 dbstr = select destineid
41、 from destineinfo adddestineid.cursortype = adopenstatic adddestineid.cursorlocation = aduseclient adddestineid.open dbstr, g_dbconn, adopenforwardonly, adlockoptimistic if adddestineid.eof then sdestinedid = 0001 me.textdestineid.text = sdestinedid else adddestineid.movelast i = adddestineid.fields
42、(destineid).value + 1 if i = 10 & i 0 then adors.movefirst do while not adors.eof combroomid.additem adors.fields(0).value adors.movenext loop 循環(huán) else msgbox 無空房! exit sub end if adors.close set adors = nothing 從數(shù)據(jù)庫中讀取數(shù)據(jù)寫入會員編號下拉列表框 dim adoms as new adodb.recordset dbstr = select memberid from member
43、info adoms.open dbstr, g_dbconn, adopenstatic, adlockreadonly if adoms.recordcount 0 then adoms.movefirst adoms.movenext do while not adoms.eof combmemid.additem adoms.fields(0).value adoms.movenext loop end if adoms.close set adoms = nothingend sub在填寫完預(yù)定單提交成功后,系統(tǒng)就要修改房間狀態(tài)為預(yù)定,并且要把預(yù)定信息寫入destioninfo表中。
44、代碼如下:操作數(shù)據(jù)庫添加預(yù)定信息sqlstr=insertintodestineinfo(destineid,clientname,roomid,&roomtype,roomprice,clienttel,clientcount,openroomdate,&openroomtime,waitor,prepay,remake,destinedate,memberid)& values( & trim(me.textdestineid.text) & & , & trim(me.textclientname.text) & , & sroomid & & , & trim(me.combroomt
45、ype.text) & & , & trim(me.combroomprice.text) & & , & trim(me.textclienttel.text) & & , & trim(me.textcount.text) & & , & me.dtpicker1.value & & , & stime & , & trim(me.combwaitor.text) & & , & b & , & me.textremake.text & & , & trim(me.labeldate.caption) & , & smemberid & ); g_dbconn.execute sqlstr
46、 執(zhí)行其sql語句操作 str = update roominfo set roomstate=預(yù)定 where roomid= & sroomid & 更新房間狀態(tài) g_dbconn.execute str msgbox 預(yù)定成功!(2)開房在開房單界面中,我們可以通過開房單的填寫,將該信息提交給開房單明細(xì)表(roomconsumed),更改房間狀態(tài)為占用。這里所用到的技術(shù)在預(yù)定中已經(jīng)進行了介紹,就不再解釋了,開房單界面如圖4-7,有會員信息的開房單界面如圖4-8。圖4-7 開房單界面 圖4-8 有會員信息的開房界面(3)結(jié)帳結(jié)帳窗體用來計算房間消費信息,在結(jié)帳事件中涉及到了調(diào)用數(shù)據(jù)庫中的存
47、儲過程。存儲過程是一組完成特定功能的sql語句集,經(jīng)過編譯后存儲在數(shù)據(jù)庫中,程序通過存儲過程的名字調(diào)用執(zhí)行它。存儲過程能減少網(wǎng)絡(luò)流量,增強代碼的重用性,提高執(zhí)行的速度和保證安全性。本系統(tǒng)的計算房費的存儲過程代碼為:create procedure up_checkcopentime datetime, 定義變量cclosetime datetime,croomid char (4),cprice float (8),cagio int,cprepay int,cmoney float (8) output 輸出變量asselect cprice=roomprice from roominfo
48、where roomid=croomid selectcopentime=opentime from roomconsumed where roomid=croomidselectcprepay=prepay from roomconsumed where roomid=croomidselectcclosetime=getdate()select cmoney =(datediff(mi,copentime,cclosetime) 計算公式*cprice/60.0*cagio/100.0go在結(jié)帳時調(diào)用up_check存儲過程的代碼如下:調(diào)用存儲過程 dim strs as string d
49、im adoconn as new adodb.connection connection 對象代表了打開與數(shù)據(jù)源的連接。 dim adocomm as new adodb.command command 對象定義了將對數(shù)據(jù)源執(zhí)行的指定命令。 adoconn.connectionstring = g_dbconn 建立與數(shù)據(jù)庫的連接 adoconn.open 打開數(shù)據(jù)庫 set adocomm.activeconnection = adoconn 指示指定的 command對象當(dāng)前所屬的 connection對象。 adocomm.commandtext = up_check 設(shè)置comman
50、d對象源。 adocomm.commandtype = adcmdstoredproc 通知提供者commandtext屬性有什么,它可能包括command對象的源類型。設(shè)置這個屬性優(yōu)化了該命令的執(zhí)行。 獲得數(shù)據(jù) adocomm.parameters.item(copentime).value = trim(me.textortime.text) adocomm.parameters.item(cclosetime).value = time adocomm.parameters.item(croomid).value = trim(me.combrid.text) adocomm.parameters.item(cprice).value = trim(me.combrprice.text) adocomm.parameters.item(cagio).value =
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 戰(zhàn)略合作委托代理運輸合同
- 銷售代理合同模板
- 標(biāo)準(zhǔn)個人居間代理合同模板
- 超市兼職員工勞動合同范本
- 智能家居定制合同
- 技術(shù)服務(wù)合同意向協(xié)議書
- 食品進出口合同范本
- 家具維修與家庭生活習(xí)慣改變考核試卷
- 地震勘探儀器的采購與供應(yīng)鏈管理策略考核試卷
- 木地板行業(yè)人力資源管理與培訓(xùn)考核試卷
- 生物產(chǎn)品檢驗檢疫基礎(chǔ)知識單選題100道及答案
- 江蘇省中職《英語》學(xué)業(yè)水平考試備考試題集(含歷年真題)
- 2025年合伙型公司新合伙人加入?yún)f(xié)議
- 2025年安全員之C證(專職安全員)考試題庫
- 2025城市商鋪買賣合同書
- 2025年春新北師大版物理八年級下冊課件 第六章 質(zhì)量和密度 第一節(jié) 物體的質(zhì)量及其測量
- 2024全國各省高考詩歌鑒賞真題及解析
- 《價值觀培訓(xùn)》課件
- 《臨床科研思維》課件
- GA/T 761-2024停車庫(場)安全管理系統(tǒng)技術(shù)要求
- 《設(shè)施節(jié)水灌溉技術(shù)》課件
評論
0/150
提交評論