⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rmsetup.pas

📁 集成酒店桑拿食管管理的完整程序
💻 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 + -