📄 tuidan.pas
字号:
unit tuidan;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, ComCtrls, Buttons, DBCtrls,db, ADODB;
type
TFrmtuidan = class(TForm)
GroupBox1: TGroupBox;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label1: TLabel;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
BtnTuiDan: TSpeedButton;
BtnClose: TSpeedButton;
DBGrid2: TDBGrid;
DataList: TListView;
DBText1: TDBText;
DBText2: TDBText;
DBText3: TDBText;
DBText4: TDBText;
QueryMaster: TADOQuery;
QueryDetail: TADOQuery;
QueryDetailDataSource: TDataSource;
procedure FormShow(Sender: TObject);
procedure CreateList(zhanghao:string);
procedure DataListClick(Sender: TObject);
procedure QueryDetailAfterOpen(DataSet: TDataSet);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BtnTuiDanClick(Sender: TObject);
procedure BtnCloseClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
deskid:integer;
end;
var
Frmtuidan: TFrmtuidan;
implementation
uses dbmodule;
{$R *.dfm}
procedure TFrmtuidan.CreateList(zhanghao:string);
var
mylist:Tlistitem;
begin
Datalist.Items.Clear;
if QueryMaster.Active then
QueryMaster.Close;
QueryMaster.SQL.Clear;
QueryMaster.SQL.Add('select distinct chuanbiaohao from Q_customertemp where zhanghao='+''''+zhanghao+'''');
QueryMaster.Open;
while not QueryMaster.Eof do
begin
mylist:=DataList.Items.Add;
mylist.SubItems.Add(QueryMaster.FieldValues['chuanbiaohao']);
QueryMaster.Next;
end;
QueryMaster.Close;
end;
procedure TFrmtuidan.FormShow(Sender: TObject);
begin
if not dm.Qfangtai.Active then
dm.Qfangtai.Open ;
if dm.Qfangtai.Active then
begin
dm.Qfangtai.Locate('fangtaiid',deskid,[loCaseInsensitive]);
CreateList(dm.Qfangtai.FieldValues['zhanghao']);
end;
end;
procedure TFrmtuidan.DataListClick(Sender: TObject);
begin
if DataList.SelCount>0 then
begin
if QueryDetail.Active then
QueryDetail.Close;
QueryDetail.SQL.Clear;
QueryDetail.SQL.Add('select id,Caipinid,caipinname,caipincount,caipinunit,caipinprice,dianliexing,caipinprice*caipincount as heji from Q_customertemp');
QueryDetail.SQL.Add(' where zhanghao='+''''+dm.Qfangtai.FieldValues['zhanghao']+''''+' and chuanbiaohao='+''''+DataList.Selected.SubItems[0]+'''');
QueryDetail.Open;
end;
end;
procedure TFrmtuidan.QueryDetailAfterOpen(DataSet: TDataSet);
begin
dm.UpdateFieldFormats(dataset);
end;
procedure TFrmtuidan.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if QueryDetail.Active then
QueryDetail.Close;
end;
procedure TFrmtuidan.BtnTuiDanClick(Sender: TObject);
var
i:integer;
chuanbiao:string;
delcount:integer;
begin
delcount:=0;
if application.MessageBox('你确定进行退单操作吗?','提示',mb_okcancel)=IDCANCEL then
exit;
for i:=0 to DataList.Items.Count -1 do
begin
if DataList.Items[i].Checked then
begin
chuanbiao:=DataList.Items[i].SubItems[0];
if QueryDetail.Active then
QueryDetail.Close;
QueryDetail.SQL.Clear;
QueryDetail.SQL.Add('select caipinname,caipincount,caipinunit,caipinprice,dianliexing from Q_customertemp');
QueryDetail.SQL.Add(' where zhanghao='+''''+dm.Qfangtai.FieldValues['zhanghao']+''''+' and chuanbiaohao='+''''+chuanbiao+'''');
QueryDetail.Open;
if dm.ChuanBiaoQuery.Active then
dm.ChuanBiaoQuery.Close;
dm.ChuanBiaoQuery.SQL.Clear;
dm.ChuanBiaoQuery.SQL.Add('select * from Q_tuidan where chuanbiaohao='+''''+chuanbiao+'''');
dm.ChuanBiaoQuery.Open;
while not QueryDetail.Eof do
begin
dm.ChuanBiaoQuery.Append;
dm.ChuanBiaoQuery.FieldByName('chuanbiaohao').AsString:=chuanbiao;
dm.ChuanBiaoQuery.FieldByName('caipinname').AsString:=QueryDetail.FieldValues['caipinname'];
dm.ChuanBiaoQuery.FieldByName('caipincount').AsInteger:=QueryDetail.FieldValues['caipincount'];
dm.ChuanBiaoQuery.FieldByName('caipinprice').AsCurrency:=QueryDetail.FieldValues['caipinprice'];
dm.ChuanBiaoQuery.FieldByName('caipinlei').AsString :=QueryDetail.FieldValues['dianliexing'];
dm.ChuanBiaoQuery.FieldByName('caipinunit').AsString :=QueryDetail.FieldValues['caipinunit'];
dm.ChuanBiaoQuery.FieldByName('opratename').AsString:=dm.opratename;
dm.ChuanBiaoQuery.FieldByName('opratedate').AsDateTime:=now();
dm.ChuanBiaoQuery.Post;
QueryDetail.Next;
end;
dm.ChuanBiaoQuery.Close;
QueryDetail.Close;
QueryDetail.SQL.Clear;
QueryDetail.SQL.Add('delete from Q_customertemp where zhanghao='+''''+dm.Qfangtai.FieldValues['zhanghao']+''''+' and chuanbiaohao='+''''+chuanbiao+'''');
dm.conn.BeginTrans;
QueryDetail.ExecSQL;
dm.conn.CommitTrans;
QueryDetail.Close;
delcount:=delcount+1;
end;
end;//for 循环结束;
if (delcount=DataList.Items.Count) and (delcount>0) then //如果将所有菜品退单,则房台状态为开桌。
begin
if dm.Qfangtai.Active then
begin
dm.Qfangtai.Edit;
dm.Qfangtai.FieldByName('statusid').AsInteger:=1;
dm.Qfangtai.Post;
end;
end;
if QueryDetail.Active then
QueryDetail.Close;
CreateList(dm.Qfangtai.FieldValues['zhanghao']);
dm.SaveWorkLog(now(),dm.opratename,'退单操作完成。');
application.MessageBox('退单已完成。','提示',mb_ok)
end;
procedure TFrmtuidan.BtnCloseClick(Sender: TObject);
begin
self.Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -