📄 sn_xfdj.pas
字号:
unit Sn_xfdj;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, Mask, DBTables, DB, Buttons;
type
TForm12 = class(TForm)
XF_RoomName: TLabel;
Label2: TLabel;
Label10: TLabel;
Label11: TLabel;
Label1: TLabel;
Q_select: TQuery;
DataSource1: TDataSource;
T_spin: TTable;
Q_skc: TQuery;
GroupBox1: TGroupBox;
Label3: TLabel;
Label4: TLabel;
XF_spmc: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
XF_dj: TLabel;
Label5: TLabel;
XF_spbh: TLabel;
Label9: TLabel;
ME_pycx: TMaskEdit;
SP_sl: TMaskEdit;
SP_fwy: TComboBox;
Button1: TButton;
GroupBox2: TGroupBox;
Db_sp: TDBGrid;
Query1: TQuery;
GroupBox3: TGroupBox;
DBGrid1: TDBGrid;
Q_splb: TQuery;
DataSource2: TDataSource;
Q_service: TQuery;
SpeedButton1: TSpeedButton;
procedure ME_pycxChange(Sender: TObject);
procedure SP_slKeyPress(Sender: TObject; var Key: Char);
procedure SP_fwyKeyPress(Sender: TObject; var Key: Char);
procedure Db_spDblClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form12: TForm12;
implementation
uses mainmenu, main;
{$R *.dfm}
procedure TForm12.ME_pycxChange(Sender: TObject);
var pym:string;
begin
pym:=ME_pycx.Text;
Q_select.SQL.Clear;
Q_select.SQL.Add('select * from Sn_Menu where py like ''%'+pym+'%''');
Q_select.Open;
end;
procedure TForm12.SP_slKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
perform(WM_NEXTDLGCTL,0,0);
end;
end;
procedure TForm12.SP_fwyKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
perform(WM_NEXTDLGCTL,0,0);
end;
end;
procedure TForm12.Db_spDblClick(Sender: TObject);
begin
with DB_sp.DataSource.DataSet do
begin
GotoBookmark(pointer(DB_sp.SelectedRows[0]));
if fields[9].asinteger=1 then
begin
MessageDlg('您选择的房间已经占用,请选择其他房间!',mtError,[mbok],0);
end
else
begin
XF_spbh.Caption:=fields[0].asstring;
xf_spmc.Caption:=fields[1].asstring;
xf_dj.Caption:=Fields[5].asstring;
sp_sl.Text:='1';
sp_sl.SetFocus;
if fields[9].asinteger=1 then
begin
sp_sl.ReadOnly:=true;
end;
end;
end;
end;
procedure TForm12.Button1Click(Sender: TObject);
var
sfkc,HandNo,MenuNo:string;
AccountNo,kcsl:integer;
begin
ME_pycx.Clear;
Q_select.Close;
Q_select.SQL.Clear;
Q_select.SQL.Add('select * from Sn_menu order by MenuNo');
Q_select.Open;
db_sp.Refresh;
HandNo:=XF_RoomName.Caption;
AccountNo:=StrToInt(Label11.Caption);
MenuNo:=XF_spbh.Caption;
if (length(HandNo)=0) or (length(XF_spbh.caption)=0) or (length(trim(sp_sl.Text))=0) or (length(sp_fwy.Text)=0) then
begin
MessageDlg('您没选择商品或输入错误,请重新输入!',mtError,[mbok],0);
end
else
begin
//按商品编号从Menu中取出MenuName,MenuType,SalePrice和kc(是否允许库存).
Q_splb.SQL.Clear;
Q_splb.SQL.Add('select * from Sn_Menu where MenuNo='''+MenuNo+'''');
Q_splb.Open;
{
if strpos(pchar(Q_splb.FieldByName('menuname').AsString),pchar('钟点房'))<>nil then
begin
Q_splb.Edit;
Q_splb['zt']:=1;
Q_splb.Post;
end;
}
sfkc:=Q_splb.FieldByName('kc').asstring;
//结束
//判断该商品是否允许库存,判断该商品库存数量是否够,够则进行数量增减
if sfkc='是' then
begin
Q_skc.SQL.Clear;
Q_skc.SQL.Add('select * from Sn_kucun where MenuNo='''+MenuNo+'''');
Q_skc.Open;
kcsl:=Q_skc.fieldByName('sl').asinteger;
if kcsl<StrToInt(trim(sp_sl.Text)) then
Begin
MessageDlg('库存数量不足,请查询!',mtError,[mbok],0);
sp_sl.Clear;
Q_splb.SQL.Clear;
Q_splb.SQL.Add('select * from Sn_Dinlist where HandNo='''+HandNo+'''');
Q_splb.Open;
end
else
begin
Q_skc.Edit;
Q_skc['sl']:=kcsl-StrToInt(trim(sp_sl.Text));
Q_skc.Post;
Q_skc.Close;
//公共部分代码====向DinList表插入数据。
T_spin.Open;
T_spin.AppendRecord([AccountNo,handNo,'0',MenuNo,Q_splb.FieldByName('MenuName').asstring,Q_splb.FieldByName('MenuType').asinteger,Q_splb.FieldByName('SalePrice').asfloat,StrtoInt(trim(sp_sl.text)),sp_fwy.text,Q_splb.FieldByName('dz').asstring,9,form1.sys_snusername,now]);
//结束
//刷新已消费商品列表并置所添表单数据为空。
sp_sl.Clear;
Q_splb.SQL.Clear;
Q_splb.SQL.Add('select * from Sn_Dinlist where cstr(accountno)='''+label11.Caption+''' and HandNo='''+HandNo+'''');
Q_splb.Open;
//结束。
end;
end
else
begin
//公共部分代码====向DinList表插入数据。
T_spin.Close;
T_spin.Open;
T_spin.AppendRecord([AccountNo,HandNo,'0',MenuNo,Q_splb.FieldByName('MenuName').asstring,Q_splb.FieldByName('MenuType').asinteger,Q_splb.FieldByName('SalePrice').asfloat,StrtoInt(trim(sp_sl.text)),sp_fwy.text,Q_splb.FieldByName('dz').asstring,9,form1.sys_snusername,now]);
//结束
//刷新已消费商品列表并置所添表单数据为空。
sp_sl.Clear;
Q_service.Active:=False;
Q_service.Active:=True;
Q_splb.Active:=False;
Q_splb.SQL.Clear;
Q_splb.SQL.Add('select * from Sn_Dinlist where cstr(accountno)='''+label11.Caption+''' and HandNo='''+HandNo+'''');
Q_splb.Active:=true;
Q_select.Active:=false;
Q_select.Active:=true;
// sp_sl.EditMask:='099;1; ';
//结束。
end;
end;
end;
procedure TForm12.FormShow(Sender: TObject);
begin
Q_select.Active:=false;
Q_select.Active:=True;
// sp_sl.EditMask:='999;1; ';
sp_fwy.Clear;
Q_service.Active:=False;
Q_service.Active:=True;
while not Q_service.Eof do
begin
sp_fwy.Items.Add(Q_service.FieldByName('Name').AsString);
Q_service.Next;
end;
end;
procedure TForm12.SpeedButton1Click(Sender: TObject);
begin
close;
form2.db_dinlist.Refresh;
end;
procedure TForm12.FormClose(Sender: TObject; var Action: TCloseAction);
begin
form2.Q_DinList.Active:=False;
form2.Q_DinList.Active:=true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -