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