📄 mc_ktgl.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 + -