📄 unit18.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 + -