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

📄 unit18.pas

📁 一个用DELPHI编的酒店管理系统。 其中数据库:SQL Server2000, 只需恢复 My database文件夹中 My database_Data.MDF和 My database_Log.
💻 PAS
字号:
unit Unit18;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids, ComCtrls, DBTables, DB,IdGlobal,QControls;
type
  TForm18 = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    customerid: TEdit;
    customername: TEdit;
    Label3: TLabel;
    idname: TComboBox;
    Label4: TLabel;
    idcard: TEdit;
    Label5: TLabel;
    account: TComboBox;
    Label7: TLabel;
    tel: TEdit;
    Label8: TLabel;
    address: TEdit;
    Label9: TLabel;
    nation: TComboBox;
    Label11: TLabel;
    gender: TComboBox;
    insert: TButton;
    refresh: TButton;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    DBGrid1: TDBGrid;
    Label6: TLabel;
    kind: TComboBox;
    Label10: TLabel;
    moneykind: TComboBox;
    Label17: TLabel;
    money: TEdit;
    Label21: TLabel;
    indate: TDateTimePicker;
    Label22: TLabel;
    GroupBox2: TGroupBox;
    asc: TRadioButton;
    desc: TRadioButton;
    GroupBox3: TGroupBox;
    id: TRadioButton;
    price: TRadioButton;
    floor: TRadioButton;
    customer: TTable;
    checkin: TTable;
    Button1: TButton;
    roomid: TEdit;
    room: TTable;
    DataSource1: TDataSource;
    Query2: TQuery;
    procedure Button1Click(Sender: TObject);
    procedure insertClick(Sender: TObject);
    procedure refreshClick(Sender: TObject);
    procedure ascClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure descClick(Sender: TObject);
    procedure idClick(Sender: TObject);
    procedure priceClick(Sender: TObject);
    procedure floorClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form18: TForm18;

implementation

uses Unit6, Unit16;

{$R *.dfm}

procedure TForm18.Button1Click(Sender: TObject);
var
   flag:boolean;
   maxNo,tmp:integer;
   i,s:integer;
begin
   {验证客户编号的合法性}
   if customerid.text='' then
     s:=messagebox(0,'您希望成为会员,享受更多优惠吗?','欢迎成为会员!',36)
   else
   begin
     {验证客户编号的存在性}
     flag:=false;
     with customer do
     begin
         open;
         first;
         while not eof do
         begin
             if fieldByName('客户编号').AsString=customerId.Text then
             begin
             flag:=true;
             break;
             end;
         next;
         end;
     if flag=false then//客户不存在
        s:=messagebox(0,'您的会员编号不存在!您希望成为会员,享受更多优惠吗?','欢迎成为会员!',36)
     else //客户存在
      begin{显示此员工的信息}
       with customer do
       begin
       customerName.Text:=fieldByName('客户姓名').asString;
       i:=gender.Items.IndexOf(fieldByName('性别').asString);
       gender.ItemIndex:=i;
       i:=idname.Items.IndexOf(fieldByName('证件名称').asString);
       idname.ItemIndex:=i;
       idcard.Text:=fieldByName('证件号码').asString;
       tel.Text:=fieldByName('联系电话').asString;
       i:=account.Items.IndexOf(fieldByName('折扣').asString);
       account.ItemIndex:=i;
       indate.Date:=now;
       indate.enabled:=false;
       i:=nation.Items.IndexOf(fieldByName('国籍').asString);
       nation.ItemIndex:=i;
       address.Text:=fieldByName('通信地址').asString;
       end;
      end;
    end;
    end;
   if s=6 then
      form16.show
   else if s=7 then
   begin
      {获取新添加会员的编号----------<会员表>}

     with checkin do
      begin
       open;
       first;
       maxNo:=fieldByName('客户编号').AsInteger;
       while not eof do
       begin
         tmp:=fieldByName('客户编号').AsInteger;
         if maxNo<tmp then maxNo:=tmp;
         next;
       end;
       close;
      end;
      customerId.Text:=intToStr(maxNo+1);
      customerid.ReadOnly:=true;
      activeControl:=customerName;
   end;
end;


procedure TForm18.insertClick(Sender: TObject);
var s:string;
begin
   {添加一个新会员----------<会员表>}
   try
      {检查"客户姓名"}
      if customerName.Text='' then
      begin
         messageDlg('"客户姓名"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=customerName;
         abort;
      end;
      {检查"性别"}
      if gender.text='' then
      begin
         messageDlg('"性别"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=gender;
         abort;
      end;
      {检查"证件名称"}
      if idname.text='' then
      begin
         messageDlg('"证件名称"输入有误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=idname;
         abort;
      end;
      {检查"证件号码"}
      if idcard.Text='' then
      begin
         messageDlg('"证件号码"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=idcard;
         abort;
      end;
      {检查"类别"}
      if kind.text='' then
      begin
         messageDlg('"类别"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=kind;
         abort;
      end;
      {检查"国籍"}
      if nation.text='' then
      begin
         messageDlg('"国籍"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=nation;
         abort;
      end;

      {检查"折扣"}
      if account.text='' then
      begin
         messageDlg('"折扣"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=account;
         abort;
      end;
      {检查"付款方式"}
      if moneykind.text='' then
      begin
         messageDlg('"付款方式"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=moneykind;
         abort;
      end;
      {检查"预付押金"}
      if money.text='' then
      begin
         messageDlg('"预付押金"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=money;
         abort;
      end;
      {检查"房号"}
      if roomid.text='' then
      begin
         messageDlg('"房号"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=roomid;
         abort;
      end;
      s:=roomid.text;
      {将客户数据填入<住宿表>}
      with checkin do
      begin
         open;
         append;
         fieldByName('客户编号').AsInteger:=strToInt(customerId.Text);
         fieldByName('客户姓名').AsString:=customerName.Text;
         fieldByName('性别').AsString:=gender.Text;
         fieldByName('证件名称').AsString:=idname.Text;
         fieldByName('证件号码').AsString:=idcard.Text;
         fieldByName('联系电话').AsString:=tel.text;
         fieldByName('通信地址').AsString:=address.text;
         fieldByName('国籍').AsString:=nation.Text;
         fieldByName('类别').AsString:=kind.text;
         fieldByName('付款方式').AsString:=moneykind.Text;
         fieldByName('预付押金').AsString:=money.Text;
         fieldByName('折扣').AsString:=account.Text;
         fieldByName('房号').AsString:=roomid.Text;
         fieldByName('入住日期').Asdatetime:=strtodate(DatetoStr(indate.date));
         post;
         close;
      end;

   except
      on ex:EConvertError do
      begin
         messageDlg('输入有误,请重试!',mtWarning,[mbOk],0);
      end;
   end; {end of try}
   //使room表中刚被选中的房间状态变为1
   with room do
    begin
     query2.Close;
     query2.SQL.Clear;
     query2.SQL.Add('update room set 房间状态=1 where 房号='+s);
     try
       query2.Open;
     except
       query2.ExecSQL;
    end;
   end; 
   {让数据控件dbGrid1同步显示}
   with query2 do
   begin
      close;
      sql.Clear;
      sql.Add('select * from room where 房间状态=0');
      open;
   end;
   {清屏准备输入下一位新会员}
   refreshClick(Sender);//调用清屏按钮的处理操作
   messageDlg('添加成功!',mtWarning,[mbOk],0);
   activeControl:=customerName;
end;

procedure TForm18.refreshClick(Sender: TObject);
begin
   customerid.ReadOnly:=false;
   customerId.Text:='';
   activeControl:=customerid;
   customerName.Text:='';
   gender.ItemIndex:=0;
   Idname.ItemIndex:=0;
   idcard.Text:='';
   tel.Text:='';
   address.Text:='';
   account.ItemIndex:=0;
   nation.ItemIndex:=0;
   kind.ItemIndex:=0;
   moneykind.ItemIndex:=0;
   money.Text:='';
   roomid.text:='';
end;

procedure TForm18.ascClick(Sender: TObject);
var
   col:string;
begin
   if id.Checked then col:='房号'
   else if price.Checked then col:='房价'
   else if floor.Checked then col:='楼层';
   query2.Close;
   query2.SQL.Clear;
   query2.SQL.Add('select * from room where 房间状态=0 order by '+col+' asc');
   try
      query2.Open;
   except
      query2.ExecSQL;
   end;
end;

procedure TForm18.FormCreate(Sender: TObject);
begin
  id.Checked:=true;
  indate.Enabled:=false;
end;

procedure TForm18.descClick(Sender: TObject);
var
   col:string;
begin
   if id.Checked then col:='房号'
   else if price.Checked then col:='房价'
   else if floor.Checked then col:='楼层';
   query2.Close;
   query2.SQL.Clear;
   query2.SQL.Add('select * from room where 房间状态=0 order by '+col+' desc');
   try
      query2.Open;
   except
      query2.ExecSQL;
   end;
end;

procedure TForm18.idClick(Sender: TObject);
var
   s:string;
begin
   if asc.Checked then s:='asc'
   else if desc.Checked then s:='desc';
   query2.Close;
   query2.SQL.Clear;
   query2.SQL.Add('select * from room where 房间状态=0 order by 房号 '+s);
   try
      query2.Open;
   except
      query2.ExecSQL;
   end;
end;

procedure TForm18.priceClick(Sender: TObject);
var
   s:string;
begin
   if asc.Checked then s:='asc'
   else if desc.Checked then s:='desc';
   query2.Close;
   query2.SQL.Clear;
   query2.SQL.Add('select * from room where 房间状态=0 order by 房价 '+s);
   try
      query2.Open;
   except
      query2.ExecSQL;
   end;

end;


procedure TForm18.floorClick(Sender: TObject);
var
   s:string;
begin
   if asc.Checked then s:='asc'
   else if desc.Checked then s:='desc';
   query2.Close;
   query2.SQL.Clear;
   query2.SQL.Add('select * from room where 房间状态=0 order by 楼层 '+s);
   try
      query2.Open;
   except
      query2.ExecSQL;
   end;
end;


procedure TForm18.FormClose(Sender: TObject; var Action: TCloseAction);
begin
self.free;
end;

end.

⌨️ 快捷键说明

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