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

📄 mc_dcgl_dc.~pas

📁 餐饮管理:菜单录入打印菜单等
💻 ~PAS
📖 第 1 页 / 共 4 页
字号:
unit MC_DCGL_DC;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, DBTables, ImgList, StdCtrls, Grids, DBGrids, Buttons, ExtCtrls,
  DBCtrls;

type
  TDCGL_DC = class(TForm)
    GroupBox1: TGroupBox;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    DBText2: TDBText;
    DBText3: TDBText;
    DBText4: TDBText;
    DBText5: TDBText;
    DBText6: TDBText;
    DBText7: TDBText;
    DBText8: TDBText;
    Label12: TLabel;
    DBText9: TDBText;
    Bevel1: TBevel;
    Panel1: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label13: TLabel;
    Label1: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Panel2: TPanel;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn1: TBitBtn;
    DBGrid2: TDBGrid;
    DCGrid: TStringGrid;
    ListBox2: TListBox;
    ImageList1: TImageList;
    Query1: TQuery;
    Query2: TQuery;
    BitBtn4: TBitBtn;
    Query3: TQuery;
    DataSource1: TDataSource;
    Query4: TQuery;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    GroupBox2: TGroupBox;
    Edit1: TEdit;
    BitBtn7: TBitBtn;
    BitBtn8: TBitBtn;
    DBGrid1: TDBGrid;
    DBGrid3: TDBGrid;
    DBGrid4: TDBGrid;
    DBGrid5: TDBGrid;
    StringGrid1: TStringGrid;
    BitBtn9: TBitBtn;
    BitBtn10: TBitBtn;
    BitBtn11: TBitBtn;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure DCGridKeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn2Click(Sender: TObject);
    procedure ListBox2KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure Edit1Enter(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn8Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure DCGridKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBGrid5KeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid4KeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid3KeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid3DblClick(Sender: TObject);
    procedure DBGrid5DblClick(Sender: TObject);
    procedure DBGrid4DblClick(Sender: TObject);
    procedure BitBtn9Click(Sender: TObject);
    procedure BitBtn11Click(Sender: TObject);
    procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn10Click(Sender: TObject);
    procedure StringGrid1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DCGridKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
     x,y:integer;
     PJ:array[1..50] of integer;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  DCGL_DC: TDCGL_DC;

implementation

uses MC_TLCYGLXT;

{$R *.DFM}

procedure TDCGL_DC.FormClose(Sender: TObject; var Action: TCloseAction);
begin
     TLCYGLXT.CPFYXXB.Close;//关闭菜谱费用信息表;
     TLCYGLXT.CJFYXXB.Close;//关闭餐具费用信息表;
     TLCYGLXT.SJFYXXB.CLose;//关闭水酒信息表
     Query2.Close;
     QUery1.Close;
     Query3.Close;
     DCGL_DC.Release;
     DCGL_DC:=Nil;
end;

procedure TDCGL_DC.FormCreate(Sender: TObject);
begin
     TLCYGLXT.CPFYXXB.Open;//菜谱费用信息表;
     TLCYGLXT.SJFYXXB.Open;//水酒信息表
     TLCYGLXT.CJFYXXB.Open;//餐具费用信息表;
     //--------------------------------------
     Query3.Close;
     Query3.SQL.Clear;
     Query3.SQL.Add('select 编号,名称,类型,单位,数量,价格,合计,状态,服务员编号,服务员姓名,结帐编号 From 点菜临时表');
     Query3.SQL.Add('Where 房间台号=:A and 是否结单=:B');
     Query3.Params[0].AsInteger:=TLCYGLXT.KT_FJTHXXB.FieldByName('编号').AsInteger;
     Query3.Params[1].AsString:='否';
     Query3.Open;
     Query4.Close;
     Query4.SQL.Clear;
     Query4.SQL.Add('Select Sum(合计) From 点菜临时表');
     Query4.SQL.Add('Where 房间台号=:A and 是否结单=:B');
     Query4.Params[0].AsInteger:=TLCYGLXT.KT_FJTHXXB.FieldByName('编号').AsInteger;
     Query4.Params[1].AsString:='否';
     Query4.Open;
     //Label14.Caption:=Query4.Fields[0].AsString;
     Label14.Caption:=FloatToStr(Query4.Fields[0].AsFloat+TLCYGLXT.KT_FJTHXXB.FieldByName('服务费').AsFloat);
     Label18.Caption:=Query3.FieldByName('结帐编号').AsString;
     Label15.Caption:=Query3.FieldByName('服务员编号').AsString;
     Label16.Caption:=Query3.FieldByName('服务员姓名').AsString;
end;

procedure TDCGL_DC.FormShow(Sender: TObject);
var a:integer;
begin
    //-----------------------------------------
      DCGrid.Cells[1,0]:='编号';
      DCGrid.Cells[2,0]:='名称';
      DCGrid.Cells[3,0]:='类型';
      DCGrid.Cells[4,0]:='单位';
      DCGrid.Cells[5,0]:='数量';
      DCGrid.Cells[6,0]:='价格';
      DCGrid.Cells[7,0]:='状态';
      DCGrid.Cells[8,0]:='合计';
    //-----------------------------------------
      for a:=1 to DCGrid.RowCount-1 do
      begin
           DCGrid.Cells[0,a]:=intToStr(a);
      end;
    //-----------------------------------------
    //-----------------------------------------
      StringGrid1.Cells[1,0]:='编号';
      StringGrid1.Cells[2,0]:='名称';
      StringGrid1.Cells[3,0]:='类型';
      StringGrid1.Cells[4,0]:='单位';
      StringGrid1.Cells[5,0]:='数量';
      StringGrid1.Cells[6,0]:='价格';
      StringGrid1.Cells[7,0]:='状态';
      StringGrid1.Cells[8,0]:='合计';
    //-----------------------------------------
      for a:=1 to StringGrid1.RowCount-1 do
      begin
           StringGrid1.Cells[0,a]:=intToStr(a);
      end;
    //-----------------------------------------
     Label17.Caption:=DateTimeToStr(Now);
end;

procedure TDCGL_DC.DCGridKeyPress(Sender: TObject; var Key: Char);
var zjje:Real;
    aa:integer;
begin
     //-----------------------
       X:=DCGrid.Row;
       Y:=DCGrid.Col;
     //-----------------------
     if key=#13 then
        begin
          if DCGrid.col=8 then
             begin
                  zjje:=0;
                  for aa:=1 to 51 do
                      begin
                           if Length(DCGrid.Cells[8,aa])<>0 then
                              begin
                              if DCGrid.Cells[7,aa]<>'赠单' then
                                 begin
                                      zjje:=StrToFloat(DCGrid.Cells[8,aa])+zjje;
                                      Label14.Caption:=FloatToStr(zjje);
                                 end
                              else
                                 begin
                                      Label14.Caption:=FloatToStr(zjje);
                                 end;
                              end
                           else
                              Break;
                      end;
             end;
        //----------------------------------------------------------
          if DCGrid.Col=5 then
             begin
             if Length(DCGrid.Cells[1,X])<>0 then
                begin
                     if StrToInt(DCGrid.Cells[5,X])=0 then
                        begin
                             ShowMessage('数量不正确');
                             Exit;
                        end
                     else
                        begin
                             Try
                             DCGrid.Cells[8,X]:=IntToStr(Round(StrToint(DCGrid.Cells[5,X])*StrToFloat(DCGrid.Cells[6,X])));
                             Except
                             End;
                             DCGrid.Col:=7;
                        end;
                end;
             //-----------------------------------------------------
             if Length(DCGrid.Cells[1,x])<>0 then
             if StrToInt(Copy(DCGrid.Cells[1,x],0,1))=1 then
                begin
                     if PJ[DCGrid.row]-StrToInt(DCGrid.Cells[5,x])<=0 then
                        begin
                             ShowMessage('库存不足');
                        end;
                end;
             end;
        //----------------------------------------------------------
             if DCGrid.Col=1 then
             if Length(DCGrid.Cells[1,x])<>0 then
                begin
                    case StrToInt(Copy(DCGrid.Cells[1,x],0,1)) of
                      1: begin
                              if TLCYGLXT.SJFYXXB.Locate('编号',DCGrid.Cells[1,x],[locaseInsensitive]) then
                                 begin
                                      if query1.Locate('编号',TLCYGLXT.SJFYXXB.FieldByName('货存编号').AsInteger,[locaseInsensitive]) then
                                         begin
                                              PJ[DCGrid.row]:=Query1.FieldByName('数量').AsInteger;
                                              DCGrid.Cells[2,X]:=TLCYGLXT.SJFYXXB.FieldByName('酒水名称').AsString;
                                              DCGrid.Cells[4,x]:=TLCYGLXT.SJFYXXB.FieldByName('单位').AsString;
                                              DCGrid.Cells[3,x]:=TLCYGLXT.SJFYXXB.FieldByName('酒水类别').AsString;
                                              DCGrid.Cells[6,x]:=TLCYGLXT.SJFYXXB.FieldByName('价格').AsString;
                                              DCGrid.Cells[7,x]:='点单';
                                              DCGrid.Cells[5,x]:='1';
                                              //----后加的----------------------
                                              DCGrid.Cells[8,x]:=TLCYGLXT.SJFYXXB.FieldByName('价格').AsString;
                                              //--------------------------------
                                              DCGrid.Col:=4;
                                         end
                                      else
                                         begin
                                              ShowMessage('对不起,已没有库存.');
                                              Abort;
                                         end;
                                 end
                              else
                                 begin
                                      ShowMessage('没有此编号水酒信息');
                                      Abort;
                                 end;
                          end;
                      //-------------------------------------------
                      2: begin
                              if TLCYGLXT.SJFYXXB.Locate('编号',DCGrid.Cells[1,x],[locaseInsensitive]) then
                                 begin
                                      if query1.Locate('编号',TLCYGLXT.SJFYXXB.FieldByName('货存编号').AsInteger,[locaseInsensitive]) then
                                         begin
                                              PJ[DCGrid.row]:=Query1.FieldByName('数量').AsInteger;
                                              DCGrid.Cells[2,X]:=TLCYGLXT.SJFYXXB.FieldByName('酒水名称').AsString;
                                              DCGrid.Cells[4,x]:=TLCYGLXT.SJFYXXB.FieldByName('单位').AsString;
                                              DCGrid.Cells[3,x]:=TLCYGLXT.SJFYXXB.FieldByName('酒水类别').AsString;
                                              DCGrid.Cells[6,x]:=TLCYGLXT.SJFYXXB.FieldByName('价格').AsString;
                                              DCGrid.Cells[7,x]:='点单';
                                              DCGrid.Cells[5,x]:='1';
                                              //----后加的----------------------
                                              DCGrid.Cells[8,x]:=TLCYGLXT.SJFYXXB.FieldByName('价格').AsString;
                                              //--------------------------------
                                              DCGrid.Col:=4;
                                         end
                                      else
                                         begin
                                              ShowMessage('对不起,已没有库存.');
                                              Abort;
                                         end;
                                 end
                              else
                                 begin
                                      ShowMessage('没有此编号水酒信息');
                                      Abort;
                                 end;

⌨️ 快捷键说明

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