📄 queryorder.pas
字号:
unit QueryOrder;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, StdCtrls, Grids, DBGrids, ComCtrls, ExtCtrls,
DBCtrls;
type
TfrmQueryOrder = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label6: TLabel;
Query: TButton;
Clear: TButton;
OrderID: TEdit;
UserName: TEdit;
TableID: TEdit;
DBGrid1: TDBGrid;
GroupBox2: TGroupBox;
SortAsc: TRadioButton;
SortDesc: TRadioButton;
GroupBox3: TGroupBox;
id: TRadioButton;
name: TRadioButton;
OrderTime: TRadioButton;
PreTime: TRadioButton;
Query1: TQuery;
DataSource1: TDataSource;
GroupBox6: TGroupBox;
DBNavigator1: TDBNavigator;
GroupBox7: TGroupBox;
Label3: TLabel;
Label4: TLabel;
lowOrderTime: TDateTimePicker;
highOrderTime: TDateTimePicker;
GroupBox4: TGroupBox;
Label5: TLabel;
Label8: TLabel;
lowPreTime: TDateTimePicker;
highPreTime: TDateTimePicker;
Label7: TLabel;
Num: TEdit;
Label10: TLabel;
Mode: TComboBox;
procedure QueryClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ClearClick(Sender: TObject);
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);
private
{ Private declarations }
sql : string;
public
{ Public declarations }
end;
var
frmQueryOrder: TfrmQueryOrder;
implementation
uses QueryUser;
{$R *.dfm}
procedure TfrmQueryOrder.FormCreate(Sender: TObject);
begin
//
sql := 'select * from OrderInfo ';
end;
procedure TfrmQueryOrder.QueryClick(Sender: TObject);
var
flag : boolean;
low, high: string;
begin
//查询语句
sql := 'select * from OrderInfo ';
flag := false;
if (frmQueryUser.IsInteger( OrderID.Text ) ) then
begin
flag := true;
sql := sql + ' where 订单编号 = ''' + OrderID.Text + '''';
end;
if UserName.Text <> '' then
begin
if flag then
sql := sql + ' and 顾客姓名=''' + UserName.Text+''''
else begin;
sql := sql + ' where 顾客姓名=''' + UserName.Text+'''';
flag := true;
end;
end;
if TableID.Text <> '' then
begin
if flag then
sql := sql + ' and 餐桌编号=''' + TableID.Text+''''
else begin;
sql := sql + ' where 餐桌编号=''' + TableID.Text+'''';
flag := true;
end;
end;
if frmQueryUser.IsInteger(Num.Text) then
begin
if flag then
sql := sql + ' and 用餐人数=''' + Num.Text+''''
else begin;
sql := sql + ' where 用餐人数=''' + Num.Text+'''';
flag := true;
end;
end;
if mode.Text<> '' then
begin
if flag then
sql := sql + ' and 付款方式=''' + mode.Text+''''
else begin;
sql := sql + ' where 付款方式=''' + mode.Text+'''';
flag := true;
end;
end;
{处理订餐时间}
low:=formatDateTime('mm''/''dd''/''yyyy',lowOrderTime.Date);
high:=formatDateTime('mm''/''dd''/''yyyy',highOrderTime.Date);
if flag then
sql:=sql+'and '
else
sql:=sql+' where ';
sql:=sql+'订餐时间<='''+high+''' and 订餐时间>='''+low+'''';
{处理用餐时间}
low:=formatDateTime('mm''/''dd''/''yyyy',lowPreTime.Date);
high:=formatDateTime('mm''/''dd''/''yyyy',highPreTime.Date);
sql:=sql+' and '+'预定时间<='''+high+''' and 预定时间>='''+low+'''';
//更新视图
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(sql);
try
Query1.Open
except
Query1.ExecSQL();
end;
end;
procedure TfrmQueryOrder.ClearClick(Sender: TObject);
begin
//
OrderId.Text := '';
UserName.Text := '';
TableId.Text := '';
lowOrderTime.Date := strToDate('2002-1-1');
highOrderTime.Date := now;
lowPreTime.Date := strToDate('2002-1-1');
highPreTime.Date := now;
end;
procedure TfrmQueryOrder.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 TfrmQueryOrder.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 TfrmQueryOrder.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 TfrmQueryOrder.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 TfrmQueryOrder.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 TfrmQueryOrder.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 TfrmQueryOrder.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
//关闭查询
Query1.Close;
//释放资源
self.Free
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -