📄 frmmenuinfo.pas
字号:
unit frmMenuInfo;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, DB, DBTables;
type
TMenuInfo = class(TForm)
GroupBox1: TGroupBox;
btnAdd: TButton;
btnModify: TButton;
btnDelete: TButton;
RadioGroup1: TRadioGroup;
hotdish: TRadioButton;
cooldish: TRadioButton;
maindish: TRadioButton;
drink: TRadioButton;
Label1: TLabel;
MenuName: TEdit;
Label2: TLabel;
MenuPrice: TEdit;
Label3: TLabel;
MenuID: TEdit;
Table1: TTable;
Query1: TQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
label4: TLabel;
Label5: TLabel;
flavorCombox: TComboBox;
btnClear: TButton;
Note: TEdit;
GroupBox2: TGroupBox;
sortasc: TRadioButton;
SortDesc: TRadioButton;
GroupBox3: TGroupBox;
id: TRadioButton;
kind: TRadioButton;
name: TRadioButton;
price: TRadioButton;
flavor: TRadioButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure sortascClick(Sender: TObject);
procedure btnModifyClick(Sender: TObject);
procedure btnDeleteClick(Sender: TObject);
procedure SortDescClick(Sender: TObject);
procedure idClick(Sender: TObject);
procedure kindClick(Sender: TObject);
procedure nameClick(Sender: TObject);
procedure priceClick(Sender: TObject);
procedure flavorClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btnAddClick(Sender: TObject);
procedure MenuIDChange(Sender: TObject);
procedure btnClearClick(Sender: TObject);
private
{ Private declarations }
function CheckMenuID(): boolean;
public
{ Public declarations }
end;
var
MenuInfo: TMenuInfo;
implementation
uses DelDishfrm, ModifyMenuFrm, dataModule;
{$R *.dfm}
function TMenuInfo.CheckMenuID(): boolean;
var
flag: Boolean;
begin
result := false;
with dm.tblMenu do
begin
open;
first;
while not eof do
begin
if fieldByName('编号').AsString=MenuId.Text then
begin
result:=true;
break;
end;
next;
end;
end;
end;
procedure TMenuInfo.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//关闭数据库
Query1.Close;
//释放窗口
self.Free;
end;
procedure TMenuInfo.btnModifyClick(Sender: TObject);
var
i: integer;
begin
//是否要修改
i:=messageDlg('确定要修改菜单记录?',mtWarning,[mbYes,mbNo],0);
if i=6 then
begin
//首先删除旧的纪录
btnDeleteClick(Sender);
//添加更新后的纪录
btnADDClick(Sender);
//更新表格
Query1.Close;
Query1.Open;
end;
btnClearClick(Sender)
end;
procedure TMenuInfo.btnDeleteClick(Sender: TObject);
var
i :integer;
begin
//是否要删除
i:=messageDlg('确定要删除用户记录?',mtWarning,[mbYes,mbNo],0);
if i=6 then
begin
with dm.tblMenu do
begin
open;
first;
while not eof do
begin
if fieldByName('编号').AsString=MenuId.Text then
begin
break;
end;
next;
end;
Delete;
close;
end
end;
//更新表格
Query1.Close;
Query1.Open;
btnClearClick(Sender)
end;
procedure TMenuInfo.sortascClick(Sender: TObject);
var
context : string;
begin
if( id.Checked = true )
then context := '编号'
else if ( kind.Checked = true )
then context := '种类'
else if ( name.Checked )
then context := '名称'
else if ( price.checked )
then context := '单价'
else if ( flavor.checked )
then context := '风味';
//改变查询语句
Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from Menu order by '+context+' asc');
//重新查询
try
Query1.Open;
except
Query1.ExecSQL;
end;
end;
procedure TMenuInfo.SortDescClick(Sender: TObject);
var
context : string;
begin
if( id.Checked = true )
then context := '编号'
else if ( kind.Checked = true )
then context := '种类'
else if ( name.Checked )
then context := '名称'
else if ( price.checked )
then context := '单价'
else if ( flavor.checked )
then context := '风味';
//改变查询语句
Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from Menu order by '+context+' desc');
//重新查询
try
Query1.Open;
except
Query1.ExecSQL;
end;
end;
procedure TMenuInfo.idClick(Sender: TObject);
var
sorttype : string;
begin
//确定排序方式
if ( sortasc.Checked )
then
sorttype := 'asc'
else
sorttype := 'desc';
//更新表格
//改变查询语句
Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from Menu order by 编号 ' + sorttype);
//重新查询
try
Query1.Open;
except
Query1.ExecSQL;
end;
end;
procedure TMenuInfo.kindClick(Sender: TObject);
var
sorttype : string;
begin
//确定排序方式
if ( sortasc.Checked )
then
sorttype := 'asc'
else
sorttype := 'desc';
//更新表格
//改变查询语句
Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from Menu order by 种类 ' + sorttype);
//重新查询
try
Query1.Open;
except
Query1.ExecSQL;
end;
end;
procedure TMenuInfo.nameClick(Sender: TObject);
var
sorttype : string;
begin
//确定排序方式
if ( sortasc.Checked )
then
sorttype := 'asc'
else
sorttype := 'desc';
//更新表格
//改变查询语句
Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from Menu order by 名称 ' + sorttype);
//重新查询
try
Query1.Open;
except
Query1.ExecSQL;
end;
end;
procedure TMenuInfo.priceClick(Sender: TObject);
var
sorttype : string;
begin
//确定排序方式
if ( sortasc.Checked )
then
sorttype := 'asc'
else
sorttype := 'desc';
//更新表格
//改变查询语句
Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from Menu order by 单价 ' + sorttype);
//重新查询
try
Query1.Open;
except
Query1.ExecSQL;
end;
end;
procedure TMenuInfo.flavorClick(Sender: TObject);
var
sorttype : string;
begin
//确定排序方式
if ( sortasc.Checked )
then
sorttype := 'asc'
else
sorttype := 'desc';
//更新表格
//改变查询语句
Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from Menu order by 风味 ' + sorttype);
//重新查询
try
Query1.Open;
except
Query1.ExecSQL;
end;
end;
procedure TMenuInfo.FormCreate(Sender: TObject);
begin
//
btnClearClick(Sender);
end;
procedure TMenuInfo.btnAddClick(Sender: TObject);
var
str: string ;
begin
//检查输入的合法性
if(hotdish.Checked) then str:='热菜';
if(cooldish.Checked) then str:='凉菜';
if(maindish.Checked) then str:='主食' ;
if(drink.Checked) then str:='饮料';
//添加到数据库
try
with Table1 do
begin
open;
append;
fieldByName('编号').AsInteger := strToInt(MenuID.text);
fieldByName('种类').AsString := str;
fieldByName('名称').AsString:=MenuName.Text;
fieldByName('单价').AsString:=MenuPrice.Text;
fieldByName('风味').AsString := flavorCombox.Text;
fieldByName('备注').AsString:=note.Text;
post;
close;
end;
except
on ex:EConvertError do
begin
messageDlg('输入有误,请重试!',mtWarning,[mbOk],0);
end;
end;
Query1.Close;
Query1.Open;
// 显示添加成功消息
messageDlg('新用菜单加成功!',mtWarning,[mbOk],0);
// 设置对话框焦点
activeControl:=MenuName;
btnClearClick(Sender)
end;
procedure TMenuInfo.MenuIDChange(Sender: TObject);
begin
if(CheckMenuID = true) then
begin
btnAdd.Enabled := false;
btnDelete.Enabled := true;
btnModify.Enabled := true;
end
else
begin
btnAdd.Enabled := true;
btnDelete.Enabled := false;
btnModify.Enabled := false;
end;
end;
procedure TMenuInfo.btnClearClick(Sender: TObject);
begin
//
MenuID.Text := '';
flavorCombox.ItemIndex := 0;
MenuName.Text := '';
MenuPrice.Text := '';
note.Text := '';
hotdish.Checked := false;
cooldish.Checked := false;
maindish.Checked := false;
drink.Checked := false;
btnAdd.Enabled := false;
btnDelete.Enabled := false;
btnModify.Enabled := false;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -