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

📄 consume.~pas

📁 结于初学者来说这对数据库是一个很好的例子
💻 ~PAS
字号:
unit consume;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, Buttons, DB, DBTables, Grids, DBGrids;

type
  TForm13 = class(TForm)
    Label1: TLabel;
    GroupBox1: TGroupBox;
    Label3: TLabel;
    Label4: TLabel;
    XF_spmc: TLabel;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    XF_RoomName: TLabel;
    Label2: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    ME_pycx: TMaskEdit;
    SP_sl: TMaskEdit;
    SP_fwy: TComboBox;
    Button1: TButton;
    Label8: TLabel;
    XF_dj: TLabel;
    SpeedButton1: TSpeedButton;
    Q_select: TQuery;
    DataSource1: TDataSource;
    Db_sp: TDBGrid;
    Query1: TQuery;
    DBGrid1: TDBGrid;
    Q_splb: TQuery;
    DataSource2: TDataSource;
    Label5: TLabel;
    XF_spbh: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Q_service: TQuery;
    T_spin: TTable;
    Q_skc: TQuery;
    Label9: TLabel;
    procedure SpeedButton1Click(Sender: TObject);
    procedure ME_pycxChange(Sender: TObject);
    procedure Db_spDblClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure SP_slKeyPress(Sender: TObject; var Key: Char);
    procedure SP_fwyKeyPress(Sender: TObject; var Key: Char);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form13: TForm13;

implementation

uses main;

{$R *.dfm}

procedure TForm13.SpeedButton1Click(Sender: TObject);
begin
  form1.db_Selected.Refresh;
  close;
end;

procedure TForm13.ME_pycxChange(Sender: TObject);
 var pym:string;
begin
 pym:=ME_pycx.Text;
 Q_select.SQL.Clear;
 Q_select.SQL.Add('select * from Menu where py like ''%'+pym+'%''');
 Q_select.Open;
end;

procedure TForm13.Db_spDblClick(Sender: TObject);
begin
     with DB_sp.DataSource.DataSet do
     begin
     GotoBookmark(pointer(DB_sp.SelectedRows[0]));
     XF_spbh.Caption:=fields[0].asstring;
     xf_spmc.Caption:=fields[1].asstring;
     xf_dj.Caption:=Fields[5].asstring;
     end;
     sp_sl.SetFocus;
     sp_sl.Text:='1';
end;

procedure TForm13.Button1Click(Sender: TObject);
  var
     sfkc,RoomName,MenuNo:string;
     AccountNo,kcsl:integer;
begin
 ME_pycx.Clear;
     Q_select.Close;
    Q_select.SQL.Clear;
    Q_select.SQL.Add('select * from menu order by MenuNo');
    Q_select.Open;
    db_sp.Refresh;
 RoomName:=XF_RoomName.Caption;
 AccountNo:=StrToInt(Label11.Caption);
 MenuNo:=XF_spbh.Caption;
 if (length(RoomName)=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 Menu where MenuNo='''+MenuNo+'''');
   Q_splb.Open;
   sfkc:=Q_splb.FieldByName('kc').asstring;
   //结束
//判断该商品是否允许库存,判断该商品库存数量是否够,够则进行数量增减
   if sfkc='是' then
      begin
         Q_skc.SQL.Clear;
         Q_skc.SQL.Add('select * from 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 Dinlist where RoomName='''+RoomName+'''');
              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,RoomName,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.operator.caption,now]);
//结束
//刷新已消费商品列表并置所添表单数据为空。
    sp_sl.Clear;
    Q_splb.SQL.Clear;
    Q_splb.SQL.Add('select * from Dinlist where RoomName='''+RoomName+'''');
    Q_splb.Open;
//结束。
              end;
      end
      else
          begin
//公共部分代码====向DinList表插入数据。
    T_spin.Open;
    T_spin.AppendRecord([AccountNo,RoomName,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.operator.caption,now]);
//结束
//刷新已消费商品列表并置所添表单数据为空。
    sp_sl.Clear;
    Q_service.Active:=False;
    Q_service.Active:=True;
    Q_splb.SQL.Clear;
    Q_splb.SQL.Add('select * from Dinlist where RoomName='''+RoomName+'''');
    Q_splb.Open;
//      sp_sl.EditMask:='099;1; ';
//结束。
        end;
   end;
end;

procedure TForm13.SP_slKeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then
 begin
    key:=#0;
    perform(WM_NEXTDLGCTL,0,0);
 end;
end;

procedure TForm13.SP_fwyKeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then
 begin
    key:=#0;
    perform(WM_NEXTDLGCTL,0,0);
 end;
end;

procedure TForm13.FormShow(Sender: TObject);
begin
  Q_select.Active:=false;
  Q_select.Active:=True;
//  sp_sl.EditMask:='099;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 TForm13.FormClose(Sender: TObject; var Action: TCloseAction);
begin
form1.Q_Selected.Active:=False;
form1.Q_Selected.Active:=true;
end;

end.

⌨️ 快捷键说明

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