📄 skkdunit.pas
字号:
ClientDataSet1.Open;
suiEdit14.SetFocus;
except
suiEdit12.SetFocus;
end;
end;
end;
procedure TSKKDForm.suiEdit14KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in [#48..#57,#13,#8]) then
key:=#0
else
if key=#13 then
suiEdit15.SetFocus;
end;
procedure TSKKDForm.suiEdit15KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in [#48..#57,#46,#13,#8]) then
key:=#0
else
if key=#13 then
suiComboBox8.SetFocus;
end;
procedure TSKKDForm.suiComboBox8KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
suiButton1.SetFocus;
end;
procedure TSKKDForm.suiButton1Click(Sender: TObject);
var
temp:string;
source,name,sex,peoplenum,phone,cardtype,cardnum,address,memo:string;
room,price,ifclock,clock,scale,factprice,days,deposit,paymode:string;
entertime,leavetime:string;
flag:boolean;
begin
flag:=false;
source:=suiComboBox1.Text;
name:=suiEdit6.Text;
sex:=suiComboBox2.Text;
peoplenum:=suiEdit1.Text;
phone:=suiEdit2.Text;
cardtype:=suiComboBox7.Text;
cardnum:=suiEdit3.Text;
address:=suiEdit4.Text;
if not ifguest then
begin
loginform.ExecuteSQL('insert into guest(source,name,sex,phone,cardtype,cardnum,address,'+
'cometime,expenditure,payment,nopayment) '+
'values('''+source+''','''+name+''','''+sex+''','''+phone+''','''+cardtype+
''','''+cardnum+''','''+address+''',''0'',''0.00'',''0.00'',''0.00'')');
loginform.ExecuteSQL('select max(id) from guest');
self.guestid:=LoginForm.dsQuery.Fields[0].AsString;
LoginForm.dsQuery.Close;
end;
memo:=suiEdit5.Text;
room:=memo;
Delete(room,1,9);
room:=Copy(room,1,5);
loginform.ExecuteSQL('select * from roomselect where id=''1''');
price:=loginform.dsQuery.fieldbyname('price').AsString;
if suiCheckBox1.Checked then
ifclock:='Y'
else
ifclock:='N';
clock:=MainForm.roomhourprice;
factprice:=loginform.dsQuery.fieldbyname('factprice').AsString;
scale:=suiEdit12.Text;
days:=suiEdit14.Text;
deposit:=suiEdit15.Text;
paymode:=suiComboBox8.Text;
LoginForm.dsQuery.Close;
entertime:=FormatDateTime('yyyy-mm-dd hh:nn:ss',now);
leavetime:=FormatDateTime('yyyy-mm-dd hh:nn:ss',now+strtoint(days));
temp:=memo;
Delete(temp,1,9);
while Pos(';',temp)>0 do
begin
room:=Copy(temp,1,Pos(';',temp)-1);
if not flag then
begin
loginform.ExecuteSQL('insert into house '+
'values('''+id+''','''+guestid+''','''+peoplenum+''','''+memo+''','''+room+
''','''+price+''','''+ifclock+''','''+clock+''','''+scale+
''','''+factprice+''','''+days+''','''+deposit+
''','''+paymode+''','''+entertime+''','''+leavetime+''')');
flag:=true;
end
else
loginform.ExecuteSQL('insert into house '+
'values('''+id+''','''+guestid+''','''+peoplenum+''','''+memo+''','''+room+
''','''+price+''','''+ifclock+''','''+clock+''','''+scale+
''','''+factprice+''','''+days+''',''0'','''+paymode+
''','''+entertime+''','''+leavetime+''')');
if (ifclock='Y') or (ifclock='y') then
begin
loginform.ExecuteSQL('insert into consume '+
'values('''+id+''','''+room+''',''房间费'','''+FormatFloat('¥0.00',strtofloat(price))+
''','''+scale+''',''0.50'','''+FormatFloat('¥0.00',strtofloat(factprice)*0.50)+
''','''+entertime+''','''+FormatFloat('¥0.00',strtofloat(factprice))+
'元/小时'','''+loginform.username+''')');
loginform.ExecuteSQL('update room set room_state=''钟点'',room_ID='''+id+''' where room_num='''+room+'''');
end
else
begin
loginform.ExecuteSQL('insert into consume '+
'values('''+id+''','''+room+''',''房间费'','''+FormatFloat('¥0.00',strtofloat(price))+
''','''+scale+''',''0.50'','''+FormatFloat('¥0.00',strtofloat(factprice)*0.50)+
''','''+entertime+''','''+FormatFloat('¥0.00',strtofloat(factprice))+
'元/天'','''+loginform.username+''')');
loginform.ExecuteSQL('update room set room_state=''散客'',room_ID='''+id+''' where room_num='''+room+'''');
end;
Delete(temp,1,Pos(';',temp))
end;
Delete(memo,1,9);
Delete(memo,Length(memo),1);
if Pos(';',memo)>0 then
room:=Copy(memo,1,Pos(';',memo)-1)
else
room:=memo;
loginform.ExecuteSQL('insert into yjgl '+
'values('''+id+''','''+room+''','''+deposit+''','''+entertime+''','''+loginform.username+
''','''+days+''','''+paymode+''')');
if (ifclock='Y') or (ifclock='y') then
loginform.ExecuteSQL('insert into log '+
'values('''+entertime+''','''+loginform.userid+''','''+LoginForm.username+
''',''钟点客人【'+name+'】成功入住【'+memo+'】'')')
else
loginform.ExecuteSQL('insert into log '+
'values('''+entertime+''','''+loginform.userid+''','''+LoginForm.username+
''',''散客客人【'+name+'】成功入住【'+memo+'】'')');
MessageDlg('当前宾客【'+name+'】入住【'+memo+'】成功!',mtConfirmation, [mbYes], 0);
ifsave:=true;
close;
end;
procedure TSKKDForm.suiEdit16KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in [#48..#57,#45,#13,#8]) then
key:=#0
else
if key=#13 then
suiComboBox4.SetFocus;
end;
procedure TSKKDForm.suiCheckBox1Click(Sender: TObject);
begin
if suiCheckBox1.Checked then
begin
suiEdit12.Text:='1.00';
loginform.ExecuteSQL('update roomselect '+
'set price='''+formatfloat('¥0.00',strtofloat(mainform.roomhourprice))+''','+
'salce='''+suiEdit12.Text+''','+
'factprice='''+formatfloat('¥0.00',strtofloat(mainform.roomhourprice))+'''');
suiEdit12.Enabled:=False;
suiEdit14.SetFocus;
end
else
begin
loginform.ExecuteSQL('update roomselect '+
'set price='''+formatfloat('¥0.00',strtofloat(mainform.roomprice))+''','+
'salce='''+suiEdit12.Text+''','+
'factprice='''+formatfloat('¥0.00',strtofloat(mainform.roomprice)*strtofloat(suiEdit12.Text))+'''');
suiEdit12.Enabled:=true;
suiEdit12.SetFocus;
end;
ClientDataSet1.Close;
ClientDataSet1.Open;
end;
procedure TSKKDForm.btn3Click(Sender: TObject);
var
index:Integer;
roomnum:string;
roomtype:string;
roomprice:string;
roomhourprice:string;
roomyajin:string;
temp:string;
begin
for index:=suiListBox2.Items.Count-1 downto 0 do
if suiListBox2.Selected[index] then
begin
temp:=suiListBox2.Items.Strings[index]+'@'+temp;
suiListBox2.Items.Delete(index);
end;
if temp<>'' then
begin
loginform.ExecuteSQL('select count(*)+1 from roomselect');
index:=loginform.dsQuery.Fields[0].AsInteger;
LoginForm.dsQuery.Close;
while Pos('@',temp)>0 do
begin
roomnum:=Copy(temp,1,Pos('@',temp)-1);
roomtype:=Copy(roomnum,1,Pos(':',roomnum)-1);
Delete(roomnum,1,Pos(':',roomnum));
loginform.ExecuteSQL('select * from roomtype where type_mc='''+roomtype+'''');
roomprice:=loginform.dsQuery.fieldbyname('type_csdj').AsString;
roomhourprice:=loginform.dsQuery.fieldbyname('type_mp').AsString;
roomyajin:=loginform.dsQuery.fieldbyname('type_yj').AsString;
LoginForm.dsQuery.Close;
suiEdit5.Text:=suiEdit5.Text+roomnum+';';
if suiCheckBox1.Checked then
loginform.ExecuteSQL('insert into roomselect '+
'values('''+inttostr(index)+''','''+roomtype+''','''+roomnum+
''','''+formatfloat('¥0.00',strtofloat(roomhourprice))+
''','''+suiedit12.Text+
''','''+formatfloat('¥0.00',strtofloat(roomhourprice))+
''','''+formatfloat('¥0.00',strtofloat(roomyajin))+''')')
else
loginform.ExecuteSQL('insert into roomselect '+
'values('''+inttostr(index)+''','''+roomtype+''','''+roomnum+
''','''+formatfloat('¥0.00',strtofloat(roomprice))+
''','''+suiedit12.Text+
''','''+formatfloat('¥0.00',strtofloat(roomprice))+
''','''+formatfloat('¥0.00',strtofloat(roomyajin))+''')');
Delete(temp,1,Pos('@',temp));
inc(index);
end;
loginform.ExecuteSQL('select sum(yajin) from roomselect');
suiEdit15.Text:=FormatFloat('0.00',LoginForm.dsQuery.Fields[0].AsFloat);
LoginForm.dsQuery.Close;
ClientDataSet1.Close;
ClientDataSet1.Open;
end;
end;
procedure TSKKDForm.btn4Click(Sender: TObject);
var
id,roomtype,roomnum:string;
temp:string;
index:Integer;
begin
id:=ClientDataSet1.fieldbyname('id').AsString;
roomtype:=ClientDataSet1.fieldbyname('roomtype').AsString;
roomnum:=ClientDataSet1.fieldbyname('roomnum').AsString;
if (ClientDataSet1.RecordCount>1) and (id<>'1') then
begin
temp:=suiEdit5.Text;
Delete(temp,Pos(roomnum,temp),6);
suiEdit5.Text:=temp;
LoginForm.ExecuteSQL('delete from roomselect where id='''+id+'''');
LoginForm.ExecuteSQL('select id from roomselect where id<>''1'' order by id');
LoginForm.dsQuery.First;
while not LoginForm.dsQuery.Eof do
begin
temp:=temp+loginform.dsQuery.Fields[0].AsString+'@';
LoginForm.dsQuery.Next;
end;
LoginForm.dsQuery.Close;
index:=2;
while Pos('@',temp)>0 do
begin
id:=Copy(temp,1,Pos('@',temp)-1);
LoginForm.ExecuteSQL('update roomselect set id='''+inttostr(index)+''' where id='''+id+'''');
Delete(temp,1,Pos('@',temp));
Inc(index);
end;
suiListBox2.Items.Add(roomtype+':'+roomnum);
suiListBox2.Sorted:=true;
end
else
MessageDlg('主客房不可以执行删除操作!',mtConfirmation, [mbYes], 0);
loginform.ExecuteSQL('select sum(yajin) from roomselect');
suiEdit15.Text:=FormatFloat('0.00',LoginForm.dsQuery.Fields[0].AsFloat);
LoginForm.dsQuery.Close;
ClientDataSet1.Close;
ClientDataSet1.Open;
end;
procedure TSKKDForm.btn1Click(Sender: TObject);
begin
LoginForm.ExecuteSQL('insert into roompeople '+
'values('''+id+''','''+ClientDataSet1.fieldbyname('roomnum').AsString+
''','''+suiedit7.Text+''','''+suiComboBox3.Text+
''','''+suiEdit16.Text+''','''+suiComboBox4.Text+
''','''+suiEdit8.Text+''','''+suiEdit9.Text+''')');
ds3.Close;
ds3.Open;
ds3.Filter:='id='''+id+''' and room='''+ClientDataSet1.fieldbyname('roomnum').AsString+'''';
ds3.Filtered:=true;
LoginForm.ExecuteSQL('select count(*) from roompeople where id='''+id+'''');
suiEdit1.Text:=IntToStr(LoginForm.dsQuery.Fields[0].AsInteger);
LoginForm.dsQuery.Close;
end;
procedure TSKKDForm.suiButton3Click(Sender: TObject);
begin
if not ((ds3.Active) and (ds3.RecordCount>0)) then
exit;
if (suiedit6.Text=ds3.fieldbyname('name').AsString) and (suiedit3.Text=ds3.fieldbyname('cardnum').AsString) then
begin
MessageDlg('主客信息不可以执行此操作!',mtConfirmation, [mbYes], 0);
exit;
end;
LoginForm.ExecuteSQL('update roompeople set name='''+suiedit7.Text+''','+
'sex='''+suiComboBox3.Text+''','+
'phone='''+suiEdit16.Text+''','+
'cardtype='''+suiComboBox4.Text+''','+
'cardnum='''+suiEdit8.Text+''','+
'address='''+suiEdit9.Text+''' '+
'where id='''+id+''' and '+
'room='''+ClientDataSet1.fieldbyname('roomnum').AsString+''' and '+
'name='''+ds3.fieldbyname('name').AsString+''' and '+
'cardnum='''+ds3.fieldbyname('cardnum').AsString+'''');
ds3.Close;
ds3.Open;
ds3.Filter:='id='''+id+''' and room='''+ClientDataSet1.fieldbyname('roomnum').AsString+'''';
ds3.Filtered:=true;
LoginForm.ExecuteSQL('select count(*) from roompeople where id='''+id+'''');
suiEdit1.Text:=IntToStr(LoginForm.dsQuery.Fields[0].AsInteger);
LoginForm.dsQuery.Close;
end;
procedure TSKKDForm.btn2Click(Sender: TObject);
begin
if not ((ds3.Active) and (ds3.RecordCount>0)) then
exit;
if (suiedit6.Text=ds3.fieldbyname('name').AsString) and (suiedit3.Text=ds3.fieldbyname('cardnum').AsString) then
begin
MessageDlg('主客信息不可以执行此操作!',mtConfirmation, [mbYes], 0);
exit;
end;
LoginForm.ExecuteSQL('delete from roompeople '+
'where id='''+id+''' and '+
'room='''+ClientDataSet1.fieldbyname('roomnum').AsString+''' and '+
'name='''+ds3.fieldbyname('name').AsString+''' and '+
'cardnum='''+ds3.fieldbyname('cardnum').AsString+'''');
ds3.Close;
ds3.Open;
ds3.Filter:='id='''+id+''' and room='''+ClientDataSet1.fieldbyname('roomnum').AsString+'''';
ds3.Filtered:=true;
LoginForm.ExecuteSQL('select count(*) from roompeople where id='''+id+'''');
suiEdit1.Text:=IntToStr(LoginForm.dsQuery.Fields[0].AsInteger);
LoginForm.dsQuery.Close;
end;
procedure TSKKDForm.ds3AfterScroll(DataSet: TDataSet);
begin
suiedit7.Text:=ds3.fieldbyname('name').AsString;
suiComboBox3.Text:=ds3.fieldbyname('sex').AsString;
suiEdit16.Text:=ds3.fieldbyname('phone').AsString;
suiComboBox4.Text:=ds3.fieldbyname('cardtype').AsString;
suiEdit8.Text:=ds3.fieldbyname('cardnum').AsString;
suiEdit9.Text:=ds3.fieldbyname('address').AsString;
end;
procedure TSKKDForm.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if DBGrid1.DataSource.DataSet.RecNo mod 2 = 0 theN
DBGrid1.Canvas.Brush.Color:=clSilver
else
DBGrid1.Canvas.Brush.Color:=clYellow;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
procedure TSKKDForm.dbgrd1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if dbgrd1.DataSource.DataSet.RecNo mod 2 = 0 theN
dbgrd1.Canvas.Brush.Color:=clSilver
else
dbgrd1.Canvas.Brush.Color:=clYellow;
dbgrd1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
procedure TSKKDForm.N1Click(Sender: TObject);
begin
ds3.Close;
ds3.Open;
ds3.Filter:='id='''+id+''' and room='''+ClientDataSet1.fieldbyname('roomnum').AsString+'''';
ds3.Filtered:=true;
end;
procedure TSKKDForm.N2Click(Sender: TObject);
begin
ds3.Close;
ds3.Open;
ds3.Filter:='id='''+id+'''';
ds3.Filtered:=true;
end;
procedure TSKKDForm.ClientDataSet1AfterScroll(DataSet: TDataSet);
begin
ds3.Close;
ds3.Open;
ds3.Filter:='id='''+id+''' and room='''+ClientDataSet1.fieldbyname('roomnum').AsString+'''';
ds3.Filtered:=true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -