unitroomcheck.~pas
来自「自己做过的工程」· ~PAS 代码 · 共 1,283 行 · 第 1/3 页
~PAS
1,283 行
//判断是不是实数
//1
if not trystrtofloat( ed_debtkalaok.Text,vtest) then
begin
messagebox(handle,'你输入的卡拉OK不是个实数,请重新输入','错误',MB_OK OR MB_ICONERROR);
EXIT;
end;
//2
if not trystrtofloat( ed_debtballroom.Text,vtest) then
begin
messagebox(handle,'你输入的歌舞厅费不是个实数,请重新输入','错误',MB_OK OR MB_ICONERROR);
EXIT;
end;
//3
if not trystrtofloat( ed_debtcommerce.Text,vtest) then
begin
messagebox(handle,'你输入的商务中心费用用不是个实数,请重新输入','错误',MB_OK OR MB_ICONERROR);
EXIT;
end;
//4
if not trystrtofloat( ed_debtsupsecond.Text,vtest) then
begin
messagebox(handle,'你输入的散座餐费用不是个实数,请重新输入','错误',MB_OK OR MB_ICONERROR);
EXIT;
end;
//5
if not trystrtofloat( ed_debtdiscount.Text,vtest) then
begin
messagebox(handle,'你输入的折扣不是个实数,请重新输入','错误',MB_OK OR MB_ICONERROR);
EXIT;
end;
//6
if not trystrtofloat(ed_debthairdressing.Text,vtest) then
begin
messagebox(handle,'你输入的美容中心费用用不是个实数,请重新输入','错误',MB_OK OR MB_ICONERROR);
EXIT;
end; // ed_debtsupsecond
//7
if not trystrtofloat(ed_debtsuproom.Text,vtest) then
begin
messagebox(handle,'你输入的包间餐费不是个实数,请重新输入','错误',MB_OK OR MB_ICONERROR);
EXIT;
end;
button1.Enabled:=true;
ed_debttotalfee.Text:=floattostr(strtofloat(ed_debtdiscount.Text)*(strtofloat(ed_debtkalaok.Text)+strtofloat(ed_debtballroom.Text)+strtofloat(ed_debtcommerce.Text)+strtofloat(ed_debtsuproom.Text)+strtofloat(ed_debtsupsecond.Text)+strtofloat(ed_debthairdressing.Text))/10);
end;
procedure Tformroomcheck.Button1Click(Sender: TObject);
var
itemtype:string;
customerid:integer;
begin
if ed_customername.Text='' then
begin
showmessage('你没有输入顾客的姓名,请重新输入!');
exit;
end;
//帐单入录的实质就是要将这些记录记到customer_debt表中
if ed_debttotalfee.Text=inttostr(0) then
begin
showmessage('该顾客的帐单为 0 ,不能进行帐单入库操作!');
exit;
end;
//注意在这里一定要使表中有一个主键,才可以进行删除的操作。因为可能回遇到
//多条记录相同的情况。如果没有主件就会不能进行删除的操作
itemtype:='customermanagecode';
DMHotel.ADODataSet_itemnumber.Open;
DMHotel.ADODataSet_itemnumber.Locate('itemtype',itemtype,[]);
customerid:=DMHotel.ADODataSet_itemnumber.FieldValues['itemno'];
customerid:=customerid+1;
DMHotel.ADODataSet_itemnumber.Edit;
DMHotel.ADODataSet_itemnumber.FieldValues['itemno']:=customerid;
DMHotel.ADODataSet_itemnumber.Post;
//showmessage(inttostr(customerid));
DMHotel.ADODataSet_itemnumber.Close;
//先要打开数据集
DMHotel.ADOConnection1.BeginTrans;
dmhotel.ADODataSet_customerdebt.Open;
with DMHotel.ADOQuery1 do
begin
close;//关闭以前的操作
sql.Clear;
sql.Add('Insert into customer_debt(code,customername,indebttime,employeeid,'+
'kalaok,ballroom,commercecenter,suproom,supsecond,hairdressing,discount,totalfee,remark,checkornot)');
sql.Add('Values (:code,:customername,:indebttime,:employeeid,:kalaok,:ballroom,'+
':commercecenter,:suproom,:supsecond,:hairdressing,:discount,:totalfee,:remark,:checkornot)');
parameters.ParamByName('code').Value:=customerid;
parameters.ParamByName('customername').Value:=ed_customername.Text;
parameters.ParamByName('indebttime').Value:=strtodatetime(ed_indebttime.Text);
parameters.ParamByName('employeeid').Value:=ed_debtemployeeid.Text;
parameters.ParamByName('kalaok').Value:=strtofloat(ed_debtkalaok.Text);
parameters.ParamByName('ballroom').Value:=strtofloat(ed_debtballroom.Text);
parameters.ParamByName('commercecenter').Value:=strtofloat(ed_debtcommerce.Text);
parameters.ParamByName('suproom').Value:=strtofloat(ed_debtsuproom.Text);
parameters.ParamByName('supsecond').Value :=strtofloat(ed_debtsupsecond.Text);
parameters.ParamByName('hairdressing').Value :=strtofloat(ed_debthairdressing.Text);
parameters.ParamByName('discount').Value :=strtofloat(ed_debtdiscount.Text);
parameters.ParamByName('totalfee').Value := strtofloat(ed_debttotalfee.Text);
parameters.ParamByName('remark').Value:=ed_debtremark.Text;
parameters.ParamByName('checkornot').Value:='欠账';
close;
end;
try
DMHotel.ADOQuery1.ExecSQL;
showmessage(ed_customername.text+'的帐单已经成功的入库!');
button1.Enabled:=false;
except
DMHotel.ADOConnection1.RollbackTrans;
showmessage('入录失败');
exit;
end;
DMhotel.ADODataSet_customerdebt.Requery;
DMHotel.ADOConnection1.CommitTrans;
//取消的操作
ed_customername.Clear;
ed_indebttime.Text:=datetimetostr(date+time);
ed_debtkalaok.Clear;
ed_debtballroom.Clear;
ed_debtcommerce.Clear;
ed_debtsuproom.Clear;
ed_debtsupsecond.Clear;
ed_debthairdressing.Clear;
ed_debtdiscount.Text:='10';
// ed_debtemployeeid.Clear;
ed_debtremark.Clear;
ed_debttotalfee.Clear;
//刷新显示
DMHotel.ADODataSet_customerdebt.Close;
DMHotel.ADODataSet_customerdebt.Prepared:=false;
DMHotel.ADODataSet_customerdebt.CommandText:='select * from customer_debt where '+
' checkornot=:yesornot' ;
DMHotel.ADODataSet_customerdebt.Parameters.ParamByName('yesornot').Value:='欠账';
DMHotel.ADODataSet_customerdebt.Prepared:=true;
DMHotel.ADODataSet_customerdebt.Open;
DMHotel.ADODataSet_customerdebt.Locate('code',customerid,[]);
end;
procedure Tformroomcheck.FormCreate(Sender: TObject);
begin
//ed_indebttime.Text:=datetimetostr(date+time);
end;
procedure Tformroomcheck.Button5Click(Sender: TObject);
var
totalfee:extended;
begin
if ed_oldcustomername.Text='' then
begin
showmessage('你输入的要查询的人的姓名为空,请重新输入!');
exit;
end;
DMhotel.SetCustomerView(ed_oldcustomername.Text,totalfee);
ed_olddebttotalfee.Text:=floattostr(totalfee);
Button6.Enabled:=true;
cb_customerjudge.Enabled:=true;
cb_customerjudge.Checked:=false;
but_customerprint.Enabled:=false;
end;
procedure Tformroomcheck.Button6Click(Sender: TObject);
//var
//totalfee:extended;
begin
if MessageDlg('您确定要进行'+ed_oldcustomername.text+'的结帐操作吗吗?',mtConfirmation,[mbYes,mbNo],0)= mrNO then
exit;
// DMHotel.ADODataSet_customerdebt.Open;
// DMhotel.SetCustomerView(ed_oldcustomername.Text,totalfee);
DMHotel.ADODataSet_customerdebt.First;
// showmessage('aa');
//这个地方收银实际上就是要将room_debt 中的checkornot字段的值改变 ’欠帐 ‘该为’已还‘
while not DMHotel.ADODataSet_customerdebt.Eof do
begin
if DMHotel.ADODataSet_customerdebt.FieldByName('customername').Value<>ed_oldusername.Text then
begin
DMHotel.ADODataSet_customerdebt.Edit;
DMHotel.ADODataSet_customerdebt.FieldByName('checkornot').AsString:='帐务已还清';
DMHotel.ADODataSet_customerdebt.FieldValues['checktime']:=date+time;
DMHotel.ADODataSet_customerdebt.Post;
// showmessage('bb');
end;
DMHotel.ADODataSet_customerdebt.Next;
end;
showmessage(ed_oldusername.Text+'房客的帐单已经还清,记录已写入数据库中!');
DMHotel.ADODataSet_customerdebt.Open;
DMHotel.ADODataSet_customerdebt.Requery;
ed_oldcustomername.Clear;
ed_olddebttotalfee.Clear;
Button6.Enabled:=false;
//刷新数据库
DMHotel.ADODataSet_customerdebt.Close;
DMHotel.ADODataSet_customerdebt.Prepared:=false;
DMHotel.ADODataSet_customerdebt.CommandText:='select * from customer_debt where '+
' checkornot=:yesornot' ;
DMHotel.ADODataSet_customerdebt.Parameters.ParamByName('yesornot').Value:='欠帐' ;
DMHotel.ADODataSet_customerdebt.Prepared:=true;
DMHotel.ADODataSet_customerdebt.Open;
end;
procedure Tformroomcheck.but_printClick(Sender: TObject);
var
codeid:integer;
begin
{DMHotel.ADODataSet_itemnumber.Open;
DMHotel.ADODataSet_itemnumber.Locate('itemtype','roomcheckmanagecode',[]);
codeid:=DMHotel.ADODataSet_itemnumber.FieldByName(itemno).AsString; }
{DMHotel.ADODataSet_roomfee.Open;
DMHotel.ADODataSet_roomfee.Requery;
DMHotel.ADODataSet_roomfee.Last;
codeid:=DMHotel.ADODataSet_roomfee.FieldByName('code').Value;
showmessage(inttostr(codeid));
showmessage('awh');
DMHotel.ADODataSet_roomfee.Locate('code',codeid,[]);}
DMHotel.ADODataSet_roomfee.Close;
DMHotel.ADODataSet_roomfee.Prepared:=false;
DMHotel.ADODataSet_roomfee.CommandText:='select * from room_fee where code=:vcodeid';
DMHotel.ADODataSet_roomfee.Parameters.ParamByName('vcodeid').Value:=vcodeid;
DMHotel.ADODataSet_roomfee.Prepared:=true;
DMHotel.ADODataSet_roomfee.Open;
//DMHotel.ADODataSet_roomfee.First;
//DMHotel.ADODataSet_roomfee.Requery;
//DMHotel.ADODataSet_roomfee.Last;
//DMHotel.ADODataSet_roomfee.CommandText:='select ';
//formroomrep:=Tformroomrep.Create(formroomcheck);
//DMhotel.ADODataSet_roomfee.First;
//用一个变量去做
{DMHotel.ADODataSet_roomfee.Open;
DMHotel.ADODataSet_roomfee.Locate('code',vcodeid,[]); }
//showmessage('aa');
formroomrep.quickrep1.PreviewModal;
but_print.Enabled:=false;
end;
//房客帐单打印
procedure Tformroomcheck.but_printdebtClick(Sender: TObject);
var
oldusername:string;
//time:string;
begin
//用还帐时间时间和人的姓名进行唯一的查询
{ oldusername:=ed_oldusername.Text;
//time:=ed_indebttime.Text;
DMHotel.ADODataSet_roomdebt.Close;
DMHotel.ADODataSet_roomdebt.Prepared:=false;
DMHotel.ADODataSet_roomdebt.CommandText:='select * from room_debt where '+
'username=:oldusername and checkornot=:yesornot' ;
DMHotel.ADODataSet_roomdebt.Parameters.ParamByName('oldusername').Value:=oldusername;
DMHotel.ADODataSet_roomdebt.Parameters.ParamByName('yesornot').Value:='欠账';
//在这里进行统一的结算所有的帐单
DMHotel.ADODataSet_roomdebt.Prepared:=true;
DMHotel.ADODataSet_roomdebt.Open; }
//将本身设置为无效
but_printdebt.Enabled:=false;
button9.Enabled:=true;
cb_judge.Checked:=false;
Fromroomdebtrep.QuickRep1.PreviewModal;
but_printdebt.Enabled:=false;
button9.Enabled:=true;
cb_judge.Checked:=false;
end;
procedure Tformroomcheck.TabSheet2Show(Sender: TObject);
begin
//ed_indebttime.Text:=datetimetostr(date+time);
DMHotel.ADODataSet_roomdebt.Open;
DMHotel.ADODataSet_roomdebt.Requery;
//DMhotel.ADODataSet_roomdebt.Close;
//ed_time.Text:=datetimetostr(date+time);
end;
procedure Tformroomcheck.cb_judgeClick(Sender: TObject);
begin
//让两中状态相互进行变化
if (but_printdebt.Enabled=false) and (button9.Enabled=true) then
begin
but_printdebt.Enabled:=true;
button9.Enabled:=false;
exit;
end;
if (but_printdebt.Enabled=true) and (button9.Enabled=false) then
begin
but_printdebt.Enabled:=false;
button9.Enabled:=true;
exit;
end;
end;
procedure Tformroomcheck.TabSheet3Show(Sender: TObject);
begin
ed_indebttime.Text:=datetimetostr(date+time);
end;
procedure Tformroomcheck.Button3Click(Sender: TObject);
begin
if MessageDlg('您确定要重新填写吗?',mtConfirmation,[mbYes,mbNo],0)= mrNO then
exit;
ed_customername.Clear;
ed_indebttime.Text:=datetimetostr(date+time);
ed_debtkalaok.Clear;
ed_debtballroom.Clear;
ed_debtcommerce.Clear;
ed_debtsuproom.Clear;
ed_debtsupsecond.Clear;
ed_debthairdressing.Clear;
ed_debtdiscount.Text:='10';
//ed_debtemployeeid.Clear;
ed_debtremark.Clear;
ed_debttotalfee.Clear;
end;
procedure Tformroomcheck.cb_customerjudgeClick(Sender: TObject);
begin
if (but_customerprint.Enabled=false) and (button6.Enabled=true) then
begin
but_customerprint.Enabled:=true;
button6.Enabled:=false;
exit;
end;
if (but_customerprint.Enabled=true) and (button6.Enabled=false) then
begin
but_customerprint.Enabled:=false;
button6.Enabled:=true;
exit;
end;
end;
procedure Tformroomcheck.but_customerprintClick(Sender: TObject);
begin
Button6.Enabled:=false;
cb_customerjudge.Checked:=false;
formcustomerdebtrep.QuickRep1.PreviewModal;
end;
procedure Tformroomcheck.TabSheet4Show(Sender: TObject);
begin
DMhotel.ADODataSet_customerdebt.Open;
DMHotel.ADODataSet_customerdebt.Requery;
end;
procedure Tformroomcheck.Button12Click(Sender: TObject);
//var
//oldcustomername:string;
begin
if MessageDlg('您确定要重新填写吗?',mtConfirmation,[mbYes,mbNo],0)= mrNO then
exit;
//oldcustomername:=ed_oldusername.Text;
ed_oldcustomername.Clear;
ed_olddebttotalfee.Clear;
//重新显示当前的所有的帐单
DMHotel.ADODataSet_customerdebt.Close;
DMHotel.ADODataSet_customerdebt.Prepared:=false;
DMHotel.ADODataSet_customerdebt.CommandText:='select * from customer_debt where '+
' checkornot=:yesornot';
// DMHotel.ADODataSet_customerdebt.Parameters.ParamByName('oldcustomername').Value:=oldcustomername;
DMHotel.ADODataSet_customerdebt.Parameters.ParamByName('yesornot').Value:='欠帐' ;
DMHotel.ADODataSet_customerdebt.Prepared:=true;
DMHotel.ADODataSet_customerdebt.Open;
// DMHotel.ADODataSet_customerdebt.Requery;
end;
procedure Tformroomcheck.Button8Click(Sender: TObject);
begin
close;
end;
procedure Tformroomcheck.FormShow(Sender: TObject);
begin
ed_employeeid.Text:=username;
ed_debtemployeeid.Text:=username;
end;
procedure Tformroomcheck.but_allroomdebtClick(Sender: TObject);
//var
//oldusername:string;
begin
// oldusername:=ed_oldusername.Text;
//time:=ed_indebttime.Text;
DMHotel.ADODataSet_roomdebt.Close;
DMHotel.ADODataSet_roomdebt.Prepared:=false;
DMHotel.ADODataSet_roomdebt.CommandText:='select * from room_debt where '+
' checkornot=:yesornot' ;
// DMHotel.ADODataSet_roomdebt.Parameters.ParamByName('oldusername').Value:=oldusername;
DMHotel.ADODataSet_roomdebt.Parameters.ParamByName('yesornot').Value:='欠账';
//在这里进行统一的结算所有的帐单
DMHotel.ADODataSet_roomdebt.Prepared:=true;
DMHotel.ADODataSet_roomdebt.Open;
end;
procedure Tformroomcheck.but_allcustomerdebtClick(Sender: TObject);
begin
DMHotel.ADODataSet_customerdebt.Close;
DMhotel.ADODataSet_customerdebt.Prepared:=false;
DMHotel.ADODataSet_customerdebt.CommandText:='select * from customer_debt where'+
' checkornot=:yesornot';
DMhotel.ADODataSet_customerdebt.Parameters.ParamByName('yesornot').Value:='欠账';
DMHotel.ADODataSet_customerdebt.Prepared:=true;
DMHotel.ADODataSet_customerdebt.Open;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?