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

📄 mc_ktgl.pas

📁 异洲酒店管理系统
💻 PAS
字号:
unit MC_KTGL;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ToolWin, ComCtrls, ImgList, StdCtrls, Buttons, ExtCtrls, DBCGrids, Grids,
  DBGrids, Mask, DBCtrls, Menus, DB, DBTables;

type
  TKTGL = class(TForm)
    ImageList1: TImageList;
    Panel1: TPanel;
    Edit1: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    GroupBox1: TGroupBox;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    DBText2: TDBText;
    DBText3: TDBText;
    DBText4: TDBText;
    DBText5: TDBText;
    DBText6: TDBText;
    DBText7: TDBText;
    DBText8: TDBText;
    Label9: TLabel;
    DBText9: TDBText;
    Bevel1: TBevel;
    Panel2: TPanel;
    Panel3: TPanel;
    DBGrid2: TDBGrid;
    DBLookupComboBox1: TDBLookupComboBox;
    Label10: TLabel;
    Bevel2: TBevel;
    Panel4: TPanel;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Panel5: TPanel;
    ListView1: TListView;
    Panel6: TPanel;
    ListView2: TListView;
    Label1: TLabel;
    Label11: TLabel;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    Bevel3: TBevel;
    Label16: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    DBGrid1: TDBGrid;
    CheckBox1: TCheckBox;
    DataSource1: TDataSource;
    Query1: TQuery;
    Query2: TQuery;
    Button1: TButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ListView2Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn1Click(Sender: TObject);
    procedure DBLookupComboBox1Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  KTGL: TKTGL;

implementation

uses MC_TLCYGLXT, MC_DCFY_LR, MC_YGCX, MC_ZTGL_KT, MC_BTSZ_KT, MC_DCGL_DC;

{$R *.DFM}

function ADDListView:Boolean;  //定义房台列表显示函数
begin
 TLCYGLXT.KT_FJTHXXB.RefResh;
 TLCYGLXT.KT_FJTHBMB.RefResh;
 TLCYGLXT.KT_FJTHLXB.RefResh;
 KTGL.Listview1.Items.Clear;
 TLCYGLXT.KT_FJTHXXB.Filter:=Format('状态'+'='+'''%S''',['空闲']);
 TLCYGLXT.KT_FJTHXXB.Filtered:=True;
 While not TLCYGLXT.KT_FJTHXXB.Eof do
 begin
  KTGL.ListView1.Items.Add.Caption:=tlcyglxt.kt_fjthxxb.fieldbyname('房台名称').asstring;
  TLCYGLXT.KT_FJTHXXB.Next;
 end;
 KTGL.Label1.Caption:='空闲总数:'+IntToStr(TLCYGLXT.KT_FJTHXXB.RecordCount);
 KTGL.Listview2.Items.Clear;
 TLCYGLXT.KT_FJTHXXB.Filter:=Format('状态'+'<>'+'''%S''',['空闲']);   //'''状态'''+'<>'+'''空闲''';
 TLCYGLXT.KT_FJTHXXB.Filtered:=True;
 While not TLCYGLXT.KT_FJTHXXB.Eof do
 begin
 KTGL.ListView2.Items.Add.Caption:=TLCYGLXT.KT_FJTHXXB.FieldByName('房台名称').AsString;
 TLCYGLXT.KT_FJTHXXB.Next;
 end;
 KTGL.Label11.Caption:='营业总数:'+IntToStr(TLCYGLXT.KT_FJTHXXB.RecordCount);
 TLCYGLXT.KT_FJTHXXB.Filtered:=False;
end;

procedure TKTGL.FormShow(Sender: TObject); //窗体初始化
begin
 AddListview;
 DBLookupComboBox1.KeyValue:=TLCYGLXT.KT_FJTHBMB.FieldByName('部门名称').AsString;
end;

procedure TKTGL.ListView2Click(Sender: TObject); //选择房台
var list:TListItem;
    ListString:String;
begin
 List:=TlistView(Sender).Selected;
 If List <> nil Then
 begin
  ListString:=List.Caption;
  If Length(ListString) <> 0 Then
   if TLCYGLXT.KT_FJTHXXB.Locate('房台名称',ListString,[loPartialKey]) then
   begin
    Query1.Close;
    query1.sql.clear;
    query1.sql.add('select 编号,名称,类型,单位,数量,价格,合计,状态,服务员姓名 from 点菜临时表');
    query1.sql.add('where 房间台号=:a and 是否结单=:b');
    Query1.Params[0].AsInteger:=TLCYGLXT.KT_FJTHXXB.FieldByName('编号').AsInteger;
    Query1.Params[1].AsString:='否';
    Query1.Open;
    Query2.Close;
    Query2.SQL.Clear;
    Query2.SQL.Add('Select Sum(合计) From 点菜临时表');
    Query2.SQL.Add('Where 房间台号=:A and 是否结单=:B');
    Query2.Params[0].AsInteger:=TLCYGLXT.KT_FJTHXXB.FieldByName('编号').AsInteger;
    Query2.Params[1].AsString:='否';
    Query2.Open;
   If Query1.RecordCount <> 0 Then
   begin
    Query1.last;
    Label13.Caption:=Query1.FieldByName('服务员姓名').AsString;
    Label15.Caption:=FloatToStr(Query2.Fields[0].AsFloat+TLCYGLXT.KT_FJTHXXB.FieldByName
('服务费').AsFloat);
   End
   Else
   begin
    Label13.Caption:='';
    Label15.Caption:='';
   end;
 end;
end;
end;
procedure TKTGL.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then Bitbtn1.Click;   //回车焦点跳转到搜索按钮
end;

procedure TKTGL.BitBtn1Click(Sender: TObject);  //搜索房台
var List:TListItem;
    Lists:integer;
    ListText:String;
    a,b,c:integer;
    d:String;
begin
 If Length(Edit1.Text) = 0 Then
 begin
  ShowMessage('请输入查询的[房台编号或房台名称]信息');
  Edit1.SetFocus;
 End
 Else
 begin
  a:=Length(Edit1.Text);
  c:=0;
  for b:=1 to a do
  begin
  D:=COPY(edit1.text,b,1);
  if (D='0') or (D<='9') then
   begin
    c:=c+1;
   end;
  end;
  If c = Length(Edit1.Text) Then
  begin
   if TLCYGLXT.KT_FJTHXXB.Locate('编号',StrTOInt(Edit1.Text),[loCaseInsensitive]) then
   begin
    if TLCYGLXT.KT_FJTHXXB.FieldByName('状态').AsString<>'空闲' then
     begin
      PageControl1.ActivePageIndex:=1;       //显示第二页
      BitBtn6.SetFocus;//将焦点移到点菜服务按扭上
     End
     Else
     begin
      PageControl1.ActivePageIndex:=0;       //显示第一页
      BitBtn3.SetFocus;//将焦点移到开台设置按扭上
     end;
    End
   Else
   begin
    ShowMessage('对不起,没有找到。');
   end;
  End
  Else
  begin
   if TLCYGLXT.KT_FJTHXXB.Locate('房台名称',Edit1.Text,[loPartialKey]) then
   begin
    if TLCYGLXT.KT_FJTHXXB.FieldByName('状态').AsString<>'空闲' then
     begin
      PageControl1.ActivePageIndex:=1;       //显示第二页
      BitBtn6.SetFocus;//将焦点移到点菜服务按扭上
     End
    Else
    begin
     PageControl1.ActivePageIndex:=0;     //显示第一页
     BitBtn3.SetFocus;//将焦点移到开台设置按扭上
    end;
   End
  Else
   begin
    ShowMessage('对不起,没有找到。');
   end;
  end;
 end;
end;
procedure TKTGL.DBLookupComboBox1Click(Sender: TObject); //选择部门
begin
 AddListview;
end;
procedure TKTGL.CheckBox1Click(Sender: TObject); //改变房台显示模式
begin
 If checkbox1.Checked Then
 begin
  Panel4.Visible:=False;
  DBGrid1.Visible:=True;
 End
 Else
 begin
  DBGrid1.Visible:=False;
  Panel4.Visible:=True;
 end;
end;
procedure TKTGL.BitBtn3Click(Sender: TObject);  //开台
begin
 If TLCYGLXT.KT_FJTHXXB.RecordCount = 0 Then
 begin
  If Length(DBLookupComboBox1.Text) = 0 Then
   ShowMessage('对不起,当前没有可营业的房间或台号.')
  Else
   ShowMessage('对不起,['+DBLookupcomboBox1.Text+']没有可营业的房间或台号.');
  End
 Else
  if TLCYGLXT.KT_FJTHXXB.FieldByName('状态').AsString='空闲' then
  begin
   TLCYGLXT.YGXXB.Open;//打开员工信息表
   YGCX.ShowModal;
  End
  Else
   ShowMessage('对不起,当前房间或台号正在开台或营业.')
end;
procedure TKTGL.Button1Click(Sender: TObject);  //选择部门
begin
 AddListview;
end;
procedure TKTGL.DBGrid1CellClick(Column: TColumn);//房台列表显示模式下选择房台
begin
 If TLCYGLXT.KT_FJTHXXB.RecordCount <> 0 Then
  if TLCYGLXT.KT_FJTHXXB.Locate('编号'
  ,TLCYGLXT.KT_FJTHXXB.FieldByName('编号').AsInteger
  ,[loPartialKey]) then
  begin
   Query1.Close;
   Query1.sql.clear;
   Query1.sql.add('select 编号,名称,类型,单位,数量,价格,合计,状态,服务员姓名 From 点菜临时表');
   Query1.sql.Add('Where 房间台号=:A and 是否结单=:B');
   Query1.Params[0].AsInteger:=TLCYGLXT.KT_FJTHXXB.FieldByName('编号').AsInteger;
   Query1.Params[1].AsString:='否';
   Query1.Open;
   Query2.Close;
   Query2.SQL.Clear;
   Query2.SQL.Add('Select Sum(合计) From 点菜临时表');
   Query2.SQL.Add('Where 房间台号=:A and 是否结单=:B');
   Query2.Params[0].AsInteger:=TLCYGLXT.KT_FJTHXXB.FieldByName('编号').AsInteger;
   Query2.Params[1].AsString:='否';
   Query2.Open;
   If Query1.RecordCount <> 0 Then
   begin
    Query1.last;
    Label13.Caption:=Query1.FieldByName('服务员姓名').AsString;
    Label15.Caption:=Query2.Fields[0].AsString;
   End
   Else
    begin
    Label13.Caption:='';
    Label15.Caption:='';
   end;
  end;
end;
procedure TKTGL.BitBtn4Click(Sender: TObject); //转台
begin
 If Not Assigned(ZTGL_KT) Then
 begin
  if TLCYGLXT.KT_FJTHXXB.FieldByName('状态').AsString='营业' then
  begin
   ZTGL_KT:=TZTGL_KT.Create(Self);
   ZTGL_KT.Table1.Open;  //打开房间台号信息表
   ZTGL_KT.ShowModal;
  End
  Else
  begin
   ShowMessage('对不起,当前房台没有营业转台没有意义.');
  end;
 end;
end;
procedure TKTGL.BitBtn5Click(Sender: TObject); //并台
begin
 If Not Assigned(BTSZ_KT) Then
 begin
  BTSZ_KT:=TBTSZ_KT.Create(Self);
  BTSZ_KT.Table1.Open;
  BTSZ_KT.ShowModal;
 end;
end;
procedure TKTGL.BitBtn6Click(Sender: TObject);  //点菜服务
begin
 If TLCYGLXT.KT_FJTHXXB.RecordCount = 0 Then
 begin
  If Length(DBLookupComboBox1.Text) = 0 Then
   ShowMessage('对不起,当前没有营业的房间或台号,无法加菜.')
  Else
   ShowMessage('对不起,['+DBLookupcomboBox1.Text+']没有营业的房间或台号,无法加菜.');
  End
 Else
  if TLCYGLXT.KT_FJTHXXB.FieldByName('状态').AsString='营业' then
  begin
   if not Assigned(DCGL_DC) then;
   begin
    DCGL_DC:=TDCGL_DC.Create(Self);
    DCGL_DC.ShowModal;
   end;
  End
  Else
  begin
   ShowMessage('对不起,当前的房间或台号没有开台或营业,无法加菜.')
 end;
 end;
procedure TKTGL.FormClose(Sender: TObject; var Action: TCloseAction); //关闭窗体
begin
 TLCYGLXT.KT_FJTHXXB.Close;//关闭房间台号信息表
 TLCYGLXT.KT_FJTHLXB.Close;//关闭房间台号类型表
 TLCYGLXT.KT_FJTHBMB.Close;//关闭房间台号部门表
 TLCYGLXT.JZBH.Close;//关闭结帐编号表
 TLCYGLXT.YGXXB.close;
 TLCYGLXT.KT_FJTHXXB.close;
 KTGL.Release;
 KTGL:=nil;
end;
procedure TKTGL.BitBtn2Click(Sender: TObject); //退出开台
begin
 Close;
end;
end.

⌨️ 快捷键说明

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