unitroombook.~pas
来自「自己做过的工程」· ~PAS 代码 · 共 455 行
~PAS
455 行
unit unitroombook;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, ComCtrls, StdCtrls, DB, ADODB;
type
Tfromroomkook = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Label1: TLabel;
ed_username: TEdit;
StaticText1: TStaticText;
StaticText2: TStaticText;
StaticText3: TStaticText;
roomid: TEdit;
StaticText4: TStaticText;
employeeid: TEdit;
StaticText5: TStaticText;
userphone: TEdit;
StaticText6: TStaticText;
remark: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
DBGrid1: TDBGrid;
StaticText7: TStaticText;
booktime: TDateTimePicker;
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TabSheet1Show(Sender: TObject);
private
{ Private declarations }
//自定义的函数+
//function roomcolorchange(roomid:integer):string;
public
function roomcolorchange(roomid:integer):string;
function roomidjudge(roomid:integer):string;
{ Public declarations }
end;
var
fromroomkook: Tfromroomkook;
implementation
uses unitDMHotel,unitroom,unitinroom,unitlogging;
{$R *.dfm}
//自己定义函数的实现部分
function tfromroomkook.roomidjudge(roomid:integer):string;
begin
DMHotel.ADODataSetroomstatus.Open;
if not DMHotel.ADODataSetroomstatus.Locate('roomid',inttostr(roomid),[])then
begin
showmessage('包间编号'+inttostr(roomid)+'不存在!');
exit;
end;
end;
function tfromroomkook.roomcolorchange(roomid:integer):string;
begin
case roomid of
//401房间
8401:
begin
formroom.room401.Color:=clLime;
end;
//402房间
8402:
begin
formroom.room402.Color:=clLime;
end;
//403房间
8403:
begin
formroom.room403.Color:=clLime;
end;
//404房间
8404:
begin
formroom.room404.Color:=clLime;
end;
//405房间
8405:
begin
formroom.room405.Color:=clLime;
end;
//406房间
8406:
begin
formroom.room401.Color:=clLime;
end;
//407房间
8407:
begin
formroom.room407.Color:=clLime;
end;
//408房间
8408:
begin
formroom.room408.Color:=clLime;
end;
//409房间
8409:
begin
formroom.room409.Color:=clLime;
end;
//410房间
8410:
begin
formroom.room410.Color:=clLime;
end;
//411房间
8412:
begin
formroom.room411.Color:=clLime;
end;
//412房间
8416:
begin
formroom.room412.Color:=clLime;
end;
//413房间
8418:
begin
formroom.room413.Color:=clLime;
end;
//501房间
8501:
begin
formroom.room501.Color:=clLime;
end;
//502房间
8502:
begin
formroom.room502.Color:=clLime;
end;
//503房间
8503:
begin
formroom.room503.Color:=clLime;
end;
//504房间
8504:
begin
formroom.room504.Color:=clLime;
end;
//505房间
8505:
begin
formroom.room505.Color:=clLime;
end;
//506房间
8506:
begin
formroom.room506.Color:=clLime;
end;
//507房间
8507:
begin
formroom.room507.Color:=clLime;
end;
//508房间
8508:
begin
formroom.room508.Color:=clLime;
end;
//509房间
8509:
begin
formroom.room509.Color:=clLime;
end;
//510房间
8510:
begin
formroom.room510.Color:=clLime;
end;
//511房间
8512:
begin
formroom.room511.Color:=clLime;
end;
//512房间
8516:
begin
formroom.room512.Color:=clLime;
end;
//513房间
8518:
begin
formroom.room513.Color:=clLime;
end;
//601房间
8602:
begin
formroom.room601.Color:=clLime;
end;
//602房间
8604:
begin
formroom.room602.Color:=clLime;
end;
//603房间
8606:
begin
formroom.room603.Color:=clLime;
end;
//604房间
8608:
begin
formroom.room604.Color:=clLime;
end;
//605房间
8610:
begin
formroom.room605.Color:=clLime;
end;
//606房间
8612:
begin
formroom.room606.Color:=clLime;
end;
end;
end;
//关闭
procedure Tfromroomkook.Button4Click(Sender: TObject);
begin
close;
end;
//清楚操作,清楚控件中的所有输入
procedure Tfromroomkook.Button3Click(Sender: TObject);
begin
if MessageDlg('您确定要重新填写吗?',mtConfirmation,[mbYes,mbNo],0)= mrNO then
exit;
fromroomkook.ed_username.Clear;
fromroomkook.roomid.Clear;
fromroomkook.remark.Clear;
fromroomkook.userphone.Clear;
//fromroomkook.employeeid.Clear;员工标号不可改
//fromroomkook.booktime.Clear;是一个特殊控件
end;
//预定房间的添加
procedure Tfromroomkook.Button1Click(Sender: TObject);
VAR
coderoom:integer;
SQL:string;
itemtype:string;
vroomstatus:string;
vroomid:string;
vtest:integer;
begin
vroomid:=roomid.Text;
if vroomid='' then
begin
messagebox(handle,'你的输入的房间号为空,请重新输入!','错误',MB_OK OR MB_ICONERROR);
exit;
end;
//要进行判断是否输入的为数字
if not trystrtoint( roomid.Text,vtest) then
begin
messagebox(handle,'你输入的预定房间号不是个整数,请重新输入','错误',MB_OK OR MB_ICONERROR);
EXIT;
end;
//首先必须先判断这个房间的状态,如果是禁用或使用中就不可以用来进行预定的操作
DMHotel.ADODataSetroomstatus.Open;
if not DMHotel.ADODataSetroomstatus.Locate('roomid',vroomid,[]) then
begin
showmessage('房间编号'+vroomid+'不存在!');
exit;
end
else
begin
//此次应该调用的是状态表
DMHotel.ADODataSet_roomstatus.Open;
DMHotel.ADODataSet_roomstatus.Locate('roomid',vroomid,[]);
vroomstatus:=DMHotel.ADODataSet_roomstatus.FieldByName('roomstatus').AsString;
DMhotel.ADODataSet_roomstatus.Close;
if vroomstatus='停用' then
begin
showmessage(vroomid+'房间处于停用状态,不可以进行预定!');
exit;
end;
if vroomstatus='使用' then
begin
showmessage(vroomid+'这个房间处于使用状态,不可以进行预定!');
exit;
end;
if vroomstatus='预定' then
begin
showmessage(vroomid+'这个房间处于预定状态,不可以再进行预定!');
exit;
end;
end;
//开始一个事物
DMHotel.ADOConnection1.BeginTrans;
itemtype:='roombookmanagecode';
DMHotel.ADODataSet_itemnumber.Open;
DMHotel.ADODataSet_itemnumber.Locate('itemtype',itemtype,[]);
coderoom:=DMHotel.ADODataSet_itemnumber.FieldValues['itemno'];
coderoom:=coderoom+1;
DMHotel.ADODataSet_itemnumber.Edit;
DMHotel.ADODataSet_itemnumber.FieldValues['itemno']:=coderoom;
DMHotel.ADODataSet_itemnumber.Post;
// showmessage(inttostr(coderoom));
DMHotel.ADODataSet_itemnumber.Close;
//执行添加的操作
with DMHotel.ADOQuery1 do
begin
close;//关闭以前的操作
sql.Clear;
sql.Add('Insert into room_book(code,username,booktime,roomid,employeeid,userphone,remark,inornot)');
sql.Add('Values (:code,:username,:booktime,:roomid,:employeeid,:userphone,:remark,:inornot)');
parameters.ParamByName('username').Value:=fromroomkook.ed_username.Text;
Parameters.ParamByName('booktime').Value:=fromroomkook.booktime.Date;
parameters.ParamByName('roomid').Value:=strtoint(fromroomkook.roomid.Text);
Parameters.ParamByName('employeeid').Value:=fromroomkook.employeeid.Text;
Parameters.ParamByName('userphone').Value:=fromroomkook.userphone.Text;
parameters.ParamByName('remark').Value:=fromroomkook.remark.Text;
Parameters.ParamByName('inornot').Value:='no';
Parameters.ParamByName('code').Value:=coderoom;
close;
end;
//执行改变房间状态的操作
DMHotel.ADODataSet_roomstatus.Open;
DMHotel.ADODataSet_roomstatus.Locate('roomid',vroomid,[]);
DMHotel.ADODataSet_roomstatus.Edit;
DMHotel.ADODataSet_roomstatus.FieldByName('statusid').AsString:='2' ;
DMHotel.ADODataSet_roomstatus.FieldByName('roomstatus').AsString:='预定';
DMHotel.ADODataSet_roomstatus.Post;
DMHotel.ADODataSet_roomstatus.Close;
//也要同时改变主界面上的房间标识的颜色 ,用自己定义的函数来实现
fromroomkook.roomcolorchange(strtoint(vroomid));
try
DMHotel.ADOQuery1.ExecSQL;
except
DMHotel.ADOConnection1.RollbackTrans;
showmessage('入录失败');
exit;
end;
//将光标定位,必须放在requery后面
// DMHotel.ADODataSet_roombook.Locate('roomid',vroomid,[]);
DMHotel.ADOConnection1.CommitTrans;
DMHotel.ADODataSet_roombook.Open;
DMHotel.ADODataSet_roombook.Requery;
DMHotel.ADODataSet_roombook.Locate('roomid',vroomid,[]);
fromroomkook.ed_username.Clear;
fromroomkook.roomid.Clear;
fromroomkook.remark.Clear;
fromroomkook.userphone.Clear;
// fromroomkook.employeeid.Clear;
// 要显示必须不能关闭数据集1
// DMHotel.ADODataSet_roombook.Close;
end;
//注意同时要将房间的状态改变 ,也就是要改变其中的两个字段的值
//删除操作 ,删除其中的一条记录
procedure Tfromroomkook.Button2Click(Sender: TObject);
var
vID:string;
vroomid:string;
begin
DMHotel.ADODataSet_roombook.Open;
vID:= DMHotel.ADODataSet_roombook.FieldByName('code').AsString; //取ID号
vroomid:=DMHotel.ADODataSet_roombook.FieldByName('roomid').AsString;// 取房间号
//删除操作
if vroomid='' then
BEGIN
messagebox(handle,'已经没有可以删除的记录!','错误',MB_OK OR MB_ICONERROR) ;
EXIT;
END;
if MessageDlg('您确定要删除该记录吗?',mtConfirmation,[mbYes,mbNo],0)= mrNO then
exit;
DMHotel.ADOConnection1.BeginTrans;
with DMHotel.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('Delete from room_book ');
sql.Add('Where code=:code');
Parameters.ParamByName('code').Value:=vID;
end;
//改变主界面上房间标识的颜色,调用的中的公有函数
forminroom.fun_roomcolorchange(strtoint(vroomid),clCaptionText) ;
//改变房间的有关状态,两个字段
DMHotel.ADODataSet_roomstatus.Open;
DMHotel.ADODataSet_roomstatus.Locate('roomid',vroomid,[]);
DMHotel.ADODataSet_roomstatus.Edit;
DMHotel.ADODataSet_roomstatus.FieldByName('roomstatus').AsString:='空闲';
DMHotel.ADODataSet_roomstatus.FieldByName('statusid').AsString:='1';
DMHotel.ADODataSet_roomstatus.Post;
DMHotel.ADODataSet_roomstatus.Close;
try
DMHotel.ADOQuery1.ExecSQL;
except
showmessage('删除失败!');
DMHotel.ADOConnection1.RollbackTrans;
exit;
end;
DMHotel.ADOConnection1.CommitTrans;
DMHotel.ADODataSet_roombook.Open;
DMHotel.ADODataSet_roombook.Requery;
end;
procedure Tfromroomkook.FormShow(Sender: TObject);
begin
employeeid.Text:=username;
DMHotel.ADODataSet_roombook.Open;
DMHotel.ADODataSet_roombook.Requery;
end;
procedure Tfromroomkook.TabSheet1Show(Sender: TObject);
begin
// DMHotel.ADODataSet_roombook.Open;
//DMHotel.ADODataSet_roombook.Requery;
booktime.Date:=date();
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?