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

📄 bookut.~pas

📁 宾馆客房管理系统,功能强大,界面美观,全部delphi源代码
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit BookUt;

interface

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

type
  TBookFm = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    DBGrid1: TDBGrid;
    BookAdo: TADOQuery;
    DataSource1: TDataSource;
    booknumedit: TLabeledEdit;
    Label1: TLabel;
    roomtypebox: TComboBox;
    Label2: TLabel;
    dddate: TDateTimePicker;
    Label3: TLabel;
    lddate: TDateTimePicker;
    Label4: TLabel;
    teledit: TEdit;
    roompriceedit: TLabeledEdit;
    inprice: TLabeledEdit;
    zkedit: TLabeledEdit;
    zkyyedit: TLabeledEdit;
    peonumedit: TLabeledEdit;
    sfjc: TCheckBox;
    jcpriceedit: TLabeledEdit;
    yskedit: TLabeledEdit;
    statusedit: TLabeledEdit;
    bookpeoedit: TLabeledEdit;
    Label5: TLabel;
    ywybox: TComboBox;
    czyedit: TLabeledEdit;
    hybhedit: TLabeledEdit;
    ydgsedit: TLabeledEdit;
    bz: TLabeledEdit;
    Panel3: TPanel;
    ydbt: TBitBtn;
    xgbt: TBitBtn;
    scbt: TBitBtn;
    dybt: TBitBtn;
    sxbt: TBitBtn;
    BitBtn6: TBitBtn;
    ADOQuery: TADOQuery;
    Label6: TLabel;
    roomnumbox: TComboBox;
    UpDown1: TUpDown;
    procedure FormCreate(Sender: TObject);
    procedure roomtypeboxChange(Sender: TObject);
    procedure roomtypeboxKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure teleditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure roomnumboxKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure inpriceKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure zkeditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure zkyyeditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure peonumeditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure sfjcKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure jcpriceeditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure yskeditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure bookpeoeditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ywyboxKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure czyeditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure hybheditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ydgseditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure bzKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure sfjcClick(Sender: TObject);
    procedure ydbtClick(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure scbtClick(Sender: TObject);
    procedure xgbtClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  BookFm: TBookFm;

implementation

{$R *.dfm}

procedure TBookFm.FormCreate(Sender: TObject);

var
 Present: TDateTime;
 Year, Month, Day: Word;//定义时间变量
 sno,cno,vno:string;//单据编号变量
  llen:integer; //获取长度的变量

 begin

 //自动获取预定最大单据号
present:=now;
DecodeDate(Present, Year, Month, Day);

with adoquery do
  begin
   close;
   sql.Clear;
   sql.Add('select * from 预定单表');
   open;
   if recordcount<1 then
     begin
     cno:='00001';
     vno:='ZDYD'+inttostr(Year)+inttostr(Month)+inttostr(Day)+cno;
     end
   else
     begin
      close;
      sql.Clear;
      sql.Add('select max(预定单号) as maxno  from 预定单表');
      open;
      sno:=fieldbyname('maxno').AsString;
      llen:=strtoint(copy(sno,11,5))+1;
      case length(inttostr(llen)) of
       1:cno:='0000'+inttostr(strtoint(copy(sno,13,5))+1);
       2:cno:='000'+inttostr(strtoint(copy(sno,13,5))+1);
       3:cno:='00'+inttostr(strtoint(copy(sno,13,5))+1);
       4:cno:='0'+inttostr(strtoint(copy(sno,13,5))+1);
       5:cno:=inttostr(strtoint(copy(sno,13,5))+1);
      else
       cno:='00001';
    end;
        vno:='ZDYD'+inttostr(Year)+inttostr(Month)+inttostr(Day)+cno;

    end;
  end;
  booknumedit.Text:=vno;
  //导入客房类型
  with adoquery do
   begin
     close;
     sql.Clear;
     sql.Add('select 类型名称 from 客房类型表');
     open;
     first;
     while not eof do
       begin
        roomtypebox.Items.Add(fieldbyname('类型名称').AsString);
        next;
       end;
   end;
   //初始化日期
   dddate.Date:=date();
   lddate.Date:=date();
    //导入业务员姓名
  with adoquery do
   begin
     close;
     sql.Clear;
     sql.Add('select 姓名 from 工作员表');
     open;
     first;
     while not eof do
       begin
        ywybox.Items.Add(fieldbyname('姓名').AsString);
        next;
       end;
   end;
   //设置单据状态
   statusedit.Text:='预定';
   with bookado do
    begin
      close;
      sql.Clear;
      sql.Add('select * from 预定单表 order by 编号 desc');
      open;
    end;
   sfjc.Checked:=false;
   jcpriceedit.Enabled:=false;
   teledit.Text:='';
   inprice.Text:='';
   zkedit.Text:='0';
   zkyyedit.Text:='';
   peonumedit.Text:='0';
   jcpriceedit.Text:='0';
   yskedit.Text:='0';
   bookpeoedit.Text:='';
  // statusedit.Text:='预定';
   ywybox.Text:='';
   czyedit.Text:='';
   hybhedit.Text:='';
   ydgsedit.Text:='';
   bz.Text:='';
   roomtypebox.Text:='';
   roomnumbox.Text:='';
end;

procedure TBookFm.roomtypeboxChange(Sender: TObject);
begin
  //根据选定的客房类型导出可预定的客房编号
    roomnumbox.Clear;
    with adoquery do
     begin
       close;
       sql.Clear;
       sql.Add('select 客房编号 from 客房信息表  where 状态="空房" and 类型编号=(select 类型编号 from 客房类型表 where 类型名称=:vlxmc)');
       adoquery.Parameters.ParamByName('vlxmc').Value:=trim(roomtypebox.Text);
       open;
       first;
       while not eof do
         begin
           roomnumbox.Items.Add(fieldbyname('客房编号').AsString);
           next;
         end;
     end;
     //导出客房价格
      with adoquery do
       begin
       close;
       sql.Clear;
       sql.Add('select 价格 from 客房类型表 where 类型名称=:vlxmc');
       adoquery.Parameters.ParamByName('vlxmc').Value:=trim(roomtypebox.Text);
       open;
       roompriceedit.Text:=fieldbyname('价格').AsString;
       end;
end;

procedure TBookFm.roomtypeboxKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if key=13 then
   begin
    if roomtypebox.Text='' then
     begin
      showmessage('请选择客房类型!');
      exit;
     end
    else
     teledit.SetFocus; 
   end;
end;

procedure TBookFm.teleditKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=13 then
  

     roomnumbox.SetFocus;

end;

procedure TBookFm.roomnumboxKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=13 then
   begin
    if roomnumbox.Text='' then
     begin
      showmessage('请选择客房编号!');
      exit;
     end
    else
     inprice.SetFocus; 
   end;
end;

procedure TBookFm.inpriceKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if key=13 then
   begin
    if inprice.Text='' then
     begin
      showmessage('请输入入住价格!');
      exit;
     end
    else
     zkedit.SetFocus; 
   end;
end;

procedure TBookFm.zkeditKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if key=13 then

    zkyyedit.SetFocus;

end;

procedure TBookFm.zkyyeditKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=13 then

     peonumedit.SetFocus;
  
end;

procedure TBookFm.peonumeditKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=13 then
   begin
    if (peonumedit.Text='') or (peonumedit.Text='0') then
     begin
      showmessage('请输入入住人数!');
      exit;
     end
    else
     sfjc.SetFocus; 
   end;
end;

⌨️ 快捷键说明

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