专业课程设计报告范文-Delphi餐饮管理系统_第1页
专业课程设计报告范文-Delphi餐饮管理系统_第2页
专业课程设计报告范文-Delphi餐饮管理系统_第3页
专业课程设计报告范文-Delphi餐饮管理系统_第4页
专业课程设计报告范文-Delphi餐饮管理系统_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、南京审计学院信息科学学院南京审计学院信息科学学院 课程设计报告书课程设计报告书 课程名称:课程名称: 信息系统开发工具课程设计信息系统开发工具课程设计 课题名称:课题名称: 餐餐 饮饮 管管 理理 系系 统统 专专 业:业:信息管理与信息系统信息管理与信息系统 班班 级:级: 08 级信息管理级信息管理 1 班班 学学 号:号: 061415309061415309 姓姓 名:名: 孙晓刚孙晓刚 成成 绩:绩: 2010 年年 12 月月 26 日日 目 录 第一章 系统需求分析.1 1.1 系统功能需求分析.1 1.2 系统数据流图.1 1.3 数据字典.2 第二章 系统概要设计.5 2.1

2、 系统总体框图设计.5 2.2 各模块功能分析.5 第三章 数据库设计.7 3.1 系统 E-R 图设计.7 3.2 数据库结构的设计.8 第四章 系统详细设计及实现.11 4.1 系统登陆界面设计.11 4.2 系统主界面设计.15 4.3 菜谱设置模块.19 4.3.1 菜谱信息设置设计.19 4.3.2 菜谱查询设计.20 4.3.3 菜谱添加设计.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

3、4.5 点菜管理模块.34 4.5.1 客户点菜设计.35 4.5.2 客户放弃开台设计. 37 4.5.3 客户点菜完毕返回设计.37 第五章 数据模块的创建与实现.45 5.1 数据模块的创建.45 5.2 数据模块的实现.46 第六章 系统调试与测试.53 6.1 软件功能测试.47 第七章 结论.54 7.1 系统开发遇到的问题.54 7.2 系统改进方面.54 7.3 总结.54 摘要摘要 近几年来,随着我国国民经济的稳定增长,餐饮业的竞争也越来越激励,想在这 样竞争激励的环境下生存,就必须运用科学的管理思想与先进的管理方法,使用点 餐与管理一体化。这样不仅提高了工作效率,也避免了以

4、前手工作业的麻烦,从而 使得管理者能够准确,有效的管理餐饮。因此,餐饮业的管理者更需要一种综合实 时的管理模式,希望从更科学的管理中取得竞争的优势,在竞争激烈的商业市场中 取胜。结合管理信息系统的开发方法及步骤,以此为理论根据,开发出一个信息管 理系统餐饮管理系统。它采用国际通用的先进餐饮管理模式,并结合中国的管 理实际特点开发而成。通过本系统功能模块,可为各种大小不同的餐饮管理所使用。 为管理者提供高效的管理手段,本系统有着人性理的设置理念,流程清晰、易懂。 具有独特的功能对于开台管理、点菜、菜谱设置等为管理人员带来很大的方便,减 少人为因素的错误,提高服务水平,提升企业形象。 关键字:餐饮

5、管理系统、提高服务水平、提高工作效率 第一章第一章 系统需求分析系统需求分析 1.11.1 系统功能需求分析系统功能需求分析 随着现在连锁餐饮店的不断崛起,作为餐饮业不可缺少的一部分餐饮管理系 统,它的内容对于餐饮业的决策者和管理者来说都非常重要。本系统基于餐饮管理 系统之下的一个子系统,可以把整个餐饮店的日常经营管理信息化,包括点餐、库 存管理、员工信息等日常经营的一些统计功能。现在此系统还不够完善,将来使此 系统会集成更多的功能,例如:餐饮管理系统的开发成功,实现了餐饮业的现代化, 表明了餐饮管理正与国际化接轨,有了更为深入的发展。 餐软管理系统采用国际通用的先进餐饮管理模式,并结合中国的

6、管理实际特 点开发而成。通过本系统功能模块,可为各种大小不同的餐饮管理所使用。为管理 者提供高效的管理手段,本系统有着人性理的设置理念,流程清晰、易懂。具有独 特的功能对于开台管理、点菜、菜谱设置等为管理人员带来很大的方便,减少人为 因素的错误,提高服务水平,提升企业形象。 根据实际情况的需要,系统主要功能如下: 前台管理:开台管理、客户结账、退出系统。 系统管理:权限管理、系统管理、帮助。 基础信息管理:酒水信息查询、菜谱信息查询及设置。 1.21.2 系统数据流图系统数据流图 根据实际情况要求,系统数据流图如图 1.2.1 所示 图 1.2.1 数据流图 1.31.3 数据字典数据字典 在

7、这定义的酒店餐饮数据字典,主要对数据流程图中的数据流、数据存储和处 理过程进行说明。 (1)主要的数据流定义 1)数据流名称:客户信息 位置:客户P2 定义:客户信息=房间台号+所点菜+酒水+开单时间+服务员编号 数据流量: 说明:客人点菜时可以进行特色菜和酒水信息的查询,买单时要核对消费名目是 否属实。 2)数据流名称:菜谱信息 位置:菜谱P2 定义:菜谱信息=编号+房间台号+菜名+单位+价格+菜系类别+口味说明 数据流量: 说明:编号不能有重复的。 3)数据流名称:桌台状况 位置:桌台P1 定义:桌台状况=编号+房台名称+类型说+餐饮部门+服务费+简要说明+状态 数据流量: 说明:只有状态

8、为空闲的房台才能开台。 4)数据流名称:开台人 位置:服务员 定义:开台人编号姓名员工类别密码 数据流量: 说明:不同的员工类别具有不同的权限,管理员具有所有权限,服务员不具备系 统维修等权限。 5)数据流名称:员工信息 位置: 定义:员工信息员工编号姓名性别出生日期联系电话联系地址 聘用日期工作部门员工类别身份证号备注 数据流量: 说明:员工编号不可相同。 6)数据流名称:管理员情况 位置:管理员 定义:管理员姓名口令 数据流量:平均流量为每年传输 50 次。 说明:通过管理员来不断的更新和维护这个系统。 7 )数据流名称:开台信息 位置:P1P4 定义:开台信息=房间台号+服务费 数据流量

9、: 说明:服务费可以省去。 8)数据流名称:点菜信息 位置:P2P4 定义:点菜信息=房间台号+类别+编号+名称+类型+数量+价格+合计+点但日期+结 单日期+服务员编号+服务员姓名+结帐编号 数据流量: 说明:房间台号是根据开台而来的。 (2)主要的数据存储定义 )数据存储编号: 数据存储名称:桌台信息 输入: 输出: 数据结构:桌台信息=编号+房台名称+类型说+餐饮部门+服务费+简要说明+状态 存取方式:检索和更新处理,以检索为主。 说明:编号具有唯一性,状态只能是空闲或者营业。 )数据存储编号:D2 数据存储名称:员工信息 输入:P1 输出:P3 数据结构:员工信息=员工类别+口令 存取

10、方式:主要是检索。 说明:根据员工类别的不同,在后面的操作中具有不同的权限。 3)数据存储编号:D3 数据存储名称:菜谱信息 输入:P2 输出:P2 数据结构:菜谱信息=菜名+单位+价格+菜系类别+口味说明 存取方式:检索 说明:在点菜时对菜谱进行查询。 (3)主要处理过程 1)处理过程编号:P1 处理过程名:开台 输入:服务员权限,桌台状况 输出:开台信息 处理说明:综合各方面信息,进行客人消费前最基本的准备。 2)处理过程编号:P2 处理过程名:点菜 输入:D1,D3,D4 输出:点菜信息 处理说明:客人根据菜谱信息,酒水信息,特色菜信息,选择自己中意的项目 进行。 3)处理过程编号:P3

11、 处理过程名:权限管理 输入:员工类型,口令 输出:相应的操作权限 处理说明:输入员工类别和口令获得相应的操作权限,管理员比服务员具有更 多的操作权限。 第二章第二章 系统概要设计系统概要设计 2.12.1 系统总体框架设计系统总体框架设计 根据业务情况,该系统共分为开台管理、客人买单、菜谱信息设置、客户点菜、 酒水信息设置等模块,系统结构图如图 2.1 所示。 图 2.1 餐饮管理系统结构图 2.22.2 各模块功能分析各模块功能分析 (1)系统登录窗口主要功能)系统登录窗口主要功能: 1)以图标形式显示数据库中操作员,并凭口令登入到主界面。 2)操作员输入错误密码提醒错误并返回,三次输入错

12、误口令则退出系统。 3)实现权限登录:系统管理员拥有一切权利,其他操作员则被限制一些操作权 限。 (2)系统主界面主要功能)系统主界面主要功能 1)根据操作员权限设置相应权限的菜单和工具栏功能。 2)可通过菜单或快捷键进入相应子界面。 3)显示了系统当前时间和相应操作员。 (3)系统菜谱信息设置界面主要功能:)系统菜谱信息设置界面主要功能: 实现对菜谱信息的添加、修改、删除、查询的功能。 (4 4)系统开台管理界面主要功能:)系统开台管理界面主要功能: 1)以图标模式显示空台、营业台,点击台号图标则自动显示相应台号信息。 2)通过输入台号检索符合条件的台号。 3)点击空房自动弹出与昂查询窗口从

13、而自动开台。 (5 5)系统点菜界面主要功能:)系统点菜界面主要功能: 1)实现菜谱,酒水查询的链接。 2)点击“开始点菜”按钮台号状态自动变为开台,并聚焦到编号栏。 3)在编号栏输入菜编号按回车自动录入菜的信息, 。 4)自动生成结账编号,输入菜数量自动计算合计消费金额。 5)可实现挂单、读单、放弃开台和点菜完毕返回的功能。 第三章第三章 数据库设计数据库设计 3.13.1 系统系统 E-RE-R 图的设计图的设计 系统 E-R 图如图 3.1 所示 图 3.1 系统 E-R 图 3.23.2 数据库结构设计数据库结构设计 数据库结构设计是总体设计阶段非常重要的环节,好的数据库结构可以简化开

14、发 过程,使系统功能更加清晰明确。因为数据库结构的变化会造成编码的改动,所以 必须认真设计数据库后再进行编码,从而避免了无谓的重复的工作。 本系统采用了 SQL Server 数据库,数据库名称为 060412079。该数据库包含 4 个表,分别是:开台表,点菜表,菜谱费用信息表,台号信息表。下面分别介绍数 据表的结构。 1、 开台表 开台表用于保存开台的相关信息。开台表的结构见表 3-2-1 所示。 表 3-2-1 开台表结构 字段名称数据类型字段大小允许为空否 编号int4设置为主键 房台名称char30允许为空 类型说明char20允许为空 餐饮部门char20允许为空 服务费money

15、8允许为空 简要说明char30允许为空 状态char20允许为空 2、 点菜表 点菜表用于保存点菜信息和相应的消费信息。点菜表的结构见表 3-2-2 所示。 表 3-2-2 点菜表结构 字段名称数据类型字段大小是否允许为空 idchar16设置为主键 房间台号int4允许为空 类别Char 10允许为空 编号int4允许为空 名称char50允许为空 类型char20允许为空 单位char10允许为空 数量int4允许为空 价格money8允许为空 合计Money8允许为空 点单日期datetime8允许为空 结单日期datetime8允许为空 服务员编号int8允许为空 服务员姓名char

16、12允许为空 状态char10允许为空 结账编号int4允许为空 是否结单char10允许为空 3、菜谱费用信息表用于查询餐饮店所有的菜的信息。菜谱费用信息表的结构如 图 3-2-3 所示。 表 3-2-3 菜谱费用信息结构 字段名称数据类型字段大小是否允许为空 编号int4设为主键 菜名char50允许为空 单位char10允许为空 价格money8允许为空 菜系类别char20允许为空 口味说明char30允许为空 4、台号信息表用于台号信息的查询,方便了消费者选台,开台及其他的作用。台 号信息表的结构如图 3-2-4 示。 表 3-2-4 台号信息表结构 字段名称数据类型字段大小是否允许

17、为空 编号int4设为主键 房台名称char30设为主键 类型说明Char20允许为空 餐饮部门Char20允许为空 服务费money 8允许为空 简要说明char30允许为空 状态char10允许为空 容纳人数Int4允许为空 第四章第四章 系统详细设计及实现系统详细设计及实现 4.14.1 系统登陆界面设计系统登陆界面设计 1.实现目标 程序启动后,首先登陆此界面验证操作员的密码。主要实现的功能如下: 1)以图标形式显示数据库中操作员,并凭口令登入到主界面。 2)操作员输入错误密码提醒错误并返回,三次输入错误口令则退出系统。 3)实现权限登录:系统管理员拥有一切权利,其他操作员则被限制一些

18、操作权限。 系统登录界面如图 4.1.1 所示。 图 4.1.1 系统登录界面 2.实现过程 (1)添加窗体设置窗体 caption 属性为“登录窗口” ,保存窗体为 u79in.pas。 (2)向窗体中添加 Datasource、Query、Edit、Listview、ImageList、Image、Time、Label 等控件。 主要控件对象的属性如表 4-2-1 所示。 表 4-2-1 主要控件对象的属性列表 控件名属性值功能 Query1Databasename SQL 060412079 Select * from 员工信表 权限查询 Database1DatasetQuery1设置

19、数据源 3.程序主要代码如下: 单击“登陆”按钮,将判断操作员、操作密码是否正确,如果正确进入主界面 并根据操作员权限设置菜单和工具是否可用。如果输入密码错误将提醒并返回,三 次错误输入则自动退出系统。 procedure TUser.BitBtn1Click(Sender: TObject); begin MainForm.ToolButton1.Enabled:=True; MainForm.ToolButton2.Enabled:=True; MainForm.ToolButton5.Enabled:=True; MainForm.ToolButton6.Enabled:=True; M

20、ainForm.N1.Enabled:=True; MainForm.N2.Enabled:=True; MainForm.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

21、 Query1.FieldByName(编号).AsString=controller then /如果是系统管 理员 begin if Edit1.TextQuery1.FieldByName(密码).AsString then begin ShowMessage(+Query1.FieldByName(姓名).AsString+的口令错误.); /口令错误 Edit1.SetFocus; End Else begin MainForm.StatusBar1.Panels1.Text:=用户+Query1.FieldByName(姓名). AsString+; MainForm.User1:

22、=Query1.FieldByName(姓名).AsString; User_Close:=3; Timer1.Enabled:=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; MainFo

23、rm.N3.Enabled:=False; MainForm.N5.Enabled:=False; MainForm.N6.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.Fiel

24、dByName(姓名).AsString+的口令错误.); Edit1.SetFocus; End Else begin Name:=Query1.FieldByName(权限).AsString; MainForm.EnabledKey(Name); /设置操作员权限 MainForm.StatusBar1.Panels1.Text:=用户+Query1.FieldByName(姓名 ).AsString+; User_Close:=3; Timer1.Enabled:=False; Close; end; end; END; 窗体启动,关闭钥匙,后将所有操作员添加到操作员列表。 proce

25、dure TUser.FormShow(Sender: TObject); var List:Array0.1of TListItem; begin Timer1.Enabled:=True; User_Close:=0; /打开关闭钥匙 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(编号

26、).AsString=controller then begin List0.ImageIndex:=0; End Else begin List0.ImageIndex:=1; end; Query1.Next; end; end; 选择操作员,点击其中一个则将员工的姓名和类型添加到了相应位置。 procedure TUser.ListView1Click(Sender: TObject); var List:Array0.1of TListItem; begin List0:=ListView1.Selected; if List0Nil then begin Query1.Locate(

27、姓名,List0.Caption,loCaseInsensitive); /查询姓名,但是如果有从名的按第一个算. end; end; 4.24.2 主界面设计主界面设计 1、程序启动后。系统在“登陆界面”验证操作员密码后,将进入此界面。系统主界 面主要功能: 根据操作员权限设置相应权限的菜单和工具栏功能。 可通过菜单或快捷键进入相应子界面。 显示了系统当前时间和相应操作员。 主程序界面如图 4.2.1 所示。 图 4.2.1 主程序界面 2.实现过程 (1)启动 Delphi,设置窗体名为 mainfrom,设置窗体 caption 为“餐饮管理系统” ,保存为 u791.pas。 (2)向

28、窗体中添加 Imagelist、mainmenu、image、toolbutton、stausbar、panel、time、label 等控 件主要属性为: 控件名属性值功能 Toolbar1imagesImagelist1设置工具栏图标 stausbar 1Panel1用户登录【管理员】显示程序状态、参数 (3)主要程序代码如下: 使应用项目的提示信息挂钩程序。 procedure TMainForm.FormCreate(Sender: TObject); begin Application.OnHint:=DisPlayHint; /与应用项目的提示信息挂钩 end; 先调用系统登陆窗口

29、,再设置窗体状态参数程序。 procedure TMainForm.FormShow(Sender: TObject); var Year,Month,Day: Word; begin Close_1:=1; User.ShowModal; /调用系统登陆窗口 If Close_1 = 0 Then Close Else begin Application.MainForm.WindowState:=wsMaximized; Application.MainForm.WindowState:=wsNormal; DecodeDate(StrToDate(DateTOStr(Date),Year

30、,Month,day); /分解日期 StatusBar1.Panels2.Text:=系统日期:+IntToStr(Year)+年 +IntToStr(Month)+月+IntToStr(day)+日; end; end; 调入开台界面程序。 procedure TMainForm.N8Click(Sender: TObject); begin If Assigned(KTGL) Then begin DataModule1.THXX.Open;/打开台号信息表 DataModule1.cybmb.Open;/ 打开餐饮部门表 DataModule1.JZBH.Open;/打开结帐编号表 K

31、TGL:=TKTGL.Create(Self); KTGL.ShowModal; end; end; 设置“B”类权限有系统管理和系统维护操作权, “A”类权限即系统管理员的操作 享有一切操作权限。如图 4.2.2 所示。 图 4.2.2 B 类权限主程序界面 代码如下: Function TMainForm.EnabledKey(key:String):Boolean;/声明操作权限函数 EnabledKey begin if Pos(A,key)0 then /具有A类权限 begin MainForm.ToolButton1.Enabled:=True; MainForm.ToolBut

32、ton2.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.N8.Enabled:=True; MainForm.N9.Enabled:=True; MainForm.N17.Enabled:=True; MainForm.N19.Enabl

33、ed:=True; End Else if Pos(B,key)0 then /具有B类权限 begin MainForm.ToolButton1.Enabled:=True; MainForm.ToolButton2.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; Main

34、Form.N3.Enabled:=True; MainForm.N8.Enabled:=True; MainForm.N9.Enabled:=True; MainForm.N17.Enabled:=True; MainForm.N19.Enabled:=True; End; end; 调入菜谱信息设置界面程序。 procedure TMainForm.N6Click(Sender: TObject); begin If Assigned(CPXXSZ) Then begin DataModule1.CPFYXX.Open;/打开菜谱费用信息表 DataModule1.cxlbxx.open;/

35、打开菜系类别信息表 CPXXSZ:=TCPXXSZ.Create(Self); CPXXSZ.ShowModal; end; end; 4.34.3 菜谱信息设置界面设计菜谱信息设置界面设计 4.3.14.3.1 菜谱设置模块菜谱设置模块 1.实现目标 程序启动后,调用菜单“基础信息设置”下的“菜谱信息设置”项,将打开 “菜谱信息设置界面” 。系统菜谱信息设置界面主要功能:实现对菜谱信息的添加、 修改、删除、查询的功能。 2.实现过程 (1)添加新窗体,设置窗体名为 cpxxsz,设置窗体 caption 为“菜谱信息设置” , 保存为 u79cpset.pas。 (2)向窗体中添加 quer

36、y、panel、groupbox、dbgrid、dbedit、edit、dbtext、bitbtn、dblookupcom bobox、time、datasetfrist、actionlist、label 等控件,主要控件属性如表 4-3- 1 所示。 表 4-3-1 主要控件属性 对象属性值功能 Query1Databasename sql 060412079 Slect MAX(编号) from 菜谱 信息费用表 设置数 据范围 DatasetFrist1Datasource Caption Hint Database1.cpxxfys 首记录 移动到第一条记录 移动到 首记录 Datas

37、etLast1Datasource Caption Hint Database1.cpxxfys 尾记录 移动到最后一条记录 移动到 尾记录 DatasetNext1Datasource Caption Hint Database1.cpxxfys 下一条记录 移动到下一条记录 移动到 下一条 记录 DatasetPrior1DatasourceDatabase1.cpxxfys移动到 上一条 记录 Caption Hint 上一条记录 移动到上一条记录 DBLookupComBox1Listsource Keyfield Listfield Datasource Dtafirld Datab

38、ase1.cpfyxxs 菜系名称 菜系名称 Database1.cxlbxxs 菜系类别 选择菜 系类别 4.3.24.3.2 菜谱查询设计菜谱查询设计 1.菜谱信息设置查询界面如图 4.3.1 所示。 图 4.3.1 菜谱信息查询设置界面 2.代码如下: procedure TCPXXSZ.BitBtn1Click(Sender: TObject); var a,b,c:integer; d:String; begin If Length(Edit1.Text) = 0 Then /如果输入查询信息为空 begin ShowMessage(请输入查询的编号或菜名信息); Edit1.Set

39、Focus; 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 c = Length(Edit1.Text) Then /按菜谱编号查询 begin if DataModule1.CPFYXX.Locate(编号,StrTOInt(Edit1.Text), loCaseInsensitive) then beg

40、in DBGrid1.Setfocus; DBGrid1.SelectedIndex:=0; End Else begin ShowMessage(对不起,没有找到。); Edit1.setfocus; end; End Else /按菜谱编号查询 begin if DataModule1.CPFYXX.Locate(菜名,Edit1.Text,loPartialKey) then begin DBGrid1.Setfocus; DBGrid1.SelectedIndex:=1; End Else begin ShowMessage(对不起,没有找到。); Edit1.setfocus; en

41、d; end; end; end; 4.3.34.3.3 菜谱添加设计菜谱添加设计 1.菜谱信息设置添加界面如图 4.3.2 所示。 图 4.3.2 菜谱信息添加设置界面 2.代码如下: procedure TCPXXSZ.BitBtn2Click(Sender: TObject); var a:integer; begin Query1.Close; Query1.Open; if Query1.RecordCount0 then a:=Query1.Fields0.AsInteger else a:=1; if Bitbtn2.Caption=添加 then /添加菜谱信息 begin D

42、ataModule1.CPFYXX.Refresh; If DataModule1.CPFYXX.RecordCount = 0 Then A:=79000 /添加菜谱信息 Else begin DataModule1.CPFYXX.Last; a:=DataModule1.CPFYXX.FieldByName(编号).AsInteger; end; BitBtn2.Caption:=保存; BitBtn3.CaPtion:=取消; Aenabled(1); DataModule1.CPFYXX.Insert; DataModule1.CPFYXX.FieldByName(编号).AsInte

43、ger:=a+1; DataModule1.CPFYXX.FieldByName(菜系类别). AsString:=DataModule1.CXLBXX.FieldByName(菜系名称).AsString; DBEdit2.SetFocus; End Else /保存菜谱信息 begin if (Length(DataModule1.CPFYXX.FieldByname(菜名).AsString)=0) or (Length(DataModule1.CPFYXX.FieldByname(单位).AsString)=0) or (Length(DataModule1.CPFYXX.FieldB

44、yname(价格).AsString)=0) then begin ShowMessage(请将菜名、单位、价格的数据添全。); DBEdit1.SetFocus; End Else begin AEnabled(2); BitBtn2.Caption:=添加; BitBtn3.Caption:=修改; DataModule1.CPFYXX.Post; /保存菜谱信息 end; end; end; 4.3.44.3.4 菜谱修改设计菜谱修改设计 1.菜谱信息设置修改界面如图 4.3.3 所示。 图 4.3.3 菜谱信息设置修改界面 2.代码如下: procedure TCPXXSZ.BitBt

45、n3Click(Sender: TObject); begin if BitBtn3.Caption=修改 then begin DataModule1.CPFYXX.Refresh; If DataModule1.CPFYXX.RecordCount = 0 Then /如果数据为空 begin ShowMessage(对不起,没有数据可以修改。); End Else /如果数据不为空 begin AEnabled(1); BitBtn2.Caption:=保存; BitBtn3.Caption:=取消; DataModule1.CPFYXX.Edit; /编辑 DBEdit1.SetFoc

46、us; end; End Else begin AENabled(2); Bitbtn2.Caption:=添加; BitBtn3.Caption:=修改; DataModule1.CPFYXX.Cancel; /取消保存信息 end; end; 4.3.54.3.5 菜谱删除设计菜谱删除设计 1.菜谱信息设置删除界面如图 4.3.3 所示。 图 4.3.3 菜谱信息设置删除界面 2.代码如下: procedure TCPXXSZ.BitBtn4Click(Sender: TObject); begin DataModule1.CPFYXX.Refresh; If DataModule1.CP

47、FYXX.RecordCount = 1 Then begin ShowMessage(对不起,这是最后一个菜,不能删除。); End Else if MessageDLG(确认删除指定的菜谱信息吗?,mtCustom,mbYes,mbNO,0) =mrYes then begin DataModule1.CPFYXX.Delete; /删除数据 end; end; 5. 状态编辑与浏览状态函数 function AEnabled(key:integer):Boolean ; /定义状态编辑与浏览状态函 数 begin If key = 1 Then /编辑状态 begin CPXXSZ.Bi

48、tBtn4.Enabled:=False; /“删除“按钮不可用 CPXXSZ.BitBtn5.Enabled:=False; /“退出“按钮不可用 CPXXSZ.BitBtn1.Enabled:=False; /“查询“按钮不可用 CPXXSZ.Edit1.Enabled:=False; /查询输入框不可用 CPXXSZ.DBGrid1.Enabled:=False; CPXXSZ.GroupBox1.Visible:=True; End Else /浏览状态 begin CPXXSZ.BitBtn4.Enabled:=True; /“删除“按钮可用 CPXXSZ.BitBtn5.Enabl

49、ed:=True; /“退出“按钮可用 CPXXSZ.BitBtn1.Enabled:=True; /“查询“按钮可用 CPXXSZ.Edit1.Enabled:=True; CPXXSZ.DBGrid1.Enabled:=True; CPXXSZ.GroupBox1.Visible:=False; end; end; 4.44.4 系统开台管理设计系统开台管理设计 1.实现目标 程序启动后,调用菜单“前台管理”下的“开台管理”项,将打开“开台管理” 界面。系统开台管理界面主要功能: 以图标模式显示空台、营业台,点击台号图标则自动显示相应台号信息。 通过输入台号检索符合条件的台号。 点击空房自

50、动弹出与昂查询窗口从而自动开台。 2.实现过程 (1)添加新窗体,设置窗体名为 ktgl,设置窗体 caption 为“开台管理” ,保存 为 u79ktgl.pas。 (2)向窗体中添加 datasource、query、groupbox、panel、pagecontrol、dbgrid、dbedit、edit、db text、bitbtn、dblookupcombobox、image、label 等控件,主要控件属性如表 4-3- 1 所示。 表 4-3-1 主要控件属性 控件名属性值功能 打他搜如厕DatasetQuery设置数据源 DBLookupComBox1Listsource K

51、eyfield Listfield Database1.cybmbs 部门名称 部门名称 选择餐饮部门 Dbgrid1datasourceDatabase1.thxxs显示台号信息 4.4.14.4.1 搜索台号设计搜索台号设计 1.开台管理搜索台号界面如图 4.4-1 所示。 图 4.4-1 开台管理搜索台号界面 2.代码如下: procedure TKTGL.BitBtn1Click(Sender: TObject); /搜索房台 var List:TListItem; Lists:integer; ListText:String; a,b,c:integer; d:String; beg

52、in 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 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(编号,StrTOI

53、nt(Edit1.Text), loCaseInsensitive) then begin if DataModule1.THXX.FieldByName(状态).AsString空闲 then begin PageControl1.ActivePageIndex:=1; /显示第二页 BitBtn6.SetFocus;/将焦点移到点菜服务按扭上 End Else begin PageControl1.ActivePageIndex:=0; /显示第一页 BitBtn3.SetFocus;/将焦点移到开台设置按扭上 end; End Else begin ShowMessage(对不起,没有找

54、到。); end; End Else begin if DataModule1.THXX.Locate(房台名称,Edit1.Text,loPartialKey) then begin if DataModule1.THXX.FieldByName(状态).AsString空闲 then begin PageControl1.ActivePageIndex:=1; /显示第二页 BitBtn6.SetFocus;/将焦点移到点菜服务按扭上 End Else begin PageControl1.ActivePageIndex:=0; /显示第一页 BitBtn3.SetFocus;/将焦点移到

55、开台设置按扭上 end; End Else begin ShowMessage(对不起,没有找到。); end; end; end; end; 4.4.24.4.2 开台设置设计开台设置设计 1.开台管理开台设置界面如图 4.4.2 所示。 图 4.4.2 开台管理开台设置界面 2.代码如下: procedure TYGCX.BitBtn1Click(Sender: TObject); begin GB:=2; If Length(Edit1.Text) = 0 Then begin ShowMessage(请输入员工编号); Edit1.Setfocus; End Else if DataM

56、odule1.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.YGXXB.FieldByName(姓名). AsSTring; DCFY_LR.Label16.Caption:=DateTimeToStr(Now)

57、; If DataModule1.JZBH.RecordCount = 0 Then begin DataModule1.JZBH.Append; DataModule1.JZBH.FieldByName(编号).AsInteger:=1; DataModule1.JZBH.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(

58、对不起,没有找到此员工信息.); Edit1.Setfocus; end; end; 4.4.34.4.3 台号信息查询的设计台号信息查询的设计 1.开台管理台号信息查询界面如图 4.4.3 所示。 图 4.4.3 开台管理台号信息查询界面 2.代码如下: procedure TKTGL.ListView2Click(Sender: TObject); /选择房台 var list:TListItem; ListString:String; begin List:=TlistView(Sender).Selected; If List nil Then begin ListString:=Li

59、st.Caption; If Length(ListString) 0 Then if DataModule1.THXX.Locate(房台名称,ListString,loPartialKey) then begin Query1.Close; query1.sql.clear; query1.sql.add(select 编号,名称,类型,单位,数量,价格,合计,状态,服务员 姓名 from 点菜临时表); query1.sql.add(where 房间台号=:a and 是否结单=:b); Query1.Params0.AsInteger:=DataModule1.THXX.FieldBy

60、Name(编号). AsInteger; Query1.Params1.AsString:=否; Query1.Open; Query2.Close; Query2.SQL.Clear; Query2.SQL.Add(Select Sum(合计) From 点菜临时表); Query2.SQL.Add(Where 房间台号=:A and 是否结单=:B); Query2.Params0.AsInteger:=DataModule1.THXX.FieldByName(编号). AsInteger; Query2.Params1.AsString:=否; Query2.Open; If Query

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论