📄 frmorderinfo.pas
字号:
unit frmOrderInfo;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, DBTables, ComCtrls;
type
TOrderInfo = class(TForm)
GroupBox1: TGroupBox;
Table1: TTable;
Query1: TQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
btnAdd: TButton;
btnDelete: TButton;
btnModify: TButton;
btnClear: TButton;
SortAsc: TRadioButton;
SortDesc: TRadioButton;
id: TRadioButton;
name: TRadioButton;
OrderTime: TRadioButton;
PreTime: TRadioButton;
Label1: TLabel;
OrderID: TEdit;
Label2: TLabel;
UserName: TEdit;
Label3: TLabel;
TimeOrder: TDateTimePicker;
Label4: TLabel;
TimeUse: TDateTimePicker;
Label5: TLabel;
Price: TEdit;
Label6: TLabel;
TableID: TEdit;
Label8: TLabel;
Tel: TEdit;
Label9: TLabel;
Note: TEdit;
Label7: TLabel;
Num: TEdit;
Label10: TLabel;
Mode: TComboBox;
procedure SortAscClick(Sender: TObject);
procedure SortDescClick(Sender: TObject);
procedure idClick(Sender: TObject);
procedure nameClick(Sender: TObject);
procedure OrderTimeClick(Sender: TObject);
procedure PreTimeClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btnDeleteClick(Sender: TObject);
procedure btnModifyClick(Sender: TObject);
procedure btnAddClick(Sender: TObject);
procedure OrderIDChange(Sender: TObject);
procedure btnClearClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
function CheckOrderID() : boolean;
public
{ Public declarations }
end;
var
OrderInfo: TOrderInfo;
implementation
uses dataModule;
{$R *.dfm}
function TOrderInfo.CheckOrderID() : boolean;
var
flag: Boolean;
begin
result := false;
with dm.tblOrder do
begin
open;
first;
while not eof do
begin
if fieldByName('订单编号').AsString=OrderId.Text then
begin
result:=true;
break;
end;
next;
end;
close;
end;
end;
procedure TOrderInfo.SortAscClick(Sender: TObject);
var
context : string;
begin
if( id.Checked = true )
then context := '订单编号'
else if ( name.Checked = true )
then context := '顾客姓名'
else if ( OrderTime.Checked )
then context := '订餐时间'
else if ( PreTime.checked )
then context := '预定时间';
//改变查询语句
Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from OrderInfo order by '+context+' asc');
//重新查询
try
Query1.Open;
except
Query1.ExecSQL;
end;
end;
procedure TOrderInfo.SortDescClick(Sender: TObject);
var
context : string;
begin
if( id.Checked = true )
then context := '订单编号'
else if ( name.Checked = true )
then context := '顾客姓名'
else if ( OrderTime.Checked )
then context := '订餐时间'
else if ( PreTime.checked )
then context := '预定时间';
//改变查询语句
Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from OrderInfo order by '+context+' desc');
//重新查询
try
Query1.Open;
except
Query1.ExecSQL;
end;
end;
procedure TOrderInfo.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 OrderInfo order by 订单编号 ' + sorttype);
//重新查询
try
Query1.Open;
except
Query1.ExecSQL;
end;
end;
procedure TOrderInfo.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 OrderInfo order by 顾客姓名 ' + sorttype);
//重新查询
try
Query1.Open;
except
Query1.ExecSQL;
end;
end;
procedure TOrderInfo.OrderTimeClick(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 OrderInfo order by 订餐时间 ' + sorttype);
//重新查询
try
Query1.Open;
except
Query1.ExecSQL;
end;
end;
procedure TOrderInfo.PreTimeClick(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 OrderInfo order by 预定时间 ' + sorttype);
//重新查询
try
Query1.Open;
except
Query1.ExecSQL;
end;
end;
procedure TOrderInfo.FormClose(Sender: TObject; var Action: TCloseAction);
begin
// 关闭查询
query1.Close;
// 释放资源
self.free;
end;
procedure TOrderInfo.btnDeleteClick(Sender: TObject);
var
i :integer;
begin
//是否要删除
i:=messageDlg('确定要删除用户记录?',mtWarning,[mbYes,mbNo],0);
if i=6 then
begin
with dm.tblOrder do
begin
open;
first;
while not eof do
begin
if fieldByName('订单编号').AsString=OrderId.Text then
begin
break;
end;
next;
end;
Delete;
close;
end
end;
//更新表格
Query1.Close;
Query1.Open;
btnClearClick(Sender);
end;
procedure TOrderInfo.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 TOrderInfo.btnAddClick(Sender: TObject);
begin
//检查输入的合法性
//添加到数据库
with Table1 do
begin
open;
append;
fieldByName('订单编号').AsInteger := strToInt(OrderID.text);
fieldByName('顾客姓名').AsString := UserName.text;
fieldByName('预计金额').AsString:=Price.Text;
fieldByName('订餐时间').AsDateTime:=TimeOrder.Date;
fieldByName('预定时间').AsDateTime:= TimeUse.Date;
fieldByName('餐桌编号').AsInteger:=strToInt(TableID.text);
fieldByName('联系电话').AsString:=tel.Text;
fieldByName('用餐人数').AsInteger:=strToInt(Num.Text);
fieldByName('付款方式').AsString:=Mode.Text;
fieldByName('备注').AsString:=note.Text;
post;
close;
end;
// 更新表格使它同步显示添加内容
with Query1 do
begin
close;
sql.Clear;
sql.Add('select * from Orderinfo');
open;
end;
// 显示添加成功消息
messageDlg('新订单添加成功!',mtWarning,[mbOk],0);
// 设置对话框焦点
activeControl:=UserName;
btnClearClick(Sender);
end;
procedure TOrderInfo.OrderIDChange(Sender: TObject);
begin
if(CheckOrderID = 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 TOrderInfo.btnClearClick(Sender: TObject);
begin
//清空编辑框
OrderID.Text := '';
UserName.Text :='';
Price.Text:='';
TableID.Text := '';
tel.Text := '';
Num.Text := '';
Mode.ItemIndex := 0;
Note.Text := '';
TimeOrder.Date := now;
TimeUse.Date := now;
btnAdd.Enabled := false;
btnDelete.Enabled := false;
btnModify.Enabled := false;
end;
procedure TOrderInfo.FormCreate(Sender: TObject);
begin
//清空输入框
OrderID.Text := '';
UserName.Text :='';
Price.Text:='';
TableID.Text := '';
tel.Text := '';
Num.Text := '';
Mode.ItemIndex := 0;
Note.Text := '';
TimeOrder.Date := now;
TimeUse.Date := now;
btnAdd.Enabled := false;
btnDelete.Enabled := false;
btnModify.Enabled := false;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -