资源描述
南京审计学院信息科学学院
课程设计报告书
课程名称: 信息系统开发工具课程设计
课题名称: 餐 饮 管 理 系 统
专 业: 信息管理与信息系统
班 级: 08级信息管理1班
学 号: 061415309
姓 名: 孙晓刚
成 绩:
2010年 12月 26 日
目 录
第一章 系统需求分析 1
1。1 系统功能需求分析 1
1.2 系统数据流图 1
1。3数据字典 2
第二章 系统概要设计 5
2。1 系统总体框图设计 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
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
摘要
近几年来,随着我国国民经济的稳定增长,餐饮业的竞争也越来越激励,想在这样竞争激励的环境下生存,就必须运用科学的管理思想与先进的管理方法,使用点餐与管理一体化。这样不仅提高了工作效率,也避免了以前手工作业的麻烦,从而使得管理者能够准确,有效的管理餐饮。因此,餐饮业的管理者更需要一种综合实时的管理模式,希望从更科学的管理中取得竞争的优势,在竞争激烈的商业市场中取胜.结合管理信息系统的开发方法及步骤,以此为理论根据,开发出一个信息管理系统-—餐饮管理系统。它采用国际通用的先进餐饮管理模式,并结合中国的管理实际特点开发而成。通过本系统功能模块,可为各种大小不同的餐饮管理所使用。为管理者提供高效的管理手段,本系统有着人性理的设置理念,流程清晰、易懂.具有独特的功能对于开台管理、点菜、菜谱设置等为管理人员带来很大的方便,减少人为因素的错误,提高服务水平,提升企业形象。
关键字:餐饮管理系统、提高服务水平、提高工作效率
第一章 系统需求分析
1.1系统功能需求分析
随着现在连锁餐饮店的不断崛起,作为餐饮业不可缺少的一部分--餐饮管理系统,它的内容对于餐饮业的决策者和管理者来说都非常重要。本系统基于餐饮管理系统之下的一个子系统,可以把整个餐饮店的日常经营管理信息化,包括点餐、库存管理、员工信息等日常经营的一些统计功能.现在此系统还不够完善,将来使此系统会集成更多的功能,例如:餐饮管理系统的开发成功,实现了餐饮业的现代化,表明了餐饮管理正与国际化接轨,有了更为深入的发展.
《餐软管理系统》采用国际通用的先进餐饮管理模式,并结合中国的管理实际特点开发而成.通过本系统功能模块,可为各种大小不同的餐饮管理所使用。为管理者提供高效的管理手段,本系统有着人性理的设置理念,流程清晰、易懂.具有独特的功能对于开台管理、点菜、菜谱设置等为管理人员带来很大的方便,减少人为因素的错误,提高服务水平,提升企业形象.
根据实际情况的需要,系统主要功能如下:
⑴ 前台管理:开台管理、客户结账、退出系统.
⑵ 系统管理:权限管理、系统管理、帮助。
⑶ 基础信息管理:酒水信息查询、菜谱信息查询及设置。
1。2 系统数据流图
根据实际情况要求,系统数据流图如图1。2.1所示
图1.2.1数据流图
1.3数据字典
在这定义的酒店餐饮数据字典,主要对数据流程图中的数据流、数据存储和处理过程进行说明。
(1)主要的数据流定义
1)数据流名称:客户信息
位置:客户 P2
定义:客户信息=房间台号+所点菜+酒水+开单时间+服务员编号
数据流量:
说明:客人点菜时可以进行特色菜和酒水信息的查询,买单时要核对消费名目是否属实。
2)数据流名称:菜谱信息
位置:菜谱 P2
定义:菜谱信息=编号+房间台号+菜名+单位+价格+菜系类别+口味说明
数据流量:
说明:编号不能有重复的。
3)数据流名称:桌台状况
位置:桌台 P1
定义:桌台状况=编号+房台名称+类型说+餐饮部门+服务费+简要说明+状态
数据流量:
说明:只有状态为空闲的房台才能开台。
4)数据流名称:开台人
位置:服务员 P1
定义:开台人=编号+姓名+员工类别+密码
数据流量:
说明:不同的员工类别具有不同的权限,管理员具有所有权限,服务员不具备系统维修等权限。
5)数据流名称:员工信息
位置:P3 P1
定义:员工信息=员工编号+姓名+性别+出生日期+联系电话+联系地址+聘用日期+工作部门+员工类别+身份证号+备注
数据流量:
说明:员工编号不可相同。
6)数据流名称:管理员情况
位置:管理员 P3
定义:管理员=姓名+口令
数据流量:平均流量为每年传输50次。
说明:通过管理员来不断的更新和维护这个系统。
7 )数据流名称:开台信息
位置:P1 P4
定义:开台信息=房间台号+服务费
数据流量:
说明:服务费可以省去。
8)数据流名称:点菜信息
位置:P2 P4
定义:点菜信息=房间台号+类别+编号+名称+类型+数量+价格+合计+点但日期+结单日期+服务员编号+服务员姓名+结帐编号
数据流量:
说明:房间台号是根据开台而来的。
(2)主要的数据存储定义
1)数据存储编号:D1
数据存储名称:桌台信息
输入:P1
输出:P2
数据结构:桌台信息=编号+房台名称+类型说+餐饮部门+服务费+简要说明+状态
存取方式:检索和更新处理,以检索为主。
说明:编号具有唯一性,状态只能是空闲或者营业。
2)数据存储编号:D2
数据存储名称:员工信息
输入:P1
输出:P3
数据结构:员工信息=员工类别+口令
存取方式:主要是检索.
说明:根据员工类别的不同,在后面的操作中具有不同的权限.
3)数据存储编号:D3
数据存储名称:菜谱信息
输入:P2
输出:P2
数据结构:菜谱信息=菜名+单位+价格+菜系类别+口味说明
存取方式:检索
说明:在点菜时对菜谱进行查询。
(3)主要处理过程
1)处理过程编号:P1
处理过程名:开台
输入:服务员权限,桌台状况
输出:开台信息
处理说明:综合各方面信息,进行客人消费前最基本的准备。
2)处理过程编号:P2
处理过程名:点菜
输入:D1,D3,D4
输出:点菜信息
处理说明:客人根据菜谱信息,酒水信息,特色菜信息,选择自己中意的项目进行。
3)处理过程编号:P3
处理过程名:权限管理
输入:员工类型,口令
输出:相应的操作权限
处理说明:输入员工类别和口令获得相应的操作权限,管理员比服务员具有更多的操作权限。
第二章 系统概要设计
2。1系统总体框架设计
根据业务情况,该系统共分为开台管理、客人买单、菜谱信息设置、客户点菜、酒水信息设置等模块,系统结构图如图2.1所示。
图2。1 餐饮管理系统结构图
2.2各模块功能分析
(1)系统登录窗口主要功能:
1)以图标形式显示数据库中操作员,并凭口令登入到主界面。
2)操作员输入错误密码提醒错误并返回,三次输入错误口令则退出系统.
3)实现权限登录:系统管理员拥有一切权利,其他操作员则被限制一些操作权限。
(2)系统主界面主要功能
1)根据操作员权限设置相应权限的菜单和工具栏功能.
2)可通过菜单或快捷键进入相应子界面。
3)显示了系统当前时间和相应操作员。
(3)系统菜谱信息设置界面主要功能:
实现对菜谱信息的添加、修改、删除、查询的功能。
(4)系统开台管理界面主要功能:
1)以图标模式显示空台、营业台,点击台号图标则自动显示相应台号信息。
2)通过输入台号检索符合条件的台号.
3)点击空房自动弹出与昂查询窗口从而自动开台.
(5)系统点菜界面主要功能:
1)实现菜谱,酒水查询的链接。
2)点击“开始点菜”按钮台号状态自动变为开台,并聚焦到编号栏。
3)在编号栏输入菜编号按回车自动录入菜的信息,。
4)自动生成结账编号,输入菜数量自动计算合计消费金额。
5)可实现挂单、读单、放弃开台和点菜完毕返回的功能。
第三章 数据库设计
3。1系统E-R图的设计
系统E—R图如图3。1所示
图3.1 系统E-R图
3。2数据库结构设计
数据库结构设计是总体设计阶段非常重要的环节,好的数据库结构可以简化开发过程,使系统功能更加清晰明确。因为数据库结构的变化会造成编码的改动,所以必须认真设计数据库后再进行编码,从而避免了无谓的重复的工作。
本系统采用了SQL Server数据库,数据库名称为060412079。该数据库包含4个表,分别是:开台表,点菜表,菜谱费用信息表,台号信息表。下面分别介绍数据表的结构。
1、 开台表
开台表用于保存开台的相关信息.开台表的结构见表3—2—1所示。
表3—2—1 开台表结构
字段名称
数据类型
字段大小
允许为空否
编号
int
4
设置为主键
房台名称
char
30
允许为空
类型说明
char
20
允许为空
餐饮部门
char
20
允许为空
服务费
money
8
允许为空
简要说明
char
30
允许为空
状态
char
20
允许为空
2、 点菜表
点菜表用于保存点菜信息和相应的消费信息。点菜表的结构见表3—2—2所示.
表3-2—2 点菜表结构
字段名称
数据类型
字段大小
是否允许为空
id
char
16
设置为主键
房间台号
int
4
允许为空
类别
Char
10
允许为空
编号
int
4
允许为空
名称
char
50
允许为空
类型
char
20
允许为空
单位
char
10
允许为空
数量
int
4
允许为空
价格
money
8
允许为空
合计
Money
8
允许为空
点单日期
datetime
8
允许为空
结单日期
datetime
8
允许为空
服务员编号
int
8
允许为空
服务员姓名
char
12
允许为空
状态
char
10
允许为空
结账编号
int
4
允许为空
是否结单
char
10
允许为空
3、菜谱费用信息表用于查询餐饮店所有的菜的信息。菜谱费用信息表的结构如图3—2-3所示.
表3—2—3 菜谱费用信息结构
字段名称
数据类型
字段大小
是否允许为空
编号
int
4
设为主键
菜名
char
50
允许为空
单位
char
10
允许为空
价格
money
8
允许为空
菜系类别
char
20
允许为空
口味说明
char
30
允许为空
4、台号信息表用于台号信息的查询,方便了消费者选台,开台及其他的作用。台号信息表的结构如图3—2-4示。
表3-2—4台号信息表结构
字段名称
数据类型
字段大小
是否允许为空
编号
int
4
设为主键
房台名称
char
30
设为主键
类型说明
Char
20
允许为空
餐饮部门
Char
20
允许为空
服务费
money
8
允许为空
简要说明
char
30
允许为空
状态
char
10
允许为空
容纳人数
Int
4
允许为空
第四章 系统详细设计及实现
4。1系统登陆界面设计
1.实现目标
程序启动后,首先登陆此界面验证操作员的密码。主要实现的功能如下:
1)以图标形式显示数据库中操作员,并凭口令登入到主界面.
2)操作员输入错误密码提醒错误并返回,三次输入错误口令则退出系统。
3)实现权限登录:系统管理员拥有一切权利,其他操作员则被限制一些操作权限。
系统登录界面如图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主要控件对象的属性列表
控件名
属性
值
功能
Query1
Databasename
SQL
060412079
Select * from 员工信表
权限查询
Database1
Dataset
Query1
设置数据源
3。程序主要代码如下:
①单击“登陆"按钮,将判断操作员、操作密码是否正确,如果正确进入主界面并根据操作员权限设置菜单和工具是否可用。如果输入密码错误将提醒并返回,三次错误输入则自动退出系统。
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;
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 Query1。FieldByName(’编号').AsString=’controller' then //如果是系统管理员
begin
if Edit1.Text<>Query1.FieldByName(’密码')。AsString then
begin
ShowMessage('[’+Query1.FieldByName('姓名’)。AsString+’]的口令错误。'); //口令错误
Edit1。SetFocus;
End
Else
begin
MainForm.StatusBar1。Panels[1]。Text:=’用户[’+Query1。FieldByName('姓名')。AsString+’]’;
MainForm。User1:=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;
MainForm。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。Text<>Query1。FieldByName(’密码’).AsString then
begin
ShowMessage('['+Query1。FieldByName(’姓名’)。AsString+’]的口令错误。’);
Edit1。SetFocus;
End
Else
begin
Name:=Query1.FieldByName(’权限’)。AsString;
MainForm.EnabledKey(Name); //设置操作员权限
MainForm。StatusBar1.Panels[1].Text:=’用户['+Query1。FieldByName('姓名’).AsString+']’;
User_Close:=3;
Timer1.Enabled:=False;
Close;
end;
end;
END;
②窗体启动,关闭钥匙,后将所有操作员添加到操作员列表.
procedure TUser.FormShow(Sender: TObject);
var List:Array[0。.1]of TListItem;
begin
Timer1。Enabled:=True;
User_Close:=0; //打开关闭钥匙
Query1。Close;
Query1。Open;
ListView1。Items.Clear;
While not Query1。Eof do
begin
List[0]:=ListView1。Items.Add;
List[0]。Caption:=Query1.FieldByName(’姓名’).AsString;
if Query1。FieldByName(’编号’)。AsString=’controller' then
begin
List[0].ImageIndex:=0;
End
Else
begin
List[0]。ImageIndex:=1;
end;
Query1。Next;
end;
end;
③选择操作员,点击其中一个则将员工的姓名和类型添加到了相应位置.
procedure TUser。ListView1Click(Sender: TObject);
var List:Array[0。.1]of TListItem;
begin
List[0]:=ListView1.Selected;
if List[0]〈〉Nil then
begin
Query1.Locate(’姓名’,List[0].Caption,[loCaseInsensitive]);
//查询姓名,但是如果有从名的按第一个算。
end;
end;
4.2主界面设计
1、程序启动后。系统在“登陆界面"验证操作员密码后,将进入此界面。系统主界面主要功能:
⑴根据操作员权限设置相应权限的菜单和工具栏功能.
⑵可通过菜单或快捷键进入相应子界面。
⑶显示了系统当前时间和相应操作员。
主程序界面如图4。2。1所示。
图4。2。1主程序界面
2。实现过程
(1)启动Delphi,设置窗体名为mainfrom,设置窗体caption 为“餐饮管理系统",保存为u791.pas。
(2)向窗体中添加Imagelist、mainmenu、image、toolbutton、stausbar、panel、time、label等控件主要属性为:
控件名
属性
值
功能
Toolbar1
images
Imagelist1
设置工具栏图标
stausbar 1
Panel1
用户登录【管理员】
显示程序状态、参数
(3)主要程序代码如下:
①使应用项目的提示信息挂钩程序。
procedure TMainForm。FormCreate(Sender: TObject);
begin
Application.OnHint:=DisPlayHint; //与应用项目的提示信息挂钩
end;
②先调用系统登陆窗口,再设置窗体状态参数程序。
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,Month,day); //分解日期
StatusBar1。Panels[2]。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;//打开结帐编号表
KTGL:=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。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.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。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;
MainForm.N19.Enabled:=True;
End;
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.3菜谱信息设置界面设计
4.3。1菜谱设置模块
1。实现目标
程序启动后,调用菜单“基础信息设置”下的“菜谱信息设置”项,将打开“菜谱信息设置界面".系统菜谱信息设置界面主要功能:实现对菜谱信息的添加、修改、删除、查询的功能。
2.实现过程
(1)添加新窗体,设置窗体名为cpxxsz,设置窗体caption 为“菜谱信息设置”,保存为u79cpset。pas。
(2)向窗体中添加query、panel、groupbox、dbgrid、dbedit、edit、dbtext、bitbtn、dblookupcombobox、time、datasetfrist、actionlist、label等控件,主要控件属性如表4—3—1所示。
表4-3-1主要控件属性
对象
属性
值
功能
Query1
Databasename
sql
060412079
Slect MAX(编号) from 菜谱信息费用表
设置数据范围
DatasetFrist1
Datasource
Caption
Hint
Database1。cpxxfys
首记录
移动到第一条记录
移动到首记录
DatasetLast1
Datasource
Caption
Hint
Database1.cpxxfys
尾记录
移动到最后一条记录
移动到尾记录
DatasetNext1
Datasource
Caption
Hint
Database1。cpxxfys
下一条记录
移动到下一条记录
移动到下一条记录
DatasetPrior1
Datasource
Caption
Hint
Database1。cpxxfys
上一条记录
移动到上一条记录
移动到上一条记录
DBLookupComBox1
Listsource
Keyfield
Listfield
Datasource
Dtafirld
Database1。cpfyxxs
菜系名称
菜系名称
Database1。cxlbxxs
菜系类别
选择菜系类别
4。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。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 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 DataModule1。CPFYXX。Locate(’菜名',Edit1.Text,[loPartialKey]) then
begin
DBGrid1。Setfocus;
DBGrid1.SelectedIndex:=1;
End
Else
begin
ShowMessage('对不起,没有找到。');
Edit1。setfocus;
end;
end;
end;
end;
4.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。RecordCount<〉0 then a:=Query1.Fields[0]。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;
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 //保存菜谱信息
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:=’添加’;
BitBtn3。Caption:=’修改’;
DataModule1.CPFYXX。Post; //保存菜谱信息
end;
end;
end;
4。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。RecordCo
展开阅读全文