




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、0目 錄第一章第一章 系統(tǒng)需求分析系統(tǒng)需求分析.1 11.1 系統(tǒng)功能需求分析.11.2 系統(tǒng)數(shù)據(jù)流圖.11.3 數(shù)據(jù)字典.2第二章第二章 系統(tǒng)概要設(shè)計系統(tǒng)概要設(shè)計.5 52.1 系統(tǒng)總體框圖設(shè)計.52.2 各模塊功能分析.5第三章第三章 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計.7 73.1 系統(tǒng) e-r 圖設(shè)計.73.2 數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計.8第四章第四章 系統(tǒng)詳細設(shè)計及實現(xiàn)系統(tǒng)詳細設(shè)計及實現(xiàn).1111 4.1 系統(tǒng)登陸界面設(shè)計.114.2 系統(tǒng)主界面設(shè)計.154.3 菜譜設(shè)置模塊.194.3.1 菜譜信息設(shè)置設(shè)計 .194.3.2 菜譜查詢設(shè)計 .204.3.3 菜譜添加設(shè)計 .224.3.4 菜譜修改設(shè)計
2、.244.3.5 菜譜刪除設(shè)計 .254.4 開臺管理模塊.274.4.1 搜索臺號設(shè)計 .274.4.2 開臺設(shè)置設(shè)計 .304.4.3 臺號信息查詢的設(shè)計 .324.4.4 房臺列表顯示函數(shù)的設(shè)計 .344.5 點菜管理模塊.344.5.1 客戶點菜設(shè)計 .354.5.2 客戶放棄開臺設(shè)計. 374.5.3 客戶點菜完畢返回設(shè)計.37第五章第五章 數(shù)據(jù)模塊的創(chuàng)建與實現(xiàn)數(shù)據(jù)模塊的創(chuàng)建與實現(xiàn).45.455.1 數(shù)據(jù)模塊的創(chuàng)建.455.2 數(shù)據(jù)模塊的實現(xiàn).46第六章第六章 系統(tǒng)調(diào)試與測試系統(tǒng)調(diào)試與測試.53.536.1 軟件功能測試.47第七章第七章 結(jié)論結(jié)論.54547.1 系統(tǒng)開發(fā)遇到的問題
3、.547.2 系統(tǒng)改進方面.547.3 總結(jié).541摘要摘要近幾年來,隨著我國國民經(jīng)濟的穩(wěn)定增長,餐飲業(yè)的競爭也越來越激勵,想在這樣競爭激勵的環(huán)境下生存,就必須運用科學(xué)的管理思想與先進的管理方法,使用點餐與管理一體化。這樣不僅提高了工作效率,也避免了以前手工作業(yè)的麻煩,從而使得管理者能夠準(zhǔn)確,有效的管理餐飲。因此,餐飲業(yè)的管理者更需要一種綜合實時的管理模式,希望從更科學(xué)的管理中取得競爭的優(yōu)勢,在競爭激烈的商業(yè)市場中取勝。結(jié)合管理信息系統(tǒng)的開發(fā)方法及步驟,以此為理論根據(jù),開發(fā)出一個信息管理系統(tǒng)餐飲管理系統(tǒng)。它采用國際通用的先進餐飲管理模式,并結(jié)合中國的管理實際特點開發(fā)而成。通過本系統(tǒng)功能模塊,可
4、為各種大小不同的餐飲管理所使用。為管理者提供高效的管理手段,本系統(tǒng)有著人性理的設(shè)置理念,流程清晰、易懂。具有獨特的功能對于開臺管理、點菜、菜譜設(shè)置等為管理人員帶來很大的方便,減少人為因素的錯誤,提高服務(wù)水平,提升企業(yè)形象。關(guān)鍵字:餐飲管理系統(tǒng)、提高服務(wù)水平、提高工作效率2第一章第一章 系統(tǒng)需求分析系統(tǒng)需求分析1.11.1 系統(tǒng)功能需求分析系統(tǒng)功能需求分析隨著現(xiàn)在連鎖餐飲店的不斷崛起,作為餐飲業(yè)不可缺少的一部分餐飲管理系統(tǒng),它的內(nèi)容對于餐飲業(yè)的決策者和管理者來說都非常重要。本系統(tǒng)基于餐飲管理系統(tǒng)之下的一個子系統(tǒng),可以把整個餐飲店的日常經(jīng)營管理信息化,包括點餐、庫存管理、員工信息等日常經(jīng)營的一些統(tǒng)
5、計功能?,F(xiàn)在此系統(tǒng)還不夠完善,將來使此系統(tǒng)會集成更多的功能,例如:餐飲管理系統(tǒng)的開發(fā)成功,實現(xiàn)了餐飲業(yè)的現(xiàn)代化,表明了餐飲管理正與國際化接軌,有了更為深入的發(fā)展。餐軟管理系統(tǒng)采用國際通用的先進餐飲管理模式,并結(jié)合中國的管理實際特點開發(fā)而成。通過本系統(tǒng)功能模塊,可為各種大小不同的餐飲管理所使用。為管理者提供高效的管理手段,本系統(tǒng)有著人性理的設(shè)置理念,流程清晰、易懂。具有獨特的功能對于開臺管理、點菜、菜譜設(shè)置等為管理人員帶來很大的方便,減少人為因素的錯誤,提高服務(wù)水平,提升企業(yè)形象。根據(jù)實際情況的需要,系統(tǒng)主要功能如下: 前臺管理:開臺管理、客戶結(jié)賬、退出系統(tǒng)。 系統(tǒng)管理:權(quán)限管理、系統(tǒng)管理、幫助
6、。 基礎(chǔ)信息管理:酒水信息查詢、菜譜信息查詢及設(shè)置。1.21.2 系統(tǒng)數(shù)據(jù)流圖系統(tǒng)數(shù)據(jù)流圖根據(jù)實際情況要求,系統(tǒng)數(shù)據(jù)流圖如圖 1.2.1 所示圖 1.2.1 數(shù)據(jù)流圖31.31.3 數(shù)據(jù)字典數(shù)據(jù)字典在這定義的酒店餐飲數(shù)據(jù)字典,主要對數(shù)據(jù)流程圖中的數(shù)據(jù)流、數(shù)據(jù)存儲和處理過程進行說明。(1)主要的數(shù)據(jù)流定義1)數(shù)據(jù)流名稱:客戶信息 位置:客戶p2 定義:客戶信息=房間臺號+所點菜+酒水+開單時間+服務(wù)員編號 數(shù)據(jù)流量: 說明:客人點菜時可以進行特色菜和酒水信息的查詢,買單時要核對消費名目是否屬實。2)數(shù)據(jù)流名稱:菜譜信息位置:菜譜p2定義:菜譜信息=編號+房間臺號+菜名+單位+價格+菜系類別+口味
7、說明數(shù)據(jù)流量:說明:編號不能有重復(fù)的。3)數(shù)據(jù)流名稱:桌臺狀況 位置:桌臺p1 定義:桌臺狀況=編號+房臺名稱+類型說+餐飲部門+服務(wù)費+簡要說明+狀態(tài) 數(shù)據(jù)流量:說明:只有狀態(tài)為空閑的房臺才能開臺。4)數(shù)據(jù)流名稱:開臺人 位置:服務(wù)員定義:開臺人編號姓名員工類別密碼數(shù)據(jù)流量:說明:不同的員工類別具有不同的權(quán)限,管理員具有所有權(quán)限,服務(wù)員不具備系統(tǒng)維修等權(quán)限。5)數(shù)據(jù)流名稱:員工信息位置:定義:員工信息員工編號姓名性別出生日期聯(lián)系電話聯(lián)系地址聘用日期工作部門員工類別身份證號備注數(shù)據(jù)流量:4說明:員工編號不可相同。6)數(shù)據(jù)流名稱:管理員情況位置:管理員定義:管理員姓名口令數(shù)據(jù)流量:平均流量為每年
8、傳輸 50 次。說明:通過管理員來不斷的更新和維護這個系統(tǒng)。7 )數(shù)據(jù)流名稱:開臺信息 位置:p1p4 定義:開臺信息=房間臺號+服務(wù)費 數(shù)據(jù)流量: 說明:服務(wù)費可以省去。8)數(shù)據(jù)流名稱:點菜信息 位置:p2p4 定義:點菜信息=房間臺號+類別+編號+名稱+類型+數(shù)量+價格+合計+點但日期+結(jié)單日期+服務(wù)員編號+服務(wù)員姓名+結(jié)帳編號 數(shù)據(jù)流量: 說明:房間臺號是根據(jù)開臺而來的。(2)主要的數(shù)據(jù)存儲定義)數(shù)據(jù)存儲編號:數(shù)據(jù)存儲名稱:桌臺信息輸入:輸出:數(shù)據(jù)結(jié)構(gòu):桌臺信息=編號+房臺名稱+類型說+餐飲部門+服務(wù)費+簡要說明+狀態(tài)存取方式:檢索和更新處理,以檢索為主。說明:編號具有唯一性,狀態(tài)只能是
9、空閑或者營業(yè)。)數(shù)據(jù)存儲編號:d2數(shù)據(jù)存儲名稱:員工信息輸入:p1輸出:p3數(shù)據(jù)結(jié)構(gòu):員工信息=員工類別+口令存取方式:主要是檢索。5說明:根據(jù)員工類別的不同,在后面的操作中具有不同的權(quán)限。3)數(shù)據(jù)存儲編號:d3數(shù)據(jù)存儲名稱:菜譜信息輸入:p2輸出:p2數(shù)據(jù)結(jié)構(gòu):菜譜信息=菜名+單位+價格+菜系類別+口味說明存取方式:檢索說明:在點菜時對菜譜進行查詢。(3)主要處理過程1)處理過程編號:p1 處理過程名:開臺 輸入:服務(wù)員權(quán)限,桌臺狀況 輸出:開臺信息 處理說明:綜合各方面信息,進行客人消費前最基本的準(zhǔn)備。2)處理過程編號:p2處理過程名:點菜 輸入:d1,d3,d4 輸出:點菜信息 處理說明
10、:客人根據(jù)菜譜信息,酒水信息,特色菜信息,選擇自己中意的項目進行。3)處理過程編號:p3 處理過程名:權(quán)限管理 輸入:員工類型,口令 輸出:相應(yīng)的操作權(quán)限 處理說明:輸入員工類別和口令獲得相應(yīng)的操作權(quán)限,管理員比服務(wù)員具有更多的操作權(quán)限。6第二章第二章 系統(tǒng)概要設(shè)計系統(tǒng)概要設(shè)計2.12.1 系統(tǒng)總體框架設(shè)計系統(tǒng)總體框架設(shè)計根據(jù)業(yè)務(wù)情況,該系統(tǒng)共分為開臺管理、客人買單、菜譜信息設(shè)置、客戶點菜、酒水信息設(shè)置等模塊,系統(tǒng)結(jié)構(gòu)圖如圖 2.1 所示。圖 2.1 餐飲管理系統(tǒng)結(jié)構(gòu)圖2.22.2 各模塊功能分析各模塊功能分析(1)系統(tǒng)登錄窗口主要功能)系統(tǒng)登錄窗口主要功能:1)以圖標(biāo)形式顯示數(shù)據(jù)庫中操作員,
11、并憑口令登入到主界面。2)操作員輸入錯誤密碼提醒錯誤并返回,三次輸入錯誤口令則退出系統(tǒng)。3)實現(xiàn)權(quán)限登錄:系統(tǒng)管理員擁有一切權(quán)利,其他操作員則被限制一些操作權(quán)限。(2)系統(tǒng)主界面主要功能)系統(tǒng)主界面主要功能1)根據(jù)操作員權(quán)限設(shè)置相應(yīng)權(quán)限的菜單和工具欄功能。2)可通過菜單或快捷鍵進入相應(yīng)子界面。3)顯示了系統(tǒng)當(dāng)前時間和相應(yīng)操作員。(3)系統(tǒng)菜譜信息設(shè)置界面主要功能:)系統(tǒng)菜譜信息設(shè)置界面主要功能:實現(xiàn)對菜譜信息的添加、修改、刪除、查詢的功能。7(4 4)系統(tǒng)開臺管理界面主要功能:)系統(tǒng)開臺管理界面主要功能:1)以圖標(biāo)模式顯示空臺、營業(yè)臺,點擊臺號圖標(biāo)則自動顯示相應(yīng)臺號信息。2)通過輸入臺號檢索符
12、合條件的臺號。3)點擊空房自動彈出與昂查詢窗口從而自動開臺。(5 5)系統(tǒng)點菜界面主要功能:)系統(tǒng)點菜界面主要功能:1)實現(xiàn)菜譜,酒水查詢的鏈接。2)點擊“開始點菜”按鈕臺號狀態(tài)自動變?yōu)殚_臺,并聚焦到編號欄。3)在編號欄輸入菜編號按回車自動錄入菜的信息, 。4)自動生成結(jié)賬編號,輸入菜數(shù)量自動計算合計消費金額。5)可實現(xiàn)掛單、讀單、放棄開臺和點菜完畢返回的功能。8第三章第三章 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計3.13.1 系統(tǒng)系統(tǒng) e-re-r 圖的設(shè)計圖的設(shè)計系統(tǒng) e-r 圖如圖 3.1 所示9圖 3.1 系統(tǒng) e-r 圖3.23.2 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計數(shù)據(jù)庫結(jié)構(gòu)設(shè)計數(shù)據(jù)庫結(jié)構(gòu)設(shè)計是總體設(shè)計階段非常重要的環(huán)
13、節(jié),好的數(shù)據(jù)庫結(jié)構(gòu)可以簡化開發(fā)過程,使系統(tǒng)功能更加清晰明確。因為數(shù)據(jù)庫結(jié)構(gòu)的變化會造成編碼的改動,所以必須認真設(shè)計數(shù)據(jù)庫后再進行編碼,從而避免了無謂的重復(fù)的工作。本系統(tǒng)采用了 sql server 數(shù)據(jù)庫,數(shù)據(jù)庫名稱為 060412079。該數(shù)據(jù)庫包含 4個表,分別是:開臺表,點菜表,菜譜費用信息表,臺號信息表。下面分別介紹數(shù)據(jù)表的結(jié)構(gòu)。101、 開臺表開臺表用于保存開臺的相關(guān)信息。開臺表的結(jié)構(gòu)見表 3-2-1 所示。表 3-2-1 開臺表結(jié)構(gòu)字段名稱數(shù)據(jù)類型字段大小允許為空否編號int4設(shè)置為主鍵房臺名稱char30允許為空類型說明char20允許為空餐飲部門char20允許為空服務(wù)費mon
14、ey8允許為空簡要說明char30允許為空狀態(tài)char20允許為空2、 點菜表點菜表用于保存點菜信息和相應(yīng)的消費信息。點菜表的結(jié)構(gòu)見表 3-2-2 所示。表 3-2-2 點菜表結(jié)構(gòu)字段名稱數(shù)據(jù)類型字段大小是否允許為空idchar16設(shè)置為主鍵房間臺號int4允許為空類別char 10允許為空編號int4允許為空名稱char50允許為空類型char20允許為空單位char10允許為空數(shù)量int4允許為空價格money8允許為空合計money8允許為空點單日期datetime8允許為空結(jié)單日期datetime8允許為空服務(wù)員編號int8允許為空11服務(wù)員姓名char12允許為空狀態(tài)char10允許
15、為空結(jié)賬編號int4允許為空是否結(jié)單char10允許為空3、菜譜費用信息表用于查詢餐飲店所有的菜的信息。菜譜費用信息表的結(jié)構(gòu)如圖 3-2-3 所示。表 3-2-3 菜譜費用信息結(jié)構(gòu)字段名稱數(shù)據(jù)類型字段大小是否允許為空編號int4設(shè)為主鍵菜名char50允許為空單位char10允許為空價格money8允許為空菜系類別char20允許為空口味說明char30允許為空4、臺號信息表用于臺號信息的查詢,方便了消費者選臺,開臺及其他的作用。臺號信息表的結(jié)構(gòu)如圖 3-2-4 示。表 3-2-4 臺號信息表結(jié)構(gòu)字段名稱數(shù)據(jù)類型字段大小是否允許為空編號int4設(shè)為主鍵房臺名稱char30設(shè)為主鍵類型說明cha
16、r20允許為空餐飲部門char20允許為空服務(wù)費money 8允許為空簡要說明char30允許為空狀態(tài)char10允許為空容納人數(shù)int4允許為空12第四章第四章 系統(tǒng)詳細設(shè)計及實現(xiàn)系統(tǒng)詳細設(shè)計及實現(xiàn)4.14.1 系統(tǒng)登陸界面設(shè)計系統(tǒng)登陸界面設(shè)計1.實現(xiàn)目標(biāo) 程序啟動后,首先登陸此界面驗證操作員的密碼。主要實現(xiàn)的功能如下: 1)以圖標(biāo)形式顯示數(shù)據(jù)庫中操作員,并憑口令登入到主界面。2)操作員輸入錯誤密碼提醒錯誤并返回,三次輸入錯誤口令則退出系統(tǒng)。3)實現(xiàn)權(quán)限登錄:系統(tǒng)管理員擁有一切權(quán)利,其他操作員則被限制一些操作權(quán)限。系統(tǒng)登錄界面如圖 4.1.1 所示。圖 4.1.1 系統(tǒng)登錄界面2.實現(xiàn)過程
17、(1)添加窗體設(shè)置窗體 caption 屬性為“登錄窗口” ,保存窗體為 u79in.pas。 (2)向窗體中添加datasource、query、edit、listview、imagelist、image、time、label 等控件。主要控件對象的屬性如表 4-2-1 所示。表 4-2-1 主要控件對象的屬性列表控件名屬性值功能query1databasename sql060412079select * from 員工信表權(quán)限查詢database1datasetquery1設(shè)置數(shù)據(jù)源3.程序主要代碼如下: 單擊“登陸”按鈕,將判斷操作員、操作密碼是否正確,如果正確進入主界面13并根據(jù)操作
18、員權(quán)限設(shè)置菜單和工具是否可用。如果輸入密碼錯誤將提醒并返回,三次錯誤輸入則自動退出系統(tǒng)。procedure tuser.bitbtn1click(sender: tobject);begin mainform.toolbutton1.enabled:=true; mainform.toolbutton2.enabled:=true; mainform.toolbutton5.enabled:=true; mainform.toolbutton6.enabled:=true; mainform.n1.enabled:=true; mainform.n2.enabled:=true; mainfo
19、rm.n4.enabled:=true; mainform.n3.enabled:=true; mainform.n5.enabled:=true; mainform.n6.enabled:=true; mainform.n7.enabled:=true; mainform.n8.enabled:=true; mainform.n9.enabled:=true; mainform.n17.enabled:=true; mainform.n19.enabled:=true;if query1.fieldbyname(編號).asstring=controller then /如果是系統(tǒng)管理員 b
20、egin if edit1.textquery1.fieldbyname(密碼).asstring then begin showmessage(+query1.fieldbyname(姓名).asstring+的口令錯誤.); /口令錯誤 edit1.setfocus; end else begin mainform.statusbar1.panels1.text:=用戶+query1.fieldbyname(姓名).14asstring+; mainform.user1:=query1.fieldbyname(姓名).asstring; user_close:=3; timer1.enab
21、led:=false; close; end; end else begin mainform.toolbutton1.enabled:=false; mainform.toolbutton2.enabled:=false; mainform.toolbutton5.enabled:=false; mainform.n1.enabled:=false; mainform.n2.enabled:=false; mainform.n4.enabled:=false; mainform.n3.enabled:=false; mainform.n5.enabled:=false; mainform.n
22、6.enabled:=false; mainform.n7.enabled:=false; mainform.n8.enabled:=false; mainform.n9.enabled:=false; mainform.n17.enabled:=false; mainform.n19.enabled:=false; if edit1.textquery1.fieldbyname(密碼).asstring then begin showmessage(+query1.fieldbyname(姓名).asstring+的口令錯誤.); edit1.setfocus; end else begin
23、 name:=query1.fieldbyname(權(quán)限).asstring;15 mainform.enabledkey(name); /設(shè)置操作員權(quán)限 mainform.statusbar1.panels1.text:=用戶+query1.fieldbyname(姓名).asstring+; user_close:=3; timer1.enabled:=false; close; end; end; end;窗體啟動,關(guān)閉鑰匙,后將所有操作員添加到操作員列表。procedure tuser.formshow(sender: tobject);var list:array0.1of tlis
24、titem;begin timer1.enabled:=true; user_close:=0; /打開關(guān)閉鑰匙 query1.close; query1.open; listview1.items.clear; while not query1.eof do begin list0:=listview1.items.add; list0.caption:=query1.fieldbyname(姓名).asstring; if query1.fieldbyname(編號).asstring=controller then begin list0.imageindex:=0; end else
25、begin list0.imageindex:=1; end; query1.next;16 end;end;選擇操作員,點擊其中一個則將員工的姓名和類型添加到了相應(yīng)位置。procedure tuser.listview1click(sender: tobject);var list:array0.1of tlistitem;begin list0:=listview1.selected; if list0nil then begin query1.locate(姓名,list0.caption,locaseinsensitive);/查詢姓名,但是如果有從名的按第一個算. end;end;4
26、.24.2 主界面設(shè)計主界面設(shè)計1、程序啟動后。系統(tǒng)在“登陸界面”驗證操作員密碼后,將進入此界面。系統(tǒng)主界面主要功能:根據(jù)操作員權(quán)限設(shè)置相應(yīng)權(quán)限的菜單和工具欄功能??赏ㄟ^菜單或快捷鍵進入相應(yīng)子界面。顯示了系統(tǒng)當(dāng)前時間和相應(yīng)操作員。主程序界面如圖 4.2.1 所示。圖 4.2.1 主程序界面172.實現(xiàn)過程 (1)啟動 delphi,設(shè)置窗體名為 mainfrom,設(shè)置窗體 caption 為“餐飲管理系統(tǒng)”,保存為 u791.pas。 (2)向窗體中添加imagelist、mainmenu、image、toolbutton、stausbar、panel、time、label 等控件主要屬性為:
27、控件名屬性值功能toolbar1imagesimagelist1設(shè)置工具欄圖標(biāo)stausbar 1panel1用戶登錄【管理員】顯示程序狀態(tài)、參數(shù) (3)主要程序代碼如下:使應(yīng)用項目的提示信息掛鉤程序。 procedure tmainform.formcreate(sender: tobject);beginapplication.onhint:=displayhint; /與應(yīng)用項目的提示信息掛鉤end;先調(diào)用系統(tǒng)登陸窗口,再設(shè)置窗體狀態(tài)參數(shù)程序。procedure tmainform.formshow(sender: tobject);var year,month,day: word;be
28、gin close_1:=1; user.showmodal; /調(diào)用系統(tǒng)登陸窗口 if close_1 = 0 then close else begin application.mainform.windowstate:=wsmaximized; application.mainform.windowstate:=wsnormal; decodedate(strtodate(datetostr(date),year,month,day); /分解日期 statusbar1.panels2.text:=系統(tǒng)日期:+inttostr(year)+年+inttostr(month)+月+intt
29、ostr(day)+日; end;18end;調(diào)入開臺界面程序。procedure tmainform.n8click(sender: tobject);beginif assigned(ktgl) thenbegindatamodule1.thxx.open;/打開臺號信息表datamodule1.cybmb.open;/ 打開餐飲部門表datamodule1.jzbh.open;/打開結(jié)帳編號表ktgl:=tktgl.create(self);ktgl.showmodal;end;end;設(shè)置“b”類權(quán)限有系統(tǒng)管理和系統(tǒng)維護操作權(quán), “a”類權(quán)限即系統(tǒng)管理員的操作享有一切操作權(quán)限。如圖 4
30、.2.2 所示。圖 4.2.2 b 類權(quán)限主程序界面代碼如下:function tmainform.enabledkey(key:string):boolean;/聲明操作權(quán)限函數(shù) enabledkeybegin if pos(a,key)0 then /具有a類權(quán)限 begin19 mainform.toolbutton1.enabled:=true; mainform.toolbutton2.enabled:=true; mainform.toolbutton5.enabled:=true; mainform.toolbutton6.enabled:=true; mainform.n1.e
31、nabled:=true; mainform.n2.enabled:=true; mainform.n4.enabled:=true; mainform.n3.enabled:=true; mainform.n8.enabled:=true; mainform.n9.enabled:=true; mainform.n17.enabled:=true; mainform.n19.enabled:=true; end else if pos(b,key)0 then /具有b類權(quán)限 begin mainform.toolbutton1.enabled:=true; mainform.toolbut
32、ton2.enabled:=true; mainform.toolbutton6.enabled:=true; mainform.n1.enabled:=true; mainform.n5.enabled:=true; mainform.n6.enabled:=true; mainform.n7.enabled:=true; mainform.n4.enabled:=true; mainform.n3.enabled:=true; mainform.n8.enabled:=true; mainform.n9.enabled:=true; mainform.n17.enabled:=true;
33、mainform.n19.enabled:=true; end;end;20調(diào)入菜譜信息設(shè)置界面程序。procedure tmainform.n6click(sender: tobject);begin if assigned(cpxxsz) then begin datamodule1.cpfyxx.open;/打開菜譜費用信息表 datamodule1.cxlbxx.open;/打開菜系類別信息表 cpxxsz:=tcpxxsz.create(self); cpxxsz.showmodal; end;end;4.34.3 菜譜信息設(shè)置界面設(shè)計菜譜信息設(shè)置界面設(shè)計4.3.14.3.1 菜譜設(shè)
34、置模塊菜譜設(shè)置模塊1.實現(xiàn)目標(biāo)程序啟動后,調(diào)用菜單“基礎(chǔ)信息設(shè)置”下的“菜譜信息設(shè)置”項,將打開“菜譜信息設(shè)置界面” 。系統(tǒng)菜譜信息設(shè)置界面主要功能:實現(xiàn)對菜譜信息的添加、修改、刪除、查詢的功能。2.實現(xiàn)過程 (1)添加新窗體,設(shè)置窗體名為 cpxxsz,設(shè)置窗體 caption 為“菜譜信息設(shè)置” ,保存為 u79cpset.pas。 (2)向窗體中添加query、panel、groupbox、dbgrid、dbedit、edit、dbtext、bitbtn、dblookupcombobox、time、datasetfrist、actionlist、label 等控件,主要控件屬性如表 4-
35、3-1 所示。表 4-3-1 主要控件屬性對象屬性值功能query1databasenamesql060412079slect max(編號) from 菜譜信息費用表設(shè)置數(shù)據(jù)范圍datasetfrist1datasourcecaptiondatabase1.cpxxfys首記錄移動到首記錄21hint移動到第一條記錄datasetlast1datasourcecaptionhintdatabase1.cpxxfys尾記錄移動到最后一條記錄移動到尾記錄datasetnext1datasourcecaptionhintdatabase1.cpxxfys下一條記錄移動到下一條記錄移動到下一條記錄d
36、atasetprior1datasourcecaptionhintdatabase1.cpxxfys上一條記錄移動到上一條記錄移動到上一條記錄dblookupcombox1listsourcekeyfieldlistfielddatasourcedtafirlddatabase1.cpfyxxs菜系名稱菜系名稱database1.cxlbxxs菜系類別選擇菜系類別4.3.24.3.2 菜譜查詢設(shè)計菜譜查詢設(shè)計1.菜譜信息設(shè)置查詢界面如圖 4.3.1 所示。圖 4.3.1 菜譜信息查詢設(shè)置界面222.代碼如下:procedure tcpxxsz.bitbtn1click(sender: tobj
37、ect);var a,b,c:integer;d:string;begin if length(edit1.text) = 0 then /如果輸入查詢信息為空 begin showmessage(請輸入查詢的編號或菜名信息); edit1.setfocus; end else begin a:=length(edit1.text); c:=0; for b:=1 to a do /for 語句用于判斷查詢是按菜譜編號還是按菜名查詢 begin d:=copy(edit1.text,b,1); if (d=0) or (d=9) then begin c:=c+1; end; end; if
38、c = length(edit1.text) then /按菜譜編號查詢 begin if datamodule1.cpfyxx.locate(編號,strtoint(edit1.text),locaseinsensitive) then begin dbgrid1.setfocus; dbgrid1.selectedindex:=0; end else23 begin showmessage(對不起,沒有找到。); edit1.setfocus; end; end else /按菜譜編號查詢 begin if datamodule1.cpfyxx.locate(菜名,edit1.text,l
39、opartialkey) then begin dbgrid1.setfocus; dbgrid1.selectedindex:=1; end else begin showmessage(對不起,沒有找到。); edit1.setfocus; end; end; end;end;4.3.34.3.3 菜譜添加設(shè)計菜譜添加設(shè)計1.菜譜信息設(shè)置添加界面如圖 4.3.2 所示。24圖 4.3.2 菜譜信息添加設(shè)置界面2.代碼如下:procedure tcpxxsz.bitbtn2click(sender: tobject);vara:integer;begin query1.close; quer
40、y1.open; if query1.recordcount0 then a:=query1.fields0.asinteger else a:=1; if bitbtn2.caption=添加 then /添加菜譜信息 begin datamodule1.cpfyxx.refresh; if datamodule1.cpfyxx.recordcount = 0 then a:=79000 /添加菜譜信息 else begin datamodule1.cpfyxx.last; a:=datamodule1.cpfyxx.fieldbyname(編號).asinteger; end; bitbt
41、n2.caption:=保存; bitbtn3.caption:=取消; aenabled(1); datamodule1.cpfyxx.insert; datamodule1.cpfyxx.fieldbyname(編號).asinteger:=a+1; datamodule1.cpfyxx.fieldbyname(菜系類別).asstring:=datamodule1.cxlbxx.fieldbyname(菜系名稱).asstring; dbedit2.setfocus; end else /保存菜譜信息 begin if (length(datamodule1.cpfyxx.fieldby
42、name(菜名).asstring)=0) or25 (length(datamodule1.cpfyxx.fieldbyname(單位).asstring)=0) or (length(datamodule1.cpfyxx.fieldbyname(價格).asstring)=0) then begin showmessage(請將菜名、單位、價格的數(shù)據(jù)添全。); dbedit1.setfocus; endelse begin aenabled(2); bitbtn2.caption:=添加; bitbtn3.caption:=修改; datamodule1.cpfyxx.post; /保存菜
43、譜信息 end; end;end;4.3.44.3.4 菜譜修改設(shè)計菜譜修改設(shè)計1.菜譜信息設(shè)置修改界面如圖 4.3.3 所示。圖 4.3.3 菜譜信息設(shè)置修改界面2.代碼如下:procedure tcpxxsz.bitbtn3click(sender: tobject);begin if bitbtn3.caption=修改 then26 begin datamodule1.cpfyxx.refresh; if datamodule1.cpfyxx.recordcount = 0 then /如果數(shù)據(jù)為空 begin showmessage(對不起,沒有數(shù)據(jù)可以修改。); end else
44、/如果數(shù)據(jù)不為空 begin aenabled(1); bitbtn2.caption:=保存; bitbtn3.caption:=取消; datamodule1.cpfyxx.edit; /編輯 dbedit1.setfocus; end; end else begin aenabled(2); bitbtn2.caption:=添加; bitbtn3.caption:=修改; datamodule1.cpfyxx.cancel; /取消保存信息 end;end;4.3.54.3.5 菜譜刪除設(shè)計菜譜刪除設(shè)計1.菜譜信息設(shè)置刪除界面如圖 4.3.3 所示。27圖 4.3.3 菜譜信息設(shè)置刪除
45、界面2.代碼如下:procedure tcpxxsz.bitbtn4click(sender: tobject);begin datamodule1.cpfyxx.refresh; if datamodule1.cpfyxx.recordcount = 1 then begin showmessage(對不起,這是最后一個菜,不能刪除。); end else if messagedlg(確認刪除指定的菜譜信息嗎?,mtcustom,mbyes,mbno,0)=mryes then begin datamodule1.cpfyxx.delete; /刪除數(shù)據(jù) end;end;5. 狀態(tài)編輯與瀏覽
46、狀態(tài)函數(shù)function aenabled(key:integer):boolean ; /定義狀態(tài)編輯與瀏覽狀態(tài)函數(shù)begin28 if key = 1 then /編輯狀態(tài) begin cpxxsz.bitbtn4.enabled:=false; /“刪除“按鈕不可用 cpxxsz.bitbtn5.enabled:=false; /“退出“按鈕不可用 cpxxsz.bitbtn1.enabled:=false; /“查詢“按鈕不可用 cpxxsz.edit1.enabled:=false; /查詢輸入框不可用 cpxxsz.dbgrid1.enabled:=false; cpxxsz.gr
47、oupbox1.visible:=true; end else /瀏覽狀態(tài) begin cpxxsz.bitbtn4.enabled:=true; /“刪除“按鈕可用 cpxxsz.bitbtn5.enabled:=true; /“退出“按鈕可用 cpxxsz.bitbtn1.enabled:=true; /“查詢“按鈕可用 cpxxsz.edit1.enabled:=true; cpxxsz.dbgrid1.enabled:=true; cpxxsz.groupbox1.visible:=false; end;end;4.44.4 系統(tǒng)開臺管理設(shè)計系統(tǒng)開臺管理設(shè)計1.實現(xiàn)目標(biāo)程序啟動后,調(diào)用
48、菜單“前臺管理”下的“開臺管理”項,將打開“開臺管理”界面。系統(tǒng)開臺管理界面主要功能:以圖標(biāo)模式顯示空臺、營業(yè)臺,點擊臺號圖標(biāo)則自動顯示相應(yīng)臺號信息。通過輸入臺號檢索符合條件的臺號。點擊空房自動彈出與昂查詢窗口從而自動開臺。2.實現(xiàn)過程 (1)添加新窗體,設(shè)置窗體名為 ktgl,設(shè)置窗體 caption 為“開臺管理” ,保存為 u79ktgl.pas。 (2)向窗體中添加datasource、query、groupbox、panel、pagecontrol、dbgrid、dbedit、edit、db29text、bitbtn、dblookupcombobox、image、label 等控件,
49、主要控件屬性如表 4-3-1 所示。表 4-3-1 主要控件屬性控件名屬性值功能打他搜如廁datasetquery設(shè)置數(shù)據(jù)源dblookupcombox1listsourcekeyfieldlistfielddatabase1.cybmbs部門名稱部門名稱選擇餐飲部門dbgrid1datasourcedatabase1.thxxs顯示臺號信息4.4.14.4.1 搜索臺號設(shè)計搜索臺號設(shè)計1.開臺管理搜索臺號界面如圖 4.4-1 所示。圖 4.4-1 開臺管理搜索臺號界面2.代碼如下:procedure tktgl.bitbtn1click(sender: tobject); /搜索房臺var
50、list:tlistitem; lists:integer; listtext:string; a,b,c:integer; d:string;begin if length(edit1.text) = 0 then begin30 showmessage(請輸入查詢的房臺編號或房臺名稱信息); edit1.setfocus; end else begin a:=length(edit1.text); c:=0; for b:=1 to a do begin d:=copy(edit1.text,b,1); if (d=0) or (d=9) then begin c:=c+1; end; e
51、nd; if c = length(edit1.text) then begin if datamodule1.thxx.locate(編號,strtoint(edit1.text),locaseinsensitive) then begin if datamodule1.thxx.fieldbyname(狀態(tài)).asstring空閑 then begin pagecontrol1.activepageindex:=1; /顯示第二頁 bitbtn6.setfocus;/將焦點移到點菜服務(wù)按扭上 end else begin pagecontrol1.activepageindex:=0; /
52、顯示第一頁 bitbtn3.setfocus;/將焦點移到開臺設(shè)置按扭上 end; end31 else begin showmessage(對不起,沒有找到。); end; end else begin if datamodule1.thxx.locate(房臺名稱,edit1.text,lopartialkey) then begin if datamodule1.thxx.fieldbyname(狀態(tài)).asstring空閑 then begin pagecontrol1.activepageindex:=1; /顯示第二頁 bitbtn6.setfocus;/將焦點移到點菜服務(wù)按扭上
53、end else begin pagecontrol1.activepageindex:=0; /顯示第一頁 bitbtn3.setfocus;/將焦點移到開臺設(shè)置按扭上 end; end else begin showmessage(對不起,沒有找到。); end; end; end;end;4.4.24.4.2 開臺設(shè)置設(shè)計開臺設(shè)置設(shè)計1.開臺管理開臺設(shè)置界面如圖 4.4.2 所示。32圖 4.4.2 開臺管理開臺設(shè)置界面2.代碼如下:procedure tygcx.bitbtn1click(sender: tobject);begin gb:=2; if length(edit1.tex
54、t) = 0 then begin showmessage(請輸入員工編號); edit1.setfocus; end else if datamodule1.ygxxb.locate(員工編號,strtoint(edit1.text),locaseinsensitive) then begin if not assigned(dcfy_lr) then begin dcfy_lr:=tdcfy_lr.create(self); dcfy_lr.label14.caption:=ygcx.edit1.text; dcfy_lr.label15.caption:=datamodule1.ygxx
55、b.fieldbyname(姓名).asstring; dcfy_lr.label16.caption:=datetimetostr(now); if datamodule1.jzbh.recordcount = 0 then begin33 datamodule1.jzbh.append; datamodule1.jzbh.fieldbyname(編號).asinteger:=1; datamodule1.jzbh.post; end else dcfy_lr.label17.caption:=inttostr(datamodule1.jzbh.fieldbyname(編號).asinteg
56、er+1); dcfy_lr.show; end; gb:=1; ygcx.close; end else begin showmessage(對不起,沒有找到此員工信息.); edit1.setfocus; end;end;4.4.34.4.3 臺號信息查詢的設(shè)計臺號信息查詢的設(shè)計1.開臺管理臺號信息查詢界面如圖 4.4.3 所示。圖 4.4.3 開臺管理臺號信息查詢界面2.代碼如下:procedure tktgl.listview2click(sender: tobject); /選擇房臺var list:tlistitem;34 liststring:string;begin list:
57、=tlistview(sender).selected; if list nil then begin liststring:=list.caption; if length(liststring) 0 then if datamodule1.thxx.locate(房臺名稱,liststring,lopartialkey) then begin query1.close; query1.sql.clear; query1.sql.add(select 編號,名稱,類型,單位,數(shù)量,價格,合計,狀態(tài),服務(wù)員姓名 from 點菜臨時表); query1.sql.add(where 房間臺號=:a
58、 and 是否結(jié)單=:b); query1.params0.asinteger:=datamodule1.thxx.fieldbyname(編號).asinteger; query1.params1.asstring:=否; query1.open; query2.close; query2.sql.clear; query2.sql.add(select sum(合計) from 點菜臨時表); query2.sql.add(where 房間臺號=:a and 是否結(jié)單=:b); query2.params0.asinteger:=datamodule1.thxx.fieldbyname(編
59、號).asinteger; query2.params1.asstring:=否; query2.open; if query1.recordcount 0 then begin query1.last; label13.caption:=query1.fieldbyname(服務(wù)員姓名).asstring; 35label15.caption:=floattostr(query2.fields0.asfloat+datamodule1.thxx.fieldbyname(服務(wù)費).asfloat); end else begin label13.caption:=; label15.capti
60、on:=; end; end;end;end;4.4.44.4.4 房臺列表顯示函數(shù)的設(shè)計房臺列表顯示函數(shù)的設(shè)計function addlistview:boolean; /定義房臺列表顯示函數(shù)begin datamodule1.thxx.refresh; ktgl.listview1.items.clear; datamodule1.thxx.filter:=format(狀態(tài)+=+%s,空閑); datamodule1.thxx.filtered:=true; while not datamodule1.thxx.eof do begin ktgl.listview1.items.add.
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZJCX 0045-2024 食用菌干制品
- T-ZGZS 0411-2024 T-CCPITCSC 150-2024 綠色會展廢棄物管理規(guī)范
- T-ZMDS 10024-2024 手術(shù)導(dǎo)航設(shè)備配準(zhǔn)技術(shù)要求及試驗方法
- 2025年度高端辦公空間無償租賃合作協(xié)議
- 2025年度能源企業(yè)質(zhì)押貸款擔(dān)保合同
- 二零二五年度企業(yè)辦公用品定制化采購合同
- 醫(yī)藥公司二零二五年度員工商業(yè)秘密保密協(xié)議及保密技術(shù)支持服務(wù)協(xié)議
- 2025年度村辦公室裝修與農(nóng)村電商市場拓展合作合同
- 二零二五年度酒店加盟店經(jīng)營管理合作協(xié)議
- 2025年度物流園區(qū)開發(fā)物業(yè)移交與倉儲物流服務(wù)協(xié)議
- 五年級下冊英語作文訓(xùn)練-外研版(三起)
- 7.2.1 圓柱(課件含動畫演示)-【中職】高一數(shù)學(xué)(高教版2021基礎(chǔ)模塊下冊)
- 《義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)(2022年版)》測試題+答案
- 便利店門店運營手冊
- 江蘇省南通市海安中學(xué)2025屆高一下生物期末綜合測試試題含解析
- 《行政倫理學(xué)教程(第四版)》課件 第1、2章 行政倫理的基本觀念、行政倫理學(xué)的思想資源
- 拆除工程施工拆除進度安排
- 絕緣技術(shù)監(jiān)督上崗員:廠用電設(shè)備技術(shù)監(jiān)督考試資料一
- 衛(wèi)生監(jiān)督村醫(yī)培訓(xùn)課件
- 動物的感覺器官
- 獵頭項目方案
評論
0/150
提交評論