專業(yè)課程設計報告Delphi餐飲管理系統(tǒng)_第1頁
專業(yè)課程設計報告Delphi餐飲管理系統(tǒng)_第2頁
專業(yè)課程設計報告Delphi餐飲管理系統(tǒng)_第3頁
專業(yè)課程設計報告Delphi餐飲管理系統(tǒng)_第4頁
專業(yè)課程設計報告Delphi餐飲管理系統(tǒng)_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目 錄 第一章第一章 系統(tǒng)需求分析系統(tǒng)需求分析.1 1 1.1 系統(tǒng)功能需求分析.1 1.2 系統(tǒng)數據流圖.1 1.3 數據字典.2 第二章第二章 系統(tǒng)概要設計系統(tǒng)概要設計.5 5 2.1 系統(tǒng)總體框圖設計.5 2.2 各模塊功能分析.5 第三章第三章 數據庫設計數據庫設計.7 7 3.1 系統(tǒng) e-r 圖設計.7 3.2 數據庫結構的設計.8 第四章第四章 系統(tǒng)詳細設計及實現系統(tǒng)詳細設計及實現.1111 4.1 系統(tǒng)登陸界面設計.11 4.2 系統(tǒng)主界面設計.15 4.3 菜譜設置模塊.19 4.3.1 菜譜信息設置設計 .19 4.3.2 菜譜查詢設計 .20 4.3.3 菜譜添加設計 .

2、22 4.3.4 菜譜修改設計 .24 4.3.5 菜譜刪除設計 .25 4.4 開臺管理模塊.27 4.4.1 搜索臺號設計 .27 4.4.2 開臺設置設計 .30 4.4.3 臺號信息查詢的設計 .32 4.4.4 房臺列表顯示函數的設計 .34 4.5 點菜管理模塊.34 4.5.1 客戶點菜設計 .35 4.5.2 客戶放棄開臺設計. 37 4.5.3 客戶點菜完畢返回設計.37 第五章第五章 數據模塊的創(chuàng)建與實現數據模塊的創(chuàng)建與實現.45.45 5.1 數據模塊的創(chuàng)建.45 5.2 數據模塊的實現.46 第六章第六章 系統(tǒng)調試與測試系統(tǒng)調試與測試.53.53 6.1 軟件功能測試.

3、47 第七章第七章 結論結論.5454 7.1 系統(tǒng)開發(fā)遇到的問題.54 7.2 系統(tǒng)改進方面.54 7.3 總結.54 摘要摘要 近幾年來,隨著我國國民經濟的穩(wěn)定增長,餐飲業(yè)的競爭也越來越激勵,想在這 樣競爭激勵的環(huán)境下生存,就必須運用科學的管理思想與先進的管理方法,使用點 餐與管理一體化。這樣不僅提高了工作效率,也避免了以前手工作業(yè)的麻煩,從而 使得管理者能夠準確,有效的管理餐飲。因此,餐飲業(yè)的管理者更需要一種綜合實 時的管理模式,希望從更科學的管理中取得競爭的優(yōu)勢,在競爭激烈的商業(yè)市場中 取勝。結合管理信息系統(tǒng)的開發(fā)方法及步驟,以此為理論根據,開發(fā)出一個信息管 理系統(tǒng)餐飲管理系統(tǒng)。它采用

4、國際通用的先進餐飲管理模式,并結合中國的管 理實際特點開發(fā)而成。通過本系統(tǒng)功能模塊,可為各種大小不同的餐飲管理所使用。 為管理者提供高效的管理手段,本系統(tǒng)有著人性理的設置理念,流程清晰、易懂。 具有獨特的功能對于開臺管理、點菜、菜譜設置等為管理人員帶來很大的方便,減 少人為因素的錯誤,提高服務水平,提升企業(yè)形象。 關鍵字:餐飲管理系統(tǒng)、提高服務水平、提高工作效率 第一章第一章 系統(tǒng)需求分析系統(tǒng)需求分析 1.11.1 系統(tǒng)功能需求分析系統(tǒng)功能需求分析 隨著現在連鎖餐飲店的不斷崛起,作為餐飲業(yè)不可缺少的一部分餐飲管理系 統(tǒng),它的內容對于餐飲業(yè)的決策者和管理者來說都非常重要。本系統(tǒng)基于餐飲管理 系統(tǒng)

5、之下的一個子系統(tǒng),可以把整個餐飲店的日常經營管理信息化,包括點餐、庫 存管理、員工信息等日常經營的一些統(tǒng)計功能。現在此系統(tǒng)還不夠完善,將來使此 系統(tǒng)會集成更多的功能,例如:餐飲管理系統(tǒng)的開發(fā)成功,實現了餐飲業(yè)的現代化, 表明了餐飲管理正與國際化接軌,有了更為深入的發(fā)展。 餐軟管理系統(tǒng)采用國際通用的先進餐飲管理模式,并結合中國的管理實際特 點開發(fā)而成。通過本系統(tǒng)功能模塊,可為各種大小不同的餐飲管理所使用。為管理 者提供高效的管理手段,本系統(tǒng)有著人性理的設置理念,流程清晰、易懂。具有獨 特的功能對于開臺管理、點菜、菜譜設置等為管理人員帶來很大的方便,減少人為 因素的錯誤,提高服務水平,提升企業(yè)形象

6、。 根據實際情況的需要,系統(tǒng)主要功能如下: 前臺管理:開臺管理、客戶結賬、退出系統(tǒng)。 系統(tǒng)管理:權限管理、系統(tǒng)管理、幫助。 基礎信息管理:酒水信息查詢、菜譜信息查詢及設置。 1.21.2 系統(tǒng)數據流圖系統(tǒng)數據流圖 根據實際情況要求,系統(tǒng)數據流圖如圖 1.2.1 所示 圖 1.2.1 數據流圖 1.31.3 數據字典數據字典 在這定義的酒店餐飲數據字典,主要對數據流程圖中的數據流、數據存儲和處 理過程進行說明。 (1)主要的數據流定義 1)數據流名稱:客戶信息 位置:客戶p2 定義:客戶信息=房間臺號+所點菜+酒水+開單時間+服務員編號 數據流量: 說明:客人點菜時可以進行特色菜和酒水信息的查詢

7、,買單時要核對消費名目是 否屬實。 2)數據流名稱:菜譜信息 位置:菜譜p2 定義:菜譜信息=編號+房間臺號+菜名+單位+價格+菜系類別+口味說明 數據流量: 說明:編號不能有重復的。 3)數據流名稱:桌臺狀況 位置:桌臺p1 定義:桌臺狀況=編號+房臺名稱+類型說+餐飲部門+服務費+簡要說明+狀態(tài) 數據流量: 說明:只有狀態(tài)為空閑的房臺才能開臺。 4)數據流名稱:開臺人 位置:服務員 定義:開臺人編號姓名員工類別密碼 數據流量: 說明:不同的員工類別具有不同的權限,管理員具有所有權限,服務員不具備系 統(tǒng)維修等權限。 5)數據流名稱:員工信息 位置: 定義:員工信息員工編號姓名性別出生日期聯系

8、電話聯系地址 聘用日期工作部門員工類別身份證號備注 數據流量: 說明:員工編號不可相同。 6)數據流名稱:管理員情況 位置:管理員 定義:管理員姓名口令 數據流量:平均流量為每年傳輸 50 次。 說明:通過管理員來不斷的更新和維護這個系統(tǒng)。 7 )數據流名稱:開臺信息 位置:p1p4 定義:開臺信息=房間臺號+服務費 數據流量: 說明:服務費可以省去。 8)數據流名稱:點菜信息 位置:p2p4 定義:點菜信息=房間臺號+類別+編號+名稱+類型+數量+價格+合計+點但日期+結 單日期+服務員編號+服務員姓名+結帳編號 數據流量: 說明:房間臺號是根據開臺而來的。 (2)主要的數據存儲定義 )數據

9、存儲編號: 數據存儲名稱:桌臺信息 輸入: 輸出: 數據結構:桌臺信息=編號+房臺名稱+類型說+餐飲部門+服務費+簡要說明+狀態(tài) 存取方式:檢索和更新處理,以檢索為主。 說明:編號具有唯一性,狀態(tài)只能是空閑或者營業(yè)。 )數據存儲編號:d2 數據存儲名稱:員工信息 輸入:p1 輸出:p3 數據結構:員工信息=員工類別+口令 存取方式:主要是檢索。 說明:根據員工類別的不同,在后面的操作中具有不同的權限。 3)數據存儲編號:d3 數據存儲名稱:菜譜信息 輸入:p2 輸出:p2 數據結構:菜譜信息=菜名+單位+價格+菜系類別+口味說明 存取方式:檢索 說明:在點菜時對菜譜進行查詢。 (3)主要處理過

10、程 1)處理過程編號:p1 處理過程名:開臺 輸入:服務員權限,桌臺狀況 輸出:開臺信息 處理說明:綜合各方面信息,進行客人消費前最基本的準備。 2)處理過程編號:p2 處理過程名:點菜 輸入:d1,d3,d4 輸出:點菜信息 處理說明:客人根據菜譜信息,酒水信息,特色菜信息,選擇自己中意的項目 進行。 3)處理過程編號:p3 處理過程名:權限管理 輸入:員工類型,口令 輸出:相應的操作權限 處理說明:輸入員工類別和口令獲得相應的操作權限,管理員比服務員具有更 多的操作權限。 第二章第二章 系統(tǒng)概要設計系統(tǒng)概要設計 2.12.1 系統(tǒng)總體框架設計系統(tǒng)總體框架設計 根據業(yè)務情況,該系統(tǒng)共分為開臺

11、管理、客人買單、菜譜信息設置、客戶點菜、 酒水信息設置等模塊,系統(tǒng)結構圖如圖 2.1 所示。 圖 2.1 餐飲管理系統(tǒng)結構圖 2.22.2 各模塊功能分析各模塊功能分析 (1)系統(tǒng)登錄窗口主要功能)系統(tǒng)登錄窗口主要功能: 1)以圖標形式顯示數據庫中操作員,并憑口令登入到主界面。 2)操作員輸入錯誤密碼提醒錯誤并返回,三次輸入錯誤口令則退出系統(tǒng)。 3)實現權限登錄:系統(tǒng)管理員擁有一切權利,其他操作員則被限制一些操作權 限。 (2)系統(tǒng)主界面主要功能)系統(tǒng)主界面主要功能 1)根據操作員權限設置相應權限的菜單和工具欄功能。 2)可通過菜單或快捷鍵進入相應子界面。 3)顯示了系統(tǒng)當前時間和相應操作員。

12、 (3)系統(tǒng)菜譜信息設置界面主要功能:)系統(tǒng)菜譜信息設置界面主要功能: 實現對菜譜信息的添加、修改、刪除、查詢的功能。 (4 4)系統(tǒng)開臺管理界面主要功能:)系統(tǒng)開臺管理界面主要功能: 1)以圖標模式顯示空臺、營業(yè)臺,點擊臺號圖標則自動顯示相應臺號信息。 2)通過輸入臺號檢索符合條件的臺號。 3)點擊空房自動彈出與昂查詢窗口從而自動開臺。 (5 5)系統(tǒng)點菜界面主要功能:)系統(tǒng)點菜界面主要功能: 1)實現菜譜,酒水查詢的鏈接。 2)點擊“開始點菜”按鈕臺號狀態(tài)自動變?yōu)殚_臺,并聚焦到編號欄。 3)在編號欄輸入菜編號按回車自動錄入菜的信息, 。 4)自動生成結賬編號,輸入菜數量自動計算合計消費金額

13、。 5)可實現掛單、讀單、放棄開臺和點菜完畢返回的功能。 第三章第三章 數據庫設計數據庫設計 3.13.1 系統(tǒng)系統(tǒng) e-re-r 圖的設計圖的設計 系統(tǒng) e-r 圖如圖 3.1 所示 圖 3.1 系統(tǒng) e-r 圖 3.23.2 數據庫結構設計數據庫結構設計 數據庫結構設計是總體設計階段非常重要的環(huán)節(jié),好的數據庫結構可以簡化開發(fā) 過程,使系統(tǒng)功能更加清晰明確。因為數據庫結構的變化會造成編碼的改動,所以 必須認真設計數據庫后再進行編碼,從而避免了無謂的重復的工作。 本系統(tǒng)采用了 sql server 數據庫,數據庫名稱為 060412079。該數據庫包含 4 個表,分別是:開臺表,點菜表,菜譜費

14、用信息表,臺號信息表。下面分別介紹數 據表的結構。 1、 開臺表 開臺表用于保存開臺的相關信息。開臺表的結構見表 3-2-1 所示。 表 3-2-1 開臺表結構 字段名稱數據類型字段大小允許為空否 編號int4設置為主鍵 房臺名稱char30允許為空 類型說明char20允許為空 餐飲部門char20允許為空 服務費money8允許為空 簡要說明char30允許為空 狀態(tài)char20允許為空 2、 點菜表 點菜表用于保存點菜信息和相應的消費信息。點菜表的結構見表 3-2-2 所示。 表 3-2-2 點菜表結構 字段名稱數據類型字段大小是否允許為空 idchar16設置為主鍵 房間臺號int4允

15、許為空 類別char 10允許為空 編號int4允許為空 名稱char50允許為空 類型char20允許為空 單位char10允許為空 數量int4允許為空 價格money8允許為空 合計money8允許為空 點單日期datetime8允許為空 結單日期datetime8允許為空 服務員編號int8允許為空 服務員姓名char12允許為空 狀態(tài)char10允許為空 結賬編號int4允許為空 是否結單char10允許為空 3、菜譜費用信息表用于查詢餐飲店所有的菜的信息。菜譜費用信息表的結構如 圖 3-2-3 所示。 表 3-2-3 菜譜費用信息結構 字段名稱數據類型字段大小是否允許為空 編號in

16、t4設為主鍵 菜名char50允許為空 單位char10允許為空 價格money8允許為空 菜系類別char20允許為空 口味說明char30允許為空 4、臺號信息表用于臺號信息的查詢,方便了消費者選臺,開臺及其他的作用。臺 號信息表的結構如圖 3-2-4 示。 表 3-2-4 臺號信息表結構 字段名稱數據類型字段大小是否允許為空 編號int4設為主鍵 房臺名稱char30設為主鍵 類型說明char20允許為空 餐飲部門char20允許為空 服務費money 8允許為空 簡要說明char30允許為空 狀態(tài)char10允許為空 容納人數int4允許為空 第四章第四章 系統(tǒng)詳細設計及實現系統(tǒng)詳細設

17、計及實現 4.14.1 系統(tǒng)登陸界面設計系統(tǒng)登陸界面設計 1.實現目標 程序啟動后,首先登陸此界面驗證操作員的密碼。主要實現的功能如下: 1)以圖標形式顯示數據庫中操作員,并憑口令登入到主界面。 2)操作員輸入錯誤密碼提醒錯誤并返回,三次輸入錯誤口令則退出系統(tǒng)。 3)實現權限登錄:系統(tǒng)管理員擁有一切權利,其他操作員則被限制一些操作權限。 系統(tǒng)登錄界面如圖 4.1.1 所示。 圖 4.1.1 系統(tǒng)登錄界面 2.實現過程 (1)添加窗體設置窗體 caption 屬性為“登錄窗口” ,保存窗體為 u79in.pas。 (2)向窗體中添加 datasource、query、edit、listview、

18、imagelist、image、time、label 等控件。 主要控件對象的屬性如表 4-2-1 所示。 表 4-2-1 主要控件對象的屬性列表 控件名屬性值功能 query1databasename sql 060412079 select * from 員工信表 權限查詢 database1datasetquery1設置數據源 3.程序主要代碼如下: 單擊“登陸”按鈕,將判斷操作員、操作密碼是否正確,如果正確進入主界面 并根據操作員權限設置菜單和工具是否可用。如果輸入密碼錯誤將提醒并返回,三 次錯誤輸入則自動退出系統(tǒng)。 procedure tuser.bitbtn1click(sende

19、r: 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; mainform.n4.enabled:=true; mainform.n3.enabled:=true; mainform.n5.enabled:=true; ma

20、inform.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)管 理員 begin if edit1.textquery1.fieldbyname(密碼).asstring then begin showmessage(+q

21、uery1.fieldbyname(姓名).asstring+的口令錯誤.); /口令錯誤 edit1.setfocus; end else begin mainform.statusbar1.panels1.text:=用戶+query1.fieldbyname(姓名). asstring+; mainform.user1:=query1.fieldbyname(姓名).asstring; user_close:=3; timer1.enabled:=false; close; end; end else begin mainform.toolbutton1.enabled:=false;

22、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.n6.enabled:=false; mainform.n7.enabled:=false; mainform.n8.enabled:=false; ma

23、inform.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 name:=query1.fieldbyname(權限).asstring; mainform.enabledkey(name); /設置操作員權限

24、mainform.statusbar1.panels1.text:=用戶+query1.fieldbyname(姓名 ).asstring+; user_close:=3; timer1.enabled:=false; close; end; end; end; 窗體啟動,關閉鑰匙,后將所有操作員添加到操作員列表。 procedure tuser.formshow(sender: tobject); var list:array0.1of tlistitem; begin timer1.enabled:=true; user_close:=0; /打開關閉鑰匙 query1.close; qu

25、ery1.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 begin list0.imageindex:=1; end; query1.next; end; end; 選擇操作員,點擊其中一個則將員工的姓

26、名和類型添加到了相應位置。 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.24.2 主界面設計主界面設計 1、程序啟動后。系統(tǒng)在“登陸界面”驗證操作員密碼后,將進入此界面。系統(tǒng)主界 面主要功能: 根據操作員

27、權限設置相應權限的菜單和工具欄功能。 可通過菜單或快捷鍵進入相應子界面。 顯示了系統(tǒng)當前時間和相應操作員。 主程序界面如圖 4.2.1 所示。 圖 4.2.1 主程序界面 2.實現過程 (1)啟動 delphi,設置窗體名為 mainfrom,設置窗體 caption 為“餐飲管理系統(tǒng)” ,保存為 u791.pas。 (2)向窗體中添加 imagelist、mainmenu、image、toolbutton、stausbar、panel、time、label 等控 件主要屬性為: 控件名屬性值功能 toolbar1imagesimagelist1設置工具欄圖標 stausbar 1panel1

28、用戶登錄【管理員】顯示程序狀態(tài)、參數 (3)主要程序代碼如下: 使應用項目的提示信息掛鉤程序。 procedure tmainform.formcreate(sender: tobject); begin application.onhint:=displayhint; /與應用項目的提示信息掛鉤 end; 先調用系統(tǒng)登陸窗口,再設置窗體狀態(tài)參數程序。 procedure tmainform.formshow(sender: tobject); var year,month,day: word; begin close_1:=1; user.showmodal; /調用系統(tǒng)登陸窗口 if cl

29、ose_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)+月+inttostr(day)+日; end; end; 調入開臺界面程序。 procedure tma

30、inform.n8click(sender: tobject); begin if assigned(ktgl) then begin datamodule1.thxx.open;/打開臺號信息表 datamodule1.cybmb.open;/ 打開餐飲部門表 datamodule1.jzbh.open;/打開結帳編號表 ktgl:=tktgl.create(self); ktgl.showmodal; end; end; 設置“b”類權限有系統(tǒng)管理和系統(tǒng)維護操作權, “a”類權限即系統(tǒng)管理員的操作 享有一切操作權限。如圖 4.2.2 所示。 圖 4.2.2 b 類權限主程序界面 代碼如下:

31、 function tmainform.enabledkey(key:string):boolean;/聲明操作權限函數 enabledkey begin if pos(a,key)0 then /具有a類權限 begin mainform.toolbutton1.enabled:=true; mainform.toolbutton2.enabled:=true; mainform.toolbutton5.enabled:=true; mainform.toolbutton6.enabled:=true; mainform.n1.enabled:=true; mainform.n2.enabl

32、ed:=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類權限 begin mainform.toolbutton1.enabled:=true; mainform.toolbutton2.enabled:=true; mainform.to

33、olbutton6.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; mainform.n19.enabled:=true; end

34、; end; 調入菜譜信息設置界面程序。 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 菜譜信息設置界面設計菜譜信息設置界面設計 4.3.14.3.1 菜譜設置模塊菜譜設置模塊 1.實現目標 程序啟動后,調用菜

35、單“基礎信息設置”下的“菜譜信息設置”項,將打開 “菜譜信息設置界面” 。系統(tǒng)菜譜信息設置界面主要功能:實現對菜譜信息的添加、 修改、刪除、查詢的功能。 2.實現過程 (1)添加新窗體,設置窗體名為 cpxxsz,設置窗體 caption 為“菜譜信息設置” , 保存為 u79cpset.pas。 (2)向窗體中添加 query、panel、groupbox、dbgrid、dbedit、edit、dbtext、bitbtn、dblookupcom bobox、time、datasetfrist、actionlist、label 等控件,主要控件屬性如表 4-3- 1 所示。 表 4-3-1 主

36、要控件屬性 對象屬性值功能 query1databasename sql 060412079 slect max(編號) from 菜譜 信息費用表 設置數 據范圍 datasetfrist1datasource caption database1.cpxxfys 首記錄 移動到 首記錄 hint移動到第一條記錄 datasetlast1datasource caption hint database1.cpxxfys 尾記錄 移動到最后一條記錄 移動到 尾記錄 datasetnext1datasource caption hint database1.cpxxfys 下一條記錄 移動到下一條

37、記錄 移動到 下一條 記錄 datasetprior1datasource caption hint database1.cpxxfys 上一條記錄 移動到上一條記錄 移動到 上一條 記錄 dblookupcombox1listsource keyfield listfield datasource dtafirld database1.cpfyxxs 菜系名稱 菜系名稱 database1.cxlbxxs 菜系類別 選擇菜 系類別 4.3.24.3.2 菜譜查詢設計菜譜查詢設計 1.菜譜信息設置查詢界面如圖 4.3.1 所示。 圖 4.3.1 菜譜信息查詢設置界面 2.代碼如下: proce

38、dure tcpxxsz.bitbtn1click(sender: tobject); 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)

39、or (d=9) then begin c:=c+1; end; end; if c = length(edit1.text) then /按菜譜編號查詢 begin if datamodule1.cpfyxx.locate(編號,strtoint(edit1.text), locaseinsensitive) then begin dbgrid1.setfocus; dbgrid1.selectedindex:=0; end else begin showmessage(對不起,沒有找到。); edit1.setfocus; end; end else /按菜譜編號查詢 begin if d

40、atamodule1.cpfyxx.locate(菜名,edit1.text,lopartialkey) then begin dbgrid1.setfocus; dbgrid1.selectedindex:=1; end else begin showmessage(對不起,沒有找到。); edit1.setfocus; end; end; end; end; 4.3.34.3.3 菜譜添加設計菜譜添加設計 1.菜譜信息設置添加界面如圖 4.3.2 所示。 圖 4.3.2 菜譜信息添加設置界面 2.代碼如下: procedure tcpxxsz.bitbtn2click(sender: to

41、bject); var a:integer; begin query1.close; query1.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:=datamodul

42、e1.cpfyxx.fieldbyname(編號).asinteger; end; bitbtn2.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 /保存

43、菜譜信息 begin if (length(datamodule1.cpfyxx.fieldbyname(菜名).asstring)=0) or (length(datamodule1.cpfyxx.fieldbyname(單位).asstring)=0) or (length(datamodule1.cpfyxx.fieldbyname(價格).asstring)=0) then begin showmessage(請將菜名、單位、價格的數據添全。); dbedit1.setfocus; end else begin aenabled(2); bitbtn2.caption:=添加; bit

44、btn3.caption:=修改; datamodule1.cpfyxx.post; /保存菜譜信息 end; end; end; 4.3.44.3.4 菜譜修改設計菜譜修改設計 1.菜譜信息設置修改界面如圖 4.3.3 所示。 圖 4.3.3 菜譜信息設置修改界面 2.代碼如下: procedure tcpxxsz.bitbtn3click(sender: tobject); begin if bitbtn3.caption=修改 then begin datamodule1.cpfyxx.refresh; if datamodule1.cpfyxx.recordcount = 0 then

45、 /如果數據為空 begin showmessage(對不起,沒有數據可以修改。); end else /如果數據不為空 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

46、菜譜刪除設計菜譜刪除設計 1.菜譜信息設置刪除界面如圖 4.3.3 所示。 圖 4.3.3 菜譜信息設置刪除界面 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

47、 begin datamodule1.cpfyxx.delete; /刪除數據 end; end; 5. 狀態(tài)編輯與瀏覽狀態(tài)函數 function aenabled(key:integer):boolean ; /定義狀態(tài)編輯與瀏覽狀態(tài)函 數 begin if key = 1 then /編輯狀態(tài) begin cpxxsz.bitbtn4.enabled:=false; /“刪除“按鈕不可用 cpxxsz.bitbtn5.enabled:=false; /“退出“按鈕不可用 cpxxsz.bitbtn1.enabled:=false; /“查詢“按鈕不可用 cpxxsz.edit1.enabl

48、ed:=false; /查詢輸入框不可用 cpxxsz.dbgrid1.enabled:=false; cpxxsz.groupbox1.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.

49、visible:=false; end; end; 4.44.4 系統(tǒng)開臺管理設計系統(tǒng)開臺管理設計 1.實現目標 程序啟動后,調用菜單“前臺管理”下的“開臺管理”項,將打開“開臺管理” 界面。系統(tǒng)開臺管理界面主要功能: 以圖標模式顯示空臺、營業(yè)臺,點擊臺號圖標則自動顯示相應臺號信息。 通過輸入臺號檢索符合條件的臺號。 點擊空房自動彈出與昂查詢窗口從而自動開臺。 2.實現過程 (1)添加新窗體,設置窗體名為 ktgl,設置窗體 caption 為“開臺管理” ,保存 為 u79ktgl.pas。 (2)向窗體中添加 datasource、query、groupbox、panel、pagecont

50、rol、dbgrid、dbedit、edit、db text、bitbtn、dblookupcombobox、image、label 等控件,主要控件屬性如表 4-3- 1 所示。 表 4-3-1 主要控件屬性 控件名屬性值功能 打他搜如廁datasetquery設置數據源 dblookupcombox1listsource keyfield listfield database1.cybmbs 部門名稱 部門名稱 選擇餐飲部門 dbgrid1datasourcedatabase1.thxxs顯示臺號信息 4.4.14.4.1 搜索臺號設計搜索臺號設計 1.開臺管理搜索臺號界面如圖 4.4-1

51、 所示。 圖 4.4-1 開臺管理搜索臺號界面 2.代碼如下: procedure tktgl.bitbtn1click(sender: tobject); /搜索房臺 var list:tlistitem; lists:integer; listtext:string; 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

52、 b:=1 to a do begin d:=copy(edit1.text,b,1); if (d=0) or (d=9) then begin c:=c+1; end; end; 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

53、; /顯示第二頁 bitbtn6.setfocus;/將焦點移到點菜服務按扭上 end else begin pagecontrol1.activepageindex:=0; /顯示第一頁 bitbtn3.setfocus;/將焦點移到開臺設置按扭上 end; end else begin showmessage(對不起,沒有找到。); end; end else begin if datamodule1.thxx.locate(房臺名稱,edit1.text,lopartialkey) then begin if datamodule1.thxx.fieldbyname(狀態(tài)).asstri

54、ng空閑 then begin pagecontrol1.activepageindex:=1; /顯示第二頁 bitbtn6.setfocus;/將焦點移到點菜服務按扭上 end else begin pagecontrol1.activepageindex:=0; /顯示第一頁 bitbtn3.setfocus;/將焦點移到開臺設置按扭上 end; end else begin showmessage(對不起,沒有找到。); end; end; end; end; 4.4.24.4.2 開臺設置設計開臺設置設計 1.開臺管理開臺設置界面如圖 4.4.2 所示。 圖 4.4.2 開臺管理開臺

55、設置界面 2.代碼如下: procedure tygcx.bitbtn1click(sender: tobject); begin gb:=2; if length(edit1.text) = 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.crea

56、te(self); dcfy_lr.label14.caption:=ygcx.edit1.text; dcfy_lr.label15.caption:=datamodule1.ygxxb.fieldbyname(姓名). asstring; dcfy_lr.label16.caption:=datetimetostr(now); if datamodule1.jzbh.recordcount = 0 then begin datamodule1.jzbh.append; datamodule1.jzbh.fieldbyname(編號).asinteger:=1; datamodule1.jz

57、bh.post; end else dcfy_lr.label17.caption:=inttostr(datamodule1.jzbh.fieldbyname(編 號).asinteger+1); dcfy_lr.show; end; gb:=1; ygcx.close; end else begin showmessage(對不起,沒有找到此員工信息.); edit1.setfocus; end; end; 4.4.34.4.3 臺號信息查詢的設計臺號信息查詢的設計 1.開臺管理臺號信息查詢界面如圖 4.4.3 所示。 圖 4.4.3 開臺管理臺號信息查詢界面 2.代碼如下: proced

58、ure tktgl.listview2click(sender: tobject); /選擇房臺 var list:tlistitem; liststring:string; begin list:=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.c

59、lear; query1.sql.add(select 編號,名稱,類型,單位,數量,價格,合計,狀態(tài),服務員 姓名 from 點菜臨時表); query1.sql.add(where 房間臺號=:a and 是否結單=:b); query1.params0.asinteger:=datamodule1.thxx.fieldbyname(編號). asinteger; query1.params1.asstring:=否; query1.open; query2.close; query2.sql.clear; query2.sql.add(select sum(合計) from 點菜臨時表)

60、; query2.sql.add(where 房間臺號=:a and 是否結單=:b); query2.params0.asinteger:=datamodule1.thxx.fieldbyname(編號). asinteger; query2.params1.asstring:=否; query2.open; if query1.recordcount 0 then begin query1.last; label13.caption:=query1.fieldbyname(服務員姓名).asstring; label15.caption:=floattostr(query2.fields0

溫馨提示

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

評論

0/150

提交評論