📄 roomtypeut.pas
字号:
unit RoomTypeUt;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Grids, DBGrids, DB, ADODB, StdCtrls, Buttons, ComCtrls;
type
TRoomTypeFm = class(TForm)
PageControl1: TPageControl;
fFloodSheet: TTabSheet;
RoomSheet: TTabSheet;
Panel1: TPanel;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
TypeCodeEdit: TEdit;
TypeNameEdit: TEdit;
PriceEdit: TEdit;
PPriceEdit: TEdit;
OrderNumEdit: TEdit;
PF: TCheckBox;
UpDown: TUpDown;
tj: TCheckBox;
AddBt: TBitBtn;
EditBt: TBitBtn;
DelBt: TBitBtn;
FirstBt: TBitBtn;
ProBt: TBitBtn;
NextBt: TBitBtn;
LastBt: TBitBtn;
ClearBt: TBitBtn;
CloseBt: TBitBtn;
FindBt: TBitBtn;
Panel2: TPanel;
DBGrid1: TDBGrid;
totlepl: TPanel;
RoomTypeAdo: TADOQuery;
DataSource1: TDataSource;
Panel3: TPanel;
Panel4: TPanel;
DataSource2: TDataSource;
DBGrid2: TDBGrid;
GroupBox2: TGroupBox;
faddbt: TBitBtn;
feditbt: TBitBtn;
fdelbt: TBitBtn;
fclearbt: TBitBtn;
fclose: TBitBtn;
Label6: TLabel;
FloodCodeEdit: TEdit;
Label7: TLabel;
FloodNameEdit: TEdit;
FloodAdo: TADOQuery;
UpDown1: TUpDown;
UpDown2: TUpDown;
procedure UpDownClick(Sender: TObject; Button: TUDBtnType);
procedure TypeNameEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure PriceEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure OrderNumEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure PFKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure PPriceEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure AddBtClick(Sender: TObject);
procedure PFClick(Sender: TObject);
procedure CloseBtClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure ProBtClick(Sender: TObject);
procedure FirstBtClick(Sender: TObject);
procedure NextBtClick(Sender: TObject);
procedure LastBtClick(Sender: TObject);
procedure FindBtClick(Sender: TObject);
procedure fcloseClick(Sender: TObject);
procedure fclearbtClick(Sender: TObject);
procedure fdelbtClick(Sender: TObject);
procedure feditbtClick(Sender: TObject);
procedure faddbtClick(Sender: TObject);
procedure ClearBtClick(Sender: TObject);
procedure DelBtClick(Sender: TObject);
procedure EditBtClick(Sender: TObject);
procedure DBGrid2CellClick(Column: TColumn);
procedure FloodNameEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
procedure DataMove(para:integer);
public
{ Public declarations }
end;
var
RoomTypeFm: TRoomTypeFm;
str,str1:string;
implementation
uses hotelmis, DataConUt;
{$R *.dfm}
procedure TRoomTypeFm.DataMove(para:integer);
begin
with RoomTypeAdo do
begin
if para=1 then
first
else if para=2 then
Prior
else if para=3 then
next
else if para=4 then
last;
begin
TypeCodeEdit.Text:=fieldbyname('类型编号').AsString;
TypeNameEdit.Text:=fieldbyname('类型名称').AsString;
PriceEdit.Text:=fieldbyname('价格').AsString;
OrderNumEdit.Text:=fieldbyname('可超预定数').AsString;
if fieldbyname('是否可拼房').AsBoolean then
Pf.Checked:=true
else
Pf.Checked:=false;
PPriceEdit.Text:=fieldbyname('拼房价格').AsString;
end;
end;
end;
procedure TRoomTypeFm.UpDownClick(Sender: TObject; Button: TUDBtnType);
begin
//OrderNumEdit.Text:=inttostr(strtoint(OrderNumEdit.Text)+1);
end;
procedure TRoomTypeFm.TypeNameEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
if TypeNameEdit.Text='' then
begin
showmessage('请输入客房名称');
exit;
end
else
OrderNumEdit.SetFocus;
end;
end;
procedure TRoomTypeFm.PriceEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
if (PriceEdit.Text='') or (PriceEdit.Text<'0') or (PriceEdit.Text>'9') then
begin
showmessage('请正确输入客房价格');
exit;
end
else
PF.SetFocus;
end;
end;
procedure TRoomTypeFm.OrderNumEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
if (OrderNumEdit.Text='') or (OrderNumEdit.Text<'0') or (OrderNumEdit.Text>'9')then
begin
showmessage('请输入可超预定数或者输入不为数字!');
exit;
end
else
PriceEdit.SetFocus;
end;
end;
procedure TRoomTypeFm.PFKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
if PPriceEdit.Enabled=false then
AddBt.Click
else
PPriceEdit.SetFocus;
end;
procedure TRoomTypeFm.PPriceEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
AddBt.Click;
end;
procedure TRoomTypeFm.AddBtClick(Sender: TObject);
var
vpf:boolean;
vpfprice:string;
begin
//数据验证代码
if TypeNameEdit.Text='' then
begin
showmessage('请输入客房类型名称');
exit;
end;
if (OrderNumEdit.Text='') then
begin
showmessage('请输入可超预定数或者输入的可超预定数不为数字类型');
exit;
end;
if (PriceEdit.Text='') then
begin
showmessage('请输入价格或者输入的价格格式错误');
exit;
end;
if pf.Checked then
begin
if (PPriceEdit.Text='') then
begin
showmessage('请输入拼房价格或者输入的拼房价格格式错误');
exit;
end;
vpf:=true;
vpfprice:=PPriceEdit.Text;
end
else
begin
vpf:=false;
vpfprice:='0';
end;
//数据提交代码
with RoomTypeAdo do
begin
close;
sql.clear;
sql.Add('select 类型编号,类型名称,价格,拼房价格,可超预定数,是否可拼房 from 客房类型表 where 类型编号=:typecode');
Parameters.ParamByName('typecode').Value:=trim(TypeCodeEdit.Text);
open;
if recordcount>=1 then
begin
showmessage('此类型编号存在,如果是修改请点击修改按钮');
ClearBt.Click;
exit;
end;
end;
str:='insert into 客房类型表(类型编号,类型名称,价格,拼房价格,可超预定数,是否可拼房)';
str:=str+' values(:typecode,:typename,:price,:pprice,:ordernum,:pf)';
with RoomTypeAdo do
begin
close;
sql.Clear;
sql.Add(str);
Parameters.ParamByName('typecode').Value:=trim(TypeCodeEdit.Text);
Parameters.ParamByName('typename').Value:=trim(TypeNameEdit.Text);
Parameters.ParamByName('price').Value:=trim(PriceEdit.Text);
Parameters.ParamByName('pprice').Value:=trim(vpfprice);
Parameters.ParamByName('ordernum').Value:=trim(OrderNumEdit.Text);
Parameters.ParamByName('pf').Value:=vpf;
try
execsql;
except
showmessage('增加失败!');
end;
end;
//str:='select 类型编号,类型名称,价格,拼房价格,可超预定数,是否可拼房 from 客房类型表 order by 类型编号';
//HotelFm.DataRefresh(RoomTypeAdo,str);
ClearBt.Click;
TypeNameEdit.SetFocus;
end;
procedure TRoomTypeFm.PFClick(Sender: TObject);
begin
PPriceEdit.Clear;
if PF.Checked=true then
PPriceEdit.Enabled:=true
else
PPriceEdit.Enabled:=false;
end;
procedure TRoomTypeFm.CloseBtClick(Sender: TObject);
begin
close;
end;
procedure TRoomTypeFm.FormCreate(Sender: TObject);
begin
str:='select 类型编号,类型名称,价格,拼房价格,可超预定数,是否可拼房 from 客房类型表';
str1:='select max(类型编号) as MaxCode from 客房类型表';
TypeCodeEdit.Text:=HotelFm.GetMaxNum(RoomTypeAdo,str,str1); //获取最大编号
str:='select 楼层编号,楼层名称 from 楼层编号表';
str1:='select max(楼层编号) as MaxCode from 楼层编号表';
FloodCodeEdit.Text:=HotelFm.GetMaxNum(FloodAdo,str,str1); //获取最大编号
str:='select count(类型编号) as totle from 客房类型表';
totlepl.Caption:='总记录数:'+inttostr(hotelfm.DataTotle(RoomTypeAdo,str))+'条'; //获取记录总数
str:='select 类型编号,类型名称,价格,拼房价格,可超预定数,是否可拼房 from 客房类型表 order by 类型编号';
HotelFm.DataRefresh(RoomTypeAdo,str); //刷新数据
str:='select 楼层编号,楼层名称 from 楼层编号表 order by 楼层编号';
HotelFm.DataRefresh(FloodAdo,str); //刷新数据
//初始化客房设置输入框
TypeNameEdit.Clear;
OrderNumEdit.Text:='0';
PriceEdit.Clear;
PPriceEdit.clear;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -