📄 rmsetup.pas
字号:
unit rmsetup;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Grids, Mask, Spin, Menus, DBTables, Db, ExtCtrls,
ComCtrls;
type
Trmsetupform = class(TForm)
grid1: TStringGrid;
Button2: TButton;
grid2: TStringGrid;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
Panel7: TPanel;
Panel8: TPanel;
Panel9: TPanel;
Panel10: TPanel;
Panel11: TPanel;
Query1: TQuery;
RichEdit1: TRichEdit;
Bevel9: TBevel;
Bevel10: TBevel;
Bevel11: TBevel;
Bevel12: TBevel;
Bevel13: TBevel;
Bevel14: TBevel;
Bevel15: TBevel;
Bevel16: TBevel;
Bevel18: TBevel;
Bevel19: TBevel;
Bevel20: TBevel;
Bevel17: TBevel;
Button1: TButton;
Button3: TButton;
Query2: TQuery;
Bevel21: TBevel;
Bevel22: TBevel;
Panel12: TPanel;
Panel13: TPanel;
Bevel1: TBevel;
Bevel2: TBevel;
Bevel3: TBevel;
Bevel4: TBevel;
Bevel5: TBevel;
Bevel6: TBevel;
Bevel7: TBevel;
Bevel8: TBevel;
Bevel23: TBevel;
Bevel24: TBevel;
Panel14: TPanel;
Panel15: TPanel;
Panel16: TPanel;
Panel17: TPanel;
Panel18: TPanel;
Panel19: TPanel;
Panel20: TPanel;
Panel21: TPanel;
Panel22: TPanel;
Bevel25: TBevel;
Panel23: TPanel;
Panel24: TPanel;
rmname: TComboBox;
Panel25: TPanel;
procedure FormCreate(Sender: TObject);
procedure Panel1DblClick(Sender: TObject);
procedure rmnameDblClick(Sender: TObject);
procedure grid1DblClick(Sender: TObject);
procedure grid1KeyPress(Sender: TObject; var Key: Char);
procedure grid1Exit(Sender: TObject);
procedure grid2DblClick(Sender: TObject);
procedure grid2Click(Sender: TObject);
procedure grid2KeyPress(Sender: TObject; var Key: Char);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
rmsetupform: Trmsetupform;
implementation
uses dataproc;
var rmtypearr:array[1..2,0..14] of string;
{$R *.DFM}
procedure init;
var i,j:integer;
arr:array[1..100] of integer;
// ls:string;
begin
with rmsetupform do
begin
Query1.sql.text:='select roomno,row,col,GridNo from Room_Position ';
Query1.open;
while not Query1.Eof do
begin
if trim(Query1.FieldByName('GridNo').asstring)='1' then
grid1.Cells[Query1.FieldByName('col').asinteger,Query1.FieldByName('row').asinteger]:=Query1.FieldByName('roomno').asstring;
if trim(Query1.FieldByName('GridNo').asstring)='2' then
grid2.Cells[Query1.FieldByName('col').asinteger,Query1.FieldByName('row').asinteger]:=Query1.FieldByName('roomno').asstring;
Query1.Next;
end;
Query1.Close;
Query1.sql.Clear;
Query1.Active:=false;
for j:=1 to 100 do arr[j]:=0;
j:=1;
for i:=0 to ComponentCount-1 do
if (Components[i] is TPanel)and(Components[i].tag=j) then
begin
(Components[i] as Tpanel).Caption:='';
arr[j]:=i;
j:=j+1;
end;
Query1.sql.text:='select code,Name from roomsetup,roomtype where RoomType.RoomType=roomsetup.RoomType ';
Query1.open;
while not Query1.Eof do
begin
(Components[arr[Query1.Fields[0].asinteger]] as TPanel).Caption:=Query1.Fields[1].asstring;
if Query1.Fields[0].asinteger<=14 then
rmtypearr[1,Query1.Fields[0].asinteger-1]:=Query1.Fields[1].asstring
else
rmtypearr[2,Query1.Fields[0].asinteger-15]:=Query1.Fields[1].asstring;
Query1.Next;
end;
Query1.Close;
Query1.sql.Clear;
Query1.Active:=false;
end;
end;
procedure tormname(pan:Tpanel);
begin
with rmsetupform do
begin
rmname.top:=pan.Top;
rmname.left:=Pan.left;
rmname.Visible:=true;
rmname.Text:=Pan.Caption;
end;
end;
procedure Trmsetupform.FormCreate(Sender: TObject);
begin
Query1.sql.text:='select roomtype,name from roomtype';
Query1.Open;
rmname.Items.Clear;
while not Query1.Eof do
begin
rmname.Items.Add(Query1.Fields[1].asstring);
Query1.Next;
end;
Query1.Close;
Query1.sql.Clear;
Query1.Active:=false;
init;
end;
procedure Trmsetupform.rmnameDblClick(Sender: TObject);
var ls:string;
begin
rmname.Visible:=false;
ls:=floattostr(int(rmname.left/56));
if rmname.top<100 then
begin
rmtypearr[1,strtoint(ls)]:=rmname.Text;
if rmname.left<56 then
Panel1.Caption:=rmname.Text;
if (rmname.left>56) and (rmname.left<56*2) then
Panel2.Caption:=rmname.Text;
if (rmname.left>56*2) and (rmname.left<56*3) then
Panel3.Caption:=rmname.Text;
if (rmname.left>56*3) and (rmname.left<56*4) then
Panel4.Caption:=rmname.Text;
if (rmname.left>56*4) and (rmname.left<56*5) then
Panel5.Caption:=rmname.Text;
if (rmname.left>56*5) and (rmname.left<56*6) then
Panel6.Caption:=rmname.Text;
if (rmname.left>56*6) and (rmname.left<56*7) then
Panel7.Caption:=rmname.Text;
if (rmname.left>56*7) and (rmname.left<56*8) then
Panel8.Caption:=rmname.Text;
if (rmname.left>56*8) and (rmname.left<56*9) then
Panel9.Caption:=rmname.Text;
if (rmname.left>56*9) and (rmname.left<56*10) then
Panel10.Caption:=rmname.Text;
if (rmname.left>56*10) and (rmname.left<56*11) then
Panel11.Caption:=rmname.Text;
if (rmname.left>56*11) and (rmname.left<56*12) then
Panel12.Caption:=rmname.Text;
if (rmname.left>56*12) and (rmname.left<56*13) then
Panel13.Caption:=rmname.Text;
if (rmname.left>56*13) and (rmname.left<56*14) then
Panel14.Caption:=rmname.Text;
end
else
begin
rmtypearr[2,strtoint(ls)]:=rmname.Text;
if rmname.left<56 then
Panel15.Caption:=rmname.Text;
if (rmname.left>56) and (rmname.left<56*2) then
Panel16.Caption:=rmname.Text;
if (rmname.left>56*2) and (rmname.left<56*3) then
Panel17.Caption:=rmname.Text;
if (rmname.left>56*3) and (rmname.left<56*4) then
Panel18.Caption:=rmname.Text;
if (rmname.left>56*4) and (rmname.left<56*5) then
Panel19.Caption:=rmname.Text;
if (rmname.left>56*5) and (rmname.left<56*6) then
Panel20.Caption:=rmname.Text;
if (rmname.left>56*6) and (rmname.left<56*7) then
Panel21.Caption:=rmname.Text;
if (rmname.left>56*7) and (rmname.left<56*8) then
Panel22.Caption:=rmname.Text;
if (rmname.left>56*8) and (rmname.left<56*9) then
Panel23.Caption:=rmname.Text;
if (rmname.left>56*9) and (rmname.left<56*10) then
Panel24.Caption:=rmname.Text;
// if (rmname.left>56*10) and (rmname.left<56*11) then
// Panel25.Caption:=rmname.Text;
end;
end;
procedure Trmsetupform.Panel1DblClick(Sender: TObject);
begin
rmname.top:=(Sender as TPanel).Top;
rmname.left:=(Sender as TPanel).left;
rmname.Visible:=true;
rmname.Text:=(Sender as TPanel).Caption;
end;
procedure Trmsetupform.grid1DblClick(Sender: TObject);
begin
if trim(rmtypearr[1,grid1.Col])<>'' then
grid1.Options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goDrawFocusSelected,goEditing];
end;
procedure Trmsetupform.grid1KeyPress(Sender: TObject; var Key: Char);
begin
if (key<'0') or (key>'9') then
if (key<>#13) and (key<>#8) then key:=#0;
if key=#13 then
grid1.Options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goDrawFocusSelected];
end;
procedure Trmsetupform.grid1Exit(Sender: TObject);
begin
grid1.Options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goDrawFocusSelected];
end;
procedure Trmsetupform.grid2DblClick(Sender: TObject);
begin
if trim(rmtypearr[2,grid2.Col])<>'' then
grid2.Options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goDrawFocusSelected,goEditing];
end;
procedure Trmsetupform.grid2Click(Sender: TObject);
begin
grid2.Options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goDrawFocusSelected];
end;
procedure Trmsetupform.grid2KeyPress(Sender: TObject; var Key: Char);
begin
if (key<'0') or (key>'9') then
if (key<>#13) and (key<>#8) then key:=#0;
if key=#13 then
grid2.Options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goDrawFocusSelected];
end;
procedure Trmsetupform.Button3Click(Sender: TObject);
begin
init;
end;
procedure Trmsetupform.Button2Click(Sender: TObject);
begin
close;
end;
procedure Trmsetupform.Button1Click(Sender: TObject);
var i,j,bz:integer;
begin
bz:=1;
Query2.sql.Clear;
Query2.Active:=false;
query2.sql.add('select roomno from room1 ');
Query2.Open;
while not Query2.Eof do
begin
bz:=1;
for i:=0 to 13 do
for j:=0 to 5 do
begin
if trim(grid1.Cells[i,j])=trim(Query2.Fields[0].asstring) then
begin
bz:=0;
Break;
end;
end;
if bz=1 then
begin
for i:=0 to 9 do
for j:=0 to 5 do
begin
if trim(grid2.Cells[i,j])=trim(Query2.Fields[0].asstring) then
begin
bz:=0;
Break;
end;
end;
end;
if bz=1 then
begin
Query1.sql.Clear;
Query1.Active:=false;
Query1.SQL.add('select roomno from nowin where roomno='''+trim(Query2.Fields[0].asstring)+'''');
Query1.Open;
if not Query1.Eof then
begin
showmessage(trim(Query2.Fields[0].asstring)+'房间住有宾客,不能为删除');
Query2.sql.Clear;
Query2.Active:=false;
Query1.sql.Clear;
Query1.Active:=false;
exit;
end;
Query1.sql.Clear;
Query1.Active:=false;
Query1.SQL.add('delete from room1 where roomno='''+trim(Query2.Fields[0].asstring)+'''');
// Query1.SQL.add('delete from room_position where roomno='''+trim(Query2.Fields[0].asstring)+'''');
Query1.ExecSQL;
Query1.sql.Clear;
Query1.Active:=false;
end;
Query2.Next;
end;
Query1.sql.text:='delete roomsetup';
Query1.ExecSQL;
Query1.sql.Clear;
Query1.Active:=false;
for i:=1 to 24 do
begin
if i<=14 then
begin
if trim(rmtypearr[1,i-1])<>'' then
begin
Query1.sql.add('insert into roomsetup select '+inttostr(i)+',roomtype,1 from Roomtype where name='''+trim(rmtypearr[1,i-1])+'''');
end;
end
else
begin
if trim(rmtypearr[2,i-15])<>'' then
begin
Query1.sql.add('insert into roomsetup select '+inttostr(i)+',roomtype,1 from Roomtype where name='''+trim(rmtypearr[2,i-15])+'''');
end;
end;
end;
Query1.ExecSQL;
Query1.Close;
Query1.sql.Clear;
Query1.Active:=false;
// Query1.sql.text:='delete room1';
// Query1.ExecSQL;
Query2.sql.Clear;
Query2.Active:=false;
for i:=0 to 13 do
for j:=0 to 5 do
begin
if trim(grid1.Cells[i,j])<>'' then
begin
Query2.SQL.Add('delete room1 where roomno='''+trim(grid1.Cells[i,j])+'''');
Query2.sql.add('insert into room1 select '''+trim(grid1.Cells[i,j])+''',roomtype,'''+'0'+'''');
Query2.sql.Add(',0,0,0,0,'' '','+inttostr(i)+','+inttostr(j)+',1,0 from Roomtype where name='''+trim(rmtypearr[1,i])+'''');
end;
end;
for i:=0 to 9 do
for j:=0 to 5 do
begin
if trim(grid2.Cells[i,j])<>'' then
begin
Query2.SQL.Add('delete room1 where roomno='''+trim(grid2.Cells[i,j])+'''');
Query2.sql.add('insert into room1 select '''+trim(grid2.Cells[i,j])+''',roomtype,'''+'0'+'''');
Query2.sql.Add(',0,0,0,0,'' '','+inttostr(i)+','+inttostr(j)+',2,0 from Roomtype where name='''+trim(rmtypearr[2,i])+'''');
end;
end;
Query2.Prepare;
Query2.ExecSQL;
Query2.Close;
Query2.sql.Clear;
Query2.Active:=false;
addlogo(curper.code,datetimetostr(now),'房态盘维护');
showmessage('保存完毕!');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -