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

📄 ctqt.pas

📁 集成酒店桑拿食管管理的完整程序
💻 PAS
字号:
unit ctqt;

interface

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

type
  Tctqtform = class(TForm)
    grid1: TStringGrid;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Panel5: TPanel;
    Panel6: TPanel;
    Query1: TQuery;
    Bevel9: TBevel;
    Bevel10: TBevel;
    Bevel11: TBevel;
    Bevel12: TBevel;
    Bevel13: TBevel;
    Bevel14: TBevel;
    Bevel15: TBevel;
    Panel19: TPanel;
    ydj: TEdit;
    Timer1: TTimer;
    StoredProc1: TStoredProc;
    BitBtn3: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure grid1DrawCell(Sender: TObject; Col, Row: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure grid1Click(Sender: TObject);
    procedure grid1DblClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  ctqtform: Tctqtform;

implementation

uses dataproc, newdj;
var rmtypearr:array[0..5] of string;
    num:array[0..5,0..4] of integer;
    tabno,status,place,remark:array[0..5,0..4] of string;
    welid,zhacc,lc:string;
    i,j,k:integer;
{$R *.DFM}

procedure init;
begin
with ctqtform do
   begin
    for j:=0 to 5 do
    for k:=0 to 4 do
    begin
      grid1.Cells[j,k]:='';
      num[j,k]:=0;
      place[j,k]:='';
      remark[j,k]:='';
      tabno[j,k]:='';
      status[j,k]:='';
    end;
    Query1.sql.Clear;
    Query1.Active:=false;
    Query1.sql.text:='select tabno,num,place,remark,row,col,state from tabledb where lc='+lc;
    Query1.open;
    while not Query1.Eof do
    begin
      num[Query1.FieldByName('col').asinteger,Query1.FieldByName('row').asinteger]:=Query1.FieldByName('num').asinteger;
      place[Query1.FieldByName('col').asinteger,Query1.FieldByName('row').asinteger]:=Query1.FieldByName('place').asstring;
      remark[Query1.FieldByName('col').asinteger,Query1.FieldByName('row').asinteger]:=Query1.FieldByName('remark').asstring;
      status[Query1.FieldByName('col').asinteger,Query1.FieldByName('row').asinteger]:=Query1.FieldByName('state').asstring;
      tabno[Query1.FieldByName('col').asinteger,Query1.FieldByName('row').asinteger]:=Query1.FieldByName('tabno').asstring;
      Query1.Next;
    end;
    Query1.Close;
    Query1.sql.Clear;
    Query1.Active:=false;

   end;
end;






procedure Tctqtform.FormCreate(Sender: TObject);
var
   arr:array[1..50] of integer;
   ls:string;
begin
  shortdateformat:='yyyy-mm-dd';
  lc:=copy(curper.Headship,1,1);
  lc:='1';
  Query1.DatabaseName:='ctdm';
    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=j) then
      begin
        (Components[i] as Tpanel).Caption:='';
        arr[j]:=i;
        j:=j+1;
      end;
//           Components[i].
     Query1.sql.text:='select tabsetup.code,Name from tabsetup,tabtype where lc='+lc+' and tabType.code=tabsetup.tabType ';
     Query1.open;
     while not Query1.Eof do
     begin
     with (Components[arr[Query1.Fields[0].asinteger]] as TPanel) do
     begin
       Caption:=Query1.Fields[1].asstring;
       rmtypearr[Query1.Fields[0].asinteger-1]:=Query1.Fields[1].asstring;

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



procedure Tctqtform.grid1DrawCell(Sender: TObject; Col, Row: Integer;
  Rect: TRect; State: TGridDrawState);
var
     lsls:string;
begin
    if length(trim(status[col,row]))>0 then
      begin
       if status[col,row]='0' then
          begin
           (Sender as Tstringgrid).canvas.font.color:=$0000ff00;  //GReen
           lsls:='可用';
          end;
       if status[col,row]='1' then
          begin
           (Sender as Tstringgrid).canvas.font.color:=$000000ff;  //GRed
           lsls:='已用';
          end;
       if status[col,row]='2' then
          begin
           (Sender as Tstringgrid).canvas.font.color:=$0000ffff;  //Yellow
           lsls:='脏';
          end ;
       if status[col,row]='3' then
          begin
           (Sender as Tstringgrid).canvas.font.color:=$00ffff00;  //
           lsls:='停用';
          end;
       if status[col,row]='4' then
          begin
           (Sender as Tstringgrid).canvas.font.color:=$02aa00aa;  //
           lsls:='挂帐';
          end;
       (Sender as Tstringgrid).canvas.textrect((Sender as Tstringgrid).cellrect(col,row),(Sender as Tstringgrid).cellrect(col,row).Left,(Sender as Tstringgrid).cellrect(col,row).top+5,tabno[col,row]+lsls);
    end;

end;

procedure Tctqtform.grid1Click(Sender: TObject);
begin
  j:=(sender as tstringgrid).Col;
  k:=(sender as tstringgrid).row;

  if trim(tabno[j,k])<>'' then
  begin
     Hint:=#13+'可容纳人数:'+inttostr(num[j,k]);
     if trim(place[j,k])<>'' then
       Hint:=Hint+#13+'  位置:'+place[j,k];
     if trim(remark[j,k])<>'' then
       Hint:=Hint+#13+'  说明:'+#13+remark[j,k];
     if trim(status[j,k])='0' then Hint:=grid1.Cells[j,k]+'  目前状态:可用'+Hint;
     if trim(status[j,k])='1' then Hint:=grid1.Cells[j,k]+'  目前状态:已用'+Hint;
     if trim(status[j,k])='3' then Hint:=grid1.Cells[j,k]+'  目前状态:停用'+Hint;
     if trim(status[j,k])='4' then Hint:=grid1.Cells[j,k]+'  目前状态:挂帐'+Hint;
  end
  else
    (sender as tstringgrid).Hint:='';

end;

procedure Tctqtform.grid1DblClick(Sender: TObject);
begin
  j:=(sender as tstringgrid).Col;
  k:=(sender as tstringgrid).row;
  if (trim(tabno[j,k])<>'') and ((trim(status[j,k])='2') or (trim(status[j,k])='3')) then
  begin
    Query1.Active:=false;
    Query1.sql.Clear;
    Query1.SQL.Add('update tabledb set state=''0'' where tabno='''+trim(tabno[j,k])+'''');
    Query1.ExecSQL;
    init;
  end;
  if (trim(tabno[j,k])<>'') and (trim(status[j,k])='0') then
  begin
    Query1.Active:=false;
    Query1.sql.Clear;
    Query1.SQL.Add('update tabledb set state=''3'' where tabno='''+trim(tabno[j,k])+'''');
    Query1.ExecSQL;
    init;
  end;
end;

procedure Tctqtform.Timer1Timer(Sender: TObject);
begin
  init;
end;

procedure Tctqtform.BitBtn3Click(Sender: TObject);
begin
  close;
end;

end.

⌨️ 快捷键说明

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