unitsupdetail_data.~pas
来自「自己做过的工程」· ~PAS 代码 · 共 219 行
~PAS
219 行
unit unitsupdetail_data;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls;
type
Tformsupdetail_data = class(TForm)
Panel2: TPanel;
but_ok: TButton;
but_cancel: TButton;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
ed_username: TEdit;
ed_sroomno: TEdit;
ed_userno: TEdit;
riched_remark: TRichEdit;
RadioGroup1: TRadioGroup;
rbut_sroom: TRadioButton;
rbut_table: TRadioButton;
Label6: TLabel;
ed_tableno: TEdit;
procedure but_cancelClick(Sender: TObject);
procedure but_okClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure rbut_sroomClick(Sender: TObject);
procedure rbut_tableClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
formsupdetail_data: Tformsupdetail_data;
implementation
uses unitDMHotel,unitlogging,unitsupmanage,unitsupdetails;
{$R *.dfm}
procedure Tformsupdetail_data.but_cancelClick(Sender: TObject);
begin
close;
end;
//保存记录
procedure Tformsupdetail_data.but_okClick(Sender: TObject);
var
ls_tableno:string;
ls_username,ls_sroomno,ls_userno,ls_remark:string;
ls_entertime:Tdatetime;
ls_sroomstatus:string;
itemtype,itemno:string;
test_userno:integer;
begin
if rbut_sroom.Checked=true then
begin ///////////包间客人///////////
//丛输入框中取数据,插入到sup_detail表中或用作修改
ls_username:=ed_username.Text;
ls_sroomno:=ed_sroomno.Text;
ls_userno:=ed_userno.Text;
ls_entertime:=date+time;
ls_remark:=riched_remark.Text;
//判断是否是数字型
if (not tryStrToInt(ls_userno,test_userno)) and (trim(ls_userno)<>'') then
begin
MessageBox(handle,'您输入的客人数不是一个数字类型!','错误',MB_OK or MB_ICONERROR);
ed_userno.Text:='';
ed_userno.SetFocus;
exit;
end;
//找到该包间的记录
DMHotel.ds_sup_room_status.Open;
DMHotel.ds_sup_room_status.Requery;
if not DMHotel.ds_sup_room_status.Locate('sroomno',ls_sroomno,[])then
begin
showmessage('包间编号'+ls_sroomno+'不存在!');
ed_sroomno.Text:='';
ed_sroomno.SetFocus;
exit;
end;
//取得包间状态,判断是否能被使用
ls_sroomstatus:=DMHotel.ds_sup_room_status.FieldValues['sroomstatus'];
//showmessage(ls_sroomstatus);//
if (ls_sroomstatus<>'空闲') and (ls_sroomstatus<>'预定') then
begin
showmessage('该包间不在空闲或预定状态,不能被使用!');
ed_sroomno.Text:='';
ed_sroomno.SetFocus;
exit;
end;
//使用的颜色
statuscolor:=color3;
//改变将被使用包间状态
formsupmanage.sroomstatus_change(statuscolor,strtoint(ls_sroomno),'使用');
end
else ///////////散座客人////////////
begin
//记录桌号
ls_tableno:=ed_tableno.Text;
ls_entertime:=date+time;
end;
//提示是否确实要保存
if MessageDlg('您确定要保存该记录吗?',mtConfirmation,[mbYes,mbNo],0)= mrNO then
exit;
//先从item_number表中取出最大记录号,再做相应处理
itemtype:='supdetailid';
DMHotel.FindMaxNumber(itemtype,itemno);
//执行插入用餐客人明细表记录和将最大值回写入item_number表
//插入用餐客人明细记录 如果是包间,则删除相应的预定
//事务开始
DMHotel.ADOConnection1.BeginTrans;
if rbut_sroom.Checked=true then //包间客人
SQL:='insert into sup_detail(sdid,username,userno,entertime,sroomno,employeeid,remark,iscancellation,ischeck) '+
'values('+''''+itemno+''''+','+''''+ls_username+''''+','+''''+ls_userno+''''+','+
''''+datetimetostr(ls_entertime)+''''+','+''''+ls_sroomno+''''+','+''''+username+''''+','+
''''+ls_remark+''''+','+''''+'0'+''''+','+''''+'no'+''''+')'
else //散座客人
SQL:='insert into sup_detail(sdid,employeeid,entertime,tableno,iscancellation,ischeck) '+
'values('+''''+itemno+''''+','+''''+username+''''+','+
''''+datetimetostr(ls_entertime)+''''+','+''''+ls_tableno+''''+','+
''''+'0'+''''+','+''''+'no'+''''+')';
//showmessage(sql);////
DMHotel.ADOQuery1.SQL.Text:=SQL;
try
DMHotel.ADOQuery1.ExecSQL;
except
showmessage('录入失败!');
DMHotel.ADOConnection1.RollbackTrans; //失败回滚
exit;
end;
//如果是包间客人,则删除相应预定记录//包间客人
if rbut_sroom.Checked=true then
begin
SQL:='delete from sroom_book where sroomno='+''''+ls_sroomno+'''';
DMHotel.ADOQuery1.SQL.Text:=SQL;
try
DMHotel.ADOQuery1.ExecSQL;
except
showmessage('删除预定记录失败!');
DMHotel.ADOConnection1.RollbackTrans; //失败回滚
exit;
end;
end;
DMHotel.ADOConnection1.CommitTrans; //成功提交
//将最大值回写
DMHotel.RewriteMax(itemtype,itemno);
G_sdid:=itemno; //将记录号赋给全局变量
DMHotel.ds_sup_detail.Requery;
close;
end;
//显示窗口时的初始设置
procedure Tformsupdetail_data.FormShow(Sender: TObject);
begin
//确保数据集打开
DMHotel.ds_sup_detail.Open;
//清空原来的目录
ed_tableno.Text:='';
ed_username.Text:='';
ed_sroomno.Text:='';
ed_userno.Text:='';
riched_remark.Text:='';
if rbut_sroom.Checked=true then
ed_sroomno.SetFocus
else
ed_tableno.SetFocus;
end;
procedure Tformsupdetail_data.rbut_sroomClick(Sender: TObject);
begin
ed_tableno.Enabled:=false;
ed_username.Enabled:=true;
ed_sroomno.Enabled:=true;
ed_userno.Enabled:=true;
riched_remark.Enabled:=true;
ed_sroomno.SetFocus;
end;
procedure Tformsupdetail_data.rbut_tableClick(Sender: TObject);
begin
ed_tableno.Enabled:=true;
ed_username.Enabled:=false;
ed_sroomno.Enabled:=false;
ed_userno.Enabled:=false;
riched_remark.Enabled:=false;
ed_tableno.SetFocus;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?