⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queryorder.pas

📁 住宿餐饮 - 订餐管理系统,DelPhi写的。适合酒店
💻 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 + -