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

📄 c_order.pas

📁 《delphi数据库设计与实例开发》随书光盘
💻 PAS
字号:
unit c_order;

interface

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

type
  Tcfrm_order = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Panel5: TPanel;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    Panel6: TPanel;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    BitBtn1: TBitBtn;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    GroupBox2: TGroupBox;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    DBEdit4: TDBEdit;
    Panel7: TPanel;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    GroupBox3: TGroupBox;
    Label9: TLabel;
    Edit4: TEdit;
    Label10: TLabel;
    ComboBox2: TComboBox;
    Label11: TLabel;
    ComboBox3: TComboBox;
    Label12: TLabel;
    Edit5: TEdit;
    Label13: TLabel;
    Edit6: TEdit;
    Label14: TLabel;
    Panel8: TPanel;
    Panel9: TPanel;
    DataSource2: TDataSource;
    DBGrid2: TDBGrid;
    GroupBox4: TGroupBox;
    Label15: TLabel;
    Edit2: TEdit;
    Label16: TLabel;
    Label17: TLabel;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    Label18: TLabel;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    SpeedButton1: TSpeedButton;
    Label19: TLabel;
    DBEdit7: TDBEdit;
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure DataSource1DataChange(Sender: TObject; Field: TField);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  cfrm_order: Tcfrm_order;

implementation

uses c_datam;

{$R *.dfm}

procedure Tcfrm_order.FormCreate(Sender: TObject);
begin
   dm.ADO_room.Open;
   dm.ADO_order.Open;
end;

procedure Tcfrm_order.DataSource1DataChange(Sender: TObject;
  Field: TField);
begin
  if dm.ADO_room.FieldByName('Room_state').AsString<>'空' then
    Groupbox2.Visible:=true
  else
    Groupbox2.Visible:=false;
end;

procedure Tcfrm_order.BitBtn2Click(Sender: TObject);
begin
if (length(edit4.Text)=0)or(length(ComboBox2.Text)=0)or (length(ComboBox3.Text)=0) or (length(edit5.Text)=0)or(length(edit6.Text)=0) or(length(edit2.Text)=0) then
    begin
        Messagedlg('请输入完备的定房记录信息!',mtError,[mbOK],0);
        edit4.SetFocus;
    end
  else
 begin
 with dm.ado_order do      //登记预定客户信息及其所预定的房间
                begin
                  close;
                  open;
                  append;
                  fieldbyname('Order_id').AsString:=trim(edit2.Text);
                  fieldbyname('customer_name').AsString:=trim(edit4.Text);
                  fieldbyname('certifi_type').AsString:=trim(ComboBox3.Text);
                  fieldbyname('certifi_id').AsString:=trim(edit5.Text);
                  fieldbyname('phone').AsString:=trim(edit6.Text);
                  fieldbyname('room_id').AsString:=trim(DBEdit7.Text);
                  fieldbyname('state_time').asDateTime:=DateTimePicker1.Date;
                  fieldbyname('end_time').asDateTime:=DateTimePicker2.Date;
                  fieldbyname('memo').AsString:=trim(memo1.Text);
                  fieldbyname('gender').AsString:=trim(combobox2.Text);
                  try
                  post;
                  except
                  Application.MessageBox(PChar('定单号重复,请重新录入!'), PChar('提示'),MB_ICONEXCLAMATION);
                  edit2.SetFocus();
                  exit;
                  end;
                end;
              with dm.ADO_room do
                begin
                  edit;
                  fieldbyname('Room_memo').AsString:='预定';  //在对应客房信息的备注中注上已经“预定”
                  post;
                  Refresh;
                end;

 end;
 edit2.Enabled:=true;
 edit2.Text:='';
 edit4.Text:='';
 edit5.Text:='';
 edit6.Text:='';
 memo1.Text:='';
 Datetimepicker1.Date:=date();
 Datetimepicker2.Date:=date();
end;

procedure Tcfrm_order.BitBtn3Click(Sender: TObject);
var mes:string;
begin
 mes:='是否要删除订单< '+dm.ADO_order.fieldbyname('Order_id').AsString +'>';
 if application.MessageBox(pchar(mes),pchar('等待确认')
    ,+MB_ICONQUESTION+mb_okcancel+MB_DEFBUTTON2)=idok then
     begin
      dm.ADO_order.Delete;//删除房间记录
     end;
end;

procedure Tcfrm_order.SpeedButton1Click(Sender: TObject);
var
 i,count:integer;//生成序号
begin
  //生成6位序号
     count := GetTickCount();
     Randomize;
     i := random(999999);
     while (i < 100000)  do
       i := random(999999);
     edit2.Text:=inttostr(i);
     edit2.Tag:=1; //标始为自动生成
     edit2.Enabled:=false;
end;

procedure Tcfrm_order.BitBtn1Click(Sender: TObject);
begin
   dm.ADO_room.Locate('Room_id',edit1.Text,[]);
end;

procedure Tcfrm_order.FormShow(Sender: TObject);
begin
Datetimepicker1.Date:=date();
Datetimepicker2.Date:=date();
end;

end.

⌨️ 快捷键说明

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