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

📄 ctdjqx.pas

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

interface

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

type
  Tctdjqxform = class(TForm)
    Label1: TLabel;
    hdno: TMaskEdit;
    Bevel1: TBevel;
    DBGrid1: TDBGrid;
    Button1: TButton;
    Button2: TButton;
    q1: TQuery;
    DataSource1: TDataSource;
    Query1: TQuery;
    procedure hdnoExit(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
    procedure hdnoDblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  ctdjqxform: Tctdjqxform;

implementation
uses dataproc, ctdj;

{$R *.DFM}
var
  acc:string;

procedure findacc;
begin
with ctdjqxform do
   begin
   q1.Active :=false;
   q1.sql.Clear ;
   q1.sql.add('select accno from ctnowin where tabno='''+trim(hdno.text)+'''');
   q1.Prepare;
   q1.open;
   if now-strtodatetime(q1.fieldbyname('begtime').asstring)>strtotime('00:20') then
   begin
     if messagedlg('登记已超过二十分钟,是否撤消?',mtWarning,[mbYes, mbNo], 0) = mrNO then
     begin
        hdno.SetFocus ;
        q1.Active :=false;
        exit;
     end;
   end;
   acc:=q1.fieldbyname('accno').asstring;
   q1.Active :=false;
   end;
end;

procedure seemx;
begin
with ctdjqxform do
  begin
  q1.Active :=false;
  q1.sql.clear;
  q1.sql.add('select djcode,ctnowin.tabno,tabtype.name,begtime,czy from ctnowin,tabtype,tabledb where (accno=:pacc and ctnowin.tabno=tabledb.tabno and tabtype.code=tabledb.ztype)');
  q1.ParamByName ('pacc').asstring:=acc;
  q1.Prepare;
  q1.open;
  DataSource1.DataSet:=q1;
  chinesegrid(ctdjqxform.dbgrid1);
  q1.Active :=true;
  DBGrid1.fields[1].displaylabel:='  桌 号';
  DBGrid1.fields[2].displaylabel:='  类型';
  DBGrid1.fields[0].displaylabel:='登记单号';
  dbgrid1.Columns[0].width:=60;
  dbgrid1.Columns[1].width:=80;
  end;
end;

procedure Tctdjqxform.hdnoExit(Sender: TObject);
begin
   if length(trim(hdno.text))>0 then
      begin
      q1.Active :=false;
      q1.sql.clear;
      q1.sql.add('select accno,tabno,begtime from ctnowin where (tabno=:phdno)');
      q1.ParamByName ('phdno').asstring:=trim(hdno.text);
      q1.Prepare;
      q1.open;
      q1.Active :=true;
      acc:=trim(q1.fieldbyname('accno').asstring);
      if now-strtodatetime(q1.fieldbyname('begtime').asstring)>strtotime('00:20') then
      begin
        if messagedlg('登记已超过二十分钟,是否撤消?',mtWarning,[mbYes, mbNo], 0) = mrNO then
        begin
           hdno.SetFocus ;
           q1.Active :=false;
           exit;
        end;
      end;
      seemx;
   end;
end;

procedure formini;
begin
with ctdjqxform do
  begin
  acc:='';
  hdno.text:='';
  end;
end;

procedure Tctdjqxform.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=112 then
  begin
     if xt=0 then help(2);
  end;
  if key=13 then
     selectnext(activecontrol,true,true);
  if key=27 then
     ctdjqxform.close;
end;

procedure Tctdjqxform.FormCreate(Sender: TObject);
begin
  formini;
end;

procedure Tctdjqxform.Button2Click(Sender: TObject);
begin
  ctdjqxform.Close;
end;

procedure Tctdjqxform.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  q1.free;
end;

procedure Tctdjqxform.Button1Click(Sender: TObject);
begin
  if messagedlg('真的撤消吗?',mtWarning,[mbYes, mbNo], 0) = mrYes then
  begin
     Query1.Active :=false;
     Query1.sql.clear;
     Query1.sql.add('select tabno from custom where (accno='''+acc+''' and isuse=1)');
     Query1.Open;
     if not Query1.Eof then
     begin
        showmessage('已经上菜,不能撤消');
        Query1.Active :=false;
        Query1.sql.clear;
        exit;
     end;
     Query1.Active :=false;
     Query1.sql.clear;
     Query1.sql.add('update tabledb set state='''+'0'+''' where tabno in (select tabno from ctnowin where accno='''+acc+''')');
     Query1.sql.add('delete custom where (accno='''+acc+''')');
     Query1.sql.add('delete ctnowin where (accno='''+acc+''')');
     Query1.sql.add('delete Deposit where (accno='''+acc+''')');
     Query1.ExecSQL;
     showmessage('撤消成功');
     Query1.Active :=false;
     Query1.sql.clear;
     Q1.Active :=false;
     Q1.sql.clear;

     formini;
     hdno.SetFocus ;
  end;
end;

procedure Tctdjqxform.hdnoDblClick(Sender: TObject);
begin
  Application.CreateForm(Tycdjform, ycdjform);
  ycdjform.Caption:='';
  ycdjform.showmodal;
  hdno.Text:=ycdjform.ydj.Text;
  ycdjform.free;
  DBGrid1.SetFocus ;
end;

end.

⌨️ 快捷键说明

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