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

📄 xgftyqjz.pas

📁 集成酒店桑拿食管管理的完整程序
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit xgftyqjz;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, Grids, Mask, Spin, Menus, DBTables, Db, ExtCtrls;

type
  Txgyqjzform = class(TForm)
    grid1: TStringGrid;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    Button2: TButton;
    grid2: TStringGrid;
    Timer1: TTimer;
    Bevel1: TBevel;
    Bevel2: TBevel;
    Bevel3: TBevel;
    Bevel4: TBevel;
    Bevel5: TBevel;
    Bevel6: TBevel;
    Bevel7: TBevel;
    Q2: TQuery;
    n2: TMenuItem;
    Panel4: TPanel;
    Panel5: TPanel;
    Panel6: TPanel;
    Panel7: TPanel;
    Panel8: TPanel;
    Panel9: TPanel;
    Panel10: TPanel;
    Bevel8: TBevel;
    xgrmno: TEdit;
    Bevel9: TBevel;
    Bevel10: TBevel;
    Bevel11: TBevel;
    Bevel12: TBevel;
    Bevel13: TBevel;
    Bevel14: TBevel;
    Bevel15: TBevel;
    Bevel16: TBevel;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel11: TPanel;
    Panel12: TPanel;
    Panel13: TPanel;
    Panel14: TPanel;
    Bevel17: TBevel;
    Bevel18: TBevel;
    Bevel19: TBevel;
    Bevel20: TBevel;
    Panel15: TPanel;
    Panel16: TPanel;
    Panel17: TPanel;
    Panel18: TPanel;
    Bevel21: TBevel;
    Bevel22: TBevel;
    Panel19: TPanel;
    Panel20: TPanel;
    Bevel23: TBevel;
    Bevel24: TBevel;
    Panel21: TPanel;
    Panel22: TPanel;
    Bevel25: TBevel;
    mangrid: TStringGrid;
    womangrid1: TStringGrid;
    mangrid1: TStringGrid;
    womangrid: TStringGrid;
    jylgrid: TStringGrid;
    jylGrid1: TStringGrid;
    procedure FormCreate(Sender: TObject);
    procedure grid1DrawCell(Sender: TObject; Col, Row: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure N1Click(Sender: TObject);
    procedure PopupMenu1Popup(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure grid2DrawCell(Sender: TObject; Col, Row: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure rmnogridKeyPress(Sender: TObject; var Key: Char);
    procedure rmnogridSetEditText(Sender: TObject; ACol, ARow: Integer;
      const Value: String);
    procedure grid1DblClick(Sender: TObject);
    procedure mangridDrawCell(Sender: TObject; Col, Row: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure womangridDrawCell(Sender: TObject; Col, Row: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure jylgridDrawCell(Sender: TObject; Col, Row: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure mangridDblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  xgyqjzform: Txgyqjzform;

implementation
uses dataproc, newdj, newjzform;
{$R *.DFM}
var
     dehdno,desex,dewel:string;
     lsroom:array [0..5,0..12] of string;
     llssroom:array [0..5,0..8] of string;
     lsstatusarr:array [0..5,0..12] of string[1];
     llssstatusarr:array [0..5,0..8] of string [1];
     //llssroomnum:array [0..4,0..6] of integer;
     currow,zdrmnum,roomnum,mannum,womannum:integer;
     rmtypearr:array[1..2,0..12] of string;

procedure roomini;
var i:integer;
begin
with xgyqjzform do
   begin

   q2.Active :=false;
   q2.sql.clear;
   q2.sql.add('select RoomNo,status from mansan');
//   q1.ParamByName ('pgridno').asinteger:=1;
   q2.Prepare;
   q2.open;
   i:=1;
   while  not  q2.EOF do
      begin
        mangrid1.Cells[i,0]:=q2.fieldbyname('status').asstring;
        mangrid.Cells[i,0]:=q2.fieldbyname('RoomNo').asstring;
        i:=i+1;
        q2.Next;
      end;
   mangrid.ColCount:=i+1;
   mangrid1.ColCount:=i+1;
   q2.Active :=false;
   q2.sql.clear;
   q2.sql.add('select * from womansan');
   q2.Prepare;
   q2.open;
   i:=1;
   while  not  q2.EOF do
      begin
        womangrid.Cells[i,0]:=q2.fieldbyname('RoomNo').asstring;
        womangrid1.Cells[i,0]:=q2.fieldbyname('status').asstring;
        i:=i+1;
        q2.Next;
      end;
   womangrid.ColCount:=i+1;
   womangrid1.ColCount:=i+1;

   q2.Active :=false;
   q2.sql.clear;
   q2.sql.add('select * from jyl');
//   q1.ParamByName ('pgridno').asinteger:=1;
   q2.Prepare;
   q2.open;
   i:=1;
   while  not  q2.EOF do
      begin
        jylgrid.Cells[i,0]:=q2.fieldbyname('RoomNo').asstring;
        jylgrid1.Cells[i,0]:=q2.fieldbyname('status').asstring;
        i:=i+1;
        q2.Next;
      end;
   jylgrid.ColCount:=i+1;
   jylgrid1.ColCount:=i+1;

   q2.Active :=false;
   q2.sql.clear;
   q2.sql.add('select room.roomno,row,col,status,gridno from Room_Position,room where room.roomno=room_position.roomno');
   q2.Prepare;
   q2.open;
   while  not  q2.EOF do
      begin
         if q2.fields[4].asinteger=1 then
         begin
            lsroom[q2.fields[1].asinteger,q2.fieldbyname('col').asinteger]:=q2.fieldbyname('Roomno').asstring;
            lsstatusarr[q2.fields[1].asinteger,q2.fieldbyname('col').asinteger]:=q2.fieldbyname('status').asstring;
         end;
         if q2.fields[4].asinteger=2 then
         begin
            llssroom[q2.fields[1].asinteger,q2.fieldbyname('col').asinteger]:=q2.fieldbyname('Roomno').asstring;
            llssstatusarr[q2.fields[1].asinteger,q2.fieldbyname('col').asinteger]:=q2.fieldbyname('status').asstring;
         end;
          q2.Next;
      end;
   q2.Close;
   q2.Active :=false;
   end;
end;


procedure xggrid(grid1: TStringGrid);
var i,j:integer;
begin

   for i:=0 to grid1.RowCount-1 do
       for j:=0 to grid1.ColCount-1 do
           begin
             grid1.row:=grid1.RowCount-1-i;
             grid1.col:=grid1.ColCount-1-j;
           end;
end;
procedure init;
begin
  with xgyqjzform do
  begin
    dehdno:='';
    desex:='';
    dewel:='';
    xggrid(grid1);
    xggrid(grid2);
 end;
end ;

procedure Txgyqjzform.FormCreate(Sender: TObject);
var i,j:integer;
   arr:array[1..50] of integer;
   ls:string;
begin
  for j:=1 to 50 do arr[j]:=0;
  //j:=1;
  for i:=0 to ComponentCount-1 do
  if (Components[i] is TPanel)and(Components[i].tag<>0) then
  begin
     (Components[i] as Tpanel).Caption:='';
      arr[Components[i].tag]:=i;
     // j:=j+1;
  end;
  q2.sql.text:='select code,Name,isvis from roomsetup,roomtype where RoomType.RoomType=roomsetup.RoomType ';
  q2.open;
  while (not q2.Eof) do
  begin
    if ( q2.Fields[2].AsBoolean) then
    begin
     with (Components[arr[q2.Fields[0].asinteger]] as TPanel) do
     begin
       Caption:=q2.Fields[1].asstring;
       if q2.Fields[0].asinteger<=13 then
          rmtypearr[1,q2.Fields[0].asinteger-1]:=q2.Fields[1].asstring
       else
          rmtypearr[2,q2.Fields[0].asinteger-14]:=q2.Fields[1].asstring;

       ls:=q2.Fields[1].asstring;
       q2.Next;
       while (not q2.Eof) and (ls=trim(q2.Fields[1].asstring)) do
       begin
         (xgyqjzform.Components[arr[q2.Fields[0].asinteger]] as TPanel).Visible:=false;
          Width:=Width+55;
          q2.Next;
       end;
     end;
    end
    else  q2.Next;
  end;
  q2.Close;
  q2.sql.Clear;
  q2.Active:=false;

  roomnum:=0;
  zdrmnum:=0;
  mannum:=0;
  womannum:=0;
  shortdateformat:='yyyy-mm-dd';
  mangrid.Cells[0,0]:='男散';
  womangrid.Cells[0,0]:='女散';
  jylgrid.Cells[0,0]:='娱乐';
  roomini;
end;



procedure Txgyqjzform.grid1DrawCell(Sender: TObject; Col, Row: Integer;
  Rect: TRect; State: TGridDrawState);
var
     lsfj :string;
     lsls:string;
     bb:Tbrush;
begin
   if (col=1) and (row=0) then
      lsls:='jllkjlkjl';
   grid1.canvas.font.color:=clred;
   grid1.canvas.font.style:=[fsbold];
//   grid1.canvas.font.size:=12;
   grid1.canvas.pen.mode:=pmCopy;
   lsfj:=lsroom[row,col];
    if length(trim(lsstatusarr[row,col]))>0 then
      begin
       bb:=grid1.canvas.brush;
       if lsstatusarr[row,col]='0' then
          begin
           grid1.canvas.font.color:=$0000ff00;  //GReen
           lsls:=lsfj+' 空';
          end;
       if lsstatusarr[row,col]='1' then
          begin
           grid1.canvas.font.color:=$000000ff;  //GRed
           lsls:=lsfj+' 满';
          end;
       if lsstatusarr[row,col]='2' then
          begin
           grid1.canvas.font.color:=$0000ffff;  //Yellow
           lsls:=lsfj+' 脏';
          end ;
       if lsstatusarr[row,col]='3' then
          begin
           grid1.canvas.font.color:=$00ffff00;  //
           lsls:=lsfj+' 修';
          end;
       if lsstatusarr[row,col]='4' then
          begin
           grid1.canvas.font.color:=$02aa00aa;  //
           lsls:=lsfj+' 免';
          end;
       if lsstatusarr[row,col]='5' then
          begin
           grid1.canvas.font.color:=clOlive;  //
           lsls:=lsfj+' 订';
          end;
       if lsstatusarr[row,col]='6' then
          begin
           grid1.canvas.font.color:=$004080FF;  //
           lsls:=lsfj+' 通';
          end;
       grid1.canvas.textrect(grid1.cellrect(col,row),grid1.cellrect(col,row).Left,grid1.cellrect(col,row).Top,lsls);
       grid1.canvas.brush:=bb;
    end;
end;


procedure Txgyqjzform.N1Click(Sender: TObject);
begin
  if trim(xgyqjzform.Caption)='' then
    xgyqjzform.close
  else
  begin
  if trim(n2.Caption)<>'' then
  begin
    q2.Active :=false;
    q2.sql.clear;
    q2.sql.add('update room set status='''+copy(n2.Caption,2,1)+''' where roomno='''+trim(copy(trim(n1.Caption),1,4))+'''');
    q2.Prepare;
    q2.ExecSQL;
    djform.n2.Enabled:=false;
    roomini;
    if grid1.col<>0 then grid1.col:=0
    else  grid1.col:=1;
    if grid2.col<>0 then grid2.col:=0
    else grid2.col:=1
  end;
  end;
end;

procedure Txgyqjzform.PopupMenu1Popup(Sender: TObject);
begin
 { if activecontrol=grid1  then
  begin
     rmno:=lsroom[grid1.row,grid1.col];
     lstab:=lsstatusarr[grid1.row,grid1.col];
   end;
  if activecontrol=grid2 then
  begin
     rmno:=llssroom[grid2.row,grid2.col];
     lstab:=llssstatusarr[grid2.row,grid2.col];
  end;
  if trim(Caption)<>'' then
  begin
     if trim(lstab)='2' then
     begin
        popupmenu1.items[0].enabled:=true;
        popupmenu1.items[1].enabled:=true;
        N1.Caption:=rmno+' 脏房转待租房';
        N2.Caption:=rmno+' 脏房转维修房';
     end;
     if trim(lstab)='0' then
     begin
        popupmenu1.items[1].enabled:=true;
        popupmenu1.items[0].enabled:=false;
        N2.Caption:=rmno+' 待租房转维修房';
        N1.Caption:='';
     end;
     if trim(lstab)='3' then
     begin
        popupmenu1.items[0].enabled:=true;
        popupmenu1.items[1].enabled:=false;
        N1.Caption:=rmno+' 维修房转待租房';
        N2.Caption:='0';
     end;
     if trim(lstab)='1' then
     begin
        popupmenu1.items[0].enabled:=true;
        popupmenu1.items[1].enabled:=false;
        N1.Caption:=rmno+' 宾客可结帐';
        N2.Caption:='6';
     end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -