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

📄 u_foodorder.pas

📁 本系统分为前台和后台两部分:前台用来实现客户预订、入住等操作
💻 PAS
字号:
unit u_foodorder;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Buttons, ComCtrls, DBCtrls, Grids, DBGrids,
  u_data, DB, DBTables;

type
  TF_foodorder = class(TForm)
    dg_detail: TDBGrid;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    edtNum: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    DBText1: TDBText;
    DBText2: TDBText;
    DBText3: TDBText;
    DBText4: TDBText;
    UpDown1: TUpDown;
    DBGrid1: TDBGrid;
    btnOk: TBitBtn;
    btnPrt: TBitBtn;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    edtName: TEdit;
    Bevel1: TBevel;
    p_fee: TPanel;
    Label9: TLabel;
    btnCancel: TBitBtn;
    DS_foodetail: TDataSource;
    Q_foodetail: TQuery;
    B_neworder: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure btnOkClick(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
    procedure B_neworderClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnPrtClick(Sender: TObject);
    procedure Q_foodetailAfterScroll(DataSet: TDataSet);
  private
    { Private declarations }
    sid:string;
  public
    { Public declarations }
  end;

var
  F_foodorder: TF_foodorder;

implementation

{$R *.dfm}
uses
  u_report;

procedure TF_foodorder.FormCreate(Sender: TObject);
begin
  with DM_main do
  begin
    T_foodmenu.Open;
  end;
end;

procedure TF_foodorder.btnOkClick(Sender: TObject);
var
  id:integer;
  total:single;
begin
  if sid='' then
  begin
    B_neworderClick(nil);
  end;
  //订单明细
  id:=DM_main.GetMaxId('order_detail','id');
  with Q_foodetail do
  begin
    Append;
    Fields[0].AsInteger:=id;
    Fields[1].AsString:=sid;
    Fields[2].AsString:=dbtext1.Caption;
    Fields[3].AsString:=edtNum.Text;
    Fields[4].AsString:=dbtext4.Caption;
    Post;
    
    DisableControls;
    Close;
    Open;
    EnableControls;
  end;

  //更新总订单的总金额
  with DM_main.T_foodorder do
  begin
    Edit;
    total:=DM_main.GetSumPrice(sid);
    Fields[3].AsFloat:=total;
    Post;
  end;
end;

procedure TF_foodorder.btnCancelClick(Sender: TObject);
var
  total:Single;
begin
  with Q_foodetail do
  begin
    if IsEmpty then
      Exit;
      
    if not Active then
    begin
      ParamByName('sid').Value:=sid;
      Open;
    end;
    Delete;
  end;

  total:=DM_main.GetSumPrice(sid);
  with DM_main.T_foodorder do
  begin
    if not Active then Open;
    Locate('id',sid,[]);
    Edit;
    Fields[3].AsFloat:=total;
    Post;
  end;
end;

procedure TF_foodorder.B_neworderClick(Sender: TObject);
begin
  //新建总订单
  sid:=DM_main.GetMaxOrderId;
  with DM_main.T_foodorder do
  begin
    Open;
    Append;
    Fields[0].AsString:=sid;
    Fields[1].AsString:=DateTimeToStr(Now);
    Fields[2].AsString:=Trim(edtName.Text);
    Post;
  end;

  with Q_foodetail do
  begin
    Close;
    ParamByName('sid').Value:=sid;
    Prepare;
    Open;
  end;
end;

procedure TF_foodorder.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  sid:='';
  Q_foodetail.Close;
end;

procedure TF_foodorder.btnPrtClick(Sender: TObject);
begin
  F_report:=TF_report.Create(nil);
  try
    F_report.QuickRep2.Preview;
  finally
    F_report.Free;
  end;
end;

procedure TF_foodorder.Q_foodetailAfterScroll(DataSet: TDataSet);
begin
  btnPrt.Enabled:=not Q_foodetail.IsEmpty;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -