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

📄 c_dish.pas

📁 《delphi数据库设计与实例开发》随书光盘
💻 PAS
字号:
unit c_dish;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ComCtrls, Grids, DBGrids, StdCtrls, Mask, DBCtrls, ExtCtrls,
  ImgList, ToolWin;

type
  Tcfrm_dish = class(TForm)
    ToolBar1: TToolBar;
    TButton1: TToolButton;
    TButton2: TToolButton;
    TButton3: TToolButton;
    ToolButton4: TToolButton;
    TButton5: TToolButton;
    TButton6: TToolButton;
    ToolButton7: TToolButton;
    TButton8: TToolButton;
    DBNavigator1: TDBNavigator;
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    DBEdit1: TDBEdit;
    DBGrid2: TDBGrid;
    StatusBar1: TStatusBar;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DataSource1: TDataSource;
    ImageList1: TImageList;
    DBComboBox1: TDBComboBox;
    procedure FormCreate(Sender: TObject);
    procedure TButton1Click(Sender: TObject);
    procedure TButton2Click(Sender: TObject);
    procedure DataSource1DataChange(Sender: TObject; Field: TField);
    procedure TButton5Click(Sender: TObject);
    procedure TButton6Click(Sender: TObject);
    procedure TButton3Click(Sender: TObject);
    procedure DBComboBox1Change(Sender: TObject);
  private
    { Private declarations }
  public
  procedure cpsl;
    { Public declarations }
  end;

var
  cfrm_dish: Tcfrm_dish;
  dishcount:integer;
  dishtype:string;
implementation

uses c_datam, publicvar;

{$R *.dfm}
procedure tcfrm_dish.cpsl;
begin
   dishcount:=dm.ADO_dish.RecordCount;
   StatusBar1.Panels[0].text:='当前的菜品总数为:'+inttostr(dishcount);
end;

procedure Tcfrm_dish.FormCreate(Sender: TObject);
begin
StatusBar1.Panels[1].Text:=datetostr(date())+'|'+username;
  dm.ADO_dish.Open;
  dm.ADO_dish.Sort:='Dish_id';
  dm.ADO_dish.First;
  dm.ado_foodtype.open;
  dm.ADO_foodtype.Sort:='Num';
  while not dm.ado_foodtype.Eof do
    begin
     DBCombobox1.items.add(dm.ADO_foodtype.fieldbyname('type').AsString);
     dm.ADO_foodtype.Next;
    end;
    dm.ado_foodtype.close;
  DBCombobox1.ItemIndex:=0;
  cpsl;
end;

procedure Tcfrm_dish.TButton1Click(Sender: TObject);
begin
  dm.ADO_dish.Append;
  TButton5.Tag:=0;
  TButton1.Enabled:=false;
  TButton2.Enabled:=false;
  TButton3.Enabled:=false;
  TButton5.Enabled:=true;
  TButton6.Enabled:=true;
  DBCombobox1.Text:='';
  DBCombobox1.Enabled:=true;
  DBEdit1.Enabled:=true;
  DBEdit2.Enabled:=true;
  DBEdit3.Enabled:=true;
end;

procedure Tcfrm_dish.TButton2Click(Sender: TObject);
var dishname,mes:string;
begin
 dishname:=dm.ADO_dish.fieldbyname('Dish_name').asstring;
 dm.ado_meals.open;
 dm.ado_meals.first;
 if dm.ado_meals.locate('Dish_name',dishname,[]) then
  begin
      mes:='菜品: <'+dm.ADO_dish.fieldbyname('Dish_name').AsString
           +'> 已被点,不能修改!';
      application.MessageBox(pchar(mes),pchar('提示')
       ,+MB_ICONQUESTION);
       dm.ado_meals.close;
      exit;
  end
  else
  begin
  dm.ado_meals.close;
  TButton5.Tag:=1;
  TButton1.Enabled:=false;
  TButton2.Enabled:=false;
  TButton3.Enabled:=false;
  TButton5.Enabled:=true;
  TButton6.Enabled:=true;
  DBCombobox1.Enabled:=true;
  DBEdit1.Enabled:=true;
  DBEdit2.Enabled:=true;
  DBEdit3.Enabled:=true;
  end;
end;

procedure Tcfrm_dish.DataSource1DataChange(Sender: TObject; Field: TField);
begin
 DBCombobox1.Text:=dm.ADO_dish.fieldbyname('Dish_type').AsString;
end;

procedure Tcfrm_dish.TButton5Click(Sender: TObject);
begin
if Length(DBEdit1.Text)<3 then  //判断输入的菜品编号是否合法
    begin
      Application.MessageBox(PChar('菜品编号不能为空或小于3位,请重新录入!')
      , PChar('提示'),MB_ICONEXCLAMATION);
      DBEdit1.SetFocus();
      exit;
     end;
  if DBCombobox1.Text='' then  //判断是否输入了类型
    begin
      Application.MessageBox(PChar('类型不能为空,请重新录入!')
      , PChar('提示'),MB_ICONEXCLAMATION);
      DBCombobox1.SetFocus();
      exit;
     end;
  if DBEdit2.Text='' then  //判断是否输入了菜品名称
    begin
      Application.MessageBox(PChar('菜品名称不能为空,请重新录入!')
      , PChar('提示'),MB_ICONEXCLAMATION);
      DBEdit2.SetFocus();
      exit;
     end;
  if DBEdit3.Text='' then  //判断是否输入了价格
    begin
      Application.MessageBox(PChar('菜品价格不能为空,请重新录入!')
      , PChar('提示'),MB_ICONEXCLAMATION);
      DBEdit3.SetFocus();
      exit;
     end;
  if TButton5.Tag=1 then dm.ADO_dish.Edit;
    dm.ADO_dish.FieldByName('Dish_id').AsString:=dishtype+DBEdit1.Text;
  try
   dm.ADO_dish.Post;
  except
    Application.MessageBox(PChar('菜品编号重复,请重新录入!'), PChar('提示'),
      MB_ICONEXCLAMATION);
    DBEdit1.SetFocus();
    exit;
  end;
  TButton1.Enabled:=true;
  TButton2.Enabled:=true;
  TButton3.Enabled:=true;
  TButton5.Enabled:=false;
  TButton6.Enabled:=false;
  DBCombobox1.Enabled:=false;
  DBEdit1.Enabled:=false;
  DBEdit2.Enabled:=false;
  DBEdit3.Enabled:=false;
  cpsl;
end;

procedure Tcfrm_dish.TButton6Click(Sender: TObject);
begin
dm.ADO_dish.Cancel;
 TButton1.Enabled:=true;
  TButton2.Enabled:=true;
  TButton3.Enabled:=true;
  TButton5.Enabled:=false;
  TButton6.Enabled:=false;
  DBCombobox1.Enabled:=false;
  DBEdit1.Enabled:=false;
  DBEdit2.Enabled:=false;
  DBEdit3.Enabled:=false;
end;

procedure Tcfrm_dish.TButton3Click(Sender: TObject);
var dishname,mes:string;
begin
 dishname:=dm.ADO_dish.fieldbyname('Dish_name').asstring;
 dm.ado_meals.open;
 dm.ado_meals.first;
 if dm.ado_meals.locate('Dish_name',dishname,[]) then
  begin
      mes:='菜品: <'+dm.ADO_dish.fieldbyname('Dish_name').AsString
           +'> 已被点,不能修改!';
      application.MessageBox(pchar(mes),pchar('提示')
       ,+MB_ICONQUESTION);
       dm.ado_meals.close;
      exit;
  end;
   mes:='是否要删除菜品< '+dm.ADO_dish.fieldbyname('Dish_name').AsString +'>';
 if application.MessageBox(pchar(mes),pchar('等待确认')
    ,+MB_ICONQUESTION+mb_okcancel+MB_DEFBUTTON2)=idok then
     begin
      dm.ADO_dish.Delete;//删除菜品记录
      cpsl;
     end;
end;

procedure Tcfrm_dish.DBComboBox1Change(Sender: TObject);
begin
   dm.ADO_foodtype.Open;
   dishtype:=dm.ado_foodtype.lookup('type',DBCombobox1.Text,'Num');
   dm.ADO_foodtype.Close;
end;

end.

⌨️ 快捷键说明

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