📄 bookut.~pas
字号:
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 + -