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

📄 ctzhsetup.pas

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

interface

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

type
  Tzhsetupform = class(TForm)
    lc: TTabControl;
    Bevel9: TBevel;
    Bevel10: TBevel;
    Bevel11: TBevel;
    Bevel12: TBevel;
    Bevel13: TBevel;
    Bevel14: TBevel;
    Bevel15: TBevel;
    grid1: TStringGrid;
    Button2: TButton;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Panel5: TPanel;
    Panel6: TPanel;
    Panel19: TPanel;
    Button1: TButton;
    Button3: TButton;
    rmname: TComboBox;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    sm: TMemo;
    wz: TEdit;
    rs: TSpinEdit;
    Button4: TButton;
    Button5: TButton;
    Query1: TQuery;
    procedure FormCreate(Sender: TObject);
    procedure Panel1DblClick(Sender: TObject);
    procedure rmnameDblClick(Sender: TObject);
    procedure Panel2DblClick(Sender: TObject);
    procedure Panel3DblClick(Sender: TObject);
    procedure Panel4DblClick(Sender: TObject);
    procedure Panel5DblClick(Sender: TObject);
    procedure Panel6DblClick(Sender: TObject);
    procedure grid1DblClick(Sender: TObject);
    procedure grid1KeyPress(Sender: TObject; var Key: Char);
    procedure grid1Exit(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure lcChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  zhsetupform: Tzhsetupform;

implementation

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

procedure init;
var
   arr:array[1..50] of integer;
//   ls:string;
begin
with zhsetupform 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]:='';
    end;
    Query1.sql.text:='select tabno,num,place,remark,row,col from tabledb where lc='+inttostr((lc.TabIndex+1));
    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;
      grid1.Cells[Query1.FieldByName('col').asinteger,Query1.FieldByName('row').asinteger]:=Query1.FieldByName('tabno').asstring;
      Query1.Next;
    end;
    Query1.Close;
    Query1.sql.Clear;
    Query1.Active:=false;

    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 tabType.code=tabsetup.tabType and tabsetup.lc='+inttostr((lc.TabIndex+1));
     Query1.open;
     while not Query1.Eof do
     begin
       (Components[arr[Query1.Fields[0].asinteger]] as TPanel).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
             with rmsetupform.Components[arr[Query1.Fields[0].asinteger]] as TPanel do
                Visible:=false;
             Width:=Width+50;
             Query1.Next;
          end;  }
     end;
     Query1.Close;
     Query1.sql.Clear;
     Query1.Active:=false;

   end;
end;


procedure tormname(pan:Tpanel);
begin
with zhsetupform do
   begin
     rmname.top:=pan.Top;
     rmname.left:=Pan.left;
     rmname.Visible:=true;
     rmname.Text:=Pan.Caption;
   end;
end;




procedure Tzhsetupform.FormCreate(Sender: TObject);
begin
  Query1.sql.text:='select code,name from tabtype';
  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 Tzhsetupform.rmnameDblClick(Sender: TObject);
var ls:string;
begin
   rmname.Visible:=false;
   ls:=floattostr(int(rmname.left/70));
     rmtypearr[strtoint(ls)]:=rmname.Text;
     if rmname.left<70 then
       Panel1.Caption:=rmname.Text;
     if (rmname.left>70) and (rmname.left<70*2) then
       Panel2.Caption:=rmname.Text;
     if (rmname.left>70*2) and (rmname.left<70*3) then
       Panel3.Caption:=rmname.Text;
     if (rmname.left>70*3) and (rmname.left<70*4) then
       Panel4.Caption:=rmname.Text;
     if (rmname.left>70*4) and (rmname.left<70*5) then
       Panel5.Caption:=rmname.Text;
     if (rmname.left>70*5) and (rmname.left<70*6) then
       Panel6.Caption:=rmname.Text;

end;
procedure Tzhsetupform.Panel1DblClick(Sender: TObject);
begin
   tormname(Panel1);
end;

procedure Tzhsetupform.Panel2DblClick(Sender: TObject);
begin
   tormname(Panel2);
end;

procedure Tzhsetupform.Panel3DblClick(Sender: TObject);
begin
   tormname(Panel3);

end;

procedure Tzhsetupform.Panel4DblClick(Sender: TObject);
begin
   tormname(Panel4);

end;

procedure Tzhsetupform.Panel5DblClick(Sender: TObject);
begin
   tormname(Panel5);

end;

procedure Tzhsetupform.Panel6DblClick(Sender: TObject);
begin
   tormname(Panel6);

end;

procedure Tzhsetupform.grid1DblClick(Sender: TObject);
begin
  if trim(grid1.Cells[grid1.Col,grid1.Row])<>'' then
  begin
    j:=grid1.col;
    k:=grid1.row;
    rs.Value:=num[j,k];
    wz.Text:=place[j,k];
    sm.Text:=remark[j,k];
    GroupBox1.Visible:=true;
    GroupBox1.Caption:=trim(grid1.Cells[grid1.Col,grid1.Row])+' 的详细资料';
  end;

end;

procedure Tzhsetupform.grid1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
      grid1.Options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goDrawFocusSelected];

end;

procedure Tzhsetupform.grid1Exit(Sender: TObject);
begin
   if trim(rmtypearr[grid1.Col])<>'' then
   begin
      grid1.Options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goDrawFocusSelected,goEditing];
      if trim(grid1.Cells[grid1.Col,grid1.Row])<>'' then
         grid1.Hint:=grid1.Cells[grid1.Col,grid1.Row]+'  座位'+inttostr(num[grid1.Col,grid1.Row])+'个 位置:'+place[grid1.Col,grid1.Row]
      else
         grid1.Hint:='';
   end;
end;

procedure Tzhsetupform.Button3Click(Sender: TObject);
begin
   init;
end;

procedure Tzhsetupform.Button2Click(Sender: TObject);
begin
  close;
end;

procedure Tzhsetupform.Button1Click(Sender: TObject);
var i,j:integer;
begin
  if messagedlg('此操作将影响目前餐厅宾客的数据,请在宾客全部结帐后进行。是否继续?',mtWarning,[mbYes, mbNo], 0) = mrYes then
  begin
    Query1.sql.text:='delete tabsetup where lc='+inttostr((lc.TabIndex+1));
    Query1.ExecSQL;
    Query1.sql.Clear;
    Query1.Active:=false;
    for i:=1 to 6 do
    begin
      if trim(rmtypearr[i-1])<>'' then
      begin
             Query1.sql.text:='insert into tabsetup select '+inttostr(i)+','+inttostr((lc.TabIndex+1))+',code,1 from tabtype where name='''+trim(rmtypearr[i-1])+'''';
             Query1.ExecSQL;
      end;
   end;
   Query1.Close;
   Query1.sql.Clear;
   Query1.Active:=false;

    Query1.sql.text:='delete tabledb where lc='+inttostr((lc.TabIndex+1));
    Query1.ExecSQL;
    Query1.sql.Clear;
    Query1.Active:=false;
    for i:=0 to 5 do
    for j:=0 to 4 do
    begin
      if trim(grid1.Cells[i,j])<>'' then
        begin
             Query1.sql.add('insert into tabledb select '''+trim(grid1.Cells[i,j])+''','+inttostr(num[i,j])+','''+place[i,j]+''','''+'0'+''','''+remark[i,j]+''',code');
             Query1.sql.Add(','+inttostr(j)+','+inttostr(i)+','+inttostr((lc.TabIndex+1))+' from tabtype where name='''+trim(rmtypearr[i])+'''');
        end;
    end;
    if trim(query1.sql.text)<>'' then
    begin
       Query1.Prepare;
       Query1.ExecSQL;
       Query1.Close;
    end;
    Query1.sql.Clear;
    Query1.Active:=false;
    query1.sql.add('delete from ctnowin where lc='+inttostr((lc.TabIndex+1)));
    query1.sql.add('delete from custom where lc='+inttostr((lc.TabIndex+1)));
    Query1.Prepare;
    Query1.ExecSQL;
    Query1.Close;
    Query1.sql.Clear;
    Query1.Active:=false;

  end;
end;

procedure Tzhsetupform.Button4Click(Sender: TObject);
begin
  num[j,k]:=rs.Value;
  place[j,k]:=wz.Text;
  remark[j,k]:=sm.Text;
  GroupBox1.Visible:=false;

end;

procedure Tzhsetupform.Button5Click(Sender: TObject);
begin
  GroupBox1.Visible:=false;
end;

procedure Tzhsetupform.lcChange(Sender: TObject);
begin
 init;
end;

end.

⌨️ 快捷键说明

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